Skip to content
RF DataData reference
RU

Items and economy

Items

Server item tables and the client Item.edf, sets, rentals, PC-room rewards

Total 2631 Known 988 Derived 1321 Unused 322

Overview

An item lives in two places: a row of one of the 37 server tables Script\*Item.dat (weapons, armour, potions, boxes, MAU parts…) and a record of the same group in the client DataTable\Item.edf. The client record is never edited on its own — it is derived from the server row by field translation rules, and names and descriptions come from the language file NDItem.edf.

What it consists of

  • Server tables — one per item type; the table number (TBL_CODE) and the client group differ by one for some types. Fields common to all: m_dwIndex (row number), m_strCode (a 7-character code, the key of all references), prices, race mask, sale and cash shop flags.
  • Item.edf — 47 consecutive sections: one per item group plus crafting recipes (ItemMakeData, ItemMakeOffset). The client record stores the code packed into a number (ID); references from other client files (quests, recipes, towers, radar) hold the pair “group, ID”.
  • Additional tables: SetItemEff.dat ↔ ItemSetEffect.edf (set effects), TimerItem.dat ↔ ItemTimer.edf (timed items), PcRoom.dat ↔ ItemPremium.edf (PC-room rewards), BoxItemOut.dat (box contents), EditData.dat (sets for the GM command fullset), potion and ammo effects.

How it works

  • The item code is translated into the client ID by the rule “letters and digits of the code → group and number”; the server finds a record by code with a linear search, the first match wins.
  • The key in the character DB is the table number and the row number: therefore the row order must not change, and a new item is added at the end.
  • Boxes (BoxItemOut.dat): each row has a weight out of 10 000; on Odin Secure a chance of 10 000 means a guaranteed item and the weight sum is a multiple of 10 000; on Sirin drops are defined by Lua ReloadableScripts\BoxItemOut.
  • Sets are activated by the client: it sends the set number to the server itself, the server checks the equipped parts.
  • The term of an item is stored in the instance: type 1 — remaining time, type 2 — an absolute end date.

What matters when editing

  • In every group some fields are read only by the server, some only by the client, and some by nobody (the “Unused parameters” section at the bottom). Unused fields are preserved byte for byte.
  • The *_str.dat tables with names in 9–11 languages are described in the “Localization” category.

Server tables 0–36 — statuses from items-fields.md (not rewritten). The client Item.edf is derived: the “Client” column of items-fields.md is inverted into “where the field comes from”, the rest are manual rules per items.md §7.3, 9.1, 10–13, mau.md §3, crafting.md §5, combinations.md §2.

Files of the category

