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.
NPC Table
Location Table
Item / NPC / monster records — NN.dat
[edit]
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
[edit]
| 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
[edit]
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
[edit]
| File |
Contents
|
captalk01.txt–captalk04.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
[edit]
| 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
[edit]
| 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
[edit]
| 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
[edit]
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)
[edit]
| 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
|