Spell.dbc/Attributes: Difference between revisions

From wowdev
Jump to navigation Jump to search
m (Fixed error.)
m (Wording Cleanup.)
Line 4: Line 4:
! Flag !! Attribute String !! Bitmask !! Comments
! Flag !! Attribute String !! Bitmask !! Comments
|-
|-
| 1 || SPELL_ATTR0_FAILURE_BURNS_CHARGE || 0x00000001 || 0 - Proc Failure Burns Charge.
| 1 || SPELL_ATTR0_FAILURE_BURNS_CHARGE || 0x00000001 || 0 - The spell will consume a charge that is natural or procced even if it fails to apply it's effect.
|-
|-
| 2 || SPELL_ATTR0_REQ_AMMO || 0x00000002 || 1 - Uses Ranged Slot.
| 2 || SPELL_ATTR0_REQ_AMMO || 0x00000002 || 1 - Indicates use of the inventory ranged slot.
|-
|-
| 4 || SPELL_ATTR0_ON_NEXT_SWING_NO_DMG || 0x00000004 || 2 - On Next Swing (No Damage).
| 4 || SPELL_ATTR0_ON_NEXT_SWING_NO_DMG || 0x00000004 || 2 - On next swing after current global cooldown. (No Damage).
|-
|-
| 8 || SPELL_ATTR0_IS_REPLENISHMENT || 0x00000008 || 3 - Not set in 3.0.3. TBC Classic : "Do Not Log Immune Misses".
| 8 || SPELL_ATTR0_IS_REPLENISHMENT || 0x00000008 || 3 - Not set in 3.0.3. TBC Classic: "Do Not Log Immune Misses".
|-
|-
| 16 || SPELL_ATTR0_IS_ABILITY || 0x00000010 || 4 - Client puts 'ability' instead of 'spell' in game strings for these spells.
| 16 || SPELL_ATTR0_IS_ABILITY || 0x00000010 || 4 - Client puts "Ability" instead of "Spell" in the strings associated with this spell.
|-
|-
| 32 || SPELL_ATTR0_IS_TRADESKILL || 0x00000020 || 5 - Trade spells (recipes), will be added by client to a sublist of profession spell.
| 32 || SPELL_ATTR0_IS_TRADESKILL || 0x00000020 || 5 - Trade spells (recipes), will be added by client to a sublist of profession spell.
|-
|-
| 64 || SPELL_ATTR0_PASSIVE || 0x00000040 || 6 - Passive spell.
| 64 || SPELL_ATTR0_PASSIVE || 0x00000040 || 6 - Passive spell and lists them accordingly.
|-
|-
| 128 || SPELL_ATTR0_HIDDEN_CLIENTSIDE || 0x00000080 || 7 - Spells with this attribute are not visible in spellbook or aura bar. Do Not Display (Spellbook, Aura Icon, Combat Log).
| 128 || SPELL_ATTR0_HIDDEN_CLIENTSIDE || 0x00000080 || 7 - Spells with this attribute are not visible in spellbook or aura bar. Do not display (Spellbook, Aura Icon, Combat Log).
|-
|-
| 256 || SPELL_ATTR0_HIDE_IN_COMBAT_LOG || 0x00000100 || 8 - This attribite controls whether spell appears in combat logs.
| 256 || SPELL_ATTR0_HIDE_IN_COMBAT_LOG || 0x00000100 || 8 - This attribute controls whether the spell appears in combat logs.
|-
|-
| 512 || SPELL_ATTR0_TARGET_MAINHAND_ITEM || 0x00000200 || 9 - Client automatically selects item from mainhand slot as a cast target. TBC Classic : "Held Item Only".
| 512 || SPELL_ATTR0_TARGET_MAINHAND_ITEM || 0x00000200 || 9 - Client automatically selects item from mainhand slot as a cast target. TBC Classic: "Held Item Only".
|-
|-
| 1,024 || SPELL_ATTR0_ON_NEXT_SWING || 0x00000400 || 10 - Only used by 14 spells.
| 1,024 || SPELL_ATTR0_ON_NEXT_SWING || 0x00000400 || 10 - Only used by 14 spells.
|-
|-
| 2,048 || SPELL_ATTR0_UNK11 || 0x00000800 || 11 - TBC Classic : "Wearer Casts Proc Trigger".
| 2,048 || SPELL_ATTR0_UNK11 || 0x00000800 || 11 - TBC Classic: "Wearer Casts Proc Trigger".
|-
|-
| 4,096 || SPELL_ATTR0_DAYTIME_ONLY || 0x00001000 || 12 - Only useable at daytime, not set in 2.4.2. TBC Classic : "Server Only".
| 4,096 || SPELL_ATTR0_DAYTIME_ONLY || 0x00001000 || 12 - Only useable at daytime, not set in 2.4.2. TBC Classic: "Server Only".
|-
|-
| 8,192 || SPELL_ATTR0_NIGHT_ONLY || 0x00002000 || 13 - Only useable at night, not set in 2.4.2. TBC Classic : "Allow Item Spell In PvP".
| 8,192 || SPELL_ATTR0_NIGHT_ONLY || 0x00002000 || 13 - Only useable at night, not set in 2.4.2. TBC Classic: "Allow Item Spell In PvP".
|-
|-
| 16,384 || SPELL_ATTR0_INDOORS_ONLY || 0x00004000 || 14 - Only useable indoors, not set in 2.4.2.
| 16,384 || SPELL_ATTR0_INDOORS_ONLY || 0x00004000 || 14 - Only useable indoors, not set in 2.4.2.
|-
|-
| 32,768 || SPELL_ATTR0_OUTDOORS_ONLY || 0x00008000 || 15 - Only useable outdoors.
| 32,768 || SPELL_ATTR0_OUTDOORS_ONLY || 0x00008000 || 15 - Only useable outdoors (Above ground level or not inside of a WMO for example).
|-
|-
| 65,536 || SPELL_ATTR0_NOT_SHAPESHIFT || 0x00010000 || 16 - Not while shapeshifted.
| 65,536 || SPELL_ATTR0_NOT_SHAPESHIFT || 0x00010000 || 16 - Spell may not be cast while under the effect of a conditional dependent Shapeshift.
|-
|-
| 131,072 || SPELL_ATTR0_ONLY_STEALTHED || 0x00020000 || 17 - Must be in stealth.
| 131,072 || SPELL_ATTR0_ONLY_STEALTHED || 0x00020000 || 17 - Must be in stealth.
|-
|-
| 262,144 || SPELL_ATTR0_DONT_SHEATH || 0x00040000 || 18 - Client won't hide unit weapons in sheath on cast/channel.
| 262,144 || SPELL_ATTR0_DONT_SHEATH || 0x00040000 || 18 - Client won't hide unit weapons during sheath on casting or channeling a spell. (Should be used with Attr2/ExB 0x00000200?)
|-
|-
| 524,288 || SPELL_ATTR0_LEVEL_DAMAGE_CALCULATION || 0x00080000 || 19 - Spelldamage depends on caster level.
| 524,288 || SPELL_ATTR0_LEVEL_DAMAGE_CALCULATION || 0x00080000 || 19 - Spell damage depends on level of the caster.
|-
|-
| 1,048,576 || SPELL_ATTR0_STOP_ATTACK_TARGET || 0x00100000 || 20 - Cancels Auto Attack Combat.
| 1,048,576 || SPELL_ATTR0_STOP_ATTACK_TARGET || 0x00100000 || 20 - Cancels auto attack in combat.
|-
|-
| 2,097,152 || SPELL_ATTR0_IMPOSSIBLE_DODGE_PARRY_BLOCK || 0x00200000 || 21 - Cannot be dodged/parried/blocked. No Active Defense.
| 2,097,152 || SPELL_ATTR0_IMPOSSIBLE_DODGE_PARRY_BLOCK || 0x00200000 || 21 - Cannot be Dodged/Parried/Blocked. No active Defense.
|-
|-
| 4,194,304 || SPELL_ATTR0_CAST_TRACK_TARGET || 0x00400000 || 22 - Client automatically forces player to face target when casting. (Player Only).
| 4,194,304 || SPELL_ATTR0_CAST_TRACK_TARGET || 0x00400000 || 22 - Client automatically forces player to face the target when casting. (Player Only).
|-
|-
| 8,388,608 || SPELL_ATTR0_CASTABLE_WHILE_DEAD || 0x00800000 || 23 - Castable while dead.
| 8,388,608 || SPELL_ATTR0_CASTABLE_WHILE_DEAD || 0x00800000 || 23 - Spell can be cast while dead.
|-
|-
| 16,777,216 || SPELL_ATTR0_CASTABLE_WHILE_MOUNTED || 0x01000000 || 24 - Castable while mounted.
| 16,777,216 || SPELL_ATTR0_CASTABLE_WHILE_MOUNTED || 0x01000000 || 24 - Spell can be cast while mounted.
|-
|-
| 33,554,432 || SPELL_ATTR0_COOLDOWN_ON_EVENT || 0x02000000 || 25 - Activate and start cooldown after aura fade or remove summoned creature or go.
| 33,554,432 || SPELL_ATTR0_COOLDOWN_ON_EVENT || 0x02000000 || 25 - Activate and start cooldown after aura fade or remove summoned creature or go.
|-
|-
| 67,108,864 || SPELL_ATTR0_NEGATIVE_AURA || 0x04000000 || 26 - Many negative spells have this attr. Aura Is a Debuff.
| 67,108,864 || SPELL_ATTR0_NEGATIVE_AURA || 0x04000000 || 26 - Many negative spells have this attribute. Aura is a Debuff.
|-
|-
| 134,217,728 || SPELL_ATTR0_CASTABLE_WHILE_SITTING || 0x08000000 || 27 - Castable while sitting.
| 134,217,728 || SPELL_ATTR0_CASTABLE_WHILE_SITTING || 0x08000000 || 27 - Spell can be cast while sitting.
|-
|-
| 268,435,456 || SPELL_ATTR0_CANT_USED_IN_COMBAT || 0x10000000 || 28 - Cannot be used in combat (Only Peaceful).
| 268,435,456 || SPELL_ATTR0_CANT_USED_IN_COMBAT || 0x10000000 || 28 - Cannot be used in combat (Only Peaceful).
|-
|-
| 536,870,912 || SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY || 0x20000000 || 29 - Unaffected by invulnerability (hmm possible not...). TBC Classic : "No Immunities".
| 536,870,912 || SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY || 0x20000000 || 29 - Unaffected by Invulnerability (Questionable). TBC Classic: "No Immunities".
|-
|-
| 1,073,741,824 || SPELL_ATTR0_HEARTBEAT_RESIST_CHECK || 0x40000000 || 30 - Random chance the effect will end TODO: implement core support.
| 1,073,741,824 || SPELL_ATTR0_HEARTBEAT_RESIST_CHECK || 0x40000000 || 30 - Random chance the effect will end. TODO: Implement core support.
|-
|-
| 2,147,483,648 || SPELL_ATTR0_CANT_CANCEL_AURA || 0x80000000 || 31 - Aura can't be canceled.
| 2,147,483,648 || SPELL_ATTR0_CANT_CANCEL_AURA || 0x80000000 || 31 - Aura cannot be canceled.
|}
|}