48 in the registry
FileSideFormatLevelCorporaRecordDigestNote
script\AmuletItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 468, GU 468, Sirin 468items.md, items-fields.mditems.md §10.2; all fields — items-fields.md
script\AnimusItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 392, GU 392, Sirin 392items.md, items-fields.md, animus.mditems.md §13; all fields — items-fields.md
script\bagItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 392, GU 392, Sirin 392items.md, items-fields.mditems.md §12; all fields — items-fields.md
script\baTteryItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 400, GU 400, Sirin 400items.md, items-fields.md, mining.mditems.md §12; all fields — items-fields.md
script\BattleDungeonItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 688, GU 688, Sirin 688items.md, items-fields.md, dungeons.mditems.md §13; all fields — items-fields.md
script\BootyItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 396, GU 396, Sirin 396items.md, items-fields.mditems.md §12; all fields — items-fields.md
script\BoxItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 412, GU 412, Sirin 412items.md, items-fields.mditems.md §13; all fields — items-fields.md
script\BoxItemOut.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 1044, GU 1044, Sirin 1044items.md, items-fields.mdno STRS schema; format — items.md §13.1 (61 variants × {cstr8, u32, i32}); box modes — §13.1–13.3
script\BulletItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 640, GU 640, Sirin 640items.md, items-fields.mditems.md §11.1; all fields — items-fields.md
script\CheckPotionEffect.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 220, GU 220, Sirin 220items.md—
script\cloaKItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 544, GU 544, Sirin 544items.md, items-fields.mditems.md §10.1; all fields — items-fields.md
script\CouponItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 420, GU 420, Sirin 420items.md, items-fields.md, cashshop.mditems.md §13; all fields — items-fields.md
script\Editdata.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 2108, GU 2108, Sirin 2108items.mditems.md §18: GM fullset command sets, not part of game mechanics
script\EventItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 200, GU 200, Sirin 200items.md, items-fields.mditems.md §13; all fields — items-fields.md
script\FaceItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 276, GU 276, Sirin 276items.md, items-fields.mditems.md §12; all fields — items-fields.md
script\FireCracker.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 412, GU 412, Sirin 412items.md, items-fields.mditems.md §13; all fields — items-fields.md
script\ForceItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 452, GU 452, Sirin 452items.md, items-fields.md, skills.mditems.md §12; all fields — items-fields.md
script\GauntletItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 540, GU 540, Sirin 540items.md, items-fields.mditems.md §9; all fields — items-fields.md
script\GuardTowerItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 788, GU 788, Sirin 788items.md, items-fields.mditems.md §13; all fields — items-fields.md
script\HelmetItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 540, GU 540, Sirin 540items.md, items-fields.mditems.md §9; all fields — items-fields.md
script\LowerItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 540, GU 540, Sirin 540items.md, items-fields.mditems.md §9; all fields — items-fields.md
script\MakeToolItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 424, GU 424, Sirin 424items.md, items-fields.mditems.md §12; all fields — items-fields.md
script\MapItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 456, GU 456, Sirin 456items.md, items-fields.mditems.md §13; all fields — items-fields.md
script\NPCLinkItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 492, GU 492, Sirin 492items.md, items-fields.md, npc-stores.mditems.md §13; all fields — items-fields.md
script\OreItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 352, GU 352, Sirin 352items.md, items-fields.md, mining.mditems.md §12; all fields — items-fields.md
script\PcRoom.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 676, GU 676, Sirin 676items.mditems.md §16.1
script\PotionItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 664, GU 664, Sirin 664items.md, items-fields.mditems.md §11.2; all fields — items-fields.md
script\RadarItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 524, GU 524, Sirin 524items.md, items-fields.mditems.md §13; all fields — items-fields.md
script\RecoveryItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 412, GU 412, Sirin 412items.md, items-fields.mditems.md §13; all fields — items-fields.md
script\ResourceItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 568, GU 568, Sirin 568items.md, items-fields.md, mining.mditems.md §12; all fields — items-fields.md
script\RingItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 468, GU 468, Sirin 468items.md, items-fields.mditems.md §10.2; all fields — items-fields.md
script\SetItemEff.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 1028, GU 1028, Sirin 1028items.mditems.md §14.1
script\ShieldItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 540, GU 540, Sirin 540items.md, items-fields.mditems.md §9; all fields — items-fields.md
script\ShoeItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 540, GU 540, Sirin 540items.md, items-fields.mditems.md §9; all fields — items-fields.md
script\SiegeKitItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 504, GU 504, Sirin 504items.md, items-fields.mditems.md §13; all fields — items-fields.md
script\TicketItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 528, GU 528, Sirin 528items.md, items-fields.mditems.md §13; all fields — items-fields.md
script\TimerItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 140, GU 140, Sirin 140items.md, cashshop.mditems.md §15.1
script\TOWNItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 536, GU 536, Sirin 536items.md, items-fields.md, maps.mditems.md §13; all fields — items-fields.md
script\TrapItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 660, GU 660, Sirin 660items.md, items-fields.mditems.md §13; all fields — items-fields.md
script\UnitKeyItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 356, GU 356, Sirin 356items.md, items-fields.md, mau.mditems.md §12; all fields — items-fields.md
script\UNmannedminer.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 520, GU 520, Sirin 520items.md, items-fields.md, mining.mditems.md §13; all fields — items-fields.md
script\UpperItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 540, GU 540, Sirin 540items.md, items-fields.mditems.md §9; all fields — items-fields.md
script\WeaponItem.datserverdatready for fullAoP ✓, GU ✓, Sirin ✓AoP 844, GU 844, Sirin 844items.md, items-fields.mditems.md §7; all fields — items-fields.md
sirin-lua\threads\main\ReloadableScripts\BoxItemOut\*.luaserverluaready for fullAoP –, GU –, Sirin 2items.mdSirin box mode; bxgem01.lua, bxgem02.lua
DataTable\Item.edfclientedfderivedAoP ✓, GU ✓, Sirin ✓AoP 47 sections: 156/240×5/276/240/244/228×2…items.md, items-fields.md, mau.md, combinations.md, crafting.mdDerived from: server item tables 0–36 (script\*Item.dat) + ItemMakeData.dat (section 44) + recipes (section 45). 47 marked sections (items.md §1); section number = item group
DataTable\ItemPremium.edfclientedfderivedAoP ✓, GU ✓, Sirin ✓AoP 328, GU 328, Sirin 328items.mdDerived from: PcRoom.dat.
DataTable\ItemSetEffect.edfclientedfderivedAoP ✓, GU ✓, Sirin ✓AoP 216, GU 216, Sirin 216items.mdDerived from: SetItemEff.dat.
DataTable\ItemTimer.edfclientedfderivedAoP ✓, GU ✓, Sirin ✓AoP 24, GU 24, Sirin 24items.mdDerived from: TimerItem.dat.

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

Equipment

Equippable items: armour, shields, weapons, cloaks, jewellery, faces. Shared field translation rules — items.md §8–10.

GauntletItem.dat, HelmetItem.dat …; script\WeaponItem.dat; script\cloaKItem.dat; script\AmuletItem.dat; script\RingItem.dat; script\FaceItem.dat

Total 290 Known 236 Derived 0 Unused 54

Client Item.edf

All 47 sections of the client file: each section is an item group, the fields are derived from the server tables.

DataTable\Item.edf

Total 1418 Known 19 Derived 1297 Unused 102

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\Item.edf client file

Record: Weapon

OffsetFieldWhy unusedData
+0x0F8property?
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xF8 in any function
always -1

Record: Cloak

OffsetFieldWhy unusedData
+0x0F0-----
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xF0 exist only in branches of other groups: 00420E00 (6)
always 0

Record: Ring, Amulet (Jewelry)

