World
Dungeons
Dark Hole scenarios and keys
Overview
A dungeon (Dark Hole in the code) is opened by a key item and runs by a text scenario. The key is a BattleDungeonItem.dat row (item table 23, codes ix…, the “Items” category); the scenario is a file Quest\<name>.txt (a “quest” in the code: quest → missions → jobs); the link key → scenario is Quest\Index.ini [MATCH], a derived file; the map is an ordinary type 1 map, all scenario objects (points, portals, zones) come from the dummies of its .spt.
BattleDungeonItem.dat Quest\Index.ini [MATCH] Quest\<name>.txt
row N: m_strCode = ixkey01 ──► ixkey01 = Dungeon00_1520_winBoss ──► quest → missions → jobs
Map\Dungeon00\Dungeon00.spt ◄──────── use_map, dummy:, area, start_pos ───┘
How it works
- A channel is one running instance of the dungeon on a separate map layer; a hole is the entrance object on the field next to the opener. The channel count and closing delay on Sirin are set by
ModDarkHole*.lua. - A scenario is written in CP949 with tabs and ends with
[END_OF_FILE]; quest keys follow###, missions##, jobs#. Order matters:use_mapbefore dummy references,areabeforedummy:,typebeforecontents,respawn_monsterbefore its options,change_monsterbefore itsif. - Every mission has
start_pos(dp*insidearea) andlim_time_sec > 0; the quest haslimit_lv_max(andlimit_lv_min), otherwise the key does not open. The quest number = the key's row number, so the row order ofBattleDungeonItemmatters; the key'sm_bQualificationmust equalmembership_party ≠ 0of its scenario. reward_itemrewards are thresholds, not shares;DarkHoleRewardRatefromServerRate.inidoes not affect them. Thedescriptionandcomplete_msgcodes (≤ 16 bytes) must exist in theNDItem.edftexts of every client language.- Limits unchecked by the code: blocks, groups,
inner,respond,add_time,change_monster,gate_pos, reactions — the editor watches them.
A scenario is tokens separated by space/tab/newline; the catalog unit is a marker, key or compound argument. Key meanings — the tables of dungeons.md §3.1–3.3 (digest rows).
Files of the category
3 in the registry| File | Side | Format | Level | Corpora | Record | Digest | Note |
|---|---|---|---|---|---|---|---|
Quest\<scenario>.txt | server | list | ready for full | AoP 45, GU 44, Sirin 45 | dungeons.md | — | |
Quest\Index.ini | server | ini | derived | AoP ✓, GU ✓, Sirin ✓ | dungeons.md | Derived from: references of BattleDungeonItem keys to the scenario (ref<Scenario>). only this file sets the “key → scenario” link; an exception to “server ini postponed” — dungeon scenarios are in scope (user decision 29.10.2026) | |
Quest\MissionText.txt | server | list | out of scope (never read) | AoP ✓, GU ✓, Sirin ✓ | dungeons.md | Korean source of mission texts; the server does not read it (dungeons.md §7a) |
“ready for full” — the format is understood and the fields are described; “derived” — the file is assembled from another; “opaque” — the format is not fully known; “postponed” and “out of scope” — the studio does not edit the file.
Sections of the category
The files of the category are split into groups; every group and subgroup has its own page with the fields of its files only.
Unused parameters
This category has no unused parameters: every field is read by the server, the client or the build.