BIN textdata: Difference between revisions

From Raynegard Wiki
Jump to navigationJump to search
Document textdata archive contents, grouped by file family, from textdata_files.md / nn_dat_records.md / event_txt_format.md / world_effect_tables.md (via update-page on MediaWiki MCP Server)
Strip file sizes; link each filename to its own detail page (via update-page on MediaWiki MCP Server)
Line 1: Line 1:
'''BIN textdata''' is an encrypted, name-indexed [[BIN files|BIN archive]] (paired <code>textdatah.bin</code> / <code>textdata.bin</code>) holding almost all of the game's plain-text data: item/NPC/monster stats, UI strings, quick-chat phrases, lore, and the world/map/time-scheduling tables. Nearly every file is CP949-encoded (Korean); most use a <code>Korean~English</code> tilde-delimited pair per line, with <code>/e</code> (end-of-string) and <code>/n</code> (forced newline) inline markers in the longer caption files. It is the largest and most varied of the BIN archives — this page groups its ~250 files by purpose.
'''BIN textdata''' is an encrypted, name-indexed [[BIN files|BIN archive]] (paired <code>textdatah.bin</code> / <code>textdata.bin</code>) holding almost all of the game's plain-text data: item/NPC/monster stats, UI strings, quick-chat phrases, lore, and the world/map/time-scheduling tables. Nearly every file is CP949-encoded (Korean); most use a <code>Korean~English</code> tilde-delimited pair per line, with <code>/e</code> (end-of-string) and <code>/n</code> (forced newline) inline markers in the longer caption files. It is the largest and most varied of the BIN archives — this page groups its files by purpose; each filename links to a page with a closer technical breakdown.


== Item / NPC / monster records — <code>NN.dat</code> ==
== Item / NPC / monster records — <code>NN.dat</code> ==


The numbered <code>textdata/NN.dat</code> files are the game's object definitions — weapons, armor, and every other item, plus NPCs and monsters. Despite the <code>.dat</code> extension they're plain text: line 1 is the record count, then each record is 3 lines (Korean name, English name, a space-separated stat line). There are 14 record types, each with its own fixed stat-line column count:
The numbered <code>textdata/[[textdata NN.dat|NN.dat]]</code> files are the game's object definitions — weapons, armor, and every other item, plus NPCs and monsters. Despite the <code>.dat</code> extension they're plain text: line 1 is the record count, then each record is 3 lines (Korean name, English name, a space-separated stat line). There are 14 record types, each with its own fixed stat-line column count:


{| class="wikitable"
{| class="wikitable"
Line 37: Line 37:
|}
|}


Every record starts with the same header: dat file number, record index, then (for items) sub-type/grade, an item-level/sort key, an icon bitmap index, and buy/sell price. Equippable items (weapon/armor/ring) then carry a confirmed, fixed 6-stat block — '''OFC''' (offense), '''DEF''', '''AGL''', '''LUCK''', '''LIFE''', '''FOOD''' — used both for the item-detail panel and (server-side) as the equip bonuses applied to a wearer's totals. Full field-by-field offsets, per-type decoders, and the shop/price consumer trace live in <code>nn_dat_records.md</code> in the server repo.
Every record starts with the same header: dat file number, record index, then (for items) sub-type/grade, an item-level/sort key, an icon bitmap index, and buy/sell price. Equippable items (weapon/armor/ring) then carry a confirmed, fixed 6-stat block — '''OFC''' (offense), '''DEF''', '''AGL''', '''LUCK''', '''LIFE''', '''FOOD''' — used both for the item-detail panel and (server-side) as the equip bonuses applied to a wearer's totals. See [[textdata NN.dat]] for the full field-by-field breakdown.


Each <code>NN.dat</code> that has flavor text has a matching '''<code>cptNN.txt</code>''' — a <code>Korean~English</code> description file with the same <code>/e</code>/<code>/n</code> markers, paired by file number (line index = record index). Not every <code>.dat</code> has one (e.g. 9, 15, 22, 31–33, 38–43, 61–63, 76 are data-only).
Each <code>NN.dat</code> that has flavor text has a matching '''<code>[[textdata cptNN.txt|cptNN.txt]]</code>''' — a <code>Korean~English</code> description file with the same <code>/e</code>/<code>/n</code> markers, paired by file number (line index = record index). Not every <code>.dat</code> has one (e.g. 9, 15, 22, 31–33, 38–43, 61–63, 76 are data-only).


