spell_proc_event - cmangos/issues GitHub Wiki

Back to world database list of tables.

The `spell_proc_event` table

holds information on how certain spells activate, which proc other spells.

All spells in this table must have Aura Id 42 (SPELL_AURA_PROC_TRIGGER_SPELL) as one of its Effects.

Any entries in this table will overwrite the existing proc settings for this spell_template#id.

Structure

Field Type Null Key Default Extra
entry smallint(6) unsigned NO PRI 0
SchoolMask tinyint(4) NO 0
SpellFamilyName smallint(6) unsigned NO 0
SpellFamilyMask bigint(40) unsigned NO 0 Different Setup through Expansions
procFlags int(11) unsigned NO 0
procEx int(11) unsigned NO 0
ppmRate float NO 0
CustomChance float NO 0
Cooldown float NO 0

Description of the fields

entry

The spell ID that is capable to proc on an event.

SchoolMask

This field contains a bitmask that controls on what types of spell damages the proc can be triggered. For example if an aura procs only when the unit it is casted upon is hit by shadow spells (spell 34914). To combine spell schools, just add the bit values.

Bit Hex School Name Comment
1 0×01 SPELL_SCHOOL_NORMAL Physical Damage
2 0×02 SPELL_SCHOOL_HOLY Holy Damage
4 0×04 SPELL_SCHOOL_FIRE Fire Damage
8 0×08 SPELL_SCHOOL_NATURE Nature Damage
16 0×10 SPELL_SCHOOL_FROST Frost Damage
32 0×20 SPELL_SCHOOL_SHADOW Shadow Damage
64 0×40 SPELL_SCHOOL_ARCANE Arcane Damage

SpellFamilyName

This field controls what family name spells can proc the triggered spell.

ID Family Name ID Family Name
0 Generic 9 Hunter
3 Mage 10 Paladin
4 Warrior 11 Shaman
5 Warlock 13 Potion
6 Priest 15 Death Knight
7 Druid 53 Monk
8 Rogue 107 Demon Hunter

SpellFamilyMask

These fields control what spells’ family flags can proc the triggered spell.

procFlags

“enum ProcFlags” – A bitmask controlling what events trigger the spell. To combine possible events, add the proc bits together.

Bitmask Hex Name Comment
0 0×00000000 PROC_FLAG_NONE always
1 0×00000001 PROC_FLAG_HEARTBEAT Heartbeat
2 0×00000002 PROC_FLAG_KILL Kill target (in most cases need XP/Honor reward, see Unit::IsTriggeredAtSpellProcEvent for additinoal check)
4 0×00000004 PROC_FLAG_DEAL_MELEE_SWING Successful melee auto attack
8 0×00000008 PROC_FLAG_TAKE_MELEE_SWING Taken damage from melee auto attack hit
16 0×00000010 PROC_FLAG_DEAL_MELEE_ABILITY Successful attack by Spell that use melee weapon
32 0×00000020 PROC_FLAG_TAKE_MELEE_ABILITY Taken damage by Spell that use melee weapon
64 0×00000040 PROC_FLAG_DEAL_RANGED_ATTACK Successful Ranged auto attack
128 0×00000080 PROC_FLAG_TAKE_RANGED_ATTACK Taken damage from ranged auto attack
256 0×00000100 PROC_FLAG_DEAL_RANGED_ABILITY Successful Ranged attack by Spell that use ranged weapon
512 0×00000200 PROC_FLAG_TAKE_RANGED_ABILITY Taken damage by Spell that use ranged weapon
1024 0×00000400 PROC_FLAG_DEAL_HELPFUL_ABILITY Done positive spell that has dmg class none
2048 0×00000800 PROC_FLAG_TAKE_HELPFUL_ABILITY Taken positive spell that has dmg class none
4096 0×00001000 PROC_FLAG_DEAL_HARMFUL_ABILITY Done negative spell that has dmg class none
8192 0×00002000 PROC_FLAG_TAKE_HARMFUL_ABILITY Taken negative spell that has dmg class none
16384 0×00004000 PROC_FLAG_DEAL_HELPFUL_SPELL Successful cast positive spell (by default only on healing)
32768 0×00008000 PROC_FLAG_TAKE_HELPFUL_SPELL Taken positive spell hit (by default only on healing)
65536 0×00010000 PROC_FLAG_DEAL_HARMFUL_SPELL Successful negative spell cast (by default only on damage)
131072 0×00020000 PROC_FLAG_TAKE_HARMFUL_SPELL Taken negative spell (by default only on damage)
262144 0×00040000 PROC_FLAG_DEAL_HARMFUL_PERIODIC Successful do periodic (damage / healing, determined by PROC_EX_PERIODIC_POSITIVE or negative if no procEx)
524288 0×00080000 PROC_FLAG_TAKE_HARMFUL_PERIODIC Taken spell periodic (damage / healing, determined by PROC_EX_PERIODIC_POSITIVE or negative if no procEx)
1048576 0×00100000 PROC_FLAG_TAKE_ANY_DAMAGE Taken any damage
2097152 0×00200000 PROC_FLAG_ON_TRAP_ACTIVATION On trap activation – different from enumerated strings – likely reuse
4194304 0×00400000 PROC_FLAG_MAIN_HAND_WEAPON_SWING Successful main-hand melee attacks
8388608 0×00800000 PROC_FLAG_OFF_HAND_WEAPON_SWING Successful off-hand melee attacks
16777216 0×01000000 PROC_FLAG_DEATH On death by any means

procEx

Bit Hex ProcEx Name Comment
0 0×0000000 PROC_EX_NONE If none can trigger on Hit/Crit only (passive spells MUST defined by SpellFamily flag)
1 0×0000001 PROC_EX_NORMAL_HIT If set only from normal hit (only damage spells)
2 0×0000002 PROC_EX_CRITICAL_HIT only on crit
4 0×0000004 PROC_EX_MISS only on miss
8 0×0000008 PROC_EX_RESIST only on resist
16 0×0000010 PROC_EX_DODGE only on dodge
32 0×0000020 PROC_EX_PARRY only on parry
64 0×0000040 PROC_EX_BLOCK only on block
128 0×0000080 PROC_EX_EVADE only on evade
256 0×0000100 PROC_EX_IMMUNE only on immune
512 0×0000200 PROC_EX_DEFLECT only on deflect
1024 0×0000400 PROC_EX_ABSORB only on absorb
2048 0×0000800 PROC_EX_REFLECT only on reflect
4096 0×0001000 PROC_EX_INTERRUPT Melee hit result can be Interrupt (not used)
8192 0×0002000 PROC_EX_RESERVED1 UNUSED
16384 0×0004000 PROC_EX_RESERVED2 UNUSED
32768 0×0008000 PROC_EX_RESERVED3 UNUSED
65536 0×0010000 PROC_EX_EX_TRIGGER_ALWAYS If set trigger always ( no matter another flags) used for drop charges
131072 0×0020000 PROC_EX_EX_ONE_TIME_TRIGGER If set trigger always but only one time (not used)
262144 0×0040000 PROC_EX_PERIODIC_POSITIVE For periodic heal
524288 0×0080000 PROC_EX_CAST_END procs on end of cast
1048576 0×0100000 PROC_EX_MAGNET For grounding totem hit

ppmRate

This field controls the times per minute that the spell should proc. If zero, then the value is taken from the DBC entry.

CustomChance

Changed Proc Chance from spell_template information

Cooldown

Internal Cooldown

⚠️ **GitHub.com Fallback** ⚠️