OffsetFieldWhy unusedData
+0x0A828
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xA8 exist only in branches of other groups: 00422240 (19), 00467D80 (37–43), 004A7570 (36)
always 0
+0x0B4GASpd
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xB4 exist only in branches of other groups: 0041C3A0 (26)
always 0
+0x0D0DefEffType
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xD0 exist only in branches of other groups: 00422240 (19), 00475510 (19), 00771AB0 (6), 00771BC0 (1)
always 0
+0x0D4ClassGradeLim
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xD4 in any function
always 0
+0x0E0-----
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xE0 exist only in branches of other groups: 00421810 (11, 43), 00421E40 (25), 00424800 (40–41), 00463A20 (6, 27, 40–41), 00475900 (25), 004BABF0 (37–43)
always 0

Record: Bullet (Ammo)

OffsetFieldWhy unusedData
+0x0AC21
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xAC exist only in branches of other groups: 00422B80 (35), 00474630 (35), 00476660 (34), 00476890 (35)
always 0
+0x0B021
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xB0 exist only in branches of other groups: 0041D1F0 (13), 00467E10 (37–43)
always 0
+0x0B421
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xB4 exist only in branches of other groups: 0041C3A0 (26)
always 0
+0x0B821
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xB8 exist only in branches of other groups: 0041D470 (13, 32), 00446820 (0–10, 27), 00463A20 (6)
always 0
+0x0BC21
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xBC in any function
always 0
+0x0C021
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xC0 exist only in branches of other groups: 0041F0A0 (0–10, 27), 00446820 (0–10, 27), 00463A20 (6)
always 0
+0x0C421
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xC4 in any function
always 0
+0x0C821
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xC8 exist only in branches of other groups: 00424800 (37–43), 004BA960 (37–43), 004BABF0 (37–43)
always 0
+0x0CC21
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xCC in any function
always 0
+0x0D021
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xD0 exist only in branches of other groups: 00422240 (19), 00475510 (19), 00771AB0 (6), 00771BC0 (1)
always 0
+0x0D421
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xD4 in any function
always 0
+0x0DC21
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xDC exist only in branches of other groups: 00463A20 (6, 27, 40–41), 00463E10 (6, 27), 0047F870 (17)
always 0
+0x0E422
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xE4 exist only in branches of other groups: 0041A460 (0–5, 7–8), 00424800 (40–41), 00446A00 (7), 00463A20 (6, 27, 40–41)
always 0

Record: Potion

OffsetFieldWhy unusedData
+0x0C435
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xC4 in any function
always 0
+0x0C836
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xC8 exist only in branches of other groups: 00424800 (37–43), 004BA960 (37–43), 004BABF0 (37–43)
always 0

Record: Battery (Mining)

OffsetFieldWhy unusedData
+0x09C1
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0x9C exist only in branches of other groups: 0040B0E0 (35), 00421780 (11, 43), 00421A70 (13, 32), 004228D0 (30), 00469B10 (19), 004761A0 (13) …
always 0

Record: Ore

OffsetFieldWhy unusedData
+0x09A1
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0x9A in any function
always 0
+0x0A41
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xA4 exist only in branches of other groups: 0041E540 (13), 004217A0 (11, 43), 00421E20 (26), 00421E40 (25), 00467D40 (19, 37–43), 00477930 (17) …
always 0

Record: Resource

OffsetFieldWhy unusedData
+0x120-----
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0x120 in any function
always 0

Record: ForceItem (Force)

OffsetFieldWhy unusedData
+0x09C1
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0x9C exist only in branches of other groups: 0040B0E0 (35), 00421780 (11, 43), 00421A70 (13, 32), 004228D0 (30), 00469B10 (19), 004761A0 (13) …
always 0

Record: UnitKey (Mau)

OffsetFieldWhy unusedData
+0x0A6none
padding
items.md §17.5; unused: padding bytes (after a byte field up to the field at the next multiple of 4; unnamed bytes have no reads in MSVC code except whole-record copies; 2004 source citemdatamgr.h); 0 everywhere in AoP
always 0
+0x0D4IsRepair
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xD4 in any function
always 1
+0x0D8----
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xD8 exist only in branches of other groups: 0041C990 (22–23), 00421330 (1–5, 7–8), 00421E00 (22), 00463E10 (6, 27), 0047F850 (17), 004BDFC0 (9–10)
always 0

Record: TownItem (TcardDesc)

OffsetFieldWhy unusedData
+0x0DC1111
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xDC exist only in branches of other groups: 00463A20 (6, 27, 40–41), 00463E10 (6, 27), 0047F870 (17)
always 0
+0x0E01111
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xE0 exist only in branches of other groups: 00421810 (11, 43), 00421E40 (25), 00424800 (40–41), 00463A20 (6, 27, 40–41), 00475900 (25), 004BABF0 (37–43)
always 0

Record: DungeonKey (Dangeon)

OffsetFieldWhy unusedData
+0x0ACExp
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xAC exist only in branches of other groups: 00422B80 (35), 00474630 (35), 00476660 (34), 00476890 (35)
46 values; most often 0 (2%)
+0x0B4Gold
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xB4 exist only in branches of other groups: 0041C3A0 (26)
always 0
+0x0B81
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xB8 exist only in branches of other groups: 0041D470 (13, 32), 00446820 (0–10, 27), 00463A20 (6)
always 0
+0x0BC1
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xBC in any function
always 0

Record: Tower