== Item category / naming tables ==
== Item category / naming tables ==


{| class="wikitable"
{| class="wikitable"
! File !! Size !! Contents
! File !! Contents
|-
|-
| <code>cptnamecategory.txt</code> || 799 B || Category-ID → name (<code>Korean~English</code>), e.g. 8=Ring, 16=Katana, 17=Sword, 23–30=the armor lines
| [[textdata cptnamecategory.txt|<code>cptnamecategory.txt</code>]] || Category-ID → name (<code>Korean~English</code>), e.g. 8=Ring, 16=Katana, 17=Sword, 23–30=the armor lines
|-
|-
| <code>cptcategory.txt</code> || 3,856 B || Per-slot category descriptions / grade text
| [[textdata cptcategory.txt|<code>cptcategory.txt</code>]] || Per-slot category descriptions / grade text
|}
|}


Line 58: Line 58:
! Files !! Panel / use
! Files !! Panel / use
|-
|-
| <code>cpt_title_msg.txt</code>, <code>Cpt_titleerror_msg.txt</code> || Title screen + login/title errors
| [[textdata cpt_title_msg.txt|<code>cpt_title_msg.txt</code>]], [[textdata Cpt_titleerror_msg.txt|<code>Cpt_titleerror_msg.txt</code>]] || Title screen + login/title errors
|-
|-
| <code>cpt_charmake_msg.txt</code> || Character creation
| [[textdata cpt_charmake_msg.txt|<code>cpt_charmake_msg.txt</code>]] || Character creation
|-
|-
| <code>cpt_buttons_msg.txt</code>, <code>cpt_gauge_msg.txt</code> || Generic buttons / gauges
| [[textdata cpt_buttons_msg.txt|<code>cpt_buttons_msg.txt</code>]], [[textdata cpt_gauge_msg.txt|<code>cpt_gauge_msg.txt</code>]] || Generic buttons / gauges
|-
|-
| <code>cpt_msgbox_msg.txt</code>, <code>cpt_sysbox_msg.txt</code>, <code>cpt_sysbox_money_msg.txt</code>, <code>cpt_sysbox_newid_msg.txt</code> || Message / system / money / new-ID dialogs
| [[textdata cpt_msgbox_msg.txt|<code>cpt_msgbox_msg.txt</code>]], [[textdata cpt_sysbox_msg.txt|<code>cpt_sysbox_msg.txt</code>]], [[textdata cpt_sysbox_money_msg.txt|<code>cpt_sysbox_money_msg.txt</code>]], [[textdata cpt_sysbox_newid_msg.txt|<code>cpt_sysbox_newid_msg.txt</code>]] || Message / system / money / new-ID dialogs
|-
|-
| <code>cpt_panel_status_msg.txt</code>, <code>cpt_panel_option_msg.txt</code>, <code>cpt_panel_chat_msg.txt</code>, <code>cpt_panel_catalog_msg.txt</code>, <code>cpt_panel_ranking_msg.txt</code>, <code>cpt_panel_mission_msg.txt</code>, <code>cpt_panel_map_msg.txt</code> || Status / Option / Chat / Catalog / Ranking / Mission / Map panels
| [[textdata cpt_panel_status_msg.txt|<code>cpt_panel_status_msg.txt</code>]], [[textdata cpt_panel_option_msg.txt|<code>cpt_panel_option_msg.txt</code>]], [[textdata cpt_panel_chat_msg.txt|<code>cpt_panel_chat_msg.txt</code>]], [[textdata cpt_panel_catalog_msg.txt|<code>cpt_panel_catalog_msg.txt</code>]], [[textdata cpt_panel_ranking_msg.txt|<code>cpt_panel_ranking_msg.txt</code>]], [[textdata cpt_panel_mission_msg.txt|<code>cpt_panel_mission_msg.txt</code>]], [[textdata cpt_panel_map_msg.txt|<code>cpt_panel_map_msg.txt</code>]] || Status / Option / Chat / Catalog / Ranking / Mission / Map panels
|-
|-
| <code>cpt_npcbox_taiwa_msg.txt</code>, <code>cpt_npcbox_captalk_msg.txt</code>, <code>cpt_npcbox_group_msg.txt</code>, <code>cpt_npcbox_profile_msg.txt</code>, <code>cpt_npcbox_shop_msg.txt</code> || NPC dialog box: talk / captalk / group / profile / shop
| [[textdata cpt_npcbox_taiwa_msg.txt|<code>cpt_npcbox_taiwa_msg.txt</code>]], [[textdata cpt_npcbox_captalk_msg.txt|<code>cpt_npcbox_captalk_msg.txt</code>]], [[textdata cpt_npcbox_group_msg.txt|<code>cpt_npcbox_group_msg.txt</code>]], [[textdata cpt_npcbox_profile_msg.txt|<code>cpt_npcbox_profile_msg.txt</code>]], [[textdata cpt_npcbox_shop_msg.txt|<code>cpt_npcbox_shop_msg.txt</code>]] || NPC dialog box: talk / captalk / group / profile / shop
|-
|-
| <code>cpt_esepanel_rankingb_msg.txt</code>, <code>cpt_esepanel_record_msg.txt</code> || "Ese" panel ranking / record sub-views
| [[textdata cpt_esepanel_rankingb_msg.txt|<code>cpt_esepanel_rankingb_msg.txt</code>]], [[textdata cpt_esepanel_record_msg.txt|<code>cpt_esepanel_record_msg.txt</code>]] || "Ese" panel ranking / record sub-views
|}
|}


