Spell proc event

From OregonCore Wiki
Jump to: navigation, search

Back to world database list of tables.

The `spell_proc_event` table

This table holds information on what events (or procs) certain spells are activated. All spells in this table must have apply a SPELL_AURA_PROC_TRIGGER_SPELL (42) aura. Any entries in this table will overwrite the existing proc settings in the spell's DBC entry.

Schema Last Modified: TC1-1828 - Schema Verified: Rev 665


Field Type Attributes Key Null Default Extra Comment
entry smallint(5) unsigned PRI NO 0
SchoolMask tinyint(4) signed NO 0
SpellFamilyName smallint(6) unsigned NO 0
SpellFamilyMask bigint(40) unsigned NO 0
procFlags int(10) unsigned NO 0
procEx int(10) unsigned NO 0
ppmRate float signed NO 0
CustomChance float signed NO 0
Cooldown int(10) unsigned NO 0

Description of the fields


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.

School ID Bit Name
0 1 Physical
1 2 Holy
2 4 Fire
3 8 Nature
4 16 Frost
5 32 Shadow
6 64 Arcane


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

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


This field controls what spells' family flags can proc the triggered spell. The 3 columns are always used together and they indicate ONE spell family.

To understand the concept of spell family lets use an example: Warlock's Life Tap. On the DBC this spell have SellFamilyName=5, SpellFamilyFlags1=262144, SpellFamilyFlags2=0, SpellFamilyFlags3=0. This supposedly two together supposedly selects one group of spells, in this case Warlock's Life Tap (all ranks). The fact that this values group all the ranks create the concept of SPELL FAMILY. Now, you must be confused about this SpellFamilyFlags[], but in fact is very easy to read, just transform it to hex: "". So, the SpellFamilyMask can easily group several spells from a family just using an OR operation between 2 families. Below we show a toy example, Warlock's Life Tap & Fear:

  • 0x00040000 0x00000000 0x00000000 (Life Tap)
  • 0x00000000 0x00000400 0x00000000 (Fear)
  • 0x00040000 0x00000400 0x00000000 (Resulting SpellFamilyMask)


A bitmask controlling what events trigger the spell. To combine possible events, add the proc bits together.

Event Bit Comment
PROC_FLAG_NONE 0x00000000
PROC_FLAG_KILLED 0x00000001 Killed by agressor
PROC_FLAG_KILL_AND_GET_XP 0x00000002 Kill that yields experience or honor
PROC_FLAG_SUCCESSFUL_MELEE_HIT 0x00000004 Successful melee attack
PROC_FLAG_TAKEN_MELEE_HIT 0x00000008 Taken damage from melee strike hit
PROC_FLAG_SUCCESSFUL_MELEE_SPELL_HIT 0x00000010 Successful attack by Spell that use melee weapon
PROC_FLAG_TAKEN_MELEE_SPELL_HIT 0x00000020 Taken damage by Spell that use melee weapon
PROC_FLAG_SUCCESSFUL_RANGED_HIT 0x00000040 Successful Ranged attack (all ranged attack deal as spell so newer set :( )
PROC_FLAG_TAKEN_RANGED_HIT 0x00000080 Taken damage from ranged attack (all ranged attack deal as spell so newer set :( )
PROC_FLAG_SUCCESSFUL_RANGED_SPELL_HIT 0x00000100 Successful Ranged attack by Spell that use ranged weapon
PROC_FLAG_TAKEN_RANGED_SPELL_HIT 0x00000200 Taken damage by Spell that use ranged weapon
PROC_FLAG_SUCCESSFUL_POSITIVE_AOE_HIT 0x00000400 Successful AoE (not 100% shure unused)
PROC_FLAG_TAKEN_POSITIVE_AOE 0x00000800 Taken AoE (not 100% shure unused)
PROC_FLAG_SUCCESSFUL_AOE_SPELL_HIT 0x00001000 Successful AoE damage spell hit (not 100% shure unused)
PROC_FLAG_TAKEN_AOE_SPELL_HIT 0x00002000 Taken AoE damage spell hit (not 100% shure unused)
PROC_FLAG_SUCCESSFUL_POSITIVE_SPELL 0x00004000 Successful cast positive spell (by default only on healing)
PROC_FLAG_TAKEN_POSITIVE_SPELL 0x00008000 Taken positive spell hit (by default only on healing)
PROC_FLAG_SUCCESSFUL_NEGATIVE_SPELL_HIT 0x00010000 Successful negative spell cast (by default only on damage)
PROC_FLAG_TAKEN_NEGATIVE_SPELL_HIT 0x00020000 Taken negative spell (by default only on damage)
PROC_FLAG_ON_DO_PERIODIC 0x00040000 Successful do periodic (damage / healing determined from 14-17 flags)
PROC_FLAG_ON_TAKE_PERIODIC 0x00080000 Taken spell periodic (damage / healing determined from 14-17 flags)
PROC_FLAG_TAKEN_ANY_DAMAGE 0x00100000 Taken any damage
PROC_FLAG_ON_TRAP_ACTIVATION 0x00200000 On trap activation
PROC_FLAG_TAKEN_OFFHAND_HIT 0x00400000 Taken off-hand melee attacks(not used)
PROC_FLAG_SUCCESSFUL_OFFHAND_HIT 0x00800000 Successful off-hand melee attacks


A bitmask controlling what results affect the above events. To combine possible results, add the proc bits together.

Event Bit Comment
PROC_EX_NONE 0x00000000 If none can tigger on Hit/Crit only (passive spells MUST defined by SpellFamily flag)
PROC_EX_NORMAL_HIT 0x00000001 If set only from normal hit (only damage spells)
PROC_EX_MISS 0x00000004
PROC_EX_RESIST 0x00000008
PROC_EX_DODGE 0x00000010
PROC_EX_PARRY 0x00000020
PROC_EX_BLOCK 0x00000040
PROC_EX_EVADE 0x00000080
PROC_EX_IMMUNE 0x00000100
PROC_EX_DEFLECT 0x00000200
PROC_EX_ABSORB 0x00000400
PROC_EX_REFLECT 0x00000800
PROC_EX_INTERRUPT 0x00001000 Melee hit result can be Interrupt (not used)
PROC_EX_FULL_BLOCK 0x00002000 block all attack damage
PROC_EX_RESERVED2 0x00004000
PROC_EX_NOT_ACTIVE_SPELL 0x00008000 Spell mustn't do damage/heal to proc
PROC_EX_EX_TRIGGER_ALWAYS 0x00010000 If set trigger always no matter of hit result
PROC_EX_EX_ONE_TIME_TRIGGER 0x00020000 If set trigger always but only one time (not implemented yet)
PROC_EX_ONLY_ACTIVE_SPELL 0x00040000 Spell has to do damage/heal to proc


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



This field controls the minimum interval between two spell procs of the refered spell.