Revision as of 13:49, 13 February 2022

enum SpellAttr0

Flag Attribute String Bitmask Comments
1 SPELL_ATTR0_FAILURE_BURNS_CHARGE 0x00000001 0 - The spell will consume a charge that is natural or procced even if it fails to apply it's effect.
2 SPELL_ATTR0_REQ_AMMO 0x00000002 1 - Indicates use of the inventory ranged slot.
4 SPELL_ATTR0_ON_NEXT_SWING_NO_DMG 0x00000004 2 - On next swing after current global cooldown. (No Damage).
8 SPELL_ATTR0_IS_REPLENISHMENT 0x00000008 3 - Not set in 3.0.3. TBC Classic: "Do Not Log Immune Misses".
16 SPELL_ATTR0_IS_ABILITY 0x00000010 4 - Client puts "Ability" instead of "Spell" in the strings associated with this spell.
32 SPELL_ATTR0_IS_TRADESKILL 0x00000020 5 - Trade spells (recipes), will be added by client to a sublist of profession spell.
64 SPELL_ATTR0_PASSIVE 0x00000040 6 - Passive spell and lists them accordingly.
128 SPELL_ATTR0_HIDDEN_CLIENTSIDE 0x00000080 7 - Spells with this attribute are not visible in spellbook or aura bar. Do not display (Spellbook, Aura Icon, Combat Log).
256 SPELL_ATTR0_HIDE_IN_COMBAT_LOG 0x00000100 8 - This attribute controls whether the spell appears in combat logs.
512 SPELL_ATTR0_TARGET_MAINHAND_ITEM 0x00000200 9 - Client automatically selects item from mainhand slot as a cast target. TBC Classic: "Held Item Only".
1,024 SPELL_ATTR0_ON_NEXT_SWING 0x00000400 10 - Only used by 14 spells.
2,048 SPELL_ATTR0_UNK11 0x00000800 11 - TBC Classic: "Wearer Casts Proc Trigger".
4,096 SPELL_ATTR0_DAYTIME_ONLY 0x00001000 12 - Only useable at daytime, not set in 2.4.2. TBC Classic: "Server Only".
8,192 SPELL_ATTR0_NIGHT_ONLY 0x00002000 13 - Only useable at night, not set in 2.4.2. TBC Classic: "Allow Item Spell In PvP".
16,384 SPELL_ATTR0_INDOORS_ONLY 0x00004000 14 - Only useable indoors, not set in 2.4.2.
32,768 SPELL_ATTR0_OUTDOORS_ONLY 0x00008000 15 - Only useable outdoors (Above ground level or not inside of a WMO for example).
65,536 SPELL_ATTR0_NOT_SHAPESHIFT 0x00010000 16 - Spell may not be cast while under the effect of a conditional dependent Shapeshift.
131,072 SPELL_ATTR0_ONLY_STEALTHED 0x00020000 17 - Must be in stealth.
262,144 SPELL_ATTR0_DONT_SHEATH 0x00040000 18 - Client won't hide unit weapons during sheath on casting or channeling a spell. (Should be used with Attr2/ExB 0x00000200?)
524,288 SPELL_ATTR0_LEVEL_DAMAGE_CALCULATION 0x00080000 19 - Spell damage depends on level of the caster.
1,048,576 SPELL_ATTR0_STOP_ATTACK_TARGET 0x00100000 20 - Cancels auto attack in combat.
2,097,152 SPELL_ATTR0_IMPOSSIBLE_DODGE_PARRY_BLOCK 0x00200000 21 - Cannot be Dodged/Parried/Blocked. No active Defense.
4,194,304 SPELL_ATTR0_CAST_TRACK_TARGET 0x00400000 22 - Client automatically forces player to face the target when casting. (Player Only).
8,388,608 SPELL_ATTR0_CASTABLE_WHILE_DEAD 0x00800000 23 - Spell can be cast while dead.
16,777,216 SPELL_ATTR0_CASTABLE_WHILE_MOUNTED 0x01000000 24 - Spell can be cast while mounted.
33,554,432 SPELL_ATTR0_COOLDOWN_ON_EVENT 0x02000000 25 - Activate and start cooldown after aura fade or remove summoned creature or go.
67,108,864 SPELL_ATTR0_NEGATIVE_AURA 0x04000000 26 - Many negative spells have this attribute. Aura is a Debuff.
134,217,728 SPELL_ATTR0_CASTABLE_WHILE_SITTING 0x08000000 27 - Spell can be cast while sitting.
268,435,456 SPELL_ATTR0_CANT_USED_IN_COMBAT 0x10000000 28 - Cannot be used in combat (Only Peaceful).
536,870,912 SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY 0x20000000 29 - Unaffected by Invulnerability (Questionable). TBC Classic: "No Immunities".
1,073,741,824 SPELL_ATTR0_HEARTBEAT_RESIST_CHECK 0x40000000 30 - Random chance the effect will end. TODO: Implement core support.
2,147,483,648 SPELL_ATTR0_CANT_CANCEL_AURA 0x80000000 31 - Aura cannot be canceled.

