Items
Consumables
Items consumed on use: potions, ammo, recovery, scrolls, boxes, coupons, fireworks.
Subsections
Scrolls and tickets
script\MapItem.dat; script\TicketItem.dat; script\TOWNItem.dat
Total 80 Known 67 Derived 0 Unused 13Boxes
A box is a BoxItem.dat row; its contents are BoxItemOut.dat (standard and Odin Secure) or Lua ReloadableScripts\BoxItemOut on Sirin (items.md §13.1–13.3).
script\BoxItem.dat; script\BoxItemOut.dat; sirin-lua\threads\main\ReloadableScripts\BoxItemOut\*.lua
Total 42 Known 38 Derived 0 Unused 4Coupons, events, fireworks
script\CouponItem.dat; script\EventItem.dat; script\FireCracker.dat
Total 63 Known 47 Derived 0 Unused 16Unused 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.
script\CheckPotionEffect.dat server file
| Offset | Field | Why unused | Data |
|---|---|---|---|
+0x088 | m_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\PotionItem.dat server file
| Offset | Field | Why unused | Data |
|---|---|---|---|
+0x0CC | m_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%) |
+0x0D0 | m_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%) |
+0x1E4 | m_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%) |
+0x1E8 | m_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 |
+0x244 | m_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 |
+0x248 | m_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 |
+0x24C | m_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\BulletItem.dat server file
| Offset | Field | Why unused | Data |
|---|---|---|---|
+0x0CC | m_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%) |
+0x0D0 | m_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%) |
+0x194 | m_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 |
+0x1BC | m_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 |
+0x1C8 | m_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 |
+0x1CC | m_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 |
+0x1D0 | m_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 |
+0x1D4 | m_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 |
+0x22C | m_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 |
+0x230 | m_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 |
+0x234 | m_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\RecoveryItem.dat server file
| Offset | Field | Why unused | Data |
|---|---|---|---|
+0x0CC | m_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 |
+0x0D0 | m_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 |
+0x150 | m_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 |
+0x154 | m_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\MapItem.dat server file
| Offset | Field | Why unused | Data |
|---|---|---|---|
+0x0CC | m_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 |
+0x0D0 | m_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 |
+0x180 | m_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 |
+0x184 | m_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\TicketItem.dat server file
| Offset | Field | Why unused | Data |
|---|---|---|---|
+0x0CC | m_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 |
+0x0D0 | m_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 |
+0x114 | m_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 |
+0x1C8 | m_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 |
+0x1CC | m_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
| Offset | Field | Why unused | Data |
|---|---|---|---|
+0x0CC | m_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 |
+0x0D0 | m_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 |
+0x1C8 | m_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 |
+0x1CC | m_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\BoxItem.dat server file
| Offset | Field | Why unused | Data |
|---|---|---|---|
+0x0CC | m_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 |
+0x0D0 | m_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 |
+0x14C | m_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 |
+0x150 | m_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\CouponItem.dat server file
| Offset | Field | Why unused | Data |
|---|---|---|---|
+0x0CC | m_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 |
+0x0D0 | m_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 |
+0x13C | m_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 |
+0x158 | m_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 |
+0x15C | m_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
| Offset | Field | Why unused | Data |
|---|---|---|---|
+0x088 | m_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\FireCracker.dat server file
| Offset | Field | Why unused | Data |
|---|---|---|---|
+0x0CC | m_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%) |
+0x0D0 | m_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 |
+0x114 | m_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 |
+0x118 | m_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 |
+0x138 | m_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 |
+0x13C | m_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 |
+0x140 | m_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 |
+0x154 | m_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 |
+0x158 | m_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 |
+0x15C | m_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%) |