The quest system is built for authored RPG quests rather than a generic task checklist. A quest definition describes the full adventure, while the runtime service tracks what the player has actually done.
Quest definitions
A QuestDefinition can contain a display name, description, quest points, difficulty, length, starting location, starting NPC, prerequisites, stages, completion text, and rewards.
Objectives and actions
- Talk to an NPC
- Kill a tagged enemy
- Collect or receive an item
- Interact with a world object
- Set or check world state
- Run custom quest actions when a stage starts or completes
Create a quest
- Open the Quest Database window.
- Create a quest and give it a stable quest ID.
- Add any skill, item, quest, or world state prerequisites.
- Create stages in the order the player should complete them.
- Add objectives and the actions that move the quest forward.
- Add completion rewards and journal text.
- Connect the starting NPC or world interaction to the quest service.
World state
WorldStateService stores simple named values that quests and other systems can read. This is useful for doors that stay open, NPC dialogue that changes, objects that appear after a quest, or any other lasting change caused by player progress.
Journal and feedback
QuestJournalUI shows available quest information and current progress. QuestPopupUI and QuestChatboxRelay can surface updates through the existing interface without forcing every quest to build its own UI.