Version Status v92 Full v90 - v86 -
DungeonData files define dungeon instance configurations: entry conditions, event scripting, clear objectives, and recommendation data. Each continent has its own file using the naming convention DungeonData_{continentId}.xml. The continentId identifies both the file partition and the dungeon entity.
Entity: dungeonDatas
Operations: create, update, delete, upsert
Key attribute: continentId
File organization: AttributePartitioned by continentId
startPos : [ 12345.5 , 4336.25 , 15047.75 ]
exitPos : [ 63475.03 , 38629.24 , -8876.56 ]
coolTimeApplyType : " party "
Attribute Type Since Description continentIdintv92 Continent ID (partition key and entity identifier) namestringv92 Internal dungeon name or string reference startPosdecimal[]v92 Player spawn coordinates [x, y, z] exitContinentIdintv92 Continent ID for the dungeon exit exitPosdecimal[]v92 Exit teleport coordinates [x, y, z] destroyWaitMinintv92 Minutes to wait before destroying instance startDirintv92 Player facing direction on spawn (degrees) exitDirintv92 Player facing direction on exit (degrees) enterLimitCountintv92 Maximum entry count per cooldown period coolTimeApplyTypestringv92 Cooldown scope: party or individual newbieBonusOffboolv92 Disable newbie bonus for this dungeon coolTimeintv92 Re-entry cooldown in seconds coolTimeForPartyMatchingintv92 Cooldown override for party matching entries needBattlePointintv92 Required battle points to enter matchingRoleIdintv92 Party matching role requirement ID startRandomPosdecimal[]v92 Random spawn area coordinates [x, y, z] allAoiWideBroadCasterboolv92 Enable wide-area broadcast for all entities overlapConsoleEventboolv92 Allow overlapping console events summonPcboolv92 Allow player summoning inside dungeon relatedDailyQuestintv92 Associated daily quest ID coolTimeWithContinentIdstringv92 Shared cooldown continent ID group scenarioUIOnboolv92 Enable scenario UI overlay scenarioQuestIdintv92 Associated scenario quest ID eventDungeonboolv92 Mark as event (seasonal) dungeon isPremiumDungeonboolv92 Mark as premium dungeon addClusterMarginintv92 Additional cluster margin for instancing ownershipGuaranteeSecintv92 Ownership guarantee period in seconds lazyBroadcastPartyMemberInfoboolv92 Defer party member info broadcasting
Element Type Description Reference conditionslistEntry requirement conditions Conditions clearConditionslistDungeon clear objectives Conditions restoreTargetQuestslistQuests restored on entry Conditions retrynestedRetry mechanism Below supportMatchingEffectslistSupport matching effects Below dpsDisplaynestedDPS meter configuration Below visibleBGGroupnestedBackground visibility settings Below abnormalityWhenResurrectionnestedResurrection abnormality Below randomStartslistRandom spawn points Below recommendnestedRecommendation UI data Recommend restrictPassivityTypenestedPassivity restrictions Below eventGroupslistEvent scripting groups Event Groups
Property Type Since Description retryIdstringv92 Retry mechanism identifier
Property Type Since Description typeSupportMatchingEffectTypev92 Effect type valuestringv92 Effect value parameter stringstringv92 String parameter
Value Since changeLevelv92 abnormalityv92
Property Type Since Description updateFrequencydecimalv92 Update interval in seconds cutDigitsintv92 Decimal places to truncate digitStringIdintv92 Digit format string ID
Property Type Since Description defaultGroupIdintv92 Default background group ID visibleBGslistv92 Background entries
Property Type Since Description groupIdintv92 Background group ID namestringv92 Background name reference
Property Type Since Description idintv92 Abnormality ID applied on resurrection methodstringv92 Application method
Property Type Since Description posdecimal[]v92 Spawn coordinates [x, y, z]
Property Type Since Description typeIdListintv92 Restricted passivity type ID
DungeonData_{continentId}.xml
└── Dungeon (root element = entity)
├── Scalar attributes (name, startPos, exitPos, coolTime, ...)
├── ClearCondition [multiple]
├── RestoreTargetQuest [multiple]
├── SupportMatchingEffect [multiple]
│ └── VisibleBG [multiple]
├── AbnormalityWhenResurrection
├── RandomStart [multiple]
├── RestrictPassivityType
└── EventGroup [multiple]
└── EventTaskGroup [multiple]
Position attributes (startPos, exitPos, startRandomPos) use decimal[] arrays in YAML that serialize to comma-separated strings in XML:
startPos : [ 12345.5 , 4336.25 , 15047.75 ]
Produces: startPos="12345.5,4336.25,15047.75"
Several event task properties use composite NPC references. In YAML, use the NpcRef block:
Produces: targetNpcId="990,1000"
Root-as-entity: The <Dungeon> root element IS the entity. There is no collection wrapper. Each file contains exactly one dungeon.
File partitioning: Files are partitioned by continentId. Creating a dungeon with continentId: 9001 targets DungeonData_9001.xml.
Flat vs nested events: 94% of dungeons use the flat tasks shorthand. The mapper automatically wraps flat tasks into the Event > EventTaskGroup > EventTask hierarchy. See Event Groups for details.
Element replacement: On upsert, nested collections (conditions, eventGroups, etc.) are fully replaced. You cannot patch individual entries.
vlaue typo: The attribute vlaue (not value) is preserved verbatim from the source data. This is intentional.
YAML reserved words: Some enum values (none, on, off, y) are YAML 1.1 reserved keywords. Quote them in YAML: next: "none", turn: "on".