spell_proc_event - cmangos/issues GitHub Wiki
Back to world database list of tables.
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.
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 |
The spell ID that is capable to proc on an event.
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 |
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 |
These fields control what spells’ family flags can proc the triggered spell.
“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 |
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 |
This field controls the times per minute that the spell should proc. If zero, then the value is taken from the DBC entry.
Changed Proc Chance from spell_template information
Internal Cooldown