Line 76: Line 76:


{| class="wikitable"
{| class="wikitable"
! File !! Size !! Contents
! File !! Contents
|-
|-
| <code>captalk01.txt</code>–<code>captalk04.txt</code> || 337/301/220/243 B || Canned quick-chat phrases ("Hello", "Help!", "Let's move together"), loaded together by the NPC captalk panel
| [[textdata captalk01.txt|<code>captalk01.txt</code>]][[textdata captalk04.txt|<code>captalk04.txt</code>]] || Canned quick-chat phrases ("Hello", "Help!", "Let's move together"), loaded together by the NPC captalk panel
|-
|-
| <code>misccaption_b.txt</code> || 866 B || Misc captions (variant b)
| [[textdata misccaption_b.txt|<code>misccaption_b.txt</code>]] || Misc captions (variant b)
|-
|-
| <code>misccaption_u.txt</code> || 138 B || Misc captions (variant u) — line 1/2 are the item-stat panel's column headers (<code>LIFE FOOD OFC DEF AGL LUCK</code> / <code>SPEC</code>)
| [[textdata misccaption_u.txt|<code>misccaption_u.txt</code>]] || Misc captions (variant u) — line 1/2 are the item-stat panel's column headers (<code>LIFE FOOD OFC DEF AGL LUCK</code> / <code>SPEC</code>)
|}
|}


Line 88: Line 88:


