Spell.dbc/procFlags

From wowdev
Jump to navigation Jump to search

This information is located in the source file of "..src\server\game\Spell\SpellMgr.h".

Version - 3.3.5.12340 - ProcFlags (Wrath)

Flag Attribute String Bitmask Comments
0 PROC_FLAG_NONE 0x00000000 - N/A
1 PROC_FLAG_HEARTBEAT 0x00000001 - 01 Occurs when a spell "heartbeat" checks to see if the aura breaks, used in spells with that attribute at 25/50/75% duration to see if the spell breaks based on resistances.
2 PROC_FLAG_KILL 0x00000002 - 02 Kill target (in most cases need XP/Honor reward).
4 PROC_FLAG_DONE_MELEE_AUTO_ATTACK 0x00000004 - 03 Done melee auto attack.
8 PROC_FLAG_TAKEN_MELEE_AUTO_ATTACK 0x00000008 - 04 Taken melee auto attack.
16 PROC_FLAG_DONE_SPELL_MELEE_DMG_CLASS 0x00000010 - 05 Done attack by Spell that has dmg class melee.
32 PROC_FLAG_TAKEN_SPELL_MELEE_DMG_CLASS 0x00000020 - 06 Taken attack by Spell that has dmg class melee.
64 PROC_FLAG_DONE_RANGED_AUTO_ATTACK 0x00000040 - 07 Done ranged auto attack.
128 PROC_FLAG_TAKEN_RANGED_AUTO_ATTACK 0x00000080 - 08 Taken ranged auto attack.
256 PROC_FLAG_DONE_SPELL_RANGED_DMG_CLASS 0x00000100 - 09 Done attack by Spell that has dmg class ranged.
512 PROC_FLAG_TAKEN_SPELL_RANGED_DMG_CLASS 0x00000200 - 10 Taken attack by Spell that has dmg class ranged.
1,024 PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_POS 0x00000400 - 11 Done positive spell that has dmg class none.
2,048 PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_POS 0x00000800 - 12 Taken positive spell that has dmg class none.
4,096 PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_NEG 0x00001000 - 13 Done negative spell that has dmg class none.
8,192 PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_NEG 0x00002000 - 14 Taken negative spell that has dmg class none.
16,384 PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_POS 0x00004000 - 15 Done positive spell that has dmg class magic.
32,768 PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_POS 0x00008000 - 16 Taken positive spell that has dmg class magic.
65,536 PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_NEG 0x00010000 - 17 Done negative spell that has dmg class magic.
131,072 PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_NEG 0x00020000 - 18 Taken negative spell that has dmg class magic.
262,144 PROC_FLAG_DONE_PERIODIC 0x00040000 - 19 Successful do periodic (damage / healing). (Only applies to DoTs/HoTs done by the caster including taking their own spells).
524,288 PROC_FLAG_TAKEN_PERIODIC 0x00080000 - 20 Taken spell periodic (damage / healing). (Only applies to DoTs/HoTs taken by anyone except the caster).
1,048,576 PROC_FLAG_TAKEN_DAMAGE 0x00100000 - 21 Taken any damage.
2,097,152 PROC_FLAG_DONE_TRAP_ACTIVATION 0x00200000 - 22 On trap activation (possibly needs name change to ON_GAMEOBJECT_CAST or USE).
4,194,304 PROC_FLAG_DONE_MAINHAND_ATTACK 0x00400000 - 23 Done main-hand melee attacks (spell and autoattack).
8,388,608 PROC_FLAG_DONE_OFFHAND_ATTACK 0x00800000 - 24 Done off-hand melee attacks (spell and autoattack).
16,777,216 PROC_FLAG_DEATH 0x01000000 - 25 Died in any way.


The following ProcFlagsExLegacy was sourced from 5.4.8 code. I am not sure if this dates back before 3.0 or not but it is the same in current master branch. Possibly fork dependent for later than 3.3.5a in some instances.
No comment means the title is self descriptive or not enough information.

Version - 3.0 and Higher - ProcFlagsExLegacy - ProcFlagsEx (Wrath … DF)

