spell_proc
The `spell_proc` 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.
Structure
Field | Type | Attributes | Key | Null | Default | Extra | Comment |
int(11) | signed | PRI | NO | 0 | Unique | ||
tinyint(3) | unsigned | NO | 0 | ||||
smallint(5) | unsigned | NO | 0 | ||||
int(10) | unsigned | NO | 0 | ||||
int(10) | unsigned | NO | 0 | ||||
int(10) | unsigned | NO | 0 | ||||
int(10) | unsigned | NO | 0 | ||||
int(10) | unsigned | NO | 0 | ||||
int(10) | unsigned | NO | 0 | ||||
int(10) | unsigned | NO | 0 | ||||
int(10) | unsigned | NO | 0 | ||||
spell_proc#DisableEffectsMask | int(10) | unsigned | NO | 0 | |||
float | NO | 0 | |||||
float | NO | 0 | |||||
int(10) | unsigned | NO | 0 | ||||
tinyint(3) | unsigned | NO | 0 |
Description of the fields
SpellId
The Spell ID that is capable to proc on an event. (Can use negative spellId for ranked spells)
SchoolMask
This field contains a bitmask that controls on what types of spells 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 |
SpellFamilyName
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 |
53 | Monk |
107 | Demon Hunter |
SpellFamilyMask0
This field controls what spells' family flags can proc the triggered spell (you can find SpellFamilyFlags of some spell, using SpellWork).
SpellFamilyMask1
This field controls what spells' family flags can proc the triggered spell (you can find SpellFamilyFlags of some spell, using SpellWork).
SpellFamilyMask2
This field controls what spells' family flags can proc the triggered spell (you can find SpellFamilyFlags of some spell, using SpellWork).
ProcFlags
If non-zero, used to override the original spell ProcFlags in DBC.
A bitmask controlling what events trigger the spell. To combine possible events, add the proc bits together.
Example: 32+64=96 (PROC_FLAG_TAKEN_MELEE_SPELL_HIT + PROC_FLAG_SUCCESSFUL_RANGED_HIT)
Event | Flag | Bit value | Comment |
---|---|---|---|
PROC_FLAG_NONE | 0 | 0x00000000 | |
PROC_FLAG_KILLED | 1 | 0x00000001 | Killed by agressor |
PROC_FLAG_KILL | 2 | 0x00000002 | Kill target (in most cases need XP/Honor reward) |
PROC_FLAG_DONE_MELEE_AUTO_ATTACK | 4 | 0x00000004 | Done melee auto attack |
PROC_FLAG_TAKEN_MELEE_AUTO_ATTACK | 8 | 0x00000008 | Taken melee auto attack |
PROC_FLAG_DONE_SPELL_MELEE_DMG_CLASS | 16 | 0x00000010 | Done attack by Spell that has dmg class melee |
PROC_FLAG_TAKEN_SPELL_MELEE_DMG_CLASS | 32 | 0x00000020 | Taken attack by Spell that has dmg class melee |
PROC_FLAG_DONE_RANGED_AUTO_ATTACK | 64 | 0x00000040 | Done ranged auto attack |
PROC_FLAG_TAKEN_RANGED_AUTO_ATTACK | 128 | 0x00000080 | Taken ranged auto attack |
PROC_FLAG_DONE_SPELL_RANGED_DMG_CLASS | 256 | 0x00000100 | Done attack by Spell that has dmg class ranged |
PROC_FLAG_TAKEN_SPELL_RANGED_DMG_CLASS | 512 | 0x00000200 | Taken attack by Spell that has dmg class ranged |
PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_POS | 1024 | 0x00000400 | Done positive spell that has dmg class none |
PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_POS | 2048 | 0x00000800 | Taken positive spell that has dmg class none |
PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_NEG | 4096 | 0x00001000 | Done negative spell that has dmg class none |
PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_NEG | 8192 | 0x00002000 | Taken negative spell that has dmg class none |
PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_POS | 16384 | 0x00004000 | Done positive spell that has dmg class magic |
PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_POS | 32768 | 0x00008000 | Taken positive spell that has dmg class magic |
PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_NEG | 65536 | 0x00010000 | Done negative spell that has dmg class magic |
PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_NEG | 131072 | 0x00020000 | Taken negative spell that has dmg class magic |
PROC_FLAG_DONE_PERIODIC | 262144 | 0x00040000 | Periodic damage / healing done, determined from flags 14-17 |
PROC_FLAG_TAKEN_PERIODIC | 524288 | 0x00080000 | Periodic damage / healing taken, determined from flags 14-17 |
PROC_FLAG_TAKEN_DAMAGE | 1048576 | 0x00100000 | Any damage taken |
PROC_FLAG_DONE_TRAP_ACTIVATION | 2097152 | 0x00200000 | On trap activation |
PROC_FLAG_DONE_MAINHAND_ATTACK | 4194304 | 0x00400000 | Done main-hand melee attacks (spell and autoattack) |
PROC_FLAG_DONE_OFFHAND_ATTACK | 8388608 | 0x00800000 | Done off-hand melee attacks (spell and autoattack) |
PROC_FLAG_DEATH | 16777216 | 0x01000000 | Died in any way |
SpellTypeMask
Used to choose what types of spells may trigger the proc, to combine, just add the bit values.
Event | Flag | Bit | Comment |
PROC_SPELL_TYPE_NONE | 0 | 0x00000000 | |
PROC_SPELL_TYPE_DAMAGE | 1 | 0x00000001 | only damaging spells |
PROC_SPELL_TYPE_HEAL | 2 | 0x00000002 | only healing spells |
PROC_SPELL_TYPE_NO_DMG_HEAL | 4 | 0x00000004 | all other spells |
PROC_SPELL_TYPE_MASK_ALL | 7 | 0x00000007 | All masks combined |
SpellPhaseMask
At which phase may the spell trigger the proc, Normally one of them is used at the same time, but they might be combined too.
Event | Flag | Bit | Comment |
PROC_SPELL_PHASE_NONE | 0 | 0x00000000 | |
PROC_SPELL_PHASE_CAST | 1 | 0x00000001 | trigger when spell has just finished casting |
PROC_SPELL_PHASE_HIT | 2 | 0x00000002 | trigger when the spell hits its target |
PROC_SPELL_PHASE_FINISH | 4 | 0x00000004 | trigger after spell has done all its effects on all targets |
PROC_SPELL_PHASE_MASK_ALL | 7 | 0x00000007 | All masks combined |
HitMask
Used to add special conditions to spells, some spells might trigger only on critical strikes, for example.
Event | Flag | Bit | Comment |
PROC_HIT_NONE | 0 | 0x00000000 | (special see footnote) |
PROC_HIT_NORMAL | 1 | 0x00000001 | only non-critical hits |
PROC_HIT_CRITICAL | 2 | 0x00000002 | only critical hits |
PROC_HIT_MISS | 4 | 0x00000004 | self-explanatory |
PROC_HIT_FULL_RESIST | 8 | 0x00000008 | only on full resist (no partial) |
PROC_HIT_DODGE | 16 | 0x00000010 | self-explanatory |
PROC_HIT_PARRY | 32 | 0x00000020 | self-explanatory |
PROC_HIT_BLOCK | 64 | 0x00000040 | partial or full block |
PROC_HIT_EVADE | 128 | 0x00000080 | self-explanatory |
PROC_HIT_IMMUNE | 256 | 0x00000100 | self-explanatory |
PROC_HIT_DEFLECT | 512 | 0x00000200 | self-explanatory |
PROC_HIT_ABSORB | 1024 | 0x00000400 | partial or full absorb |
PROC_HIT_REFLECT | 2048 | 0x00000800 | self-explanatory |
PROC_HIT_INTERRUPT | 4096 | 0x00001000 | (not used atm) |
PROC_HIT_FULL_BLOCK | 8192 | 0x00002000 | only on full block |
PROC_HIT_MASK_ALL | 12287 | 0x00002FFF | All masks combined |
PROC_HIT_NONE will trigger on:
- PROC_HIT_NORMAL+PROC_HIT_CRITICAL, when trigger is TAKEN
- PROC_HIT_NORMAL+PROC_HIT_CRITICAL+PROC_HIT_ABSORB, when trigger is DONE
AttributesMask
Adds special behaviour to the proc, spell might trigger proc only if these conditions are fullfilled
Event | Flag | Bit | Comment |
PROC_ATTR_REQ_EXP_OR_HONOR | 1 | 0x0000001 | requires proc target to give exp or honor |
PROC_ATTR_TRIGGERED_CAN_PROC | 2 | 0x0000002 | aura can proc even when spell is triggered by another |
PROC_ATTR_REQ_MANA_COST | 4 | 0x0000004 | requires triggering spell to have a mana cost |
PROC_ATTR_REQ_SPELLMOD | 8 | 0x0000008 | requires triggering spell to be affected by aura SpellId (only for mod drops) |
PROC_ATTR_REDUCE_PROC_60 | 128 | 0x0000080 | aura has a reduced chance to proc if level of proc actor > 60 |
PROC_ATTR_CANT_PROC_FROM_ITEM_CAST | 256 | 0x0000100 | do not allow aura proc if proc is caused by a spell casted by item |
DisableEffectsMask
Disable proc of a effect (bitmask)
DisableEffect | Flag | Bit | Comment |
---|---|---|---|
EFFECT_0 | 1 | 0x0000001 | explicitly disables aura proc effect 0 |
EFFECT_1 | 2 | 0x0000002 | explicitly disables aura proc effect 1 |
EFFECT_2 | 4 | 0x0000004 | explicitly disables aura proc effect 2 |
ProcsPerMinute
If non-zero, this field controls the times per minute that the spell should proc. You might not set both ProcsPerMinute and Chance. in that case ProcsPerMinute takes precedence.
Chance
If non-zero, chance for spell to trigger. If both ProcsPerMinute and Chance are left in zero, takes ProcChance from DBC.
Cooldown
Define hidden cooldowns on the spell, in milliseconds. Also known as the proc's internal cooldown, or ICD.
Charges
If non-zero, overrides amount of aura charges available to proc. Else this value is taken from DBC.