enum SpellAttr1

Flag Attribute String Bitmask Comments
1 SPELL_ATTR1_DISMISS_PET 0x00000001 0 - For spells without this flag the client doesn't allow summoning a pet if the caster has a pet. TBC Classic: "Dismiss Pet First".
2 SPELL_ATTR1_DRAIN_ALL_POWER 0x00000002 1 - Uses all power (Only Paladin Lay on Hands and Bunyanize). TBC Classic: "Use All Mana".
4 SPELL_ATTR1_IS_CHANNELED 0x00000004 2 - Spell is channeled.
8 SPELL_ATTR1_CANT_BE_REDIRECTED 0x00000008 3 - No redirection to another target.
16 SPELL_ATTR1_NO_SKILL_INCREASE 0x00000010 4 - Does not give a skill up point.
32 SPELL_ATTR1_ALLOW_WHILE_STEALTHED 0x00000020 5 - Does not break Stealth.
64 SPELL_ATTR1_IS_SELF_CHANNELLED 0x00000040 6 - Spell is self channeled.
128 SPELL_ATTR1_CANT_BE_REFLECTED 0x00000080 7 - Spell will not be reflected.
256 SPELL_ATTR1_CANT_TARGET_IN_COMBAT 0x00000100 8 - Can only target out of combat units. TBC Classic: "Only Peaceful Targets".
512 SPELL_ATTR1_MELEE_COMBAT_START 0x00000200 9 - Player starts melee combat after this spell is cast. Initiates combat (enables auto-attack).
1,024 SPELL_ATTR1_NO_THREAT 0x00000400 10 - Does not generate threat on cast. (old NO_INITIAL_AGGRO).
2,048 SPELL_ATTR1_AURA_UNIQUE 0x00000800 11 - Aura is unique.
4,096 SPELL_ATTR1_FAILURE_BREAKS_STEALTH 0x00001000 12 - Failure breaks Stealth. (Pickpocket).
8,192 SPELL_ATTR1_TOGGLE_FARSIGHT 0x00002000 13 - Client removes Farsight on aura loss.
16,384 SPELL_ATTR1_CHANNEL_TRACK_TARGET 0x00004000 14 - Client automatically forces player to face target when channeling.
32,768 SPELL_ATTR1_DISPEL_AURAS_ON_IMMUNITY 0x00008000 15 - Remove auras on immunity. Immunity purges effect.
65,536 SPELL_ATTR1_UNAFFECTED_BY_SCHOOL_IMMUNE 0x00010000 16 - On immunity. TBC Classic: "Immunity to Hostile & Friendly Effects".
131,072 SPELL_ATTR1_UNAUTOCASTABLE_BY_PET 0x00020000 17 - No AutoCast (AI).
262,144 SPELL_ATTR1_PREVENTS_ANIM 0x00040000 18 - Stun, Polymorph, Daze, Hex. TBC Classic: "Prevents Anim".
524,288 SPELL_ATTR1_CANT_TARGET_SELF 0x00080000 19 - Exclude caster from spell.
1,048,576 SPELL_ATTR1_REQ_COMBO_POINTS1 0x00100000 20 - Finishing Move - Damage.
2,097,152 SPELL_ATTR1_THREAT_ON_MISS_ONLY 0x00200000 21 - Threat only on Miss.
4,194,304 SPELL_ATTR1_REQ_COMBO_POINTS2 0x00400000 22 - Finishing Move - Duration.
8,388,608 SPELL_ATTR1_IGNORE_OWNER_DEATH 0x00800000 23 - Ignore owner's death.
16,777,216 SPELL_ATTR1_SPECIAL_SKILLUP 0x01000000 24 - Only Fishing spells. TBC Classic: "Special Skillup"
33,554,432 SPELL_ATTR1_AURA_STAYS_AFTER_COMBAT 0x02000000 25 - Aura stays after combat.
67,108,864 SPELL_ATTR1_REQUIRE_ALL_TARGETS 0x04000000 26 - Works correctly with [target=focus] and [target=mouseover] macros? TBC Classic: "Require All Targets".
134,217,728 SPELL_ATTR1_DISCOUNT_POWER_ON_MISS 0x08000000 27 - Melee spell? TBC Classic: "Discount Power On Miss".
268,435,456 SPELL_ATTR1_NO_AURA_ICON 0x10000000 28 - Client doesn't display these spells in aura bar. No aura icon.
536,870,912 SPELL_ATTR1_NAME_IN_CHANNEL_BAR 0x20000000 29 - Spell name is displayed in cast bar instead of 'channeling' text. Name in Channel Bar.
1,073,741,824 SPELL_ATTR1_ENABLE_AT_DODGE 0x40000000 30 - Overpower. TBC Classic: "Combo on Block (Mainline: Dispel All Stacks)".
2,147,483,648 SPELL_ATTR1_CAST_WHEN_LEARNED 0x80000000 31 - Cast When Learned.

enum SpellAttr2

Flag Attribute String Bitmask Comments
1 SPELL_ATTR2_CAN_TARGET_DEAD 0x00000001 0 - Can target a dead unit or corpse.
2 SPELL_ATTR2_NO_SHAPESHIFT_UI 0x00000002 1 - No shapeshift UI, Vanish, Shadowform, Ghost Wolf, etc.
4 SPELL_ATTR2_IGNORE_LINE_OF_SIGHT 0x00000004 2 - 26368 4.0.1 DBC change. LOS related.
8 SPELL_ATTR2_ALLOW_LOW_LEVEL_BUFF 0x00000008 3 - Allow low level buff. Allow casting lower level buffs? Maybe rank specific?
16 SPELL_ATTR2_DISPLAY_IN_STANCE_BAR 0x00000010 4 - Client displays icon in stance bar when learned, even if not shapeshift. Uses Shapeshift Bar.
32 SPELL_ATTR2_AUTOREPEAT_FLAG 0x00000020 5 - Auto Repeat.
64 SPELL_ATTR2_CANT_CAST_ON_TAPPED 0x00000040 6 - Target must be tapped by caster. "Cannot cast on tapped". Relates to Dynamic Flags on creature.
128 SPELL_ATTR2_DO_NOT_REPORT_SPELL_FAILURE 0x00000080 7 - Do not report spell failure. Combat log or error string related.
256 SPELL_ATTR2_INCLUDE_IN_ADVANCED_LOG 0x00000100 8 - Not set in 3.0.3. Include in Advanced Combat Log.
512 SPELL_ATTR2_ALWAYS_CAST_AS_UNIT 0x00000200 9 - Always cast as unit.
1,024 SPELL_ATTR2_SPECIAL_TAME_FLAG 0x00000400 10 - Special taming flag.
2,048 SPELL_ATTR2_NO_TARGET_PER-SECOND_COSTS 0x00000800 11 - Health Funnel.
4,096 SPELL_ATTR2_CHAIN_FROM_CASTER 0x00001000 12 - Cleave, Heart Strike, Maul, Sunder Armor, Swipe. Possible AOE flag.
8,192 SPELL_ATTR2_PRESERVE_ENCHANT_IN_ARENA 0x00002000 13 - Items enchanted by spells with this flag preserve the enchant to arenas. TBC Classic: "Enchant own item only".
16,384 SPELL_ATTR2_ALLOW_WHILE_INVISIBLE 0x00004000 14 - Allow spell to not break invisibility?
32,768 SPELL_ATTR2_UNK15 0x00008000 15 - Not set in 3.0.3. TBC Classic: "Do Not Consume if Gained During Cast".
65,536 SPELL_ATTR2_NO_ACTIVE_PET 0x00010000 16 - Tame Beast.
131,072 SPELL_ATTR2_NOT_RESET_AUTO_ACTIONS 0x00020000 17 - Don't reset timers for melee auto-attacks (swings) or ranged auto-attacks (autoshots). "Do Not Reset Combat Timers".
262,144 SPELL_ATTR2_REQ_DEAD_PET 0x00040000 18 - Only Revive Pet and Heart of the Phoenix. TBC Classic: "No Jump While Cast Pending".
524,288 SPELL_ATTR2_NOT_NEED_SHAPESHIFT 0x00080000 19 - Allow while not shapeshifted (caster form).
1,048,576 SPELL_ATTR2_INITIATE_COMBAT_AFTER 0x00100000 20 - TBC Classic: "Initiate Combat Post-Cast (Enables Auto-Attack)".
2,097,152 SPELL_ATTR2_FAIL_ON_TARGET_IMMUNE 0x00200000 21 - TBC Classic: "Fail on all targets immune". (Ice Block, Paladin immunity buffs, priest absorb shields, and other similar spells use this).
4,194,304 SPELL_ATTR2_NO_INITIAL_THREAT 0x00400000 22 - Ambush, Backstab, Cheap Shot, Death Grip, Garrote, Judgements, Mutilate, Pounce, Ravage, Shiv, Shred. TBC Classic: "No Initial Threat".
8,388,608 SPELL_ATTR2_PROC_COOLDOWN_ON_FAILURE 0x00800000 23 - Proc cooldown on failure. Only the Mage spell Arcane Concentration has this flag.
16,777,216 SPELL_ATTR2_UNK24 0x01000000 24 - Item Cast With Owner Skill.
33,554,432 SPELL_ATTR2_DONT_BLOCK_MANA_REGEN 0x02000000 25 - Mana regeneration is not blocked.
67,108,864 SPELL_ATTR2_UNAFFECTED_BY_AURA_SCHOOL_IMMUNE 0x04000000 26 - Unaffected by school immunity.
134,217,728 SPELL_ATTR2_IGNORE_WEAPONSKILL 0x08000000 27 - Ignore skill level of a weapon.
268,435,456 SPELL_ATTR2_IGNORE_ITEM_CHECK 0x10000000 28 - Spell is cast without checking item requirements (charges/reagents/totem). TBC Classic: "Not an Action".
536,870,912 SPELL_ATTR2_CANT_CRIT 0x20000000 29 - Spell is not capable of being critical.
1,073,741,824 SPELL_ATTR2_TRIGGERED_CAN_TRIGGER_PROC 0x40000000 30 - Spell can trigger even if triggered. TBC Classic: "Active Threat".
2,147,483,648 SPELL_ATTR2_RETAIN_ITEM_CAST 0x80000000 31 - Food or Drink Buff (i.e Well Fed).