{| class="wikitable"
{| class="wikitable"
! File !! Size !! Contents
! File !! Contents
|-
|-
| <code>event.txt</code> || 268,065 B || The largest textdata file. A time-scheduled world-event table: 16-column CSV rows scheduling a scripted action (state change / sound / lighting+transition) on a world object, map-area node, or zone at a specific in-game calendar time. Client-side self-dispatch of this table is permanently disabled in this build — it's meant to be driven by the server, which should walk the schedule and emit <code>0xC062</code> effect packets at the scheduled ticks.
| [[textdata event.txt|<code>event.txt</code>]] || The largest textdata file. A time-scheduled world-event table: 16-column CSV rows scheduling a scripted action (state change / sound / lighting+transition) on a world object, map-area node, or zone at a specific in-game calendar time. Client-side self-dispatch of this table is permanently disabled in this build — it's meant to be driven by the server, which should walk the schedule and emit <code>0xC062</code> effect packets at the scheduled ticks.
|-
|-
| <code>sysmsg.txt</code> || 1,418 B || System messages (<code>Korean~English</code>) with <code>[#param]</code> placeholders. Not referenced anywhere in <code>rg.exe</code> — legacy/unused; live system text instead comes from the <code>cpt_*_msg.txt</code> files, <code>system/system%02d.txt</code>, and SeData "menu msg" entries
| [[textdata sysmsg.txt|<code>sysmsg.txt</code>]] || System messages (<code>Korean~English</code>) with <code>[#param]</code> placeholders. Not referenced anywhere in <code>rg.exe</code> — legacy/unused; live system text instead comes from the <code>cpt_*_msg.txt</code> files, <code>system/system%02d.txt</code>, and SeData "menu msg" entries
|-
|-
| <code>cpt_history.txt</code> || 11,843 B || History / lore / credits text
| [[textdata cpt_history.txt|<code>cpt_history.txt</code>]] || History / lore / credits text
|}
|}


Line 100: Line 100:


{| class="wikitable"
{| class="wikitable"
! File !! Size !! Contents
! File !! Contents
|-
|-
| <code>panelmapno_world.txt</code> || 5,695 B || World-map panel region numbering. Not referenced anywhere in <code>rg.exe</code> — the runtime map/world data instead comes from the binary <code>world.ftpg</code>/<code>world.slk</code>/<code>world.wlist</code> in the '''mapdata''' archive. Treat as an editor/legacy asset
| [[textdata panelmapno_world.txt|<code>panelmapno_world.txt</code>]] || World-map panel region numbering. Not referenced anywhere in <code>rg.exe</code> — the runtime map/world data instead comes from the binary <code>world.ftpg</code>/<code>world.slk</code>/<code>world.wlist</code> in the '''mapdata''' archive. Treat as an editor/legacy asset
|-
|-
| <code>landscape.dat</code> || 144 B || ASCII manifest of landscape-backdrop codes (<code>3&lt;region&gt;&lt;LOD:03d&gt;</code>, e.g. <code>3a000</code>), one per (region, LOD) pair that has a distinct backdrop; looked up while loading a field area, walking the LOD down to the nearest match
| [[textdata landscape.dat|<code>landscape.dat</code>]] || ASCII manifest of landscape-backdrop codes (<code>3&lt;region&gt;&lt;LOD:03d&gt;</code>, e.g. <code>3a000</code>), one per (region, LOD) pair that has a distinct backdrop; looked up while loading a field area, walking the LOD down to the nearest match
|-
|-
| <code>enkeifile.txt</code> || 20,824 B || World zone geometry — 256 zones, each a name plus up to 30 circles (center X/Z + radius); a point is "in" a zone if it falls inside any of its circles. Despite the name ("distant view"), this is zone/area definition data, not scenery placement
| [[textdata enkeifile.txt|<code>enkeifile.txt</code>]] || World zone geometry — 256 zones, each a name plus up to 30 circles (center X/Z + radius); a point is "in" a zone if it falls inside any of its circles. Despite the name ("distant view"), this is zone/area definition data, not scenery placement
|}
|}


Line 112: Line 112:


{| class="wikitable"
{| class="wikitable"
! File !! Size !! Contents
! File !! Contents
|-
|-
| <code>inaba.dat</code> || 14,697 B || Entity appearance/pattern lookup — 652 rows of four indices + a short pattern-set name (e.g. <code>Pf01_01</code>). Given an appearance key from an entity's <code>NN.dat</code> data, this resolves which sprite-pattern set (and thus [[BIN pattern|pattern]]/[[BIN seqence|seqence]] archive entries) that entity uses
| [[textdata inaba.dat|<code>inaba.dat</code>]] || Entity appearance/pattern lookup — 652 rows of four indices + a short pattern-set name (e.g. <code>Pf01_01</code>). Given an appearance key from an entity's <code>NN.dat</code> data, this resolves which sprite-pattern set (and thus [[BIN pattern|pattern]]/[[BIN seqence|seqence]] archive entries) that entity uses
|-
|-
| <code>iwahara.dat</code> || 24,944 B || Location-name table — roughly 3,474 <code>Korean~English</code> place names, indexed the same way as the <code>world.slk</code> area list. Used to show a readable place name for map/location-referencing items
| [[textdata iwahara.dat|<code>iwahara.dat</code>]] || Location-name table — roughly 3,474 <code>Korean~English</code> place names, indexed the same way as the <code>world.slk</code> area list. Used to show a readable place name for map/location-referencing items
|}
|}


Line 126: Line 126:
! File !! Columns !! Value carried !! Notes
! File !! Columns !! Value carried !! Notes
|-
|-
| <code>bgmtable.txt</code> || 14 || BGM track id + track name || per-area background music
| [[textdata bgmtable.txt|<code>bgmtable.txt</code>]] || 14 || BGM track id + track name || per-area background music
|-
|-
| <code>setable.txt</code> || 10 || sound-effect id || rows use <code>from == to</code> — a point-in-time SE trigger
| [[textdata setable.txt|<code>setable.txt</code>]] || 10 || sound-effect id || rows use <code>from == to</code> — a point-in-time SE trigger
|-
|-
| <code>erasetable.txt</code> || 13 || 4 bool flags (what to hide/remove) || the query itself is just a presence test
| [[textdata erasetable.txt|<code>erasetable.txt</code>]] || 13 || 4 bool flags (what to hide/remove) || the query itself is just a presence test
|-
|-
| <code>effecttable.txt</code> || 10 || per-area "effect 2" channel value ||
| [[textdata effecttable.txt|<code>effecttable.txt</code>]] || 10 || per-area "effect 2" channel value ||
|-
|-
| <code>tenkoutable.txt</code> || 10 || per-area "effect 0" channel value || values 1–10 become the area's pending interaction/event id
| [[textdata tenkoutable.txt|<code>tenkoutable.txt</code>]] || 10 || per-area "effect 0" channel value || values 1–10 become the area's pending interaction/event id
|-
|-
| <code>tensoutable.txt</code> || 10 || per-area "effect 1" channel value ||
| [[textdata tensoutable.txt|<code>tensoutable.txt</code>]] || 10 || per-area "effect 1" channel value ||
|}
|}


