spell_template Table
Defines spell data - the primary table for all spells in the world database.
Schema Summary
Field Breakdown
Identity & Text
entry - Spell ID (Spell.dbc id).
build - Client build this row applies to.
name , nameSubtext , description , auraDescription - Display text
(name, subtext/rank line, tooltip body, aura tooltip). Only name and nameSubtext are read by the core; description / auraDescription are client-DBC/informational columns.
nameFlags , nameSubtextFlags , descriptionFlags , auraDescriptionFlags -
Locale mask for the Aura Description (tooltip) text; not read by core.
castUI - DBC passthrough column; not read by core.
Classification
school - Base magic school: 0 physical, 1 holy, 2 fire, 3 nature,
4 frost, 5 shadow, 6 arcane.
category - Category id; spells sharing a category share cooldowns
(e.g. all Hearthstone-like items).
dispel - Dispel type (enum DispelType, SpellDefines.h):
Value
Name
0
NONE
1
MAGIC
2
CURSE
3
DISEASE
4
POISON
5
STEALTH
6
INVISIBILITY
7
ALL
8
SPE_NPC_ONLY
9
ENRAGE
10
ZG_TICKET
- mechanic - Combat mechanic granted/inflicted (SpellDefines.h):
Value
Name
0
NONE
1
CHARM
2
DISORIENTED
3
DISARM
4
DISTRACT
5
FEAR
6
FUMBLE
7
ROOT
8
PACIFY
9
SILENCE
10
SLEEP
11
SNARE
12
STUN
13
FREEZE
14
KNOCKOUT
15
BLEED
16
BANDAGE
17
POLYMORPH
18
BANISH
19
SHIELD
20
SHACKLE
21
MOUNT
22
PERSUADE
23
TURN
24
HORROR
25
INVULNERABILITY
26
INTERRUPT
27
DAZE
28
DISCOVERY
29
IMMUNE_SHIELD
30
SAPPED
31
SLOW_CAST_SPEED
Attribute Flags
Bitmask columns; every bit is defined as SPELL_ATTR_* in
src/game/Spells/SpellDefines.h.
attributes
Flag
Name
Notes
0x00000001
PROC_FAILURE_BURNS_CHARGE
0x00000002
USES_RANGED_SLOT
All ranged abilites have this flag
0x00000004
ON_NEXT_SWING_NO_DAMAGE
0x00000008
NEED_EXOTIC_AMMO
Vanilla only attribute removed in TBC
0x00000010
IS_ABILITY
Client puts 'ability' instead of 'spell' in game strings for these spells
0x00000020
IS_TRADESKILL
Trade spells, will be added by client to a sublist of profession spell
0x00000040
PASSIVE
0x00000080
DO_NOT_DISPLAY
Spells with this attribute are not visible in spellbook or aura bar
0x00000100
DO_NOT_LOG
This attributes controls whether spell appears in combat logs
0x00000200
HELD_ITEM_ONLY
Client automatically selects item from mainhand slot as a cast target
0x00000400
ON_NEXT_SWING
0x00000800
WEARER_CASTS_PROC_TRIGGER
0x00001000
DAYTIME_ONLY
Only useable at daytime, not set in 2.4.2
0x00002000
NIGHT_ONLY
Only useable at night, not set in 2.4.2
0x00004000
ONLY_INDOORS
Only useable indoors, not set in 2.4.2
0x00008000
ONLY_OUTDOORS
Only useable outdoors
0x00010000
NOT_SHAPESHIFT
Not while shapeshifted
0x00020000
ONLY_STEALTHED
Must be in stealth
0x00040000
DO_NOT_SHEATH
Client won't hide unit weapons in sheath on cast/channel
0x00080000
SCALES_WITH_CREATURE_LEVEL
Spell damage depends on caster level
0x00100000
CANCELS_AUTO_ATTACK_COMBAT
Stop attack after use this spell (and not begin attack if use)
0x00200000
NO_ACTIVE_DEFENSE
Cannot be dodged/parried/blocked
0x00400000
TRACK_TARGET_IN_CAST_PLAYER_ONLY
SetTrackingTarget
0x00800000
ALLOW_CAST_WHILE_DEAD
Castable while dead
0x01000000
ALLOW_WHILE_MOUNTED
Castable while mounted
0x02000000
COOLDOWN_ON_EVENT
Activate and start cooldown after aura fade or remove summoned creature or go
0x04000000
AURA_IS_DEBUFF
Almost all negative spells have it
0x08000000
ALLOW_WHILE_SITTING
Castable while sitting
0x10000000
NOT_IN_COMBAT_ONLY_PEACEFUL
Cannot be used in combat
0x20000000
NO_IMMUNITIES
Unaffected by invulnerability
0x40000000
HEARTBEAT_RESIST
Chance for spell effects to break early (heartbeat resist)
0x80000000
NO_AURA_CANCEL
Positive aura can't be canceled
0x80000000
CAN_BREAK_ON_DAMAGE
Taking damage has chance to remove the aura
attributesEx
Flag
Name
Notes
0x00000001
EX_DISMISS_PET_FIRST
For spells without this flag client doesn't allow to summon pet if caster has a pet
0x00000002
EX_USE_ALL_MANA
Use all power (Only paladin Lay of Hands and Bunyanize)
0x00000004
EX_IS_CHANNELED
0x00000008
EX_NO_REDIRECTION
0x00000010
EX_NO_SKILL_INCREASE
Only assigned to stealth spells for some reason
0x00000020
EX_ALLOW_WHILE_STEALTHED
Does not break stealth
0x00000040
EX_IS_SELF_CHANNELED
0x00000080
EX_NO_REFLECTION
0x00000100
EX_ONLY_PEACEFUL_TARGETS
Target must not be in combat
0x00000200
EX_INITIATES_COMBAT
Enables Auto-Attack
0x00000400
EX_NO_THREAT
0x00000800
EX_AURA_UNIQUE
0x00001000
EX_FAILURE_BREAKS_STEALTH
0x00002000
EX_TOGGLE_FARSIGHT
0x00004000
EX_TRACK_TARGET_IN_CHANNEL
Client automatically forces player to face target when channeling
0x00008000
EX_IMMUNITY_PURGES_EFFECT
Remove auras on immunity
0x00010000
EX_IMMUNITY_TO_HOSTILE_AND_FRIENDLY_EFFECTS
Aura that provides immunity prevents positive effects too
0x00020000
EX_NO_AUTOCAST_AI
0x00040000
EX_PREVENTS_ANIM
Stun, polymorph, daze, sleep
0x00080000
EX_EXCLUDE_CASTER
0x00100000
EX_FINISHING_MOVE_DAMAGE
Uses combo points
0x00200000
EX_THREAT_ONLY_ON_MISS
0x00400000
EX_FINISHING_MOVE_DURATION
Uses combo points (in 4.x not required combo point target selected)
0x00800000
EX_IGNORE_CASTER_AND_TARGET_RESTRICTIONS
Skips all cast checks, moved to AttributesEx3 after 1.10 (100% correlation)
0x01000000
EX_SPECIAL_SKILLUP
Only fishing spells
0x02000000
EX_UNK25
Different in vanilla
0x04000000
EX_REQUIRE_ALL_TARGETS
0x08000000
EX_DISCOUNT_POWER_ON_MISS
All these spells refund power on parry or deflect
0x10000000
EX_NO_AURA_ICON
Client doesn't display these spells in aura bar
0x20000000
EX_NAME_IN_CHANNEL_BAR
Spell name is displayed in cast bar instead of 'channeling' text
0x40000000
EX_COMBO_ON_BLOCK
Overpower
0x80000000
EX_CAST_WHEN_LEARNED
attributesEx2
Flag
Name
Notes
0x00000001
ALLOW_DEAD_TARGET
Can target dead unit or corpse
0x00000002
NO_SHAPESHIFT_UI
0x00000004
IGNORE_LINE_OF_SIGHT
0x00000008
ALLOW_LOW_LEVEL_BUFF
0x00000010
USE_SHAPESHIFT_BAR
Client displays icon in stance bar when learned, even if not shapeshift
0x00000020
AUTO_REPEAT
0x00000040
CANNOT_CAST_ON_TAPPED
Target must be tapped by caster
0x00000080
DO_NOT_REPORT_SPELL_FAILURE
0x00000100
UNK8
Unused
0x00000200
UNK9
Unused
0x00000400
SPECIAL_TAMING_FLAG
0x00000800
NO_TARGET_PER_SECOND_COSTS
0x00001000
CHAIN_FROM_CASTER
0x00002000
ENCHANT_OWN_ITEM_ONLY
0x00004000
ALLOW_WHILE_INVISIBLE
0x00008000
ENABLE_AFTER_PARRY
Deprecated in patch 1.8 and moved to CasterAuraState
0x00010000
NO_ACTIVE_PETS
0x00020000
DO_NOT_RESET_COMBAT_TIMERS
Don't reset timers for melee autoattacks (swings) or ranged autoattacks (autoshoots)
0x00040000
REQ_DEAD_PET
Only Revive pet has it
0x00080000
ALLOW_WHILE_NOT_SHAPESHIFTED
Does not necessary need shapeshift (pre-3.x not have passive spells with this attribute)
0x00100000
INITIATE_COMBAT_POST_CAST
Client will send CMSG_ATTACK_SWING after SMSG_SPELL_GO
0x00200000
FAIL_ON_ALL_TARGETS_IMMUNE
For ice blocks, pala immunity buffs, priest absorb shields
0x00400000
NO_INITIAL_THREAT
0x00800000
PROC_COOLDOWN_ON_FAILURE
0x01000000
ITEM_CAST_WITH_OWNER_SKILL
NYI
0x02000000
DONT_BLOCK_MANA_REGEN
0x04000000
NO_SCHOOL_IMMUNITIES
0x08000000
IGNORE_WEAPONSKILL
NYI (only fishing has it)
0x10000000
NOT_AN_ACTION
0x20000000
CANT_CRIT
0x40000000
ACTIVE_THREAT
Caster is put in combat for 5.5 seconds on cast at enemy unit
0x80000000
RETAIN_ITEM_CAST
Food or Drink Buff (like Well Fed)
attributesEx3
Flag
Name
Notes
0x00000001
PVP_ENABLING
Spell landed counts as hostile action against enemy even if it doesn't trigger combat state, propagates PvP flags
0x00000002
NO_PROC_EQUIP_REQUIREMENT
0x00000004
NO_CASTING_BAR_TEXT
0x00000008
COMPLETELY_BLOCKED
All effects prevented on block
0x00000010
NO_RES_TIMER
Corpse reclaim delay does not apply to accepting resurrection (only Rebirth has it)
0x00000020
NO_DURABILITY_LOSS
0x00000040
NO_AVOIDANCE
Persistent Area Aura not removed on leaving radius
0x00000080
DOT_STACKING_RULE
Create a separate (de)buff stack for each caster
0x00000100
ONLY_ON_PLAYER
Can target only players
0x00000200
NOT_A_PROC
Aura periodic trigger is not evaluated as triggered
0x00000400
REQUIRES_MAIN_HAND_WEAPON
0x00000800
ONLY_BATTLEGROUNDS
0x00001000
ONLY_ON_GHOSTS
0x00002000
HIDE_CHANNEL_BAR
Client will not display channeling bar
0x00004000
HIDE_IN_RAID_FILTER
Only "Honorless Target" has this flag
0x00008000
NORMAL_RANGED_ATTACK
Spells with this attribute are processed as ranged attacks in client
0x00010000
SUPPRESS_CASTER_PROCS
0x00020000
SUPPRESS_TARGET_PROCS
0x00040000
ALWAYS_HIT
Spell should always hit its target
0x00080000
INSTANT_TARGET_PROCS
Related to spell batching
0x00100000
ALLOW_AURA_WHILE_DEAD
Death persistent spells
0x00200000
ONLY_PROC_OUTDOORS
0x00400000
CASTING_CANCELS_AUTOREPEAT
NYI (only Shoot with Wand has it)
0x00800000
NO_DAMAGE_HISTORY
NYI
0x01000000
REQUIRES_OFFHAND_WEAPON
0x02000000
TREAT_AS_PERIODIC
Does not cause spell pushback
0x04000000
CAN_PROC_FROM_PROCS
Auras with this attribute can proc off procced spells (periodic triggers etc)
0x08000000
ONLY_PROC_ON_CASTER
0x10000000
IGNORE_CASTER_AND_TARGET_RESTRICTIONS
Skips all cast checks, moved from AttributesEx after 1.10 (100% correlation)
0x20000000
IGNORE_CASTER_MODIFIERS
0x40000000
DO_NOT_DISPLAY_RANGE
0x80000000
NOT_ON_AOE_IMMUNE
attributesEx4
Flag
Name
Notes
0x00000001
IGNORE_RESISTANCES
From TC 3.3.5, but not present in 1.12 native DBCs. Add it with spell_mod to prevent a spell from being resisted.
0x00000002
CLASS_TRIGGER_ONLY_ON_TARGET
0x00000004
AURA_EXPIRES_OFFLINE
Aura continues to expire while player is offline
0x00000008
NO_HELPFUL_THREAT
0x00000010
NO_HARMFUL_THREAT
0x00000020
ALLOW_CLIENT_TARGETING
NYI
0x00000040
CANNOT_BE_STOLEN
Unused
0x00000080
CAN_CAST_WHILE_CASTING
NYI (does not seem to work client side either)
0x00000100
IGNORE_DAMAGE_TAKEN_MODIFIERS
0x00000200
COMBAT_FEEDBACK_WHEN_USABLE
Initially disabled / Trigger activate from event (Execute, Riposte, Deep Freeze...)
Stances & Target Restrictions
stances / stancesNot - Shapeshift forms required / forbidden (bitmask).
targets - Extra target mask (e.g. corpse targets).
targetCreatureType - Only affects creatures of this type (CreatureTypeMask).
requiresSpellFocus - Requires a nearby spell-focus object
(gameobject_template type 8 objects).
casterAuraState / targetAuraState - Caster/victim must have this aura state.
Timers & Cooldowns
castingTimeIndex - Row in CastTime.dbc (cast duration).
recoveryTime - Cooldown (ms) before the same spell may be recast.
categoryRecoveryTime - Cooldown applied to the whole category.
interruptFlags / auraInterruptFlags / channelInterruptFlags -
What breaks the cast / removes auras / stops channeling (movement, damage, ...).
startRecoveryCategory / startRecoveryTime - Global cooldown category and time
applied when the cast starts.
maxAffectedTargets - Hard cap on number of targets hit.
Procs
procFlags - Event mask that can trigger the proc (melee hit, spell cast, ...).
procChance - Proc frequency (PPM handling and flat % values).
procCharges - Charges consumed when the proc fires.
Levels & Scaling
maxLevel - Highest character level that may learn/receive it.
baseLevel - Level of the base rank.
spellLevel - Required level shown on tooltips / used in downranking math.
Power Costs
durationIndex - Row in SpellDuration.dbc.
powerType - Power consumed (enum Powers, SharedDefines.h): 0 Mana,
1 Rage, 2 Focus, 3 Energy, 4 Happiness (0xFFFFFFFE Health).
manaCost - Flat cost percentage/value depending on power type.
manCostPerLevel - Additional cost per caster level.
manaPerSecond / manaPerSecondPerLevel - Upkeep costs while active/channeling.
manaCostPercentage - Cost as % of total mana.
Range, Speed & Stacking
rangeIndex - Row in SpellRange.dbc (max/min range).
speed - Projectile travel speed (yards/sec); 0 = instant.
stackAmount - Max stacks of the produced aura.
modelNextSpell - DBC passthrough field; not used by the core.
Reagents, Totems & Equipment Requirements
totem1 / totem2 - Required totem items (item_template .entry; shaman spells).
reagent1 , reagent2 , reagent3 , reagent4 , reagent5 , reagent6 , reagent7 , reagent8 - Consumed reagent item entries. (see item_template .entry)
reagentCount1 , reagentCount2 , reagentCount3 , reagentCount4 , reagentCount5 , reagentCount6 , reagentCount7 , reagentCount8 - Amount for the matching reagent.
equippedItemClass / equippedItemSubClassMask / equippedItemInventoryTypeMask -
Weapon/armor requirements for combat procs (-1 = any).
Effects 1-3
Each effect slot has the same set of columns:
effect1 / effect2 / effect3 - Effect type (SPELL_EFFECT_*), see the Effect Types table below.
effectDieSides1 / effectDieSides2 / effectDieSides3 - Random dice portion of the magnitude.
effectBaseDice1 / effectBaseDice2 / effectBaseDice3 - Base die count.
effectDicePerLevel1 / effectDicePerLevel2 / effectDicePerLevel3 - Dice added per caster level.
effectRealPointsPerLevel1 / effectRealPointsPerLevel2 / effectRealPointsPerLevel3 - Flat points added per caster level.
effectBasePoints1 / effectBasePoints2 / effectBasePoints3 - Base value (dice roll is added to this).
effectBonusCoefficient1 / effectBonusCoefficient2 / effectBonusCoefficient3 - Spell-power coefficient.
effectMechanic1 / effectMechanic2 / effectMechanic3 - Mechanic applied by this effect.
effectImplicitTargetA1 , effectImplicitTargetA2 , effectImplicitTargetA3 , effectImplicitTargetB1 , effectImplicitTargetB2 , effectImplicitTargetB3 - Target selection rules (TARGET_* ids from Spell.dbc).
effectRadiusIndex1 / effectRadiusIndex2 / effectRadiusIndex3 - Row in SpellRadius.dbc.
effectApplyAuraName1 / effectApplyAuraName2 / effectApplyAuraName3 - Aura applied by the effect (SPELL_AURA_*).
effectAmplitude1 / effectAmplitude2 / effectAmplitude3 - Tick interval for periodic auras (ms).
effectMultipleValue1 / effectMultipleValue2 / effectMultipleValue3 - Multiplier for combo-point/hot scaling values.
effectChainTarget1 / effectChainTarget2 / effectChainTarget3 - Additional targets hit by chaining.
effectItemType1 / effectItemType2 / effectItemType3 - Item created (CREATE_ITEM) or loot item (for some effects).
effectMiscValue1 / effectMiscValue2 / effectMiscValue3 - Generic per-effect payload (faction id, aura slot, school...).
effectTriggerSpell1 / effectTriggerSpell2 / effectTriggerSpell3 - Spell triggered/taught/applied by this effect (spell_template .entry).
effectPointsPerComboPoint1 / effectPointsPerComboPoint2 / effectPointsPerComboPoint3 - Value added per combo point.
Effect Types
All SPELL_EFFECT_* values from src/game/Spells/SpellDefines.h:
Effect
Name
0
NONE
1
INSTAKILL
2
SCHOOL_DAMAGE
3
DUMMY
4
PORTAL_TELEPORT
5
TELEPORT_UNITS
6
APPLY_AURA
7
ENVIRONMENTAL_DAMAGE
8
POWER_DRAIN
9
HEALTH_LEECH
10
HEAL
11
BIND
12
PORTAL
13
RITUAL_BASE
14
RITUAL_SPECIALIZE
15
RITUAL_ACTIVATE_PORTAL
16
QUEST_COMPLETE
17
WEAPON_DAMAGE_NOSCHOOL
18
RESURRECT
19
ADD_EXTRA_ATTACKS
20
DODGE
21
EVADE
22
PARRY
23
BLOCK
24
CREATE_ITEM
25
WEAPON
26
DEFENSE
27
PERSISTENT_AREA_AURA
28
SUMMON
29
LEAP
30
ENERGIZE
31
WEAPON_PERCENT_DAMAGE
32
TRIGGER_MISSILE
33
OPEN_LOCK
34
SUMMON_CHANGE_ITEM
35
APPLY_AREA_AURA_PARTY
36
LEARN_SPELL
37
SPELL_DEFENSE
38
DISPEL
39
LANGUAGE
40
DUAL_WIELD
41
SUMMON_WILD
42
SUMMON_GUARDIAN
43
TELEPORT_UNITS_FACE_CASTER
44
SKILL_STEP
45
ADD_HONOR
46
SPAWN
47
TRADE_SKILL
48
STEALTH
49
DETECT
50
TRANS_DOOR
51
FORCE_CRITICAL_HIT
52
GUARANTEE_HIT
53
ENCHANT_ITEM
54
ENCHANT_ITEM_TEMPORARY
55
TAMECREATURE
56
SUMMON_PET
57
LEARN_PET_SPELL
58
WEAPON_DAMAGE
59
OPEN_LOCK_ITEM
60
PROFICIENCY
61
SEND_EVENT
62
POWER_BURN
63
THREAT
64
TRIGGER_SPELL
65
HEALTH_FUNNEL
66
POWER_FUNNEL
67
HEAL_MAX_HEALTH
68
INTERRUPT_CAST
69
DISTRACT
70
PULL
71
PICKPOCKET
72
ADD_FARSIGHT
73
SUMMON_POSSESSED
74
SUMMON_TOTEM
75
HEAL_MECHANICAL
76
SUMMON_OBJECT_WILD
77
SCRIPT_EFFECT
78
ATTACK
79
SANCTUARY
80
ADD_COMBO_POINTS
81
CREATE_HOUSE
82
BIND_SIGHT
83
DUEL
84
STUCK
85
SUMMON_PLAYER
86
ACTIVATE_OBJECT
87
SUMMON_TOTEM_SLOT1
88
SUMMON_TOTEM_SLOT2
89
SUMMON_TOTEM_SLOT3
90
SUMMON_TOTEM_SLOT4
91
THREAT_ALL
92
ENCHANT_HELD_ITEM
93
SUMMON_PHANTASM
94
SELF_RESURRECT
95
SKINNING
96
CHARGE
97
SUMMON_CRITTER
98
KNOCK_BACK
99
DISENCHANT
100
INEBRIATE
101
FEED_PET
102
DISMISS_PET
103
REPUTATION
104
SUMMON_OBJECT_SLOT1
105
SUMMON_OBJECT_SLOT2
106
SUMMON_OBJECT_SLOT3
107
SUMMON_OBJECT_SLOT4
108
DISPEL_MECHANIC
109
SUMMON_DEAD_PET
110
DESTROY_ALL_TOTEMS
111
DURABILITY_DAMAGE
112
SUMMON_DEMON
113
RESURRECT_NEW
114
ATTACK_ME
115
DURABILITY_DAMAGE_PCT
116
SKIN_PLAYER_CORPSE
117
SPIRIT_HEAL
118
SKILL
119
APPLY_AREA_AURA_PET
120
TELEPORT_GRAVEYARD
121
NORMALIZED_WEAPON_DMG
122
122
123
SEND_TAXI
124
PLAYER_PULL
125
MODIFY_THREAT_PERCENT
126
126
127
127
128
APPLY_AREA_AURA_FRIEND
129
APPLY_AREA_AURA_ENEMY
130
DESPAWN_OBJECT
131
NOSTALRIUS
132
APPLY_AREA_AURA_RAID
133
APPLY_AREA_AURA_OWNER
Visuals, Icons & Family
spellVisual1 / spellVisual2 - Cast visual ids (SpellVisual.dbc);
spellVisual2 is skipped by the core (not used).
spellIconId / activeIconId - Tooltip/action icons.
spellPriority - Aura display priority.
spellFamilyName / spellFamilyFlags - Class/family identification used by procs
and talent interactions.
minTargetLevel / maxTargetLevel - Target level restrictions.
dmgClass - Damage class: 0 none, 1 magic, 2 melee, 3 ranged.
preventionType - What blocks casting: 0 none, 1 Silence, 2 Pacify
(SPELL_PREVENTION_TYPE_*).
stanceBarOrder - Position in the shapeshift bar (DBC passthrough; not read by the core).
Misc & Server Fields
dmgMultiplier1 , dmgMultiplier2 , dmgMultiplier3 - Per-effect damage
multiplier (e.g. AoE falloff).
minFactionId / minReputation - Reputation requirement for the spell to work (DBC passthrough; not read by the core).
requiredAuraVision - Caster needs an aura allowing them to see stealth/invisible
targets of this kind (DBC passthrough; not read by the core).
customFlags - Server-side flags loaded into SpellEntry::Custom (SPELL_CUSTOM_*,
SpellDefines.h: allow stacking between casters, fixed damage, ignore armor, separate aura per caster...).
script_name - C++ spell script binding (Scripts Library );
also referenced from spell_script_target setups.
Proc Behaviour
procFlags: event mask (melee/ranged swing or ability dealt & taken, spell cast, kill,
heartbeat tick...), bits defined as PROC_FLAG_* in src/game/Spells/SpellDefines.h.
procChance, procCharges: frequency & charge consumption.
Detailed triggers: spell_proc_event .