Documentation / Tile Tick Core RPG

Quests and World State

Quests use simple states: not started, in progress, and completed. Players can start several quests at once, and each quest can have its own requirements and stages.

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

  1. Open the Quest Database window.
  2. Create a quest and give it a stable quest ID.
  3. Add any skill, item, quest, or world state prerequisites.
  4. Create stages in the order the player should complete them.
  5. Add objectives and the actions that move the quest forward.
  6. Add completion rewards and journal text.
  7. 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.

Keep IDs stable: Quest IDs, stage IDs, objective IDs, and world state keys are part of saved progress. Rename display text whenever you want, but avoid changing saved IDs after players already have save files.

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.