Skip to content
RF DataData reference
RU

World

Maps

Map registry, dummies, spawn, portals

Total 103 Known 54 Derived 14 Unused 35

Overview

A map is a set of linked files: the registry (Map\Map_Data.spt on the server, Map.edf and NDMap.edf in the client), SPT with dummies (server and client), [BLOCK] and spawn files per monster set, [PORTAL] with texts, EXT.spt with town zones. Geometry (BSP/EBP) and map registration are described in the 3D documents and are not repeated here.

How it works

  • Map_Data.spt: map number = row order, 12 columns read by the server: code (the name for all references), folder, type (0 field, 1 layers and monster sets, 2 no monster blocks), class (1 — respawn at the *ds of one's race), layer count (≤ 500), capital race, monster set count (≤ 30), sector radius, level limits (summoning only), map code for potion restriction, PvP race mask. Transport01, Platform01, the capital of every race and six settlement sub-maps are mandatory — without them the server does not start.
  • The dummy name prefix is its type: *dm block points, *dp portals, *sd<code> stores, *bd<code> bind, *ds start (on class 1 maps the first three are Bellato, Cora, Accretia), *dq dungeon zones, *0dr/*1dr/*2dr mining. *sa and dummies without a prefix are not read by the server.
  • A town is an EXT.spt box, the race by the first letter of the name (b/c/a/elan); this is the only “safe zone”.
  • Spawn: the respawn cycle runs once a second; a row has a code, interval, count, chance; monsters of one row appear in a batch; a boss's interval counts from death and survives a restart (SystemSave\<map>_Boss.ini). Point weights and the block's nMin/nMob/nMax are not read; type 0 maps use only set 0.
  • Portals: the transition pc_MovePortal checks the level even with NeedConCheck = 0, items and race; the client portal record in Map.edf must match the server one, requirements included.
  • The client _dummy.spt is a derived file: type 1 records (monsters) are assembled from the spawn files, type 2 records (NPCs) are kept as is. The client requires exactly 37 maps (on Sirin ModMapNum sets the number).
  • The X:Y label on the minimap is the cell number of the image, not world coordinates; the scale and shift in Map.edf are recomputed for the BSP bounding box.

For text formats (Map_Data.spt, <map>.spt, EXT.spt, _dummy.spt) the catalog unit is a column or token. Map.edf/NDMap.edf have variable-length records: the catalog goes by logical fields, offsets are not fixed; the STRS Strs\map strs is not used for the catalog (partial labels).

Files of the category

25 in the registry
FileSideFormatLevelCorporaRecordDigestNote
Map\<guild room>\<map>-[PORTAL].datserverdatopaqueAoP 6 maps, GU 6 maps, Sirin 6 mapsAoP 328, GU 328, Sirin 328maps.md*_guildroom_SD/SP folders: 328-byte record, 7 columns; these maps are not in Map_Data.spt
Map\<map>\<block>.datserverdatready for fullAoP 3417, GU 2287, Sirin 3417AoP 92, GU 92, Sirin 92maps.mdspawn files (<block>.dat, for type 1 maps — <block>_<set>.dat); those unused by blocks are leftovers (8 nareaM files of 80 bytes), maps.md §3
Map\<map>\<map>-[BLOCK].datserverdatready for fullAoP 41 maps, GU 20 maps, Sirin 42 mapsAoP 1444, GU 1444, Sirin 1444maps.mdspawn blocks, maps.md §3
Map\<map>\<map>-[PORTAL].datserverdatready for fullAoP 56, GU 31 maps, Sirin 57AoP 376, GU 376, Sirin 376maps.mdmaps.md §4
Map\<map>\<map>-[PORTAL].txtserverlistout of scope (never read)AoP 36, GU 34 maps, Sirin 37maps.mdtext copy of the portals; the server does not read it (maps.md §4)
Map\<map>\<map>-[PORTAL]_str.datserverdatderivedAoP 56, GU 31 maps, Sirin 57AoP 644, GU 644, Sirin 644maps.md, localization.mdDerived from: -[PORTAL].dat (codes) + portal texts. portal texts, 644 bytes (maps.md §4)
Map\<map>\<map>.sptserversptready for fullAoP 52, GU 37 maps, Sirin 53maps.md, npc-stores.md, mining.md, dungeons.mddummy type — name prefix; the NeutralC folder holds copies of NeutralA/B.spt
Map\<map>\<map>_dummy.sptserversptout of scope (never read)AoP 6 maps, GU –, Sirin 6 mapsmaps.mdold (2015) copies of the client _dummy.spt in 6 map folders; the server does not read them [code, maps.md §3.4]
Map\<map>\<map>EXT.sptserversptready for fullAoP 13, GU 12 maps, Sirin 13maps.md, sounds.mdtown zones
Map\<map>\<other>.txtserverlistopaqueAoP 4 maps, GU 2 maps, Sirin 4 mapsDummy.txt etc.; not described in the digests
Map\<map>\MAPDATA.DATserverdatopaqueAoP 1 map, GU –, Sirin 1 mapcopy in the NeutralC folder; format not described
Map\Map_Data.sptserversptready for fullAoP ✓, GU ✓, Sirin ✓maps.mdmap registry; map number = row order
Map\MAPDATA.DATserverdatopaqueAoP ✓, GU ✓, Sirin ✓maps.mdthe Map.edf minimap section without encryption: byte for byte in AoP (73 616); the server reads it (14012CA70) and sends the zone index to the client in packet 8/6 — must match the client Map.edf (maps.md §4.3)
DataTable\<language>\NDMap.edfclientedfderivedAoP ✓ (en-ph, ru-ru), GU ✓ (en-gb, ru-ru), Sirin ✓ (en-gb, ru-ru)maps.mdDerived from: map and portal names. variable-length records; 3D\RFMapCompiler writes them byte for byte (maps.md §6)
DataTable\Map.edfclientedfderivedAoP ✓, GU ✓, Sirin ✓maps.mdDerived from: Map_Data.spt + portals and map SPTs (mining points *0dr/*1dr/*2dr), BSP, minimap zones (= the server's Map\MAPDATA.DAT). variable-length records, size not checked (maps.md §1)
Map\<map>\<map>-[BLOCK].datclientdatready for fullAoP 3 maps, GU –, Sirin 3 mapsAoP 1444, Sirin 1444maps.mdcopy of the server file in the client
Map\<map>\<map>-[PORTAL].datclientdatready for fullAoP 5 maps, GU –, Sirin 6 mapsAoP 376, Sirin 376maps.mdcopy of the server file in the client; the client takes portals from Map.edf (maps.md §4)
Map\<map>\<map>-[PORTAL].txtclientlistout of scope (never read)AoP 38 maps, GU –, Sirin 38 mapsmaps.mdtext copy of the portals
Map\<map>\<map>-[PORTAL]_str.datclientdatready for fullAoP 6 maps, GU –, Sirin 7 mapsAoP 644, 772, Sirin 644, 772maps.mdcopy of the server file in the client
Map\<map>\<map>.sptclientsptready for fullAoP 105, GU 1 map, Sirin 106maps.mdclient copy; dummies needed by both must match (maps.md §8)
Map\<map>\<map>_dummy.sptclientsptderivedAoP 104 maps, GU –, Sirin 104 mapsmaps.mdDerived from: server spawn blocks: [BLOCK].dat + spawn files + the dummy named after the block (type 1 records, maps.md §3.5); type 2 records — as imported. type 1 — quest target markers on the minimap, derived from the server spawn blocks (maps.md §3.4–3.5); type 2 is not used by the client; assembled automatically when the spawn changes (user decision 29.10.2026)
Map\<map>\<map>_dummy.txtclientlistout of scope (never read)AoP 28 maps, GU –, Sirin 28 mapsmaps.mdthe client does not read it [code, maps.md §3.5]; a dump of the server spawn, an intermediate file for type 1 records in _dummy.spt
Map\<map>\<map>EXT.sptclientsptready for fullAoP 43, GU 15, Sirin 43maps.md, sounds.mdin the client — also music zones (sounds.md §5.3)
Map\<map>\<other>.txtclientlistopaqueAoP 100, GU –, Sirin 100dungeon05.txt etc. in dungeon folders; not in the digests
Map\MAPDATA.DATclientdatopaqueAoP ✓, GU –, Sirin ✓maps.mdthe same format as the Map.edf minimap section (93 records, the old full set); the client does not open it (maps.md §4.3)

“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.

Map registry

DataTable\<language>\NDMap.edf; DataTable\Map.edf; Map\Map_Data.spt

Total 33 Known 18 Derived 12 Unused 3

Dummies and zones

Map\<map>\<map>.spt; Map\<map>\<map>_dummy.spt; Map\<map>\<map>EXT.spt; Map\<map>\<map>.spt; Map\<map>\<map>EXT.spt

Total 16 Known 14 Derived 2 Unused 0

Monster spawn

Map\<map>\<map>-[BLOCK].dat; Map\<map>\<block>.dat; Map\<map>\<map>-[BLOCK].dat

Total 24 Known 9 Derived 0 Unused 15

Portals

Map\<map>\<map>-[PORTAL].dat; Map\<map>\<map>-[PORTAL]_str.dat; Map\<map>\<map>-[PORTAL].dat; Map\<map>\<map>-[PORTAL]_str.dat

Total 30 Known 13 Derived 0 Unused 17

Unused parameters

Fields that neither the server nor the client reads. For each: why it was decided so and where that was established. The editor keeps their bytes as they are.

DataTable\Map.edf client file

OffsetFieldWhy unusedData
—angle
minimap rotation 0/180 — the client does not read the field (not a single read of +0x164 of the map record); the image is pre-rotated, G106 confirms; write 0 when building
maps.md §4.3 [code, 30.10.2026]; maps.md §1.2
—
—vertexNum, faceNum
BSP vertex and face counts — the client does not read them (+0x1C0, +0x1C4)
maps.md §4.3 [code, 30.10.2026]
—
—ebpSize
size of the client map EBP (GU: 31 of 31; AoP mismatches — different file sets); the client does not read the field (+0x1C8)
maps.md §4 [bytes, 29.10.2026]; maps.md §4.3 [code, 30.10.2026]
—

Map\<map>\<map>-[BLOCK].dat client file

OffsetFieldWhy unusedData
+0x000nCount
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x004Lable
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x044m_dwDummyNum
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x048m_strDummyCode ×20
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x088m_dwSelectProp ×20
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x598m_nMin
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x59Cm_nMob
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x5A0m_nMax
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—

Map\<map>\<map>-[PORTAL].dat client file

OffsetFieldWhy unusedData
+0x000m_dwIndex
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x004m_strCode
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x044m_strLinkMapCode
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x084m_strLinkPortalCode
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x0C4m_szMenu
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x104m_bNeedConCheck
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x108m_nNeedChrLevel
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x10Cm_nUpLevelLim
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x110m_itmNeedItemCode ×3
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x118m_nNeedItemCount ×3
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x134m_nKind
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x138m_strUseRace
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—

Map\<map>\<map>-[PORTAL]_str.dat client file

OffsetFieldWhy unusedData
+0x000m_dwIndex
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x004m_strCode
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—
+0x044m_strNameTag ×9
the client does not open the file: the strings [BLOCK], [PORTAL], _str.dat are absent in the AoP client image in both ASCII and UTF-16; the server reads its own copy
maps.md §4 (before 4.1)
—

Map\<map>\<block>.dat server file

OffsetFieldWhy unusedData
+0x050m_dwRegenMinNum
never read
maps.md §3: “No reads found” [code]
—
+0x054m_dwStdKill
never read
maps.md §3: “No reads found” [code]
—
+0x058m_dwRegenMaxNum
never read
maps.md §3: “No reads found” [code]
—

Map\<map>\<map>-[BLOCK].dat server file

OffsetFieldWhy unusedData
+0x088m_dwSelectProp ×20
point selection weight
maps.md §3: “the only code with the 0x44 point record stride is the loader” (search in dzs.txt)
—
+0x598m_nMin
nMin of the block, 0 in AoP
maps.md §3: “search for all reads of +0x598/+0x59C/+0x5A0 in dzs.txt: none refers to the block record”; the client does not use the file for these fields
—
+0x59Cm_nMob
nMob of the block, 0 in AoP
maps.md §3: “search for all reads of +0x598/+0x59C/+0x5A0 in dzs.txt: none refers to the block record”; the client does not use the file for these fields
—
+0x5A0m_nMax
nMax of the block, 0 in AoP
maps.md §3: “search for all reads of +0x598/+0x59C/+0x5A0 in dzs.txt: none refers to the block record”; the client does not use the file for these fields
—

Map\<map>\<map>-[PORTAL].dat server file

OffsetFieldWhy unusedData
+0x0C4m_szMenu
never read
maps.md §4: “m_szMenu and m_nKind are not read in the transition or in the other users of the record” (all callers of 1401284C0 and 140128370: reference check, ship, guild rooms …)
—
+0x134m_nKind
never read (1 in AoP — entrance, 0 — arrival, 3 for 15 portals)
maps.md §4: “m_szMenu and m_nKind are not read in the transition or in the other users of the record” (all callers of 1401284C0 and 140128370: reference check, ship, guild rooms …)
—
RF Online is a trademark of its owners. The reference is compiled from research for content development. Built 01.11.2026 · field catalog dated 29.10.2026 · Adagio UI 0.5.0