Flag String Name Bitmask Comments
0 PROC_EX_NONE 0x00000000 PROC_HIT_CRITICAL for TAKEN proc type, PROC_HIT_NORMAL | PROC_HIT_CRITICAL | PROC_HIT_ABSORB for DONE.
1 PROC_EX_NORMAL_HIT 0x00000001 1 - Triggers from a normal hit (only damage spells, non-critical hits).
2 PROC_EX_CRITICAL_HIT 0x00000002 2 -
4 PROC_EX_MISS 0x00000004 3 -
8 PROC_EX_RESIST 0x00000008 4 -
16 PROC_EX_DODGE 0x00000010 5 -
32 PROC_EX_PARRY 0x00000020 6 -
64 PROC_EX_BLOCK 0x00000040 7 - Partial or full block.
128 PROC_EX_EVADE 0x00000080 8 -
256 PROC_EX_IMMUNE 0x00000100 9 -
512 PROC_EX_DEFLECT 0x00000200 10 -
1,024 PROC_EX_ABSORB 0x00000400 11 - Partial or full absorb
2,048 PROC_EX_REFLECT 0x00000800 12 - Similarly like the above might not require a full spell reflect.
4,096 PROC_EX_INTERRUPT 0x00001000 13 - Melee hit result can be Interrupt (not used).
8,192 PROC_EX_FULL_BLOCK 0x00002000 14 - Blocks all attack damage.
16,384 PROC_EX_RESERVED2 0x00004000 15 - Personal loot method is enforced.
32,768 PROC_EX_NOT_ACTIVE_SPELL 0x00008000 16 - Spell must not do damage/heal to proc.
65,536 PROC_EX_EX_TRIGGER_ALWAYS 0x00010000 17 - If this is set it will always trigger no matter the hit outcome.
131,072 PROC_EX_EX_ONE_TIME_TRIGGER 0x00020000 18 - If set this will trigger always but only one time. (This might have never been implemented in this method.)
262,144 PROC_EX_ONLY_ACTIVE_SPELL 0x00040000 19 - The spell has to do damage or healing to proc.
524,288 PROC_EX_INTERNAL_CANT_PROC 0x00080000 20 - Flag for internal use - do not use these in DB.
1,048,576 PROC_EX_INTERNAL_DOT 0x00100000 21 - Flag for internal use - do not use these in DB.
2,097,152 PROC_EX_INTERNAL_HOT 0x00200000 22 - Flag for internal use - do not use these in DB.
4,194,304 PROC_EX_INTERNAL_TRIGGERED 0x00400000 23 - Flag for internal use - do not use these in DB.
8,388,608 PROC_EX_INTERNAL_REQ_FAMILY 0x00800000 24 - Flag for internal use - do not use these in DB.

Extra ProcEx Mask Information - AURA_SPELL_PROC_EX_MASK =

  (PROC_EX_NORMAL_HIT | PROC_EX_CRITICAL_HIT | PROC_EX_MISS | \
   PROC_EX_RESIST | PROC_EX_DODGE | PROC_EX_PARRY | PROC_EX_BLOCK | \
   PROC_EX_EVADE | PROC_EX_IMMUNE | PROC_EX_DEFLECT | \
   PROC_EX_ABSORB | PROC_EX_REFLECT | PROC_EX_INTERRUPT)


Version - 10.1.0+ (Master Branch 5/9/23) - ProcFlags (DF)