OffsetFieldWhy unusedData
+0x0B0--
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xB0 exist only in branches of other groups: 0041D1F0 (13), 00467E10 (37–43)
always 0
+0x0B4--
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xB4 exist only in branches of other groups: 0041C3A0 (26)
always 0
+0x0B8--
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xB8 exist only in branches of other groups: 0041D470 (13, 32), 00446820 (0–10, 27), 00463A20 (6)
always 0
+0x0BE--
padding
items.md §17.5; unused: padding bytes (after a byte field up to the field at the next multiple of 4; unnamed bytes have no reads in MSVC code except whole-record copies; 2004 source citemdatamgr.h); 0 everywhere in AoP
always 0
+0x0C8-
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xC8 exist only in branches of other groups: 00424800 (37–43), 004BA960 (37–43), 004BABF0 (37–43)
always 65280
+0x0DE--
padding
items.md §17.5; unused: padding bytes (after a byte field up to the field at the next multiple of 4; unnamed bytes have no reads in MSVC code except whole-record copies; 2004 source citemdatamgr.h); 0 everywhere in AoP
always 0
+0x124--
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0x124 in any function
always 2490563

Record: Trap

OffsetFieldWhy unusedData
+0x0A0MaxHP
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xA0 exist only in branches of other groups: 00421A90 (13, 32), 00463490 (1–10), 00464AB0 (1–10), 00467DD0 (37–43), 00474630 (16), 00477AA0 (17) …
always 1
+0x0A6none
padding
items.md §17.5; unused: padding bytes (after a byte field up to the field at the next multiple of 4; unnamed bytes have no reads in MSVC code except whole-record copies; 2004 source citemdatamgr.h); 0 everywhere in AoP
always 0
+0x0B01
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xB0 exist only in branches of other groups: 0041D1F0 (13), 00467E10 (37–43)
always 0
+0x0BC1
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xBC in any function
always 0

Record: Siege Kit (Siege)

OffsetFieldWhy unusedData
+0x0A0Upgrade
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xA0 exist only in branches of other groups: 00421A90 (13, 32), 00463490 (1–10), 00464AB0 (1–10), 00467DD0 (37–43), 00474630 (16), 00477AA0 (17) …
always 0
+0x0B4unk
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xB4 exist only in branches of other groups: 0041C3A0 (26)
always 0
+0x0D4unk
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xD4 in any function
always 0
+0x0DA---
padding
items.md §17.5; unused: padding bytes (after a byte field up to the field at the next multiple of 4; unnamed bytes have no reads in MSVC code except whole-record copies; 2004 source citemdatamgr.h); 0 everywhere in AoP
always 0
+0x0EC-----
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xEC exist only in branches of other groups: 004183F0 (8), 00420DE0 (6), 00447220 (17), 00467CA0 (40–41), 00468C80 (40–41)
always 0

Record: Recovery

OffsetFieldWhy unusedData
+0x0A01
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xA0 exist only in branches of other groups: 00421A90 (13, 32), 00463490 (1–10), 00464AB0 (1–10), 00467DD0 (37–43), 00474630 (16), 00477AA0 (17) …
always 1
+0x0A41
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xA4 exist only in branches of other groups: 0041E540 (13), 004217A0 (11, 43), 00421E20 (26), 00421E40 (25), 00467D40 (19, 37–43), 00477930 (17) …
always 0

Record: Box

OffsetFieldWhy unusedData
+0x0A01
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xA0 exist only in branches of other groups: 00421A90 (13, 32), 00463490 (1–10), 00464AB0 (1–10), 00467DD0 (37–43), 00474630 (16), 00477AA0 (17) …
always 0
+0x0A41
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xA4 exist only in branches of other groups: 0041E540 (13), 004217A0 (11, 43), 00421E20 (26), 00421E40 (25), 00467D40 (19, 37–43), 00477930 (17) …
always 0

Record: Cash Mining (unmanned)

OffsetFieldWhy unusedData
+0x09E--
padding
items.md §17.5; unused: padding bytes (after a byte field up to the field at the next multiple of 4; unnamed bytes have no reads in MSVC code except whole-record copies; 2004 source citemdatamgr.h); 0 everywhere in AoP
always 0
+0x0A4unk
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xA4 exist only in branches of other groups: 0041E540 (13), 004217A0 (11, 43), 00421E20 (26), 00421E40 (25), 00467D40 (19, 37–43), 00477930 (17) …
always 3000
+0x0A8unk
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xA8 exist only in branches of other groups: 00422240 (19), 00467D80 (37–43), 004A7570 (36)
always 1
+0x0B8unk
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xB8 exist only in branches of other groups: 0041D470 (13, 32), 00446820 (0–10, 27), 00463A20 (6)
always 0

Record: Radar (radar)

OffsetFieldWhy unusedData
+0x0C3---
padding
items.md §17.5; unused: padding bytes (after a byte field up to the field at the next multiple of 4; unnamed bytes have no reads in MSVC code except whole-record copies; 2004 source citemdatamgr.h); 0 everywhere in AoP
always -1
+0x0C41
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xC4 in any function
always 0

Record: Pager (npclink)

