You are browsing documentation for an older version of the Quest System. Switch to Newest

Quest Indicators

The quest indicator is the symbol that appears above a quest giver, turn in point, and objective. The main driver for the quest indicators is the BP_QuestIndicator file inside the Blueprints/QuestIndicator folder. Inside of it we control what mesh and materials we want to show for each quest type, as well as the animation related settings. The Collect, Defeat & Interact quest objectives found in the Blueprints/QuestObjectives subfolders use a child of this BP_QuestIndicator to create their unique instances, but with the same level of flexibility.

If you want to just change the materials used on the quest indicators take a look at the IndicatorMaterials* variables. This is where I define the different materials used for each Quest Type.

If you want to create a completely new quest type, with its own set of indicators and materials you will want to visit the Create a quest type section of this documentation.

If you are just looking to just change meshes, you are going to want to change the values of the variable IndicatorMeshesDefault to your new meshes. I’ve included a number of meshes to choose from, you can find them in the Blueprints/QuestIndicators/Meshes folder. The included meshes have 4 material slots, but to simplify the system I have it setup to use the same material on the front of the mesh as it does on the back (the faces), so only 3 materials are used in the 4 slots. The other 2 slots are for the bevel, and the sides. Bevel is not used on the hollowed out variations of the meshes.

If you use a custom mesh and do not want to override the materials with the ones in the system then make sure you disconnect the sequence pin that is binding them in the RebuildQuestIndicator function of BP_QuestIndicator. Keep in mind by doing so it will break the material binding of all other quest types if you have any. You really should be making a child of this blueprint and making that change in there instead.

When you get a chance, take a look at the RebuildQuestIndicator function inside the BP_QuestIndicator blueprint as well as the same function in one of these child blueprints in the Blueprints/QuestObjectives subfolders. This function is the main difference between them. The objective indicators are a lot more simplified as they don’t account for changes in style for specific quest types, like the main quest indicator does.

Quest Indicator Animations

There are 5 different settings that power animations on indicators, and each state can have its own set of settings. To edit these settings open up the BP_QuestIndicator blueprint in the Blueprints/QuestIndicator/ folder. Then edit the IndicatorAnimations variable. You will have the following settings:

Animation The animation to play. Includes Rotate X, Rotate Y, Rotate Z, Grow, Shrink, Hop, Hop & Spin, Hop & Flip.
Easing The easing to apply to the animation being played. Includes Linear, Ease, Linear Ping Pong, Ease Ping Pong, Linear Ping Pong Pause, Ease Ping Pong Pause. Ping Pong means it will play the animation in reverse when it finishes playing it forward. Pause will give it a slight pause when it completes the animation.
PlaybackSpeedInSeconds This is the number of seconds it should take to play the entire animation. If you use a ping pong ease type you will want to increase this as by default it will play twice as fast when compared to a non-ping pong ease type, this is to account for the time to play it in reverse.
PlaybackInReverse If you want the animation to play backwards instead of forwards you should enable this.
PlaybackLooped If you want the animation to loop, enable this. This is enabled by default.

Indicator Meshes

You will find 40 different (20 solid, 20 hollow) indicator meshes included with this project in the Blueprints/QuestIndicator/Meshes folder.

You can edit the meshes used for your quest indicators inside of the BP_QuestIndicator file. The variable you will want to edit is IndicatorMeshesDefault. It is a map of QuestState to StaticMesh. By default all quest types share the same indicator, but you can change this, as well as how the materials are applied to the meshes inside of the rebuildQuestIndicator function inside of this blueprint.

I will show you how I created the included meshes in a future video, subscribe to my youtube channel to get notified when it is released. I will also place the video here in this documentation when it is available.

Indicator Materials

I’ve included 23 different materials to help you get started with customizing your quest indicators. You can find these materials in the Demo/Materials folder. You will find solid colors, metallic colors, shiny colors, glows and semi-transparent glass.

To change the materials used on the indicator open the BP_QuestIndicator blueprint located at Blueprints/QuestIndicator/ and edit the variables with the prefix IndicatorMaterials*. I have included 3 copies of this variable one for each QuestType. Take a look at the rebuildQuestIndicator function in this blueprint to see how they work. I’ve included one that acts as a default called IndicatorMaterialsDefault; the side quests also use this styling by default. You will also find IndicatorMaterialsMSQ which is for the materials used on the Main Story Quest indicators. The last one I’ve included is for repeatable quest types, and that is called IndicatorMaterialsRepeatable.

Each included mesh will use either 2 or 3 materials, the hollow meshes use 2 materials (no bevel), the solid ones use 3. The face [0] is for the front and back, the bevel [1], and the sides [2] are the expected materials. Take a look at the rebuildQuestIndicator function if you need to make adjustments to the materials.

Tweaking Scale, Rotation & Offset

Sometimes you may find yourself needing to tweak the scale, rotation or offset of a quest indicator, and I’ve included a little helper component you can add to your actor to help you achieve this, and a few other tweaks. Here is what you need to do …

First add the AC_Quest_Actor component found in the Blueprints/Components/ folder to the actor you wish to tweak.

Next just tweak the settings available on the details panel. When the indicator renders it will patch itself with the settings you set on this component.

The available settings include:

MultipleIndicatorHandler By default if your quest giver has multiple quests all indicators will show, stacking on top of each other. Some people may not like this, and would instead prefer the highest priority indicator to be shown and others hidden. This is the purpose of this variable, set it to ‘Priority’ to show just the highest priority indicator quest state for all quests currently available on the NPC. For example, if your quest giver has an available quest, a quest in progress, and a ready to turn in quest, in priority mode the indicator will show just the ready to turn in quest indicator and hide the others. Upon completing the quest the indicator will change to the available quest indicator, then once that quest is accepted you will finally see the in progress indicator, but only one of them, even though at this point you would have 2 quests in progress.
InteractRadiusOverride This controls the radius of the sphere collision that allows the player to interact with the quest giver.
InteractLocationOffset Use this variable to reposition the location of the sphere collision used for interacting with the quest target.
Mesh Scale Multiplier This variable will adjust the scale of the static mesh by this multiplier.
WorldLocationOffset This variable will control the location offset of the indicator actor in the world.
WorldRotationOffset This variable will control the rotation offset of the indicator actor in the world.
CameraRotation This variable will control the rotation of the camera used to capture the target’s portrait, when it is displayed inside of the quest window (only shown when a state text message is used).
CameraLocation This variable will control the location of the camera used to capture the target’s portrait, when it is displayed inside of the quest window (only shown when a state text message is used).