enum SpellAttr3

Flag Attribute String Bitmask Comments
1 SPELL_ATTR3_PVP_ENABLING 0x00000001 0 - TBC Classic: "PvP Enabling".
2 SPELL_ATTR3_NO_PROC_EQUIP_REQ 0x00000002 1 - TBC Classic: "No Proc Equip Requirement".
4 SPELL_ATTR3_NO_CAST_BAR_TEXT 0x00000004 2 - No casting bar text.
8 SPELL_ATTR3_BLOCKABLE_SPELL 0x00000008 3 - Applies only to Melee classes in 3.1.3. TBC Classic: "Completely Blocked".
16 SPELL_ATTR3_NO_RESURRECTION_TIMER 0x00000010 4 - You don't have to wait to be resurrected with these spells.
32 SPELL_ATTR3_NO_DURABILTIY_LOSS 0x00000020 5 - TBC Classic: "No Durability Loss".
64 SPELL_ATTR3_NO_AVOIDANCE 0x00000040 6 - TBC Classic: "No Avoidance".
128 SPELL_ATTR3_STACK_FOR_DIFF_CASTERS 0x00000080 7 - Separate stack for every caster. TBC Classic: "DoT Stacking Rule".
256 SPELL_ATTR3_ONLY_TARGET_PLAYERS 0x00000100 8 - Can only target players.
512 SPELL_ATTR3_NOT_A_PROC 0x00000200 9 - Triggered from effect?
1,024 SPELL_ATTR3_REQ_MAIN_HAND_WEAPON 0x00000400 10 - Main hand weapon required.
2,048 SPELL_ATTR3_BATTLEGROUND 0x00000800 11 - Can only be cast in Battlegrounds.
4,096 SPELL_ATTR3_ONLY_TARGET_GHOSTS 0x00001000 12 - Can only be cast On Ghosts.
8,192 SPELL_ATTR3_DONT_DISPLAY_CHANNEL_BAR 0x00002000 13 - Clientside attribute - Will not display channeling bar.
16,384 SPELL_ATTR3_IS_HONORLESS_TARGET 0x00004000 14 - "Honorless Target" is the only spell that has this flag. TBC Classic: "Hide In Raid Filter".
32,768 SPELL_ATTR3_NORMAL_RANGED_ATTACK 0x00008000 15 - Auto Shoot, Shoot, Throw, (Autoshot flag).
65,536 SPELL_ATTR3_CANT_TRIGGER_PROC 0x00010000 16 - Confirmed with many patch notes. Will Suppress Caster Procs.
131,072 SPELL_ATTR3_NO_INITIAL_AGGRO 0x00020000 17 - Soothe Animal, Mind Soothe, and 39758.
262,144 SPELL_ATTR3_ALWAYS_HIT 0x00040000 18 - Spell should always hit it's target.
524,288 SPELL_ATTR3_DISABLE_PROC 0x00080000 19 - During an aura proc, no spells can trigger (20178, 20375). TBC Classic: "Instant Target Procs".
1,048,576 SPELL_ATTR3_DEATH_PERSISTENT 0x00100000 20 - Death persistent spells. Allow aura while dead.
2,097,152 SPELL_ATTR3_ONLY_PROC_OUTDOOR 0x00200000 21 - Unused. Only proc outdoors.
4,194,304 SPELL_ATTR3_CANCEL_AUTOREPEAT 0x00400000 22 - Requires Wand? Casting cancels autorepeat (Mainline: Do Not Trigger Target Stand).
8,388,608 SPELL_ATTR3_NO_DMG_HISTORY 0x00800000 23 - No damage history. Combat log relation?
16,777,216 SPELL_ATTR3_REQ_OFFHAND 0x01000000 24 - Requires an offhand weapon.
33,554,432 SPELL_ATTR3_TREAT_AS_PERIODIC 0x02000000 25 - Makes the spell appear as Periodic in client combat logs. Also used by spells that trigger another spell on each tick.
67,108,864 SPELL_ATTR3_CAN_PROC_FROM_PROCS 0x04000000 26 - Auras with this attribute can proc from triggered spell casts with SPELL_ATTR3_TRIGGERED_CAN_TRIGGER_PROC_2 (Ex. 67736 + 52999).
134,217,728 SPELL_ATTR3_ONLY_PROC_ON_CASTER 0x08000000 27 - Only Drain Soul has this flag.
268,435,456 SPELL_ATTR3_IGNORE_RESTRICTIONS 0x10000000 28 - Ignore caster and target restrictions.
536,870,912 SPELL_ATTR3_IGNORE_CASTER_MODIFIERS 0x20000000 29 - Ignores caster modifiers. The client does not apply spellmods for these spells.
1,073,741,824 SPELL_ATTR3_DONT_DISPLAY_RANGE 0x40000000 30 - Client does not display range in tooltip for those spells.
2,147,483,648 SPELL_ATTR3_NOT_ON_AOE_IMMUNE 0x80000000 31 - AOE spell may be blocked by caster or target?

enum SpellAttr4