OffsetFieldWhy unusedData
+0x098Lv
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0x98 exist only in branches of other groups: 0040F750 (23, 29), 004205D0 (1–10, 27), 00421570 (11, 43), 004228B0 (30), 00423830 (11, 43), 00463EC0 (37–43) …
always 1
+0x0AA--
padding
items.md §17.5; unused: padding bytes (after a byte field up to the field at the next multiple of 4; unnamed bytes have no reads in MSVC code except whole-record copies; 2004 source citemdatamgr.h); 0 everywhere in AoP
always 0
+0x0B01
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xB0 exist only in branches of other groups: 0041D1F0 (13), 00467E10 (37–43)
always 0

Record: Coupon

OffsetFieldWhy unusedData
+0x0AC1
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xAC exist only in branches of other groups: 00422B80 (35), 00474630 (35), 00476660 (34), 00476890 (35)
always 0

Record: MauHead, MauUpper, MauLower (MauArmor)

OffsetFieldWhy unusedData
+0x09DDefFrame2
bytes +0x9D…+0x9F are padding (UNIT_PART_DATA 2004: 4 frame bytes, then int); the ItemGU.strs label “DefFrame2” is wrong
mau.md §3.1
always 0
+0x0B2none
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xB2 in any function
always 0
+0x0B4none
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xB4 exist only in branches of other groups: 0041C3A0 (26)
always 0
+0x0B8none
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xB8 exist only in branches of other groups: 0041D470 (13, 32), 00446820 (0–10, 27), 00463A20 (6)
always 0
+0x0BCnone
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xBC in any function
always 0
+0x0C0none
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xC0 exist only in branches of other groups: 0041F0A0 (0–10, 27), 00446820 (0–10, 27), 00463A20 (6)
always 0
+0x0C4none
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xC4 in any function
always 0
+0x0CDnone
padding +0xCD…+0xCF before the repair price
mau.md §3.1; unused: padding bytes (after a byte field up to the field at the next multiple of 4; unnamed bytes have no reads in MSVC code except whole-record copies; 2004 source citemdatamgr.h); 0 everywhere in AoP
always 0
+0x0CEnone
padding +0xCD…+0xCF before the repair price
mau.md §3.1; unused: padding bytes (after a byte field up to the field at the next multiple of 4; unnamed bytes have no reads in MSVC code except whole-record copies; 2004 source citemdatamgr.h); 0 everywhere in AoP
always 0
+0x0DCnone
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xDC exist only in branches of other groups: 00463A20 (6, 27, 40–41), 00463E10 (6, 27), 0047F870 (17)
always 0

Record: MauArms, MauShoulder (MauWeapon)

OffsetFieldWhy unusedData
+0x09DDefFrame2
bytes +0x9D…+0x9F are padding (UNIT_PART_DATA 2004: 4 frame bytes, then int); the ItemGU.strs label “DefFrame2” is wrong
mau.md §3.1
always 0
+0x0B2none
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xB2 in any function
always 0
+0x0B4none
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xB4 exist only in branches of other groups: 0041C3A0 (26)
always 0
+0x0B8none
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xB8 exist only in branches of other groups: 0041D470 (13, 32), 00446820 (0–10, 27), 00463A20 (6)
always 0
+0x0BCnone
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xBC in any function
always 0
+0x0C0none
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xC0 exist only in branches of other groups: 0041F0A0 (0–10, 27), 00446820 (0–10, 27), 00463A20 (6)
always 0
+0x0C4none
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xC4 in any function
always 0
+0x0CDnone
padding +0xCD…+0xCF before the repair price
mau.md §3.1; unused: padding bytes (after a byte field up to the field at the next multiple of 4; unnamed bytes have no reads in MSVC code except whole-record copies; 2004 source citemdatamgr.h); 0 everywhere in AoP
always 0
+0x0CEnone
padding +0xCD…+0xCF before the repair price
mau.md §3.1; unused: padding bytes (after a byte field up to the field at the next multiple of 4; unnamed bytes have no reads in MSVC code except whole-record copies; 2004 source citemdatamgr.h); 0 everywhere in AoP
always 0
+0x0FCnone
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xFC in any function
always 0

Record: MauBack

OffsetFieldWhy unusedData
+0x09DDefFrame2
bytes +0x9D…+0x9F are padding (UNIT_PART_DATA 2004: 4 frame bytes, then int); the ItemGU.strs label “DefFrame2” is wrong
mau.md §3.1
always 0
+0x0B2none
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xB2 in any function
always 0
+0x0B4none
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xB4 exist only in branches of other groups: 0041C3A0 (26)
always 0
+0x0B8none
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xB8 exist only in branches of other groups: 0041D470 (13, 32), 00446820 (0–10, 27), 00463A20 (6)
always 0
+0x0BCnone
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xBC in any function
always 0
+0x0C0none
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xC0 exist only in branches of other groups: 0041F0A0 (0–10, 27), 00446820 (0–10, 27), 00463A20 (6)
always 0
+0x0C4none
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; no reads of +0xC4 in any function
always 0
+0x0CDnone
padding +0xCD…+0xCF before the repair price
mau.md §3.1; unused: padding bytes (after a byte field up to the field at the next multiple of 4; unnamed bytes have no reads in MSVC code except whole-record copies; 2004 source citemdatamgr.h); 0 everywhere in AoP
always 0
+0x0CEnone
padding +0xCD…+0xCF before the repair price
mau.md §3.1; unused: padding bytes (after a byte field up to the field at the next multiple of 4; unnamed bytes have no reads in MSVC code except whole-record copies; 2004 source citemdatamgr.h); 0 everywhere in AoP
always 0
+0x0E2none
padding after the backpack slot byte
mau.md §3.1; unused: padding bytes (after a byte field up to the field at the next multiple of 4; unnamed bytes have no reads in MSVC code except whole-record copies; 2004 source citemdatamgr.h); 0 everywhere in AoP
always 0
+0x0E4none
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xE4 exist only in branches of other groups: 0041A460 (0–5, 7–8), 00424800 (40–41), 00446A00 (7), 00463A20 (6, 27, 40–41)
always 0