Line 142: Line 142:


{| class="wikitable"
{| class="wikitable"
! File !! Size !! Contents
! File !! Contents
|-
|-
| <code>naikanBGM.txt</code> || 5,632 B || Flat array, one integer per line (one per <code>world.wlist</code> area) — each area's baseline interior-ambiance/BGM index
| [[textdata naikanBGM.txt|<code>naikanBGM.txt</code>]] || Flat array, one integer per line (one per <code>world.wlist</code> area) — each area's baseline interior-ambiance/BGM index
|-
|-
| <code>rankingitem.txt</code> || 3,190 B || 13 weeks × 9 slots of weekly ranking-shop reward items (reward dat file + entry index per row); ranking NPCs map to a slot via a hardcoded subtype table
| [[textdata rankingitem.txt|<code>rankingitem.txt</code>]] || 13 weeks × 9 slots of weekly ranking-shop reward items (reward dat file + entry index per row); ranking NPCs map to a slot via a hardcoded subtype table
|}
|}


Line 152: Line 152:


{| class="wikitable"
{| class="wikitable"
! File !! Size !! Contents
! File !! Contents
|-
|-
| <code>textlist.dat</code> || 1,991 B || Packer manifest: line 1 = file count (158), then one filename per line, in archive order. Used only by the build tool that packs this folder into <code>textdata.bin</code>/<code>textdatah.bin</code> — not read at runtime (though the archive does store this same list as entry 0 inside the packed <code>.bin</code>, for in-game name lookups)
| [[textdata textlist.dat|<code>textlist.dat</code>]] || Packer manifest: line 1 = file count (158), then one filename per line, in archive order. Used only by the build tool that packs this folder into <code>textdata.bin</code>/<code>textdatah.bin</code> — not read at runtime (though the archive does store this same list as entry 0 inside the packed <code>.bin</code>, for in-game name lookups)
|-
|-
| <code>textdata.ver</code> || 19 B || Version stamp (<code>VER.text010329_01</code>, date-coded 2001-03-29). Packer metadata only, no reference in <code>rg.exe</code>
| [[textdata textdata.ver|<code>textdata.ver</code>]] || Version stamp (<code>VER.text010329_01</code>, date-coded 2001-03-29). Packer metadata only, no reference in <code>rg.exe</code>
|}
|}

Revision as of 13:15, 2 July 2026

