CONTENT CONTRACT · VERSION 1
QuestDefinition
Declared quest stages and directed transitions. Rewards come only from handlers.
Signature
{ description: TextKey, giver: (NpcId)?, id: ContentId, initial_stage: Name, name: TextKey, objectives: {QuestObjective}, rewards: {QuestReward}, stages: {Name}, states: {QuestState}, transitions: {QuestTransition}, xp: (PositiveCount)? }Fields
| Name | Type | Meaning |
|---|---|---|
description | TextKey | Localization key of the journal description. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: text |
giver | NpcId | NPC offering it (journal and markers). Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: npc |
id | ContentId | Package-qualified identity; unique within its declaring namespace. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$ |
initial_stage | Name | Stage assigned when a quest has no stored progress. Length: 1…96; Pattern: ^[a-z][a-z0-9_]{0,95}$ |
name | TextKey | Localization key for the displayed name. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: text |
objectives | {QuestObjective} | Shown objectives. Items: 0…16 |
rewards | {QuestReward} | Rewards shown on the quest card. Items: 0…16 |
stages | {Name} | Complete set of local quest stage identifiers. Items: 1…256; Unique entries |
states | {QuestState} | How its stages show; stages without an entry stay hidden. Items: 0…256 |
transitions | {QuestTransition} | Allowed source/destination stage pairs. Items: 1…256; Unique entries |
xp | PositiveCount | Experience the engine grants the quest's player when it reaches a stage of phase done. Range: 1…2147483647; Unit: count |