Record: MauBullets

OffsetFieldWhy unusedData
+0x09DDefFrame2
bytes +0x9D…+0x9F are padding (UNIT_PART_DATA 2004: 4 frame bytes, then int); the ItemGU.strs label “DefFrame2” is wrong
mau.md §3.1
always 0
+0x0CDnone
padding +0xCD…+0xCF before the repair price
mau.md §3.1; unused: padding bytes (after a byte field up to the field at the next multiple of 4; unnamed bytes have no reads in MSVC code except whole-record copies; 2004 source citemdatamgr.h); 0 everywhere in AoP
always 0
+0x0CEnone
padding +0xCD…+0xCF before the repair price
mau.md §3.1; unused: padding bytes (after a byte field up to the field at the next multiple of 4; unnamed bytes have no reads in MSVC code except whole-record copies; 2004 source citemdatamgr.h); 0 everywhere in AoP
always 0
+0x0ECnone
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0xEC exist only in branches of other groups: 004183F0 (8), 00420DE0 (6), 00447220 (17), 00467CA0 (40–41), 00468C80 (40–41)
always 0

Record: ItemMakeData

OffsetFieldWhy unusedData
+0x0641
the AoP client does not read it; 0 everywhere in AoP
items.md §17.6: clientflow.py — all receivers of the Item.edf record pointer in the AoP client (the manager [027BB9D4], +0x10 of the item object, methods and virtual calls of item classes, parameters, returns; places where the pointer is stored in memory were traced); every offset read is tied to groups by group checks and callers; reads of +0x64 exist only in branches of other groups: 004644E0 (all item groups)
always 0

DataTable\ItemPremium.edf client file

OffsetFieldWhy unusedData
+0x113(byte)
padding
items.md §17.5; unused: padding bytes (after a byte field up to the field at the next multiple of 4; unnamed bytes have no reads in MSVC code except whole-record copies; 2004 source citemdatamgr.h); 0 everywhere in AoP
always 0
+0x146(tail) ×2
padding
items.md §17.5; unused: padding bytes (after a byte field up to the field at the next multiple of 4; unnamed bytes have no reads in MSVC code except whole-record copies; 2004 source citemdatamgr.h); 0 everywhere in AoP
always 0 / 0

script\AmuletItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 8
+0x0D4m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 10
+0x140m_bAbr
“wears out” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x144m_nEffState
“state when equipped” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 1
+0x188m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1

script\AnimusItem.dat server file

OffsetFieldWhy unusedData
+0x108m_nAnimusClass
animus class (animus.md)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
4 values; most often 1 (25%)
+0x110m_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 406
+0x114m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 300
+0x144m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x148m_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
8 values; most often tijccc01 (12%)

script\bagItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 305
+0x0D0m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 300
+0x140m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x144m_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
6 values; most often tiebbs00 (17%)

script\baTteryItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 306
+0x0D0m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 300
+0x144m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x148m_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
10 values; most often titttt00 (10%)

script\BattleDungeonItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 781
+0x0D0m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 300
+0x114m_strMapCode
map
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
44 values; most often Dungeon00 (9%)
+0x154m_strDummyName
spawn point (map dummy)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always _
+0x194m_nGenMob
monster generation
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
4 values; most often 0 (87%)
+0x1B8m_fMobAdd
monster increment
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x208m_bItemLooting
loot in the dungeon
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x20Cm_nExp
experience reward
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x214m_nGold
gold reward
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x228m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
2 values; most often 1 (93%)
+0x22Cm_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
47 values; most often tixbdn25 (2%)
+0x26Cm_strMissionIndex
dungeon mission
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
4 values; most often 0 (83%)

script\BootyItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 302
+0x0D0m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 300
+0x140m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x144m_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
1872 values; most often tiyday05 (21%)

script\BoxItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 208
+0x0D0m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 250
+0x14Cm_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x150m_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
820 values; most often tbxbbb05 (0%)

script\BulletItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
3 values; most often 203 (57%)
+0x0D0m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
2 values; most often 200 (99%)
+0x194m_nLevelLim
level requirement
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 1
+0x1BCm_fEquipSpeed
equipment “weight”: speed multiplier (7.5)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 1
+0x1C8m_fFireTol
fire resistance
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x1CCm_fWaterTol
water resistance
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x1D0m_fSoilTol
earth resistance
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x1D4m_fWindTol
wind resistance
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x22Cm_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x230m_bUpgrade
can be upgraded
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x234m_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
396 values; most often tibbnn03 (19%)

script\CheckPotionEffect.dat server file