Flag Attribute String Bitmask Comments
1 SPELL_ATTR4_IGNORE_RESISTANCES 0x00000001 0 - Spells with this attribute will completely ignore the target's resistance (these spells can't be resisted). TBC Classic/RETAIL: "No Cast Log".
2 SPELL_ATTR4_PROC_ONLY_ON_CASTER 0x00000002 1 - Proc only on effects with TARGET_UNIT_CASTER?. TBC Classic: "Class Trigger Only On Target".
4 SPELL_ATTR4_AURA_APPLIES_OFFLINE 0x00000004 2 - Debuffs (except Resurrection Sickness) will automatically do this.
8 SPELL_ATTR4_NO_HELPFUL_THREAT 0x00000008 3 - No Helpful Threat.
16 SPELL_ATTR4_NO_HARMFUL_THREAT 0x00000010 4 - This will no longer cause guards to attack on use? TBC Classic: "No Harmful Threat".
32 SPELL_ATTR4_ALLOW_CLIENT_TARGETING 0x00000020 5 - Allow client targeting.
64 SPELL_ATTR4_NOT_STEALABLE 0x00000040 6 - Although such auras might be dispellable, they cannot be stolen.
128 SPELL_ATTR4_CAN_CAST_WHILE_CASTING 0x00000080 7 - Can be cast while another cast is in progress. Ignores already in-progress cast and still casts.
256 SPELL_ATTR4_FIXED_DAMAGE 0x00000100 8 - Ignores resilience and any (except mechanic related) damage or % damage taken auras on target. Ignore Damage Taken Modifiers.
512 SPELL_ATTR4_TRIGGER_ACTIVATE 0x00000200 9 - Initially disabled / trigger activate from event (Execute, Riposte, Deep Freeze end other). TBC Classic: "Combat Feedback When Usable".
1,024 SPELL_ATTR4_SPELL_VS_EXTEND_COST 0x00000400 10 - Attack speed modifies cost (i.e Shiv). TBC Classic: Weapon Speed Cost Scaling.
2,048 SPELL_ATTR4_NO_PARTIAL_IMMUNITY 0x00000800 11 - TBC Classic: No Partial Immunity.
4,096 SPELL_ATTR4_POSITIVE_AURA 0x00001000 12 - TBC Classic: Aura Is Buff.
8,192 SPELL_ATTR4_COMBAT_LOG_NO_CASTER 0x00002000 13 - No caster object is sent to client combat log.
16,384 SPELL_ATTR4_DAMAGE_DOESNT_BREAK_AURAS 0x00004000 14 - Doesn't break auras by damage from these spells. Reactive damage proc.
32,768 SPELL_ATTR4_NOT_IN_SPELLBOOK 0x00008000 15 - Not In Spellbook.
65,536 SPELL_ATTR4_NOT_USABLE_IN_ARENA_OR_RATED_BG 0x00010000 16 - Cannot be used in Arenas or Rated Battlegrounds.
131,072 SPELL_ATTR4_USABLE_IN_ARENA 0x00020000 17 - Ignore Default Arena Restrictions.
262,144 SPELL_ATTR4_AREA_TARGET_CHAIN 0x00040000 18 - (NYI) Hits area targets one after another instead of all at once.
524,288 SPELL_ATTR4_BOUNCING_CHAIN_MISSILES 0x00080000 19 - Proc delayed, after damage or will not proc on absorb? TBC Classic: "Bouncy Chain Missiles".
1,048,576 SPELL_ATTR4_NOT_CHECK_SELFCAST_POWER 0x00100000 20 - Supersedes message "More powerful spell applied" for self casts (client only). TBC Classic: "Allow Proc While Sitting".
2,097,152 SPELL_ATTR4_ALLOW_IN_ARENA 0x00200000 21 - Seal of Command (42058, 57770) and Gymer's Smash 55426. TBC Classic: "Allow Entering Arena".
4,194,304 SPELL_ATTR4_STATIC_AURA 0x00400000 22 - Pally aura, DK presence, Warrior stance, Shadowform, etc. TBC Classic: "Aura Never Bounces".
8,388,608 SPELL_ATTR4_SUPPRESS_WEAPON_PROCS 0x00800000 23 - Suppress weapon procs.
16,777,216 SPELL_ATTR4_PROC_SUPRESS_SWING_ANIM 0x01000000 24 - TBC Classic: "Proc Suppress Swing Anim".
33,554,432 SPELL_ATTR4_IS_PET_SCALING 0x02000000 25 - Pet scaling auras. TBC Classic: "Auto Ranged Combat".
67,108,864 SPELL_ATTR4_CAST_ONLY_IN_OUTLAND 0x04000000 26 - Can only be used in Outland. TBC Classic: "Owner Power Scaling".
134,217,728 SPELL_ATTR4_ONLY_FLYING_AREAS 0x08000000 27 - Only flying areas.
268,435,456 SPELL_ATTR4_FORCE_DISPLAY_CASTBAR 0x10000000 28 - Aimed Shot.
536,870,912 SPELL_ATTR4_IGNORE_COMBAT_TIMER 0x20000000 29 - Ignore combat timer.
1,073,741,824 SPELL_ATTR4_UNK30 0x40000000 30 - Aura bounce fails spell.
2,147,483,648 SPELL_ATTR4_UNK31 0x80000000 31 - Polymorph (chicken) 228 and Sonic Boom (38052, 38488). TBC Classic: "Obsolete".

enum SpellAttr5 (≥ BC)

   SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING          = 0x00000001, //  0 available casting channel spell when moving
   SPELL_ATTR5_NO_REAGENT_WHILE_PREP            = 0x00000002, //  1 not need reagents if UNIT_FLAG_PREPARATION
   SPELL_ATTR5_UNK2                             = 0x00000004, //  2
   SPELL_ATTR5_USABLE_WHILE_STUNNED             = 0x00000008, //  3 usable while stunned
   SPELL_ATTR5_UNK4                             = 0x00000010, //  4
   SPELL_ATTR5_SINGLE_TARGET_SPELL              = 0x00000020, //  5 Only one target can be apply at a time
   SPELL_ATTR5_UNK6                             = 0x00000040, //  6
   SPELL_ATTR5_UNK7                             = 0x00000080, //  7
   SPELL_ATTR5_UNK8                             = 0x00000100, //  8
   SPELL_ATTR5_START_PERIODIC_AT_APPLY          = 0x00000200, //  9 begin periodic tick at aura apply
   SPELL_ATTR5_HIDE_DURATION                    = 0x00000400, // 10 do not send duration to client
   SPELL_ATTR5_ALLOW_TARGET_OF_TARGET_AS_TARGET = 0x00000800, // 11 (NYI) uses target's target as target if original target not valid (intervene for example)
   SPELL_ATTR5_UNK12                            = 0x00001000, // 12 Cleave related?
   SPELL_ATTR5_HASTE_AFFECT_DURATION            = 0x00002000, // 13 haste effects decrease duration of this
   SPELL_ATTR5_UNK14                            = 0x00004000, // 14
   SPELL_ATTR5_UNK15                            = 0x00008000, // 15 Inflits on multiple targets?
   SPELL_ATTR5_UNK16                            = 0x00010000, // 16
   SPELL_ATTR5_USABLE_WHILE_FEARED              = 0x00020000, // 17 usable while feared
   SPELL_ATTR5_USABLE_WHILE_CONFUSED            = 0x00040000, // 18 usable while confused
   SPELL_ATTR5_DONT_TURN_DURING_CAST            = 0x00080000, // 19 Blocks caster's turning when casting (client does not automatically turn caster's model to face UNIT_FIELD_TARGET)
   SPELL_ATTR5_UNK20                            = 0x00100000, // 20
   SPELL_ATTR5_UNK21                            = 0x00200000, // 21
   SPELL_ATTR5_UNK22                            = 0x00400000, // 22
   SPELL_ATTR5_UNK23                            = 0x00800000, // 23
   SPELL_ATTR5_UNK24                            = 0x01000000, // 24
   SPELL_ATTR5_UNK25                            = 0x02000000, // 25
   SPELL_ATTR5_UNK26                            = 0x04000000, // 26 aoe related - Boulder, Cannon, Corpse Explosion, Fire Nova, Flames, Frost Bomb, Living Bomb, Seed of Corruption, Starfall, Thunder Clap, Volley
   SPELL_ATTR5_DONT_SHOW_AURA_IF_SELF_CAST      = 0x08000000, // 27 Auras with this attribute are not visible on units that are the caster
   SPELL_ATTR5_DONT_SHOW_AURA_IF_NOT_SELF_CAST  = 0x10000000, // 28 Auras with this attribute are not visible on units that are not the caster
   SPELL_ATTR5_UNK29                            = 0x20000000, // 29
   SPELL_ATTR5_UNK30                            = 0x40000000, // 30
   SPELL_ATTR5_UNK31                            = 0x80000000  // 31 Forces all nearby enemies to focus attacks caster

