Skip to content

QuestData

VersionStatus
v92Full
v90-
v86-

QuestData files (.quest extension) define quest entries: metadata, requirements, triggers, and task chains that form the quest progression.

Each quest is stored in its own file using the naming convention {questId:D6}.quest (e.g., 048721.quest).


Entity: quests Operations: create, update, delete Inline blocks:

  • strings: — creates/updates StrSheet_Quest entries

spec:
version: "1.0"
schema: v92
quests:
create:
- id: 99000001
header:
questNumber: 990001
questTitle: "Sample Quest"
questType: General
repeatType: OneTime
cancellable: Allowed
startTaskId: 1
requirements:
minLevel: 20
maxLevel: 65
tasks:
- taskId: 1
type: HuntTask
body:
targetCount: 10
templateId: 12345
- taskId: 2
type: VisitTask
nextTaskId: 0
body:
npcId: 63001
spec:
version: "1.0"
schema: v92
quests:
update:
- id: 99000001
changes:
header:
questType: Daily
requirements:
minLevel: 25
spec:
version: "1.0"
schema: v92
quests:
delete:
- 99000001

PropertyTypeSinceRequiredDescription
idintv92YesUnique quest identifier (used for file name)
headerobjectv92NoQuest header configuration
requirementsobjectv92NoLevel and prerequisite requirements
taskslistv92NoList of task definitions
stringsobjectv92NoInline quest string definitions
PropertyTypeSinceRequiredDescription
questNumberintv92NoInternal quest number
questTitlestringv92NoQuest title (localization key or inline string)
storyGroupIdintv92NoStory group for quest chain organization
designersNotestringv92NoInternal documentation note
questTypestringv92NoQuest category. See QuestType.
repeatTypestringv92NoRepeatability setting. See RepeatType.
repeatCountintv92NoNumber of times quest can be repeated
cancellablestringv92NoWhether quest can be abandoned. See Cancellable.
startTaskIdintv92NoFirst task ID in the chain
linkedQuestintv92NoFollow-up quest ID
recommendedPartySizeintv92NoSuggested party size
recommendedLevelintv92NoSuggested character level
summaryInfointv92NoQuest log summary reference
questDialoguestringv92NoDialogue reference
shareablestringv92NoCan be shared with party (true/false)
autoSharestringv92NoAuto-share with party (true/false)
PropertyTypeSinceRequiredDescription
minLevelintv92NoMinimum character level
maxLevelintv92NoMaximum character level
excessLevelintv92NoOver-level threshold
minItemLevelintv92NoMinimum equipment item level
prerequisiteslist[int]v92NoRequired completed quest IDs
PropertyTypeSinceRequiredDescription
taskIdintv92YesUnique task identifier within the quest
typestringv92YesTask type. See Quest Tasks reference.
nextTaskIdintv92NoNext task in chain (0 = quest complete)
failureReturnTaskIdintv92NoTask to return to on failure
continentIdintv92NoContinent ID for task location
worldPositionstringv92NoWorld coordinates
journalTextstringv92NoQuest journal entry text
journalText2stringv92NoSecondary journal entry
hasRewardbooleanv92NoWhether task grants rewards
cinematicIdintv92NoCinematic sequence ID
dungeonIdintv92NoAssociated dungeon ID
bodyobjectv92NoTask-type-specific properties

The XML schema follows a multi-level nesting structure:

QuestData/{questId:D6}.quest
└── Quest (id)
├── Header
│ ├── Quest metadata (questNumber, questTitle, questType, ...)
│ ├── Requirements (minLevel, maxLevel, prerequisites, ...)
│ └── Triggers (npcDialogue, itemUse, ...)
└── Task (id) [multiple]
├── Task header (nextTask, journalScript, ...)
└── Task body (type-specific properties)

ValueDescription
GeneralStandard one-time quest
DailyDaily repeatable quest
MissionStory mission quest
ImportantMissionCritical story quest
GuildGuild-specific quest
AllianceAlliance faction quest
RecommendedNormalRecommended general quest
DarkRiftDark Rift event quest
GeneralPurposeMulti-purpose quest
RepeatableInfinitely repeatable quest
ValueDescription
OneTimeCan only be completed once
RepeatableCan be repeated
DailyResets daily
InfiniteNo completion limit
ValueDescription
AllowedQuest can be abandoned
ForbiddenQuest cannot be abandoned

  • File naming: Quest files use the format {id:D6}.quest (6-digit zero-padded, e.g., 099000.quest). The system generates this automatically.

  • Task chain termination: Set nextTaskId: 0 on the final task to mark quest completion. Omitting this creates an incomplete chain.

  • Task IDs are local: Task IDs are unique within a quest, not globally. Two quests can both have a task with taskId: 1.

  • Type-specific body properties: Each task type uses different body properties. Using wrong properties for a task type will be ignored. See Quest Tasks reference for per-type properties.

  • Enum casing: Enum values are case-insensitive (General, general, GENERAL all work).

  • Inline strings: Use the strings: block to create quest display text. String IDs are auto-calculated based on quest ID.