OffsetFieldWhy unusedData
+0x088m_nContAreaType
unused
items.md §17.5: the table CPotionMgr+0xD8 is taken only by 1402F6A80, 1402F6B80, 1402F8100 → 1402F8A10 → 1402F85F0 and the service functions 1402FA620…1402FA9B0; no reads of +0x88; there is no client file
always 0

script\cloaKItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 6
+0x0D4m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 6
+0x0D8m_nHelmetClass
“helmet kind” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x128m_nExpertID1
required mastery kind (skills.md 6.5)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always -1 / -1
+0x12Cm_nExpertLim1
required mastery level
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always -1 / -1
+0x130m_nExpertID2
required mastery level
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always -1 / -1
+0x134m_nExpertLim2
required mastery level
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always -1 / -1
+0x154m_bAbr
“wears out” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x15Cm_fEquipSpeed
equipment “weight”: speed multiplier (7.5)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x164m_nRepPrice
“repair price” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x168m_nEffState
“state when equipped” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
2 values; most often 1 (88%)
+0x16Cm_nGASpd
normal attack speed/delay
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x170m_nProperty
attack element (8)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x188m_nDefence_DP
item DP wear on hit (5)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x18Cm_nMaxDP
max DP (5)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x190m_fDefGap
coefficient G of the damage formula per part (9.2)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x194m_fDefFacing
coefficient F of the damage formula (9.2)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x1B8m_nDuration
“duration” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x1CCm_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x214m_nDefEffType
material for the hit sound and spark on the item (5)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always -1

script\CouponItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 780
+0x0D0m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 300
+0x13Cm_nLV
level (teleport scroll)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 1
+0x158m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x15Cm_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
20 values; most often tcucou00 (5%)

script\EventItem.dat server file

OffsetFieldWhy unusedData
+0x088m_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
4 values; most often ret001 (25%)

script\FaceItem.dat server file

OffsetFieldWhy unusedData
+0x0C8m_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 501
+0x0CCm_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 1
+0x110m_nDefEffType
material for the hit sound and spark on the item (5)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
2 values; most often 256 (80%)

script\FireCracker.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
4 values; most often 209 (25%)
+0x0D0m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 250
+0x114m_fActDelay
reuse delay, ms
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x118m_nLevelLim
level requirement
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 1
+0x138m_bAbr
“wears out” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 1
+0x13Cm_fEquipSpeed
equipment “weight”: speed multiplier (7.5)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 1
+0x140m_nDuration
“duration” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x154m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x158m_bUpgrade
can be upgraded
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 1
+0x15Cm_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
8 values; most often tfiaaa01 (12%)

script\ForceItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
6 values; most often 403 (19%)
+0x0D0m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 300
+0x180m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x184m_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
94 values; most often ticfla00 (1%)

GauntletItem.dat, HelmetItem.dat, LowerItem.dat … server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
11 values; most often 0 (20%)
+0x0D4m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
6 values; most often 0 (20%)
+0x0D8m_nHelmetClass
“helmet kind” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x154m_bAbr
“wears out” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x164m_nRepPrice
“repair price” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x168m_nEffState
“state when equipped” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 1
+0x170m_nProperty
attack element (8)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always -1
+0x1B8m_nDuration
“duration” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x1CCm_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1

script\GuardTowerItem.dat server file

OffsetFieldWhy unusedData
+0x14Cm_nExpertLim
mastery requirement
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x154m_nEffectGroup
attack kind (EffectGroup, 8); not read for a tower
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x1B0m_nEff1Code
continuous effect N: code (8)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0 / 0
+0x1B4m_fEff1Unit
continuous effect N: amount (8)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0 / 0
+0x1B8m_nEff2Code
continuous effect N: amount (8)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0 / 0
+0x1BCm_fEff2Unit
continuous effect N: amount (8)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0 / 0
+0x1C0m_nDuration
“duration” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x2C0m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x2C4m_bUpgrade
can be upgraded
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x2C8m_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
63 values; most often tgtbb000 (2%)

script\MakeToolItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
2 values; most often 304 (62%)
+0x0D0m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 300
+0x114m_nLevelLim
level requirement
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 1
+0x138m_bAbr
“wears out” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x140m_nToolClass
crafting tool kind (12.2)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
6 values; most often 5 (38%)
+0x148m_EffState
same as m_nEffState
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x15Cm_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x160m_bUpgrade
can be upgraded
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x164m_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
8 values; most often timmmm01 (12%)

script\MapItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 779
+0x0D0m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 300
+0x180m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x184m_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
18 values; most often tizbbb00 (6%)

script\NPCLinkItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 780
+0x0D0FixPart
same as m_nFixPart (schema name without prefix)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 300
+0x188m_nLV
level (teleport scroll)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 1
+0x1A4m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x1A8m_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
22 values; most often tlknpc00 (5%)

script\OreItem.dat server file

OffsetFieldWhy unusedData
+0x0D8m_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 300
+0x10Cm_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x11Cm_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
23 values; most often tioblu03 (4%)

script\PotionItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
7 values; most often 205 (51%)
+0x0D0m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
3 values; most often 250 (80%)
+0x1E4m_bAbr
“wears out” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
2 values; most often 1 (100%)
+0x1E8m_fEquipSpeed
equipment “weight”: speed multiplier (7.5)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 1
+0x244m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x248m_bUpgrade
can be upgraded
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x24Cm_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
447 values; most often tipday10 (26%)

