Skip to content

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 on class (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: 0 Poor (grey), 1 Common (white), 2 Uncommon (green), 3 Rare (blue), 4 Epic (purple), 5 Legendary (orange), 6 Artifact.

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 for buy_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 - 0 on-use, 1 on-equip aura, 2 chance-on-hit.
  • spellcharges_1 - Charges; -1 consumes 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 - 0 on-use, 1 on-equip aura, 2 chance-on-hit.
  • spellcharges_2 - Charges; -1 consumes 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 - 0 on-use, 1 on-equip aura, 2 chance-on-hit.
  • spellcharges_3 - Charges; -1 consumes 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 - 0 on-use, 1 on-equip aura, 2 chance-on-hit.
  • spellcharges_4 - Charges; -1 consumes 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 - 0 on-use, 1 on-equip aura, 2 chance-on-hit.
  • spellcharges_5 - Charges; -1 consumes 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 - 0 none, 1 binds when picked up, 2 binds when equipped, 3 binds when used, 4/5 quest-item variants.
  • page_text - First page_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.dbc entry; 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 in item_enchantment_template rolled at creation.
  • set_id - Item set ID from ItemSet.dbc.
  • max_durability - Maximum durability points.
  • disenchant_id - Entry in disenchant_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 via Pet::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 into item_loot_template-style openable items.
  • extra_flags - Server-side flags (ItemExtraFlags, src/game/Objects/ItemPrototype.h): 0x01 mail stationery icon/background, 0x02 ignore quest-status check when this item drops, 0x04 never 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 like player_factionchange_items).