BIN textdata is an encrypted, name-indexed BIN archive (paired textdatah.bin / textdata.bin) holding almost all of the game's plain-text data: item/NPC/monster stats, UI strings, quick-chat phrases, lore, and the world/map/time-scheduling tables. Nearly every file is CP949-encoded (Korean); most use a Korean~English tilde-delimited pair per line, with /e (end-of-string) and /n (forced newline) inline markers in the longer caption files. It is the largest and most varied of the BIN archives — this page groups its files by purpose; each filename links to a page with a closer technical breakdown.

Item / NPC / monster records — NN.dat

The numbered textdata/NN.dat files are the game's object definitions — weapons, armor, and every other item, plus NPCs and monsters. Despite the .dat extension they're plain text: line 1 is the record count, then each record is 3 lines (Korean name, English name, a space-separated stat line). There are 14 record types, each with its own fixed stat-line column count:

Type Category .dat files Stat columns Notes
0 Weapons (katana/sword/axe/spear/bow/bowgun) 16–22, 62, 63 44 6 equip stats + weapon params + ~14 sprite/animation ids for the swing/effect frames
1 Armor 23–31, 61 16 6 equip stats + sprite/variant
2 Rings 8, 32 14 6 equip stats only
3 Emblems 9, 33 8 header only (no stats/price)
4 Medicine / food 10, 11, 34 10–11 header + recovery amount + effect-name string
5 Money 15 8 header only (it is currency)
6 Scrolls 38–43 33 header + skill/effect params
7 Books 44–47 8 header only
8 Misc items (ore / monster-item / letter) 35–37, 48, 49 8 header only
9 Monsters 64–69, 73, 78, 79 32 HP/stat/AI/drop block (server-side)
0xA Monsters (special) 70 36 extended monster block
0xB NPCs (field/party) 5, 74, 75 8 header + reference fields, no shop
0xC NPC shopkeepers (incl. Au) 77 22 header + shop-type code + 14 per-category "sells this" flags
0xD Monsters 89–92 ~3 sparse / mostly empty

Every record starts with the same header: dat file number, record index, then (for items) sub-type/grade, an item-level/sort key, an icon bitmap index, and buy/sell price. Equippable items (weapon/armor/ring) then carry a confirmed, fixed 6-stat block — OFC (offense), DEF, AGL, LUCK, LIFE, FOOD — used both for the item-detail panel and (server-side) as the equip bonuses applied to a wearer's totals. See textdata NN.dat for the full field-by-field breakdown.

Each NN.dat that has flavor text has a matching cptNN.txt — a Korean~English description file with the same /e//n markers, paired by file number (line index = record index). Not every .dat has one (e.g. 9, 15, 22, 31–33, 38–43, 61–63, 76 are data-only).

Item category / naming tables

File Contents
cptnamecategory.txt Category-ID → name (Korean~English), e.g. 8=Ring, 16=Katana, 17=Sword, 23–30=the armor lines
cptcategory.txt Per-slot category descriptions / grade text

UI message strings — cpt_*_msg.txt

Per-panel localized UI labels (Korean~English), loaded straight into that panel's widget setup.

Files Panel / use
cpt_title_msg.txt, Cpt_titleerror_msg.txt Title screen + login/title errors
cpt_charmake_msg.txt Character creation
cpt_buttons_msg.txt, cpt_gauge_msg.txt Generic buttons / gauges
cpt_msgbox_msg.txt, cpt_sysbox_msg.txt, cpt_sysbox_money_msg.txt, cpt_sysbox_newid_msg.txt Message / system / money / new-ID dialogs
cpt_panel_status_msg.txt, cpt_panel_option_msg.txt, cpt_panel_chat_msg.txt, cpt_panel_catalog_msg.txt, cpt_panel_ranking_msg.txt, cpt_panel_mission_msg.txt, cpt_panel_map_msg.txt Status / Option / Chat / Catalog / Ranking / Mission / Map panels
cpt_npcbox_taiwa_msg.txt, cpt_npcbox_captalk_msg.txt, cpt_npcbox_group_msg.txt, cpt_npcbox_profile_msg.txt, cpt_npcbox_shop_msg.txt NPC dialog box: talk / captalk / group / profile / shop
cpt_esepanel_rankingb_msg.txt, cpt_esepanel_record_msg.txt "Ese" panel ranking / record sub-views

