How it works

Quests are defined in a DataTable using the plugin structure. Each row corresponds to a quest and contains its configuration: objectives, unlocking conditions, rewards, and automations. During play, the quest subsystem reads that DataTable and retains the state of every quest. Blueprint functions let you inspect and modify that state: a quest can therefore be set to In Progress, Completed, Abandoned, Failed, or back to Not Obtained according to your project logic.

The ADS Quest Participant Component is placed on the owner that takes part in a quest. For a quest giver, enter the quests its owner can offer in QuestsToGive. For a quest objective, enter its TargetType and TargetIDs to identify what type of objective its owner represents and which objectives it matches. The same actor can be both a giver and an objective. The component then queries the subsystem: it displays a giver indicator when one of its quests can be obtained, or an objective indicator when it matches the active objective of an in-progress quest.

During play, the system automatically sends dispatchers so that your Blueprints can react without manually monitoring data:

These dispatchers can, for example, update a quest journal, tracking UI, dialogue, or world markers.