Flag Attribute String Bitmask Comments
0 PROC_FLAG_NONE 0x00000000 - N/A
1 PROC_FLAG_HEARTBEAT 0x00000001 - 00 Occurs when a spell "heartbeat" checks to see if the aura breaks, used in spells with that attribute at 25/50/75% duration to see if the spell breaks based on resistances.
2 PROC_FLAG_KILL 0x00000002 - 01 Kill target (in most cases need XP/Honor reward).
4 PROC_FLAG_DEAL_MELEE_SWING 0x00000004 - 02 Done melee auto attack.
8 PROC_FLAG_TAKE_MELEE_SWING 0x00000008 - 03 Taken melee auto attack.
16 PROC_FLAG_DEAL_MELEE_ABILITY 0x00000010 - 04 Done attack by Spell that has dmg class melee.
32 PROC_FLAG_TAKE_MELEE_ABILITY 0x00000020 - 05 Taken attack by Spell that has dmg class melee.
64 PROC_FLAG_DEAL_RANGED_ATTACK 0x00000040 - 06 Done ranged auto attack.
128 PROC_FLAG_TAKE_RANGED_ATTACK 0x00000080 - 07 Taken ranged auto attack.
256 PROC_FLAG_DEAL_RANGED_ABILITY 0x00000100 - 08 Done attack by Spell that has dmg class ranged.
512 PROC_FLAG_TAKE_RANGED_ABILITY 0x00000200 - 09 Taken attack by Spell that has dmg class ranged.
1,024 PROC_FLAG_DEAL_HELPFUL_ABILITY 0x00000400 - 10 Done positive spell that has dmg class none.
2,048 PROC_FLAG_TAKE_HELPFUL_ABILITY 0x00000800 - 11 Taken positive spell that has dmg class none.
4,096 PROC_FLAG_DEAL_HARMFUL_ABILITY 0x00001000 - 12 Done negative spell that has dmg class none.
8,192 PROC_FLAG_TAKE_HARMFUL_ABILITY 0x00002000 - 13 Taken negative spell that has dmg class none.
16,384 PROC_FLAG_DEAL_HELPFUL_SPELL 0x00004000 - 14 Done positive spell that has dmg class magic.
32,768 PROC_FLAG_TAKE_HELPFUL_SPELL 0x00008000 - 15 Taken positive spell that has dmg class magic.
65,536 PROC_FLAG_DEAL_HARMFUL_SPELL 0x00010000 - 16 Done negative spell that has dmg class magic.
131,072 PROC_FLAG_TAKE_HARMFUL_SPELL 0x00020000 - 17 Taken negative spell that has dmg class magic.
262,144 PROC_FLAG_DEAL_HARMFUL_PERIODIC 0x00040000 - 18 Successful do periodic damage.
524,288 PROC_FLAG_TAKE_HARMFUL_PERIODIC 0x00080000 - 19 Taken spell periodic (damage / healing).
1,048,576 PROC_FLAG_TAKE_ANY_DAMAGE 0x00100000 - 20 Taken any damage.
2,097,152 PROC_FLAG_DEAL_HELPFUL_PERIODIC 0x00200000 - 21 Successful do periodic healing.
4,194,304 PROC_FLAG_MAIN_HAND_WEAPON_SWING 0x00400000 - 22 Done main-hand melee attacks (spell and autoattack).
8,388,608 PROC_FLAG_OFF_HAND_WEAPON_SWING 0x00800000 - 23 Done off-hand melee attacks (spell and autoattack).
16,777,216 PROC_FLAG_DEATH 0x01000000 - 24 Died in any way.
33,554,432 PROC_FLAG_JUMP 0x02000000 - 25 Jumped.
67,108,864 PROC_FLAG_PROC_CLONE_SPELL 0x04000000 - 26 Proc Clone Spell.
134,217,728 PROC_FLAG_ENTER_COMBAT 0x08000000 - 27 Entered combat.
268,435,456 PROC_FLAG_ENCOUNTER_START 0x10000000 - 28 Encounter started.
536,870,912 PROC_FLAG_CAST_ENDED 0x20000000 - 29 Cast Ended.
1,073,741,824 PROC_FLAG_LOOTED 0x40000000 - 30 Looted (took from loot, not opened loot window).
2,147,483,648 PROC_FLAG_TAKE_HELPFUL_PERIODIC 0x80000000 - 31 Take Helpful Periodic.

Version - 10.1.0+ (Master Branch 5/9/23) - ProcFlags2 (DF)

Flag Attribute String Bitmask Comments
0 PROC_FLAG_2_NONE 0x00000000 - N/A
1 PROC_FLAG_2_TARGET_DIES 0x00000001 - 00 Occurs when player tapped target dies.
2 PROC_FLAG_2_KNOCKBACK 0x00000002 - 01 Triggers on knockback. (Not tested if this is player or target.)
4 PROC_FLAG_2_CAST_SUCCESSFUL 0x00000004 - 02 This flag procs on a spell that completed its cast and was not interrupted in any way.

