The 170-row catch-all for everything that isn't a weapon (weapons.txt) or armor (armor.txt). If a question is about a potion, a scroll, the cube, a charm, a gem, a rune, a jewel, gold, ammunition, or a quest item — the answer terminates here.
172 columns total — most of them shared with the equipment tables (inventory dimensions, level requirements, vendor min/max stocks, tooltip rendering, drop conditions, gambling), with a misc-only subset for consumable behaviors (auto-belt placement, multi-buy purchase modal, spell triggers on use, state applications, stat modifications during effect duration).
What's in the table
The 35 distinct itypes covered:
| Category | itypes | Examples |
|---|---|---|
| Jewelry | ring, amul, jewl | Ring, Amulet, Jewel (the cube-craft jewel base — class-locked craft inputs) |
| Charms | scha, mcha, lcha, csch | Small / "Large" / "Grand" Charm; community-name offset is real (data-file mcha=community "LC", lcha=community "GC"). csch is the canonical-charm marker. |
| Tomes / scrolls | book, scro | Tome of Town Portal, Tome of Identify; Scroll of TP, Scroll of Identify |
| Potions | hpot, mpot, rpot, apot, spot, wpot, elix | Healing / Mana / Rejuv / Antidote / Stamina / Thawing / Elixirs |
| Gems | gema, gemd, geme, gemr, gems, gemt, gemz | Amethyst, Diamond, Emerald, Ruby, Sapphire, Topaz, Skull (per-color gem tier) |
| Runes | rune | All 33 runes |
| Ammunition | bowq, xboq | Bow and Crossbow quivers (arrows / bolts) |
| Quest | ques, key, herb, body, play, torc | Cube, Khalim's items, keys, Wirt's Leg, Hellfire Torch, etc. |
| Currency | gold | Gold (stackable to 5000 per inventory stack) |
The most-asked codes
These are the inventory-footprint and stackability values the audit's Section 7 reasoning depends on:
| Code | Item | Footprint | Stackable | Notes |
|---|---|---|---|---|
box | Horadric Cube | 2×2 (4 cells) | — | Carries hasinv=1 — has its own internal inventory grid. |
gld | Gold | 1×1 | yes (max 5000) | Inventory cap; the Stash holds more. |
tbk | Tome of Town Portal | 1×2 (2 cells) | yes (max 20 scrolls per tome) | The TP tome. |
ibk | Tome of Identify | 1×2 (2 cells) | yes (max 20 scrolls per tome) | The ID tome. |
tsc | Scroll of Town Portal | 1×1 | — | Single use. |
isc | Scroll of Identify | 1×1 | — | Single use. |
cm1 | Small Charm (community "SC") | 1×1 | — | The most stat-stackable charm. |
cm2 | Large Charm (community "LC") | 1×2 | — | The community-LC = data-file mcha. |
cm3 | Grand Charm (community "GC") | 1×3 | — | The community-GC = data-file lcha; carries skiller suffixes. |
rin | Ring | 1×1 | — | Base ring item. |
amu | Amulet | 1×1 | — | Base amulet item. |
hp1–hp5 | Minor → Super Healing Potion | 1×1 | — | |
mp1–mp5 | Minor → Super Mana Potion | 1×1 | — | |
rvs | Rejuvenation Potion | 1×1 | — | Restores life and mana. |
rvl | Full Rejuvenation Potion | 1×1 | — |
This table answers the Horadric Cube's 2×2 footprint, the tome's 1×2 footprint, the standard-charm dimensions, and the gold-stack cap — load-bearing for any inventory-budget reasoning.
Locbones coverage
locbones D2R Data Guide documents the misc-only column subset (the columns NOT shared with armor.txt). The shared columns inherit their semantics from armor.
Misc-only columns
These are the columns the engine reads only on this table — they don't appear in armor.txt or weapons.txt.
Auto-placement and purchase
| Column | Meaning |
|---|---|
autobelt | If 1, picking the item up auto-places it into an open belt slot (potions). |
multibuy | If 1, vendor purchase opens the multi-buy modal (buy a stack rather than one-at-a-time — applies to potions, scrolls). |
Cube-recipe wiring
| Column | Meaning |
|---|---|
BetterGem | Links to another item's code — the cube-upgrade target. Used by the chipped→flawed→normal→flawless→perfect gem progression and similar tier-up recipes. |
Use-effect wiring (for consumable items)
| Column | Meaning |
|---|---|
pSpell | The Player Spell enum value triggered when the item is used. Drives the use-effect (potion drink, scroll cast). |
state, cstate1, cstate2 | States.txt entries applied when the item is used. Layered states (e.g. potion buff + visual overlay). |
len | Frame length of the applied state (1/25-second engine frames; 25 = 1 second). |
stat1, stat2, stat3 | Stats modified during the effect (itemstatcost.Stat references). |
calc1, calc2, calc3 | Calc formulas for the corresponding stat values. |
spellicon | Icon asset for the use-effect display. |
Tooltip rendering for use effects
| Column | Meaning |
|---|---|
spelldesc | 0–4 numeric code controlling the spell-description format. |
spelldescstr, spelldescstr2 | Primary / secondary string-table keys for the spell description text. |
spelldesccalc | Numeric value rendered in the description. |
spelldesccolor | 0–12 color code for the spell-description text (0=white, 1=red, 2=green, etc., per the locbones color table). |
Shared columns (defer to armor)
The 150+ remaining columns are shared with armor.txt: name, version, level, levelreq, rarity, spawnable, code, invwidth, invheight, hasinv, gemsockets, cost, gamble cost, the per-vendor *Min / *Max / *MagicMin / *MagicMax / *MagicLvl blocks for all 17 NPC vendors (Charsi through Jamella), the graphics columns, Transmogrify recipe metadata, and so on. See armor for column semantics on these.
Why some columns are blank for most rows
A potion row uses a small fraction of the columns (autobelt=1, type=hpot, the use-effect block, the vendor blocks). A ring row uses almost none of those. The schema's wide-but-sparse shape comes from the table being a true catch-all — every row uses only the columns relevant to its category, leaving everything else blank.
Cross-references
- armor — shares most of this table's columns. Refer there for column semantics not in the misc-only section above.
- itemtypes —
typeandtype2resolve through this table. - cubemain — recipes reference misc-side codes (
tsc,box,tbk, gem codes, rune codes viagems.txt). - belts — auto-fill defaults reference misc-side potion and scroll codes (
hpot,mpot,rpot,scro,tsc). - itemstatcost —
stat1/stat2/stat3resolve here.