Quick-chat & talk phrases

File Contents
captalk01.txtcaptalk04.txt Canned quick-chat phrases ("Hello", "Help!", "Let's move together"), loaded together by the NPC captalk panel
misccaption_b.txt Misc captions (variant b)
misccaption_u.txt Misc captions (variant u) — line 1/2 are the item-stat panel's column headers (LIFE FOOD OFC DEF AGL LUCK / SPEC)

System / event / history

File Contents
event.txt The largest textdata file. A time-scheduled world-event table: 16-column CSV rows scheduling a scripted action (state change / sound / lighting+transition) on a world object, map-area node, or zone at a specific in-game calendar time. Client-side self-dispatch of this table is permanently disabled in this build — it's meant to be driven by the server, which should walk the schedule and emit 0xC062 effect packets at the scheduled ticks.
sysmsg.txt System messages (Korean~English) with [#param] placeholders. Not referenced anywhere in rg.exe — legacy/unused; live system text instead comes from the cpt_*_msg.txt files, system/system%02d.txt, and SeData "menu msg" entries
cpt_history.txt History / lore / credits text

World / map / scenery

File Contents
panelmapno_world.txt World-map panel region numbering. Not referenced anywhere in rg.exe — the runtime map/world data instead comes from the binary world.ftpg/world.slk/world.wlist in the mapdata archive. Treat as an editor/legacy asset
landscape.dat ASCII manifest of landscape-backdrop codes (3<region><LOD:03d>, e.g. 3a000), one per (region, LOD) pair that has a distinct backdrop; looked up while loading a field area, walking the LOD down to the nearest match
enkeifile.txt World zone geometry — 256 zones, each a name plus up to 30 circles (center X/Z + radius); a point is "in" a zone if it falls inside any of its circles. Despite the name ("distant view"), this is zone/area definition data, not scenery placement

Entity & location lookup tables

File Contents
inaba.dat Entity appearance/pattern lookup — 652 rows of four indices + a short pattern-set name (e.g. Pf01_01). Given an appearance key from an entity's NN.dat data, this resolves which sprite-pattern set (and thus pattern/seqence archive entries) that entity uses
iwahara.dat Location-name table — roughly 3,474 Korean~English place names, indexed the same way as the world.slk area list. Used to show a readable place name for map/location-referencing items

Time-windowed world tables

Six structurally-related tables attach time-windowed properties (BGM, sound effects, visual effects, "erase" flags) to a map area (a zone or a world.wlist node). All six are queried the same way — "is there an entry active for this area at the current in-game time?" — and differ only in which per-area channel and value they carry.

File Columns Value carried Notes
bgmtable.txt 14 BGM track id + track name per-area background music
setable.txt 10 sound-effect id rows use from == to — a point-in-time SE trigger
erasetable.txt 13 4 bool flags (what to hide/remove) the query itself is just a presence test
effecttable.txt 10 per-area "effect 2" channel value
tenkoutable.txt 10 per-area "effect 0" channel value values 1–10 become the area's pending interaction/event id
tensoutable.txt 10 per-area "effect 1" channel value

The 10-column form is [fromWeek, fromDay, fromHour, fromMinute, target, value, toWeek, toDay, toHour, toMinute] (99 = wildcard/"any"); bgmtable/erasetable pad this with a few extra trailing columns for their track name / flags.

File Contents
naikanBGM.txt Flat array, one integer per line (one per world.wlist area) — each area's baseline interior-ambiance/BGM index
rankingitem.txt 13 weeks × 9 slots of weekly ranking-shop reward items (reward dat file + entry index per row); ranking NPCs map to a slot via a hardcoded subtype table

Manifest & version (packer-only)

File Contents
textlist.dat Packer manifest: line 1 = file count (158), then one filename per line, in archive order. Used only by the build tool that packs this folder into textdata.bin/textdatah.bin — not read at runtime (though the archive does store this same list as entry 0 inside the packed .bin, for in-game name lookups)
textdata.ver Version stamp (VER.text010329_01, date-coded 2001-03-29). Packer metadata only, no reference in rg.exe