enum SpellAttr6 (≥ BC)

   SPELL_ATTR6_DONT_DISPLAY_COOLDOWN            = 0x00000001, //  0 client doesn't display cooldown in tooltip for these spells
   SPELL_ATTR6_ONLY_IN_ARENA                    = 0x00000002, //  1 only usable in arena
   SPELL_ATTR6_IGNORE_CASTER_AURAS              = 0x00000004, //  2
   SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG        = 0x00000008, //  3 skips checking UNIT_FLAG_IMMUNE_TO_PC and UNIT_FLAG_IMMUNE_TO_NPC flags on assist
   SPELL_ATTR6_UNK4                             = 0x00000010, //  4
   SPELL_ATTR6_UNK5                             = 0x00000020, //  5
   SPELL_ATTR6_USE_SPELL_CAST_EVENT             = 0x00000040, //  6 Auras with this attribute trigger SPELL_CAST combat log event instead of SPELL_AURA_START (clientside attribute)
   SPELL_ATTR6_UNK7                             = 0x00000080, //  7
   SPELL_ATTR6_CANT_TARGET_CROWD_CONTROLLED     = 0x00000100, //  8
   SPELL_ATTR6_UNK9                             = 0x00000200, //  9
   SPELL_ATTR6_CAN_TARGET_POSSESSED_FRIENDS     = 0x00000400, // 10 NYI!
   SPELL_ATTR6_NOT_IN_RAID_INSTANCE             = 0x00000800, // 11 not usable in raid instance
   SPELL_ATTR6_CASTABLE_WHILE_ON_VEHICLE        = 0x00001000, // 12 castable while caster is on vehicle
   SPELL_ATTR6_CAN_TARGET_INVISIBLE             = 0x00002000, // 13 ignore visibility requirement for spell target (phases, invisibility, etc.)
   SPELL_ATTR6_UNK14                            = 0x00004000, // 14
   SPELL_ATTR6_UNK15                            = 0x00008000, // 15 only 54368, 67892
   SPELL_ATTR6_UNK16                            = 0x00010000, // 16
   SPELL_ATTR6_UNK17                            = 0x00020000, // 17 Mount spell
   SPELL_ATTR6_CAST_BY_CHARMER                  = 0x00040000, // 18 client won't allow to cast these spells when unit is not possessed && charmer of caster will be original caster
   SPELL_ATTR6_UNK19                            = 0x00080000, // 19 only 47488, 50782
   SPELL_ATTR6_ONLY_VISIBLE_TO_CASTER           = 0x00100000, // 20 Auras with this attribute are only visible to their caster (or pet's owner)
   SPELL_ATTR6_CLIENT_UI_TARGET_EFFECTS         = 0x00200000, // 21 it's only client-side attribute
   SPELL_ATTR6_UNK22                            = 0x00400000, // 22 only 72054
   SPELL_ATTR6_UNK23                            = 0x00800000, // 23
   SPELL_ATTR6_CAN_TARGET_UNTARGETABLE          = 0x01000000, // 24
   SPELL_ATTR6_NOT_RESET_SWING_IF_INSTANT       = 0x02000000, // 25 Exorcism, Flash of Light
   SPELL_ATTR6_UNK26                            = 0x04000000, // 26 related to player castable positive buff
   SPELL_ATTR6_UNK27                            = 0x08000000, // 27
   SPELL_ATTR6_UNK28                            = 0x10000000, // 28 Death Grip
   SPELL_ATTR6_NO_DONE_PCT_DAMAGE_MODS          = 0x20000000, // 29 ignores done percent damage mods?
   SPELL_ATTR6_UNK30                            = 0x40000000, // 30
   SPELL_ATTR6_IGNORE_CATEGORY_COOLDOWN_MODS    = 0x80000000  // 31 Spells with this attribute skip applying modifiers to category cooldowns

enum SpellAttr7 (≥ Wrath)

   SPELL_ATTR7_UNK0                             = 0x00000001, //  0 Shaman's new spells (Call of the ...), Feign Death.
   SPELL_ATTR7_IGNORE_DURATION_MODS             = 0x00000002, //  1 Duration is not affected by duration modifiers
   SPELL_ATTR7_REACTIVATE_AT_RESURRECT          = 0x00000004, //  2 Paladin's auras and 65607 only.
   SPELL_ATTR7_IS_CHEAT_SPELL                   = 0x00000008, //  3 Cannot cast if caster doesn't have UnitFlag2 & UNIT_FLAG2_ALLOW_CHEAT_SPELLS
   SPELL_ATTR7_UNK4                             = 0x00000010, //  4 Only 47883 (Soulstone Resurrection) and test spell.
   SPELL_ATTR7_SUMMON_TOTEM                     = 0x00000020, //  5 Only Shaman totems.
   SPELL_ATTR7_NO_PUSHBACK_ON_DAMAGE            = 0x00000040, //  6 Does not cause spell pushback on damage
   SPELL_ATTR7_UNK7                             = 0x00000080, //  7 66218 (Launch) spell.
   SPELL_ATTR7_HORDE_ONLY                       = 0x00000100, //  8 Teleports, mounts and other spells.
   SPELL_ATTR7_ALLIANCE_ONLY                    = 0x00000200, //  9 Teleports, mounts and other spells.
   SPELL_ATTR7_DISPEL_CHARGES                   = 0x00000400, // 10 Dispel and Spellsteal individual charges instead of whole aura.
   SPELL_ATTR7_INTERRUPT_ONLY_NONPLAYER         = 0x00000800, // 11 Only non-player casts interrupt, though Feral Charge - Bear has it.
   SPELL_ATTR7_SILENCE_ONLY_NONPLAYER           = 0x00001000, // 12 Not set in 3.2.2a.
   SPELL_ATTR7_UNK13                            = 0x00002000, // 13 Not set in 3.2.2a.
   SPELL_ATTR7_UNK14                            = 0x00004000, // 14 Only 52150 (Raise Dead - Pet) spell.
   SPELL_ATTR7_UNK15                            = 0x00008000, // 15 Exorcism. Usable on players? 100% crit chance on undead and demons?
   SPELL_ATTR7_CAN_RESTORE_SECONDARY_POWER      = 0x00010000, // 16 These spells can replenish a powertype, which is not the current powertype.
   SPELL_ATTR7_UNK17                            = 0x00020000, // 17 Only 27965 (Suicide) spell.
   SPELL_ATTR7_HAS_CHARGE_EFFECT                = 0x00040000, // 18 Only spells that have Charge among effects.
   SPELL_ATTR7_ZONE_TELEPORT                    = 0x00080000, // 19 Teleports to specific zones.
   SPELL_ATTR7_UNK20                            = 0x00100000, // 20 Blink, Divine Shield, Ice Block
   SPELL_ATTR7_UNK21                            = 0x00200000, // 21 Not set
   SPELL_ATTR7_UNK22                            = 0x00400000, // 22
   SPELL_ATTR7_UNK23                            = 0x00800000, // 23 Motivate, Mutilate, Shattering Throw
   SPELL_ATTR7_UNK24                            = 0x01000000, // 24 Motivate, Mutilate, Perform Speech, Shattering Throw
   SPELL_ATTR7_UNK25                            = 0x02000000, // 25
   SPELL_ATTR7_UNK26                            = 0x04000000, // 26
   SPELL_ATTR7_UNK27                            = 0x08000000, // 27 Not set
   SPELL_ATTR7_CONSOLIDATED_RAID_BUFF           = 0x10000000, // 28 May be collapsed in raid buff frame (clientside attribute)
   SPELL_ATTR7_UNK29                            = 0x20000000, // 29 only 69028, 71237
   SPELL_ATTR7_UNK30                            = 0x40000000, // 30 Burning Determination, Divine Sacrifice, Earth Shield, Prayer of Mending
   SPELL_ATTR7_CLIENT_INDICATOR                 = 0x80000000