Version - 10.1.0+ (Master Branch 5/9/23) - ProcFlagMasks (Flag Mask Combinations) (DF)

   AUTO_ATTACK_PROC_FLAG_MASK                  = PROC_FLAG_DEAL_MELEE_SWING | PROC_FLAG_TAKE_MELEE_SWING
                                               | PROC_FLAG_DEAL_RANGED_ATTACK | PROC_FLAG_TAKE_RANGED_ATTACK,
   MELEE_PROC_FLAG_MASK                        = PROC_FLAG_DEAL_MELEE_SWING | PROC_FLAG_TAKE_MELEE_SWING
                                               | PROC_FLAG_DEAL_MELEE_ABILITY | PROC_FLAG_TAKE_MELEE_ABILITY
                                               | PROC_FLAG_MAIN_HAND_WEAPON_SWING | PROC_FLAG_OFF_HAND_WEAPON_SWING,
   RANGED_PROC_FLAG_MASK                       = PROC_FLAG_DEAL_RANGED_ATTACK | PROC_FLAG_TAKE_RANGED_ATTACK
                                               | PROC_FLAG_DEAL_RANGED_ABILITY | PROC_FLAG_TAKE_RANGED_ABILITY,
   SPELL_PROC_FLAG_MASK                        = PROC_FLAG_DEAL_MELEE_ABILITY | PROC_FLAG_TAKE_MELEE_ABILITY
                                               | PROC_FLAG_DEAL_RANGED_ATTACK | PROC_FLAG_TAKE_RANGED_ATTACK
                                               | PROC_FLAG_DEAL_RANGED_ABILITY | PROC_FLAG_TAKE_RANGED_ABILITY
                                               | PROC_FLAG_DEAL_HELPFUL_ABILITY | PROC_FLAG_TAKE_HELPFUL_ABILITY
                                               | PROC_FLAG_DEAL_HARMFUL_ABILITY | PROC_FLAG_TAKE_HARMFUL_ABILITY
                                               | PROC_FLAG_DEAL_HELPFUL_SPELL | PROC_FLAG_TAKE_HELPFUL_SPELL
                                               | PROC_FLAG_DEAL_HARMFUL_SPELL | PROC_FLAG_TAKE_HARMFUL_SPELL
                                               | PROC_FLAG_DEAL_HARMFUL_PERIODIC | PROC_FLAG_TAKE_HARMFUL_PERIODIC
                                               | PROC_FLAG_DEAL_HELPFUL_PERIODIC | PROC_FLAG_TAKE_HELPFUL_PERIODIC,
   DONE_HIT_PROC_FLAG_MASK                     = PROC_FLAG_DEAL_MELEE_SWING | PROC_FLAG_DEAL_RANGED_ATTACK
                                               | PROC_FLAG_DEAL_MELEE_ABILITY | PROC_FLAG_DEAL_RANGED_ABILITY
                                               | PROC_FLAG_DEAL_HELPFUL_ABILITY | PROC_FLAG_DEAL_HARMFUL_ABILITY
                                               | PROC_FLAG_DEAL_HELPFUL_SPELL | PROC_FLAG_DEAL_HARMFUL_SPELL
                                               | PROC_FLAG_DEAL_HARMFUL_PERIODIC | PROC_FLAG_DEAL_HELPFUL_PERIODIC
                                               | PROC_FLAG_MAIN_HAND_WEAPON_SWING | PROC_FLAG_OFF_HAND_WEAPON_SWING,
   TAKEN_HIT_PROC_FLAG_MASK                    = PROC_FLAG_TAKE_MELEE_SWING | PROC_FLAG_TAKE_RANGED_ATTACK
                                               | PROC_FLAG_TAKE_MELEE_ABILITY | PROC_FLAG_TAKE_RANGED_ABILITY
                                               | PROC_FLAG_TAKE_HELPFUL_ABILITY | PROC_FLAG_TAKE_HARMFUL_ABILITY
                                               | PROC_FLAG_TAKE_HELPFUL_SPELL | PROC_FLAG_TAKE_HARMFUL_SPELL
                                               | PROC_FLAG_TAKE_HARMFUL_PERIODIC | PROC_FLAG_TAKE_HELPFUL_PERIODIC
                                               | PROC_FLAG_TAKE_ANY_DAMAGE,
   REQ_SPELL_PHASE_PROC_FLAG_MASK              = SPELL_PROC_FLAG_MASK & DONE_HIT_PROC_FLAG_MASK