script\RadarItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 525
+0x0D0m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 300
+0x120m_nNeedItemCount ×3
items required (radar)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always -1 / -1 / -1
+0x13Cm_nLevelLim
level requirement
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 40
+0x160m_bAbr
“wears out” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 1
+0x164m_fEquipSpeed
equipment “weight”: speed multiplier (7.5)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 1
+0x1C0m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x1C4m_bUpgrade
can be upgraded
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x1C8m_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
3 values; most often trdaaa01 (33%)

script\RecoveryItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 207
+0x0D0m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 200
+0x150m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x154m_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
14 values; most often trebbb01 (7%)

script\ResourceItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
8 values; most often 301 (91%)
+0x0D0m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 300
+0x1E8m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x1ECm_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
324 values; most often tirchm60 (32%)

script\RingItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 9
+0x0D4m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 12
+0x140m_bAbr
“wears out” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x144m_nEffState
“state when equipped” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 1
+0x188m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1

script\SiegeKitItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
4 values; most often 285 (39%)
+0x150m_bAbr
“wears out” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 1
+0x15Cm_nRepPrice
“repair price” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x160m_nEffState
“state when equipped” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
2 values; most often 1 (97%)
+0x194m_nDuration
“duration” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x1A8m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x1ACm_nUpgrade
number of talic sockets (upgrade.md)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x1B0m_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
31 values; most often tsklu001 (3%)
+0x1F0m_nAttEffType
hit effect and sound (7.7)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 11

script\TicketItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 780
+0x0D0m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 300
+0x114m_nLevelLim
level requirement
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 35
+0x1C8m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x1CCm_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
12 values; most often ttibp000 (8%)

script\TOWNItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 780
+0x0D0m_nFixPart
“equip slot”; for weapons 8/100 — one-/two-handed (7.1), constant per table for the rest
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 300
+0x1C8m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x1CCm_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
91 values; most often tiqbbb00 (1%)

script\TrapItem.dat server file

OffsetFieldWhy unusedData
+0x160m_bDisjointable
trap: “dismantlable” (by name)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x17Cm_bSetTarget
trap: “target is set” (by name)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x1FCm_nEff1Code
continuous effect N: code (8)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always -1 / -1
+0x200m_fEff1Unit
continuous effect N: amount (8)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always -1 / -1
+0x204m_nEff2Code
continuous effect N: amount (8)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always -1 / -1
+0x208m_fEff2Unit
continuous effect N: amount (8)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always -1 / -1
+0x20Cm_nDuration
“duration” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x22Cm_bDismantle
trap: “removable” (by name)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 1
+0x240m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x244m_bUpgrade
can be upgraded
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x248m_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
53 values; most often ttr00001 (2%)
+0x288m_nAttEffType
hit effect and sound (7.7)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always -1
+0x28Cm_nDefEffType
material for the hit sound and spark on the item (5)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always -1

script\UnitKeyItem.dat server file

OffsetFieldWhy unusedData
+0x120m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x124m_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
4 values; most often tinbbb01 (25%)

script\UNmannedminer.dat server file

OffsetFieldWhy unusedData
+0x150m_nExpTime
tower: build time, s; drill: 180 (never read)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 180
+0x15Cm_nHeight
object height
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 30
+0x160m_nWidth
object width (size getter)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 20
+0x164m_nDefSklUnit
defence skill: object evasion
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 99
+0x174m_nFireTol
fire resistance (integer)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 20
+0x178m_nWaterTol
water resistance (integer)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 20
+0x17Cm_nSoilTol
earth resistance (integer)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 20
+0x180m_nWindTol
wind resistance (integer)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 20
+0x1B4m_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
always 1
+0x1B8m_bUpgrade
can be upgraded
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x1BCm_strTooltipIndex
description code; for equipment the client stores the description number +0x84 (7.3)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
27 values; most often tumbb000 (4%)

script\WeaponItem.dat server file

OffsetFieldWhy unusedData
+0x0CCm_nKindClt
“kind, client” (2004); does not go to the client, the model matters (7.1)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
28 values; most often 103 (30%)
+0x264m_bAbr
“wears out” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
2 values; most often 0 (100%)
+0x274m_nRepPrice
“repair price” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x278m_nEffState
“state when equipped” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 1
+0x280m_fFireTol
fire resistance
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x284m_fWaterTol
water resistance
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x288m_fSoilTol
earth resistance
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
2 values; most often 0 (100%)
+0x28Cm_fWindTol
wind resistance
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x2B0m_nMADst
magic range
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
2 values; most often 0 (100%)
+0x2B4m_nMASpd
magic speed
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x2E8m_nDuration
“duration” (2004)
items-fields.md: role “nobody” — no server reads found (dataflow\wflow_<t>, wcase_<t>, tower/trap objects; coverage incomplete) and the field is absent from the Item.edf record (cmatch.py check on AoP)
always 0
+0x2FCm_bUseableNormalAcc
common flag; unused
items.md §17.5: the getter 1400182C0 has no references from code (Ghidra: only .pdata); itemflow.py over 37 tables (GetRecord, record array +0xA0, arguments) — no direct reads; the consumers of 14 record storage places were checked; Sirin — only a type description; the field is absent from the client Item.edf record
2 values; most often 1 (100%)
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