Editing
BIN textdata
From Raynegard Wiki
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
'''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. [[NPC Table]] [[Location Table]] == Item / NPC / monster records β <code>NN.dat</code> == 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" ! Type !! Category !! <code>.dat</code> 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 <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 == {| class="wikitable" ! File !! Contents |- | [[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 |- | [[textdata cptcategory.txt|<code>cptcategory.txt</code>]] || Per-slot category descriptions / grade text |} == UI message strings β <code>cpt_*_msg.txt</code> == Per-panel localized UI labels (<code>Korean~English</code>), loaded straight into that panel's widget setup. {| class="wikitable" ! Files !! Panel / use |- | [[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 |- | [[textdata cpt_charmake_msg.txt|<code>cpt_charmake_msg.txt</code>]] || Character creation |- | [[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 |- | [[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 |- | [[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 |- | [[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 |- | [[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 |} == Quick-chat & talk phrases == {| class="wikitable" ! File !! Contents |- | [[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 |- | [[textdata misccaption_b.txt|<code>misccaption_b.txt</code>]] || Misc captions (variant b) |- | [[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>) |} == System / event / history == {| class="wikitable" ! File !! Contents |- | [[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. |- | [[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 |- | [[textdata cpt_history.txt|<code>cpt_history.txt</code>]] || History / lore / credits text |} == World / map / scenery == {| class="wikitable" ! File !! Contents |- | [[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 |- | [[textdata landscape.dat|<code>landscape.dat</code>]] || ASCII manifest of landscape-backdrop codes (<code>3<region><LOD:03d></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 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 |} == Entity & location lookup tables == {| class="wikitable" ! File !! Contents |- | [[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 |- | [[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 |} == 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 <code>world.wlist</code> 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. {| class="wikitable" ! File !! Columns !! Value carried !! Notes |- | [[textdata bgmtable.txt|<code>bgmtable.txt</code>]] || 14 || BGM track id + track name || per-area background music |- | [[textdata setable.txt|<code>setable.txt</code>]] || 10 || sound-effect id || rows use <code>from == to</code> β a point-in-time SE trigger |- | [[textdata erasetable.txt|<code>erasetable.txt</code>]] || 13 || 4 bool flags (what to hide/remove) || the query itself is just a presence test |- | [[textdata effecttable.txt|<code>effecttable.txt</code>]] || 10 || per-area "effect 2" channel value || |- | [[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 |- | [[textdata tensoutable.txt|<code>tensoutable.txt</code>]] || 10 || per-area "effect 1" channel value || |} The 10-column form is <code>[fromWeek, fromDay, fromHour, fromMinute, target, value, toWeek, toDay, toHour, toMinute]</code> (<code>99</code> = wildcard/"any"); <code>bgmtable</code>/<code>erasetable</code> pad this with a few extra trailing columns for their track name / flags. {| class="wikitable" ! File !! Contents |- | [[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 |- | [[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 |} == Manifest & version (packer-only) == {| class="wikitable" ! File !! Contents |- | [[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) |- | [[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> |}
Summary:
Please note that all contributions to Raynegard Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Raynegard Wiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Page actions
Page
Discussion
Read
Edit
History
Page actions
Page
Discussion
More
Tools
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Navigation
Main page
Reddit Community
Discord Server
Recent changes
Random page
Help about MediaWiki
Special pages
Search
Tools
What links here
Related changes
Page information