Quest types are used as a way to categorize and customize the styling for your quests. The repeatable quest type is a special case, where I have adapted additional logic to handle making a quest available again once it is completed.
Create your own Quest Types
Follow these steps to create a new quest type.
1. Add a new entry to the QuestType Enumeration
- First navigate to the Blueprints/Variables/Enums folder and open E_QuestType.
- Add a new entry to this enum, and set the label as the name of your quest type.
- Save & close the file.
2. Customize the Indicator style for your new Quest Type
- Next we have to set up the indicator for our quest type. In the Blueprints/QuestIndicator/ folder open the BP_QuestIndicator file.
- Open the RebuildQuestIndicator function. By default all indicators are sharing the same static meshes, this is defined in the first execution pin (index 0) of the sequence. You should see a select node where all pins are plugged in from the IndicatorMeshesDefault map. If you would like to make your static meshes unique for quest type this is where you would plug them in. Duplicate the IndicatorMeshesDefault, and give it a different name.
- Plug your new variable into the corresponding QuestType pin on the select node.
- Scroll down to the next execution pin of our sequence (index 1), this is where we are defining the materials we use on the indicator. As you can see I have 3 different material variables going into this select. Duplicate one of the variables, name it accordingly, and adjust to your liking, then plug it into the select for your new QuestType.
3. Set the UI Colors based on Quest Type
- Navigate to the Blueprints/Variables folder and open up the BPFL_SharedFunctions file. Inside you will find a function called getQuestColor.
- Go ahead and open this function up. You will see two selects being powered by a bunch of MakeSlate colors. Each QuestType has two colors associated with it, the primary color, and a slightly darker version of the primary color. Duplicate the Make SlateColor nodes, set your colors, then plug them into the QuestType select nodes for your new quest type.
4. Set the Multiple Quest UI Window Icons
- Next to each quest in a multiple quest window is a Texture2D icon used to represent the StaticMesh. It is also colored according to the quest type. We set these up inside of the UIs/QuestWindow/ UI_QuestWindow_MultipleQuests Event Graph. In the variables section you will see a number of Enum to Texture Maps with the prefix QuestStateIcons. Duplicate one of these and set the texture 2d icons to your liking for your new quest type.
- Plug your new variable into the select for your quest type (the select is on the event construct, where the other variables are being used, do a find references to the QuestStateIconsMSQ if you can’t locate it).
That is the basics of adding a new quest type. You should search all blueprints for the string “QuestType” to see how it is being used throughout. Most of the calls are just to use the getQuestColor function, but you will also find the logic handlers for the repeatable quest type in there.
Included Quest Types
Main Story Quest
While functionally there is nothing different between the main story and side quests, your player might be expecting both types in your game. Visually the Main Story Quest uses gold and yellow for its indicators.
Your main story quest should follow your story, or the main objectives of your game.Your main story should also lead your players through each major hub in your levels (like towns for example).
Keep in mind quests can be chained using prerequisites, so there is no need to add 100 objectives to one single main story quest. Instead create multiple main story quests, each with their own objectives and rewards, then set the quest prerequisite as the previous quest in your chain. Turning in quests is good brain candy for the player, more quests within reason is better, plus it makes the player spend more time micromanaging their plan on what they want to do next.
Side Quest
Side quests are your fillers, you should design them around where the player will be traveling for the main story quests. The two types of side quests players least enjoy are ones that make you go way out of your way of your current path, or ones that make you go back to a location you were just at.
By default side quests share the same indicator mesh and materials as the main story quest, however the UI color is a green color instead of yellow. See the Quest Indicator section to learn how you can customize all of this to your liking. The “create a Quest Type” section of this chapter also goes through all the parts needed to set up a custom styling of the indicators and UI colors.
Repeatable Quest
Repeatable quests are quests that once you complete, become available to do again. This is the only included quest type that has special logic associated with it, and you can find that logic inside of the AC_Quest_PlayerState’s completeQuest function.
The logic is two nodes, a branch to see if it is a repeatable quest, and if it is it then changes the state to available again. It may seem redundant to run this right after setting the quest state to complete, but this is needed to properly handle any kind of events that may happen on the state change to complete.
This logic is very simple because it is just a starting point, and does not have any special conditions associated with it. For example you may want to expand on this logic to only let the player complete it a certain number of times, or to create a delay before it is available again. This is all game specific logic but if there is enough demand I will create some tutorials that show you how to do this, let me know.