Quests&Objectives

One asset per quest.

Phases run in order. Objectives have counts. Prerequisites and reward data live on the asset. This page is the same for Blueprint and C++, Solo and Multiplayer.

The sample project includes example Quest Definition assets in DA_QE_Catalog.

Create a Quest Definition

  1. In the Content Browser, right-click → Data → Data Asset.
  2. Pick Quest Definition (UQuestDefinition). Search Quest to filter the class list. Quest Catalog is the other class in that picker. Use that class in a later step.
  3. Name the asset (for example DA_MyQuest).
  4. Set Quest Id, Title, and Description.
  5. Set an optional Icon (soft Texture2D). Your HUD loads it. The plugin does not draw it.
  6. Set optional Quest Giver Id and Quest Turn In Id. They can differ.
Content Browser: right-click → Data → Data Asset.
Pick Class: Quest Definition. If you make the catalog instead, pick Quest Catalog.
Name the new Quest Definition asset.
Details panel: Quest Id, Title, Description, Icon, Quest Giver Id, Quest Turn In Id.

Phases and objectives

Add Phases in order. Only the current phase accepts CompleteObjective and FailObjective.

Each objective has Objective Id, Title, Required Count, optional Icon, and a description.

One phase expanded. Show Required Count, Optional, Hidden, Fail Id, Time To Fail, and Icon.

Objective flags

FlagEffect
Optional The phase can complete without this objective. If the phase has required objectives, those required objectives gate completion. If every objective is optional, all of them must complete.
Hidden Do not show this objective in the tracker until CurrentCount >= RequiredCount. Progress still counts. Use ShouldDisplayObjective.
Fail Id A matching FailObjective call fails the quest. Leave None to disable.
Time To Fail Seconds after this phase becomes current. 0 disables the timer. When the timer expires, the quest fails. If you complete the objective, the timer stops.

Optional, Hidden, Fail Id, and Time To Fail are independent.

Objective ids and fail ids are not globally unique. A call matches every Active quest in its current phase.

Prerequisites, auto-start, rewards, sounds

  1. If this quest must wait on other quests, add Prerequisite Quests.
  2. If the quest must start when it becomes Available, tick Auto Start When Available.
  3. Add Rewards: Reward Id, Count, and optional Icon. The plugin does not grant items.
  4. Set optional Quest Complete, Quest Failed, and Objective Complete sound cues. The plugin does not play them.
Prerequisite Quests, Auto Start, Rewards, and the three sound cue fields. Expand Rewards to set Id, Count, and Icon.

A prerequisite is met when that quest is Completed. It is also met when Times Completed is greater than 0.

Auto-start runs only the first time a quest becomes Available. It does not run after fail or abandon.

Completed quests stay Completed. You cannot start them again.

Fail and abandon erase progress. The quest becomes Available.

Catalog and Project Settings

  1. Same create path as a definition: right-click → Data → Data Asset. Then pick Quest Catalog (UQuestCatalog).
  2. Add every Quest Definition to the Quests array.
  3. Open Edit → Project Settings → Game → Quests And Objectives.
  4. Set Default Catalog to that catalog asset.
Catalog asset with the Quests array filled.
Project Settings → Game → Quests And Objectives → Default Catalog.

At runtime, UQuestSubsystem loads that catalog. You can also call RegisterQuest for a definition you spawn later.

Giver and turn-in lookup

Use the same FName on the NPC as Quest Giver Id or Quest Turn In Id. You can also use a data asset id.

NeedSubsystem API
Definitions this NPC offersGetQuestsByGiverId
Definitions this NPC acceptsGetQuestsByTurnInId
Either roleGetQuestsByVendorId
One definition by idGetQuestById

An id of None never matches. The plugin does not spawn NPCs or play dialogue.