enum SpellAttr8 (≥ Cata)

   SPELL_ATTR8_CANT_MISS                        = 0x00000001, //  0
   SPELL_ATTR8_UNK1                             = 0x00000002, //  1
   SPELL_ATTR8_UNK2                             = 0x00000004, //  2
   SPELL_ATTR8_UNK3                             = 0x00000008, //  3
   SPELL_ATTR8_UNK4                             = 0x00000010, //  4
   SPELL_ATTR8_UNK5                             = 0x00000020, //  5
   SPELL_ATTR8_UNK6                             = 0x00000040, //  6
   SPELL_ATTR8_UNK7                             = 0x00000080, //  7
   SPELL_ATTR8_AFFECT_PARTY_AND_RAID            = 0x00000100, //  8 Nearly all spells have "all party and raid" in description
   SPELL_ATTR8_DONT_RESET_PERIODIC_TIMER        = 0x00000200, //  9 Periodic auras with this flag keep old periodic timer when refreshing at close to one tick remaining (kind of anti DoT clipping)
   SPELL_ATTR8_NAME_CHANGED_DURING_TRANSFORM    = 0x00000400, // 10 according to wowhead comments, name changes, title remains
   SPELL_ATTR8_UNK11                            = 0x00000800, // 11
   SPELL_ATTR8_AURA_SEND_AMOUNT                 = 0x00001000, // 12 Aura must have flag AFLAG_ANY_EFFECT_AMOUNT_SENT to send amount
   SPELL_ATTR8_UNK13                            = 0x00002000, // 13
   SPELL_ATTR8_UNK14                            = 0x00004000, // 14
   SPELL_ATTR8_WATER_MOUNT                      = 0x00008000, // 15 only one River Boat used in Thousand Needles
   SPELL_ATTR8_UNK16                            = 0x00010000, // 16
   SPELL_ATTR8_UNK17                            = 0x00020000, // 17
   SPELL_ATTR8_REMEMBER_SPELLS                  = 0x00040000, // 18 at some point in time, these auras remember spells and allow to cast them later
   SPELL_ATTR8_USE_COMBO_POINTS_ON_ANY_TARGET   = 0x00080000, // 19 allows to consume combo points from dead targets
   SPELL_ATTR8_ARMOR_SPECIALIZATION             = 0x00100000, // 20
   SPELL_ATTR8_UNK21                            = 0x00200000, // 21
   SPELL_ATTR8_UNK22                            = 0x00400000, // 22
   SPELL_ATTR8_BATTLE_RESURRECTION              = 0x00800000, // 23 Used to limit the Amount of Resurrections in Boss Encounters
   SPELL_ATTR8_HEALING_SPELL                    = 0x01000000, // 24
   SPELL_ATTR8_UNK25                            = 0x02000000, // 25
   SPELL_ATTR8_RAID_MARKER                      = 0x04000000, // 26 probably spell no need learn to cast
   SPELL_ATTR8_UNK27                            = 0x08000000, // 27
   SPELL_ATTR8_NOT_IN_BG_OR_ARENA               = 0x10000000, // 28 not allow to cast or deactivate currently active effect, not sure about Fast Track
   SPELL_ATTR8_MASTERY_SPECIALIZATION           = 0x20000000, // 29
   SPELL_ATTR8_UNK30                            = 0x40000000, // 30
   SPELL_ATTR8_ATTACK_IGNORE_IMMUNE_TO_PC_FLAG  = 0x80000000  // 31 Do not check UNIT_FLAG_IMMUNE_TO_PC in IsValidAttackTarget

enum SpellAttr9 (≥ Cata)

   SPELL_ATTR9_UNK0                             = 0x00000001, //  0
   SPELL_ATTR9_UNK1                             = 0x00000002, //  1
   SPELL_ATTR9_RESTRICTED_FLIGHT_AREA           = 0x00000004, //  2 Dalaran and Wintergrasp flight area auras have it
   SPELL_ATTR9_UNK3                             = 0x00000008, //  3
   SPELL_ATTR9_SPECIAL_DELAY_CALCULATION        = 0x00000010, //  4
   SPELL_ATTR9_SUMMON_PLAYER_TOTEM              = 0x00000020, //  5
   SPELL_ATTR9_UNK6                             = 0x00000040, //  6
   SPELL_ATTR9_UNK7                             = 0x00000080, //  7
   SPELL_ATTR9_AIMED_SHOT                       = 0x00000100, //  8
   SPELL_ATTR9_NOT_USABLE_IN_ARENA              = 0x00000200, //  9 Cannot be used in arenas
   SPELL_ATTR9_UNK10                            = 0x00000400, // 10
   SPELL_ATTR9_UNK11                            = 0x00000800, // 11
   SPELL_ATTR9_UNK12                            = 0x00001000, // 12
   SPELL_ATTR9_SLAM                             = 0x00002000, // 13
   SPELL_ATTR9_USABLE_IN_RATED_BATTLEGROUNDS    = 0x00004000, // 14 Can be used in Rated Battlegrounds
   SPELL_ATTR9_UNK15                            = 0x00008000, // 15
   SPELL_ATTR9_UNK16                            = 0x00010000, // 16
   SPELL_ATTR9_UNK17                            = 0x00020000, // 17
   SPELL_ATTR9_UNK18                            = 0x00040000, // 18
   SPELL_ATTR9_UNK19                            = 0x00080000, // 19
   SPELL_ATTR9_UNK20                            = 0x00100000, // 20
   SPELL_ATTR9_UNK21                            = 0x00200000, // 21
   SPELL_ATTR9_UNK22                            = 0x00400000, // 22
   SPELL_ATTR9_UNK23                            = 0x00800000, // 23
   SPELL_ATTR9_UNK24                            = 0x01000000, // 24
   SPELL_ATTR9_UNK25                            = 0x02000000, // 25
   SPELL_ATTR9_UNK26                            = 0x04000000, // 26
   SPELL_ATTR9_UNK27                            = 0x08000000, // 27
   SPELL_ATTR9_UNK28                            = 0x10000000, // 28
   SPELL_ATTR9_UNK29                            = 0x20000000, // 29
   SPELL_ATTR9_UNK30                            = 0x40000000, // 30
   SPELL_ATTR9_UNK31                            = 0x80000000  // 31

enum SpellAttr10 (≥ Cata)

   SPELL_ATTR10_UNK0                            = 0x00000001, //  0
   SPELL_ATTR10_UNK1                            = 0x00000002, //  1
   SPELL_ATTR10_UNK2                            = 0x00000004, //  2
   SPELL_ATTR10_UNK3                            = 0x00000008, //  3
   SPELL_ATTR10_WATER_SPOUT                     = 0x00000010, //  4
   SPELL_ATTR10_UNK5                            = 0x00000020, //  5
   SPELL_ATTR10_UNK6                            = 0x00000040, //  6
   SPELL_ATTR10_TELEPORT_PLAYER                 = 0x00000080, //  7 4 Teleport Player spells
   SPELL_ATTR10_UNK8                            = 0x00000100, //  8
   SPELL_ATTR10_UNK9                            = 0x00000200, //  9
   SPELL_ATTR10_UNK10                           = 0x00000400, // 10
   SPELL_ATTR10_HERB_GATHERING_MINING           = 0x00000800, // 11 Only Herb Gathering and Mining
   SPELL_ATTR10_USE_SPELL_BASE_LEVEL_FOR_SCALING= 0x00001000, // 12
   SPELL_ATTR10_UNK13                           = 0x00002000, // 13
   SPELL_ATTR10_UNK14                           = 0x00004000, // 14
   SPELL_ATTR10_UNK15                           = 0x00008000, // 15
   SPELL_ATTR10_UNK16                           = 0x00010000, // 16
   SPELL_ATTR10_UNK17                           = 0x00020000, // 17
   SPELL_ATTR10_UNK18                           = 0x00040000, // 18
   SPELL_ATTR10_UNK19                           = 0x00080000, // 19
   SPELL_ATTR10_UNK20                           = 0x00100000, // 20
   SPELL_ATTR10_UNK21                           = 0x00200000, // 21
   SPELL_ATTR10_UNK22                           = 0x00400000, // 22
   SPELL_ATTR10_UNK23                           = 0x00800000, // 23
   SPELL_ATTR10_UNK24                           = 0x01000000, // 24
   SPELL_ATTR10_UNK25                           = 0x02000000, // 25
   SPELL_ATTR10_UNK26                           = 0x04000000, // 26
   SPELL_ATTR10_UNK27                           = 0x08000000, // 27
   SPELL_ATTR10_UNK28                           = 0x10000000, // 28
   SPELL_ATTR10_MOUNT_IS_NOT_ACCOUNT_WIDE       = 0x20000000, // 29 This mount is stored per-character
   SPELL_ATTR10_UNK30                           = 0x40000000, // 30
   SPELL_ATTR10_UNK31                           = 0x80000000  // 31