Version - 10.1.0+ (Master Branch 5/9/23) - ProcFlagsSpellType (DF)

   PROC_SPELL_TYPE_NONE              = 0x0000000,
   PROC_SPELL_TYPE_DAMAGE            = 0x0000001, // damage type of spell
   PROC_SPELL_TYPE_HEAL              = 0x0000002, // heal type of spell
   PROC_SPELL_TYPE_NO_DMG_HEAL       = 0x0000004, // other spells
   PROC_SPELL_TYPE_MASK_ALL          = PROC_SPELL_TYPE_DAMAGE | PROC_SPELL_TYPE_HEAL | PROC_SPELL_TYPE_NO_DMG_HEAL


Version - 10.1.0+ (Master Branch 5/9/23) - ProcFlagsSpellPhase (DF)

   PROC_SPELL_PHASE_NONE             = 0x0000000,
   PROC_SPELL_PHASE_CAST             = 0x0000001,
   PROC_SPELL_PHASE_HIT              = 0x0000002,
   PROC_SPELL_PHASE_FINISH           = 0x0000004,
   PROC_SPELL_PHASE_MASK_ALL         = PROC_SPELL_PHASE_CAST | PROC_SPELL_PHASE_HIT | PROC_SPELL_PHASE_FINISH


Version - 10.1.0+ (Master Branch 5/9/23) - ProcFlagsHit (DF)

   PROC_HIT_NONE                = 0x0000000, // no value - PROC_HIT_NORMAL | PROC_HIT_CRITICAL for TAKEN proc type, PROC_HIT_NORMAL | PROC_HIT_CRITICAL | PROC_HIT_ABSORB for DONE
   PROC_HIT_NORMAL              = 0x0000001, // non-critical hits
   PROC_HIT_CRITICAL            = 0x0000002,
   PROC_HIT_MISS                = 0x0000004,
   PROC_HIT_FULL_RESIST         = 0x0000008,
   PROC_HIT_DODGE               = 0x0000010,
   PROC_HIT_PARRY               = 0x0000020,
   PROC_HIT_BLOCK               = 0x0000040, // partial or full block
   PROC_HIT_EVADE               = 0x0000080,
   PROC_HIT_IMMUNE              = 0x0000100,
   PROC_HIT_DEFLECT             = 0x0000200,
   PROC_HIT_ABSORB              = 0x0000400, // partial or full absorb
   PROC_HIT_REFLECT             = 0x0000800,
   PROC_HIT_INTERRUPT           = 0x0001000,
   PROC_HIT_FULL_BLOCK          = 0x0002000,
   PROC_HIT_MASK_ALL            = 0x0003FFF


Version - 10.1.0+ (Master Branch 5/9/23) - ProcAttributes (DF)

   PROC_ATTR_NONE                      = 0x0000000,
   PROC_ATTR_REQ_EXP_OR_HONOR          = 0x0000001, // requires proc target to give exp or honor for aura proc
   PROC_ATTR_TRIGGERED_CAN_PROC        = 0x0000002, // aura can proc even with triggered spells
   PROC_ATTR_REQ_POWER_COST            = 0x0000004, // requires triggering spell to have a power cost for aura proc
   PROC_ATTR_REQ_SPELLMOD              = 0x0000008, // requires triggering spell to be affected by proccing aura to drop charges
   PROC_ATTR_USE_STACKS_FOR_CHARGES    = 0x0000010, // consuming proc drops a stack from proccing aura instead of charge
   PROC_ATTR_REDUCE_PROC_60            = 0x0000080, // aura should have a reduced chance to proc if level of proc Player >60
   PROC_ATTR_CANT_PROC_FROM_ITEM_CAST  = 0x0000100, // do not allow aura proc if proc is caused by a spell casted by item