item_template Table¶
Defines base properties for all items - stats, spells, quality, and behavior.
Schema Summary¶
| Field | Type | Key | Null | Default | Extra |
|---|---|---|---|---|---|
entry |
mediumint(8) unsigned | PRI | NO | 0 | |
patch |
tinyint(3) unsigned | PRI | NO | 0 | |
class |
tinyint(3) unsigned | MUL | NO | 0 | |
subclass |
tinyint(3) unsigned | NO | 0 | ||
name |
varchar(255) | NO | '' | ||
description |
varchar(255) | NO | '' | ||
display_id |
mediumint(8) unsigned | NO | 0 | ||
quality |
tinyint(3) unsigned | NO | 0 | ||
flags |
int(10) unsigned | NO | 0 | ||
buy_count |
tinyint(3) unsigned | NO | 1 | ||
buy_price |
int(10) unsigned | NO | 0 | ||
sell_price |
int(10) unsigned | NO | 0 | ||
inventory_type |
tinyint(3) unsigned | NO | 0 | ||
allowable_class |
mediumint(9) | NO | -1 | ||
allowable_race |
mediumint(9) | NO | -1 | ||
item_level |
tinyint(3) unsigned | NO | 0 | ||
required_level |
tinyint(3) unsigned | NO | 0 | ||
required_skill |
smallint(5) unsigned | NO | 0 | ||
required_skill_rank |
smallint(5) unsigned | NO | 0 | ||
required_spell |
smallint(5) unsigned | NO | 0 | ||
required_honor_rank |
mediumint(8) unsigned | NO | 0 | ||
required_city_rank |
mediumint(8) unsigned | NO | 0 | ||
required_reputation_faction |
smallint(5) unsigned | NO | 0 | ||
required_reputation_rank |
smallint(5) unsigned | NO | 0 | ||
max_count |
smallint(5) unsigned | NO | 0 | ||
stackable |
smallint(5) unsigned | NO | 1 | ||
container_slots |
tinyint(3) unsigned | NO | 0 | ||
stat_type1 |
tinyint(3) unsigned | NO | 0 | ||
stat_value1 |
smallint(6) | NO | 0 | ||
stat_type2 |
tinyint(3) unsigned | NO | 0 | ||
stat_value2 |
smallint(6) | NO | 0 | ||
stat_type3 |
tinyint(3) unsigned | NO | 0 | ||
stat_value3 |
smallint(6) | NO | 0 | ||
stat_type4 |
tinyint(3) unsigned | NO | 0 | ||
stat_value4 |
smallint(6) | NO | 0 | ||
stat_type5 |
tinyint(3) unsigned | NO | 0 | ||
stat_value5 |
smallint(6) | NO | 0 | ||
stat_type6 |
tinyint(3) unsigned | NO | 0 | ||
stat_value6 |
smallint(6) | NO | 0 | ||
stat_type7 |
tinyint(3) unsigned | NO | 0 | ||
stat_value7 |
smallint(6) | NO | 0 | ||
stat_type8 |
tinyint(3) unsigned | NO | 0 | ||
stat_value8 |
smallint(6) | NO | 0 | ||
stat_type9 |
tinyint(3) unsigned | NO | 0 | ||
stat_value9 |
smallint(6) | NO | 0 | ||
stat_type10 |
tinyint(3) unsigned | NO | 0 | ||
stat_value10 |
smallint(6) | NO | 0 | ||
delay |
smallint(5) unsigned | NO | 1000 | ||
range_mod |
float | NO | 0 | ||
ammo_type |
tinyint(3) unsigned | NO | 0 | ||
dmg_min1 |
float | NO | 0 | ||
dmg_max1 |
float | NO | 0 | ||
dmg_type1 |
tinyint(3) unsigned | NO | 0 | ||
dmg_min2 |
float | NO | 0 | ||
dmg_max2 |
float | NO | 0 | ||
dmg_type2 |
tinyint(3) unsigned | NO | 0 | ||
dmg_min3 |
float | NO | 0 | ||
dmg_max3 |
float | NO | 0 | ||
dmg_type3 |
tinyint(3) unsigned | NO | 0 | ||
dmg_min4 |
float | NO | 0 | ||
dmg_max4 |
float | NO | 0 | ||
dmg_type4 |
tinyint(3) unsigned | NO | 0 | ||
dmg_min5 |
float | NO | 0 | ||
dmg_max5 |
float | NO | 0 | ||
dmg_type5 |
tinyint(3) unsigned | NO | 0 | ||
block |
mediumint(8) unsigned | NO | 0 | ||
armor |
smallint(5) | NO | 0 | ||
holy_res |
smallint(5) | NO | 0 | ||
fire_res |
smallint(5) | NO | 0 | ||
nature_res |
smallint(5) | NO | 0 | ||
frost_res |
smallint(5) | NO | 0 | ||
shadow_res |
smallint(5) | NO | 0 | ||
arcane_res |
smallint(5) | NO | 0 | ||
spellid_1 |
smallint(5) unsigned | NO | 0 | ||
spelltrigger_1 |
tinyint(3) unsigned | NO | 0 | ||
spellcharges_1 |
tinyint(4) | NO | 0 | ||
spellppmrate_1 |
float | NO | 0 | ||
spellcooldown_1 |
int(11) | NO | -1 | ||
spellcategory_1 |
smallint(5) unsigned | NO | 0 | ||
spellcategorycooldown_1 |
int(11) | NO | -1 | ||
spellid_2 |
smallint(5) unsigned | NO | 0 | ||
spelltrigger_2 |
tinyint(3) unsigned | NO | 0 | ||
spellcharges_2 |
tinyint(4) | NO | 0 | ||
spellppmrate_2 |
float | NO | 0 | ||
spellcooldown_2 |
int(11) | NO | -1 | ||
spellcategory_2 |
smallint(5) unsigned | NO | 0 | ||
spellcategorycooldown_2 |
int(11) | NO | -1 | ||
spellid_3 |
smallint(5) unsigned | NO | 0 | ||
spelltrigger_3 |
tinyint(3) unsigned | NO | 0 | ||
spellcharges_3 |
tinyint(4) | NO | 0 | ||
spellppmrate_3 |
float | NO | 0 | ||
spellcooldown_3 |
int(11) | NO | -1 | ||
spellcategory_3 |
smallint(5) unsigned | NO | 0 | ||
spellcategorycooldown_3 |
int(11) | NO | -1 | ||
spellid_4 |
smallint(5) unsigned | NO | 0 | ||
spelltrigger_4 |
tinyint(3) unsigned | NO | 0 | ||
spellcharges_4 |
tinyint(4) | NO | 0 | ||
spellppmrate_4 |
float | NO | 0 | ||
spellcooldown_4 |
int(11) | NO | -1 | ||
spellcategory_4 |
smallint(5) unsigned | NO | 0 | ||
spellcategorycooldown_4 |
int(11) | NO | -1 | ||
spellid_5 |
smallint(5) unsigned | NO | 0 | ||
spelltrigger_5 |
tinyint(3) unsigned | NO | 0 | ||
spellcharges_5 |
tinyint(4) | NO | 0 | ||
spellppmrate_5 |
float | NO | 0 | ||
spellcooldown_5 |
int(11) | NO | -1 | ||
spellcategory_5 |
smallint(5) unsigned | NO | 0 | ||
spellcategorycooldown_5 |
int(11) | NO | -1 | ||
bonding |
tinyint(3) unsigned | NO | 0 | ||
page_text |
mediumint(8) unsigned | NO | 0 | ||
page_language |
tinyint(3) unsigned | NO | 0 | ||
page_material |
tinyint(3) unsigned | NO | 0 | ||
start_quest |
mediumint(8) unsigned | NO | 0 | ||
lock_id |
mediumint(8) unsigned | NO | 0 | ||
material |
tinyint(4) | NO | 0 | ||
sheath |
tinyint(3) unsigned | NO | 0 | ||
random_property |
mediumint(8) unsigned | NO | 0 | ||
set_id |
mediumint(8) unsigned | NO | 0 | ||
max_durability |
smallint(5) unsigned | NO | 0 | ||
area_bound |
mediumint(8) unsigned | NO | 0 | ||
map_bound |
smallint(6) | NO | 0 | ||
duration |
int(11) unsigned | NO | 0 | ||
bag_family |
mediumint(9) | NO | 0 | ||
disenchant_id |
mediumint(8) unsigned | NO | 0 | ||
food_type |
tinyint(3) unsigned | NO | 0 | ||
min_money_loot |
int(10) unsigned | NO | 0 | ||
max_money_loot |
int(10) unsigned | NO | 0 | ||
wrapped_gift |
mediumint(8) unsigned | NO | 0 | ||
extra_flags |
tinyint(1) unsigned | NO | 0 | ||
other_team_entry |
int(11) unsigned | YES | 1 |
Field Breakdown¶
Identity & Display¶
entry- Unique item template ID.patch- Content patch (progression) this version applies to.class- Item class; see the Item Class table below.subclass- Sub-class within the class; meaning depends onclass(weapon types for class 2, armor types for class 4, ...).name- Item name.description- Flavor text shown in gold on the tooltip.display_id- Model/icon display row.quality- Colour tier:0Poor (grey),1Common (white),2Uncommon (green),3Rare (blue),4Epic (purple),5Legendary (orange),6Artifact.
Item Class¶
class (with subclass) drives behaviour and stats. From enum ItemClass
(src/game/Objects/ItemPrototype.h):
| Value | Class | Notes |
|---|---|---|
| 0 | CONSUMABLE | food, potions, scrolls |
| 1 | CONTAINER | bags (ContainerSlots) |
| 2 | WEAPON | subclass selects type; damage block applies |
| 3 | GEM | defined in the enum but unused in vanilla content |
| 4 | ARMOR | cloth...shield; armor/stat block applies |
| 5 | REAGENT | spell components |
| 6 | PROJECTILE | ammo (bows/guns) |
| 7 | TRADE_GOODS | crafting materials |
| 8 | GENERIC | misc non-trade goods |
| 9 | RECIPE | recipes/books teaching crafts |
| 10 | MONEY | coin objects |
| 11 | QUIVER | ammo pouches; ranged haste |
| 12 | QUEST | quest items; add flag 0x8000 NO_DISENCHANT so they cannot be disenchanted |
| 13 | KEY | permanent keys |
| 14 | PERMANENT | durable non-equippables |
| 15 | JUNK | vendor trash |
Economy & Stacking¶
flags- Item flag bitmask; see the table below.buy_count- How many items one vendor purchase delivers.buy_price- Vendor price in copper (total forbuy_count).sell_price- Vendor refund per item in copper.max_count- Maximum count a player may carry/own ("Unique");0= unlimited.stackable- Maximum stack size.
Flags (ItemPrototypeFlags)¶
| Flag | Name | Effect |
|---|---|---|
| 0x00000001 | NO_PICKUP | not used by the core |
| 0x00000002 | CONJURED | conjured item (vanishes on logout unless stored) |
| 0x00000004 | LOOTABLE | right-click to open for loot (non-container) |
| 0x00000008 | EXOTIC | not used in pre-3.x content |
| 0x00000010 | DEPRECATED | renders with a red icon (like a zero-durability item) |
| 0x00000020 | INDESTRUCTIBLE | cannot be destroyed except as a spell reagent (totems) |
| 0x00000040 | PLAYERCAST | usable by players ("usable" old note) |
| 0x00000080 | NO_EQUIP_COOLDOWN | no cooldown when equipping |
| 0x00000100 | INTBONUSINSTEAD | int bonus displayed instead of another stat |
| 0x00000200 | WRAPPER | gift-wrapped package state |
| 0x00000400 | IGNORE_BAG_SPACE | created without checking bag space |
| 0x00000800 | PARTY_LOOT | item is party loot |
| 0x00001000 | BRIEFSPELLEFFECTS | not used in pre-3.x |
| 0x00002000 | CHARTER | guild charter item |
| 0x00004000 | HAS_TEXT | readable item with text pages |
| 0x00008000 | NO_DISENCHANT | cannot be disenchanted |
| 0x00010000 | REAL_DURATION | duration ticks in real time |
| 0x00020000 | NO_CREATOR | last flag used in 1.12.1 |
| 0x00080000 | UNIQUE_EQUIPPED | server-side unique-equipped check |
Source: enum ItemPrototypeFlags, src/game/Objects/ItemPrototype.h.
Slot & Requirements¶
inventory_type- Where it equips (non-equippable, head, neck, chest... two-handed weapons use their weapon subclass logic).allowable_class- Class bitmask;-1= any class.allowable_race- Race bitmask;-1= any race.item_level- Item level (drives stat budget / disenchant results).required_level- Minimum character level to equip/use.required_skill- Skill line required (e.g. enchanting for rods).required_skill_rank- Value of that skill line required.required_spell- Spell that must be known (e.g. riding, dual wield).required_honor_rank- PvP rank requirement.required_city_rank- City reputation rank requirement (unused in vanilla content).required_reputation_faction/required_reputation_rank- Faction standing gate.
Container / Bag Fields¶
container_slots- Number of slots (bags only).bag_family- Bag family bits (herb/soul/enchanting bags restrict contents).
Stats¶
Ten paired slots. stat_type uses ItemModType: 0 Mana · 1 Health · 3 Agility ·
4 Strength · 5 Intellect · 6 Spirit · 7 Stamina (value 2 is unused).
stat_type1- Stat id for slot 1.stat_value1- Amount of that stat.stat_type2- Stat id for slot 2.stat_value2- Amount of that stat.stat_type3- Stat id for slot 3.stat_value3- Amount of that stat.stat_type4- Stat id for slot 4.stat_value4- Amount of that stat.stat_type5- Stat id for slot 5.stat_value5- Amount of that stat.stat_type6- Stat id for slot 6.stat_value6- Amount of that stat.stat_type7- Stat id for slot 7.stat_value7- Amount of that stat.stat_type8- Stat id for slot 8.stat_value8- Amount of that stat.stat_type9- Stat id for slot 9.stat_value9- Amount of that stat.stat_type10- Stat id for slot 10.stat_value10- Amount of that stat.
Weapon Damage & Ranged¶
delay- Attack speed in milliseconds (1000 = 1.0).range_mod- Ranged range modifier.ammo_type- Ammo category for projectiles.dmg_min1,dmg_max1,dmg_type1- Damage range 1: minimum, maximum and school (SPELL_SCHOOL_*).dmg_min2,dmg_max2,dmg_type2- Damage range 2: minimum, maximum and school (SPELL_SCHOOL_*).dmg_min3,dmg_max3,dmg_type3- Damage range 3: minimum, maximum and school (SPELL_SCHOOL_*).dmg_min4,dmg_max4,dmg_type4- Damage range 4: minimum, maximum and school (SPELL_SCHOOL_*).dmg_min5,dmg_max5,dmg_type5- Damage range 5: minimum, maximum and school (SPELL_SCHOOL_*).block- Block value for shields.
Armor & Resistances¶
armor- Base armor value.holy_res,fire_res,nature_res,frost_res,shadow_res,arcane_res- Resistance bonuses.
Item Spells (slots 1-5)¶
spellid_1- Spell cast/granted by slot 1 (0= empty slot).spelltrigger_1-0on-use,1on-equip aura,2chance-on-hit.spellcharges_1- Charges;-1consumes the item when the last charge is used.spellppmrate_1- Procs-per-minute rate for chance-on-hit triggers.spellcooldown_1- Per-item cooldown in ms (-1= use the spell's own cooldown).spellcategory_1/spellcategorycooldown_1- Shared-category cooldown handling.spellid_2- Spell cast/granted by slot 2 (0= empty slot).spelltrigger_2-0on-use,1on-equip aura,2chance-on-hit.spellcharges_2- Charges;-1consumes the item when the last charge is used.spellppmrate_2- Procs-per-minute rate for chance-on-hit triggers.spellcooldown_2- Per-item cooldown in ms (-1= use the spell's own cooldown).spellcategory_2/spellcategorycooldown_2- Shared-category cooldown handling.spellid_3- Spell cast/granted by slot 3 (0= empty slot).spelltrigger_3-0on-use,1on-equip aura,2chance-on-hit.spellcharges_3- Charges;-1consumes the item when the last charge is used.spellppmrate_3- Procs-per-minute rate for chance-on-hit triggers.spellcooldown_3- Per-item cooldown in ms (-1= use the spell's own cooldown).spellcategory_3/spellcategorycooldown_3- Shared-category cooldown handling.spellid_4- Spell cast/granted by slot 4 (0= empty slot).spelltrigger_4-0on-use,1on-equip aura,2chance-on-hit.spellcharges_4- Charges;-1consumes the item when the last charge is used.spellppmrate_4- Procs-per-minute rate for chance-on-hit triggers.spellcooldown_4- Per-item cooldown in ms (-1= use the spell's own cooldown).spellcategory_4/spellcategorycooldown_4- Shared-category cooldown handling.spellid_5- Spell cast/granted by slot 5 (0= empty slot).spelltrigger_5-0on-use,1on-equip aura,2chance-on-hit.spellcharges_5- Charges;-1consumes the item when the last charge is used.spellppmrate_5- Procs-per-minute rate for chance-on-hit triggers.spellcooldown_5- Per-item cooldown in ms (-1= use the spell's own cooldown).spellcategory_5/spellcategorycooldown_5- Shared-category cooldown handling.
Pages, Locks & Binding¶
bonding-0none,1binds when picked up,2binds when equipped,3binds when used,4/5quest-item variants.page_text- Firstpage_text.entry for readable books.page_language- Language the text is written in.page_material- Visual material of book pages.start_quest- Quest offered by using this item.lock_id-Lock.dbcentry; opening may require lockpicking/keys.material- Sound/impact material (DBC passthrough).sheath- How weapons are carried on the belt/back.
Enchants, Sets & Durability¶
random_property- Weighted pool id initem_enchantment_templaterolled at creation.set_id- Item set ID from ItemSet.dbc.max_durability- Maximum durability points.disenchant_id- Entry indisenchant_loot_template;0= not disenchantable.duration- Temporary-item lifetime (seconds); consumed by real-duration flags.
Bindings to World & Food¶
area_bound/map_bound- Restricts where the item functions.food_type- Pet-diet food category (1-based bit into the pet family's food mask); determines which foods a hunter pet accepts viaPet::HaveInDiet.wrapped_gift- On wrapping-paper items: the item entry the package becomes once wrapped.
Loot Money & Cross-Faction¶
min_money_loot/max_money_loot- Coin range rolled intoitem_loot_template-style openable items.extra_flags- Server-side flags (ItemExtraFlags,src/game/Objects/ItemPrototype.h):0x01mail stationery icon/background,0x02ignore quest-status check when this item drops,0x04never obtainable by players in vanilla.other_team_entry- Counterpart entry id on the opposing faction; informational only - not read by core logic (faction pairing happens through tables likeplayer_factionchange_items).