enum SpellAttr11 (≥ Mists)

   SPELL_ATTR11_UNK0                            = 0x00000001, //  0
   SPELL_ATTR11_UNK1                            = 0x00000002, //  1
   SPELL_ATTR11_SCALES_WITH_ITEM_LEVEL          = 0x00000004, //  2
   SPELL_ATTR11_UNK3                            = 0x00000008, //  3
   SPELL_ATTR11_UNK4                            = 0x00000010, //  4
   SPELL_ATTR11_ABSORB_ENVIRONMENTAL_DAMAGE     = 0x00000020, //  5
   SPELL_ATTR11_UNK6                            = 0x00000040, //  6
   SPELL_ATTR11_RANK_IGNORES_CASTER_LEVEL       = 0x00000080, //  7 Spell_C_GetSpellRank returns SpellLevels->MaxLevel * 5 instead of std::min(SpellLevels->MaxLevel, caster->Level) * 5
   SPELL_ATTR11_UNK8                            = 0x00000100, //  8
   SPELL_ATTR11_UNK9                            = 0x00000200, //  9
   SPELL_ATTR11_UNK10                           = 0x00000400, // 10
   SPELL_ATTR11_UNK11                           = 0x00000800, // 11
   SPELL_ATTR11_UNK12                           = 0x00001000, // 12
   SPELL_ATTR11_UNK13                           = 0x00002000, // 13
   SPELL_ATTR11_UNK14                           = 0x00004000, // 14
   SPELL_ATTR11_UNK15                           = 0x00008000, // 15
   SPELL_ATTR11_NOT_USABLE_IN_CHALLENGE_MODE    = 0x00010000, // 16
   SPELL_ATTR11_UNK17                           = 0x00020000, // 17
   SPELL_ATTR11_UNK18                           = 0x00040000, // 18
   SPELL_ATTR11_UNK19                           = 0x00080000, // 19
   SPELL_ATTR11_UNK20                           = 0x00100000, // 20
   SPELL_ATTR11_UNK21                           = 0x00200000, // 21
   SPELL_ATTR11_UNK22                           = 0x00400000, // 22
   SPELL_ATTR11_UNK23                           = 0x00800000, // 23
   SPELL_ATTR11_UNK24                           = 0x01000000, // 24
   SPELL_ATTR11_UNK25                           = 0x02000000, // 25
   SPELL_ATTR11_UNK26                           = 0x04000000, // 26
   SPELL_ATTR11_UNK27                           = 0x08000000, // 27
   SPELL_ATTR11_UNK28                           = 0x10000000, // 28
   SPELL_ATTR11_UNK29                           = 0x20000000, // 29
   SPELL_ATTR11_UNK30                           = 0x40000000, // 30
   SPELL_ATTR11_UNK31                           = 0x80000000  // 31

enum SpellAttr12 (≥ Mists)

   SPELL_ATTR12_UNK0                            = 0x00000001, //  0
   SPELL_ATTR12_UNK1                            = 0x00000002, //  1
   SPELL_ATTR12_UNK2                            = 0x00000004, //  2
   SPELL_ATTR12_UNK3                            = 0x00000008, //  3
   SPELL_ATTR12_UNK4                            = 0x00000010, //  4
   SPELL_ATTR12_UNK5                            = 0x00000020, //  5
   SPELL_ATTR12_UNK6                            = 0x00000040, //  6
   SPELL_ATTR12_UNK7                            = 0x00000080, //  7
   SPELL_ATTR12_UNK8                            = 0x00000100, //  8
   SPELL_ATTR12_UNK9                            = 0x00000200, //  9
   SPELL_ATTR12_UNK10                           = 0x00000400, // 10
   SPELL_ATTR12_UNK11                           = 0x00000800, // 11
   SPELL_ATTR12_UNK12                           = 0x00001000, // 12
   SPELL_ATTR12_UNK13                           = 0x00002000, // 13
   SPELL_ATTR12_UNK14                           = 0x00004000, // 14
   SPELL_ATTR12_UNK15                           = 0x00008000, // 15
   SPELL_ATTR12_UNK16                           = 0x00010000, // 16
   SPELL_ATTR12_UNK17                           = 0x00020000, // 17
   SPELL_ATTR12_UNK18                           = 0x00040000, // 18
   SPELL_ATTR12_UNK19                           = 0x00080000, // 19
   SPELL_ATTR12_UNK20                           = 0x00100000, // 20
   SPELL_ATTR12_UNK21                           = 0x00200000, // 21
   SPELL_ATTR12_UNK22                           = 0x00400000, // 22
   SPELL_ATTR12_UNK23                           = 0x00800000, // 23
   SPELL_ATTR12_IS_GARRISON_BUFF                = 0x01000000, // 24
   SPELL_ATTR12_UNK25                           = 0x02000000, // 25
   SPELL_ATTR12_UNK26                           = 0x04000000, // 26
   SPELL_ATTR12_IS_READINESS_SPELL              = 0x08000000, // 27
   SPELL_ATTR12_UNK28                           = 0x10000000, // 28
   SPELL_ATTR12_UNK29                           = 0x20000000, // 29
   SPELL_ATTR12_UNK30                           = 0x40000000, // 30
   SPELL_ATTR12_UNK31                           = 0x80000000  // 31

enum SpellAttr13 (≥ Mists)

   SPELL_ATTR13_UNK0                            = 0x00000001, //  0
   SPELL_ATTR13_UNK1                            = 0x00000002, //  1
   SPELL_ATTR13_UNK2                            = 0x00000004, //  2
   SPELL_ATTR13_UNK3                            = 0x00000008, //  3
   SPELL_ATTR13_UNK4                            = 0x00000010, //  4
   SPELL_ATTR13_UNK5                            = 0x00000020, //  5
   SPELL_ATTR13_UNK6                            = 0x00000040, //  6
   SPELL_ATTR13_UNK7                            = 0x00000080, //  7
   SPELL_ATTR13_UNK8                            = 0x00000100, //  8
   SPELL_ATTR13_UNK9                            = 0x00000200, //  9
   SPELL_ATTR13_UNK10                           = 0x00000400, // 10
   SPELL_ATTR13_UNK11                           = 0x00000800, // 11
   SPELL_ATTR13_UNK12                           = 0x00001000, // 12
   SPELL_ATTR13_UNK13                           = 0x00002000, // 13
   SPELL_ATTR13_UNK14                           = 0x00004000, // 14
   SPELL_ATTR13_UNK15                           = 0x00008000, // 15
   SPELL_ATTR13_UNK16                           = 0x00010000, // 16
   SPELL_ATTR13_UNK17                           = 0x00020000, // 17
   SPELL_ATTR13_ACTIVATES_REQUIRED_SHAPESHIFT   = 0x00040000, // 18
   SPELL_ATTR13_UNK19                           = 0x00080000, // 19
   SPELL_ATTR13_UNK20                           = 0x00100000, // 20
   SPELL_ATTR13_UNK21                           = 0x00200000, // 21
   SPELL_ATTR13_UNK22                           = 0x00400000, // 22
   SPELL_ATTR13_UNK23                           = 0x00800000  // 23


Extracted from Trinity Core Source (SharedDefines.h). 22 November 2019