Spell.dbc/Attributes: Difference between revisions

From wowdev
Jump to navigation Jump to search
(Added attributes 8-13 from TC)
Line 34: Line 34:


==enum SpellAttr1==
==enum SpellAttr1==
     SPELL_ATTR1_DISMISS_PET                      = 0x00000001, //  0 for spells without this flag client doesn't allow to summon pet if caster has a pet
     SPELL_ATTR1_DISMISS_PET                      = 0x00000001, //  0 for spells without this flag client doesn't allow to summon pet if caster has a pet
     SPELL_ATTR1_DRAIN_ALL_POWER                  = 0x00000002, //  1 use all power (Only paladin Lay of Hands and Bunyanize)
     SPELL_ATTR1_DRAIN_ALL_POWER                  = 0x00000002, //  1 use all power (Only paladin Lay of Hands and Bunyanize)
Line 69: Line 68:


==enum SpellAttr2==
==enum SpellAttr2==
     SPELL_ATTR2_CAN_TARGET_DEAD                  = 0x00000001, //  0 can target dead unit or corpse
     SPELL_ATTR2_CAN_TARGET_DEAD                  = 0x00000001, //  0 can target dead unit or corpse
     SPELL_ATTR2_UNK1                            = 0x00000002, //  1 vanish, shadowform, Ghost Wolf and other
     SPELL_ATTR2_UNK1                            = 0x00000002, //  1 vanish, shadowform, Ghost Wolf and other
Line 96: Line 94:
     SPELL_ATTR2_UNK24                            = 0x01000000, // 24
     SPELL_ATTR2_UNK24                            = 0x01000000, // 24
     SPELL_ATTR2_UNK25                            = 0x02000000, // 25
     SPELL_ATTR2_UNK25                            = 0x02000000, // 25
     SPELL_ATTR2_UNK26                            = 0x04000000, // 26 unaffected by school immunity
     SPELL_ATTR2_UNAFFECTED_BY_AURA_SCHOOL_IMMUNE = 0x04000000, // 26 unaffected by school immunity
     SPELL_ATTR2_UNK27                            = 0x08000000, // 27
     SPELL_ATTR2_UNK27                            = 0x08000000, // 27
     SPELL_ATTR2_UNK28                            = 0x10000000, // 28
     SPELL_ATTR2_IGNORE_ITEM_CHECK                = 0x10000000, // 28 Spell is cast without checking item requirements (charges/reagents/totem)
     SPELL_ATTR2_CANT_CRIT                        = 0x20000000, // 29 Spell can't crit
     SPELL_ATTR2_CANT_CRIT                        = 0x20000000, // 29 Spell can't crit
     SPELL_ATTR2_TRIGGERED_CAN_TRIGGER_PROC      = 0x40000000, // 30 spell can trigger even if triggered
     SPELL_ATTR2_TRIGGERED_CAN_TRIGGER_PROC      = 0x40000000, // 30 spell can trigger even if triggered
Line 104: Line 102:


==enum SpellAttr3==
==enum SpellAttr3==
     SPELL_ATTR3_UNK0                            = 0x00000001, //  0
     SPELL_ATTR3_UNK0                            = 0x00000001, //  0
     SPELL_ATTR3_UNK1                            = 0x00000002, //  1
     SPELL_ATTR3_UNK1                            = 0x00000002, //  1
Line 130: Line 127:
     SPELL_ATTR3_UNK23                            = 0x00800000, // 23
     SPELL_ATTR3_UNK23                            = 0x00800000, // 23
     SPELL_ATTR3_REQ_OFFHAND                      = 0x01000000, // 24 Req offhand weapon
     SPELL_ATTR3_REQ_OFFHAND                      = 0x01000000, // 24 Req offhand weapon
     SPELL_ATTR3_UNK25                            = 0x02000000, // 25 no cause spell pushback ?
     SPELL_ATTR3_TREAT_AS_PERIODIC                = 0x02000000, // 25 Makes the spell appear as periodic in client combat logs - used by spells that trigger another spell on each tick
     SPELL_ATTR3_CAN_PROC_WITH_TRIGGERED          = 0x04000000, // 26 auras with this attribute can proc from triggered spell casts with SPELL_ATTR3_TRIGGERED_CAN_TRIGGER_PROC_2 (67736 + 52999)
     SPELL_ATTR3_CAN_PROC_WITH_TRIGGERED          = 0x04000000, // 26 auras with this attribute can proc from triggered spell casts with SPELL_ATTR3_TRIGGERED_CAN_TRIGGER_PROC_2 (67736 + 52999)
     SPELL_ATTR3_DRAIN_SOUL                      = 0x08000000, // 27 only drain soul has this flag
     SPELL_ATTR3_DRAIN_SOUL                      = 0x08000000, // 27 only drain soul has this flag
Line 137: Line 134:
     SPELL_ATTR3_DONT_DISPLAY_RANGE              = 0x40000000, // 30 client doesn't display range in tooltip for those spells
     SPELL_ATTR3_DONT_DISPLAY_RANGE              = 0x40000000, // 30 client doesn't display range in tooltip for those spells
     SPELL_ATTR3_UNK31                            = 0x80000000  // 31
     SPELL_ATTR3_UNK31                            = 0x80000000  // 31


==enum SpellAttr4==
==enum SpellAttr4==
     SPELL_ATTR4_IGNORE_RESISTANCES              = 0x00000001, //  0 spells with this attribute will completely ignore the target's resistance (these spells can't be resisted)
     SPELL_ATTR4_IGNORE_RESISTANCES              = 0x00000001, //  0 spells with this attribute will completely ignore the target's resistance (these spells can't be resisted)
     SPELL_ATTR4_PROC_ONLY_ON_CASTER              = 0x00000002, //  1 proc only on effects with TARGET_UNIT_CASTER?
     SPELL_ATTR4_PROC_ONLY_ON_CASTER              = 0x00000002, //  1 proc only on effects with TARGET_UNIT_CASTER?
Line 154: Line 149:
     SPELL_ATTR4_UNK11                            = 0x00000800, // 11
     SPELL_ATTR4_UNK11                            = 0x00000800, // 11
     SPELL_ATTR4_UNK12                            = 0x00001000, // 12
     SPELL_ATTR4_UNK12                            = 0x00001000, // 12
     SPELL_ATTR4_UNK13                            = 0x00002000, // 13
     SPELL_ATTR4_COMBAT_LOG_NO_CASTER            = 0x00002000, // 13 No caster object is sent to client combat log
     SPELL_ATTR4_DAMAGE_DOESNT_BREAK_AURAS        = 0x00004000, // 14 doesn't break auras by damage from these spells
     SPELL_ATTR4_DAMAGE_DOESNT_BREAK_AURAS        = 0x00004000, // 14 doesn't break auras by damage from these spells
     SPELL_ATTR4_UNK15                            = 0x00008000, // 15
     SPELL_ATTR4_UNK15                            = 0x00008000, // 15
     SPELL_ATTR4_NOT_USABLE_IN_ARENA              = 0x00010000, // 16
     SPELL_ATTR4_NOT_USABLE_IN_ARENA_OR_RATED_BG  = 0x00010000, // 16 Cannot be used in both Arenas or Rated Battlegrounds
     SPELL_ATTR4_USABLE_IN_ARENA                  = 0x00020000, // 17
     SPELL_ATTR4_USABLE_IN_ARENA                  = 0x00020000, // 17
     SPELL_ATTR4_AREA_TARGET_CHAIN                = 0x00040000, // 18 (NYI)hits area targets one after another instead of all at once
     SPELL_ATTR4_AREA_TARGET_CHAIN                = 0x00040000, // 18 (NYI)hits area targets one after another instead of all at once
Line 173: Line 168:
     SPELL_ATTR4_UNK30                            = 0x40000000, // 30
     SPELL_ATTR4_UNK30                            = 0x40000000, // 30
     SPELL_ATTR4_UNK31                            = 0x80000000  // 31 Polymorph (chicken) 228 and Sonic Boom (38052, 38488)
     SPELL_ATTR4_UNK31                            = 0x80000000  // 31 Polymorph (chicken) 228 and Sonic Boom (38052, 38488)


==enum SpellAttr5==
==enum SpellAttr5==
     SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING          = 0x00000001, //  0 available casting channel spell when moving
     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_NO_REAGENT_WHILE_PREP            = 0x00000002, //  1 not need reagents if UNIT_FLAG_PREPARATION
Line 192: Line 185:
     SPELL_ATTR5_HASTE_AFFECT_DURATION            = 0x00002000, // 13 haste effects decrease duration of this
     SPELL_ATTR5_HASTE_AFFECT_DURATION            = 0x00002000, // 13 haste effects decrease duration of this
     SPELL_ATTR5_UNK14                            = 0x00004000, // 14
     SPELL_ATTR5_UNK14                            = 0x00004000, // 14
     SPELL_ATTR5_REDUCED_BY_AOE_DAMAGE_AVOIDANCE  = 0x00008000, // 15 damage is recuced by aoe damage avoidance auras
     SPELL_ATTR5_UNK15                            = 0x00008000, // 15 Inflits on multiple targets?
     SPELL_ATTR5_SPECIAL_ITEM_CLASS_CHECK        = 0x00010000, // 16 this allows spells with EquippedItemClass to affect spells from other items if the required item is equipped
     SPELL_ATTR5_UNK16                            = 0x00010000, // 16
     SPELL_ATTR5_USABLE_WHILE_FEARED              = 0x00020000, // 17 usable while feared
     SPELL_ATTR5_USABLE_WHILE_FEARED              = 0x00020000, // 17 usable while feared
     SPELL_ATTR5_USABLE_WHILE_CONFUSED            = 0x00040000, // 18 usable while confused
     SPELL_ATTR5_USABLE_WHILE_CONFUSED            = 0x00040000, // 18 usable while confused
Line 209: Line 202:
     SPELL_ATTR5_UNK30                            = 0x40000000, // 30
     SPELL_ATTR5_UNK30                            = 0x40000000, // 30
     SPELL_ATTR5_UNK31                            = 0x80000000  // 31 Forces all nearby enemies to focus attacks caster
     SPELL_ATTR5_UNK31                            = 0x80000000  // 31 Forces all nearby enemies to focus attacks caster


==enum SpellAttr6==
==enum SpellAttr6==
     SPELL_ATTR6_DONT_DISPLAY_COOLDOWN            = 0x00000001, //  0 client doesn't display cooldown in tooltip for these spells
     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_ONLY_IN_ARENA                    = 0x00000002, //  1 only usable in arena
Line 218: Line 209:
     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_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_UNK4                            = 0x00000010, //  4
     SPELL_ATTR6_SUSPEND_ATTACK_TIMER            = 0x00000020, //  5
     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_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_UNK7                            = 0x00000080, //  7
Line 238: Line 229:
     SPELL_ATTR6_UNK23                            = 0x00800000, // 23
     SPELL_ATTR6_UNK23                            = 0x00800000, // 23
     SPELL_ATTR6_CAN_TARGET_UNTARGETABLE          = 0x01000000, // 24
     SPELL_ATTR6_CAN_TARGET_UNTARGETABLE          = 0x01000000, // 24
     SPELL_ATTR6_UNK25                            = 0x02000000, // 25 Exorcism, Flash of Light
     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_UNK26                            = 0x04000000, // 26 related to player castable positive buff
     SPELL_ATTR6_NO_HEALING_BONUS                = 0x08000000, // 27 no healing bonus?
     SPELL_ATTR6_UNK27                            = 0x08000000, // 27
     SPELL_ATTR6_DEATHGRIP                        = 0x10000000, // 28 Only death grip as his attribute
     SPELL_ATTR6_UNK28                            = 0x10000000, // 28 Death Grip
     SPELL_ATTR6_NO_DONE_PCT_DAMAGE_MODS          = 0x20000000, // 29 ignores done percent damage mods?
     SPELL_ATTR6_NO_DONE_PCT_DAMAGE_MODS          = 0x20000000, // 29 ignores done percent damage mods?
     SPELL_ATTR6_UNK30                            = 0x40000000, // 30
     SPELL_ATTR6_UNK30                            = 0x40000000, // 30
     SPELL_ATTR6_IGNORE_CATEGORY_COOLDOWN_MODS    = 0x80000000  // 31 Spells with this attribute skip applying modifiers to category cooldowns
     SPELL_ATTR6_IGNORE_CATEGORY_COOLDOWN_MODS    = 0x80000000  // 31 Spells with this attribute skip applying modifiers to category cooldowns


==enum SpellAttr7==
==enum SpellAttr7==
     SPELL_ATTR7_UNK0                            = 0x00000001, //  0 Shaman's new spells (Call of the ...), Feign Death.
     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_IGNORE_DURATION_MODS            = 0x00000002, //  1 Duration is not affected by duration modifiers
Line 254: Line 243:
     SPELL_ATTR7_IS_CHEAT_SPELL                  = 0x00000008, //  3 Cannot cast if caster doesn't have UnitFlag2 & UNIT_FLAG2_ALLOW_CHEAT_SPELLS
     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_UNK4                            = 0x00000010, //  4 Only 47883 (Soulstone Resurrection) and test spell.
     SPELL_ATTR7_SUMMON_PLAYER_TOTEM              = 0x00000020, //  5 Only Shaman player totems.
     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_NO_PUSHBACK_ON_DAMAGE            = 0x00000040, //  6 Does not cause spell pushback on damage
     SPELL_ATTR7_UNK7                            = 0x00000080, //  7 66218 (Launch) spell.
     SPELL_ATTR7_UNK7                            = 0x00000080, //  7 66218 (Launch) spell.
Line 261: Line 250:
     SPELL_ATTR7_DISPEL_CHARGES                  = 0x00000400, // 10 Dispel and Spellsteal individual charges instead of whole aura.
     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_INTERRUPT_ONLY_NONPLAYER        = 0x00000800, // 11 Only non-player casts interrupt, though Feral Charge - Bear has it.
     SPELL_ATTR7_UNK12                            = 0x00001000, // 12 Not set in 3.2.2a.
     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_UNK13                            = 0x00002000, // 13 Not set in 3.2.2a.
     SPELL_ATTR7_UNK14                            = 0x00004000, // 14 Only 52150 (Raise Dead - Pet) spell.
     SPELL_ATTR7_UNK14                            = 0x00004000, // 14 Only 52150 (Raise Dead - Pet) spell.
Line 271: Line 260:
     SPELL_ATTR7_UNK20                            = 0x00100000, // 20 Blink, Divine Shield, Ice Block
     SPELL_ATTR7_UNK20                            = 0x00100000, // 20 Blink, Divine Shield, Ice Block
     SPELL_ATTR7_UNK21                            = 0x00200000, // 21 Not set
     SPELL_ATTR7_UNK21                            = 0x00200000, // 21 Not set
     SPELL_ATTR7_IGNORE_COLD_WEATHER_FLYING      = 0x00400000, // 22 Loaned Gryphon, Loaned Wind Rider
     SPELL_ATTR7_UNK22                            = 0x00400000, // 22
     SPELL_ATTR7_UNK23                            = 0x00800000, // 23 Motivate, Mutilate, Shattering Throw
     SPELL_ATTR7_UNK23                            = 0x00800000, // 23 Motivate, Mutilate, Shattering Throw
     SPELL_ATTR7_UNK24                            = 0x01000000, // 24 Motivate, Mutilate, Perform Speech, Shattering Throw
     SPELL_ATTR7_UNK24                            = 0x01000000, // 24 Motivate, Mutilate, Perform Speech, Shattering Throw
Line 282: Line 271:
     SPELL_ATTR7_CLIENT_INDICATOR                = 0x80000000
     SPELL_ATTR7_CLIENT_INDICATOR                = 0x80000000


Extracted from Trinity Core Source (SharedDefined.h). 29 June 2019
 
==enum SpellAttr8 ({{Template:Sandbox/VersionRange|min_expansionlevel=4}})==
    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 ({{Template:Sandbox/VersionRange|min_expansionlevel=6}})==
    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 ({{Template:Sandbox/VersionRange|min_expansionlevel=6}})==
    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 ({{Template:Sandbox/VersionRange|min_expansionlevel=6}})==
    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 ({{Template:Sandbox/VersionRange|min_expansionlevel=6}})==
    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 ({{Template:Sandbox/VersionRange|min_expansionlevel=6}})==
    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
[[Category:Auxiliary]]
[[Category:Auxiliary]]

Revision as of 02:40, 22 November 2019

enum SpellAttr0

   SPELL_ATTR0_UNK0                             = 0x00000001, //  0
   SPELL_ATTR0_REQ_AMMO                         = 0x00000002, //  1 on next ranged
   SPELL_ATTR0_ON_NEXT_SWING                    = 0x00000004, //  2
   SPELL_ATTR0_IS_REPLENISHMENT                 = 0x00000008, //  3 not set in 3.0.3
   SPELL_ATTR0_ABILITY                          = 0x00000010, //  4 client puts 'ability' instead of 'spell' in game strings for these spells
   SPELL_ATTR0_TRADESPELL                       = 0x00000020, //  5 trade spells (recipes), will be added by client to a sublist of profession spell
   SPELL_ATTR0_PASSIVE                          = 0x00000040, //  6 Passive spell
   SPELL_ATTR0_HIDDEN_CLIENTSIDE                = 0x00000080, //  7 Spells with this attribute are not visible in spellbook or aura bar
   SPELL_ATTR0_HIDE_IN_COMBAT_LOG               = 0x00000100, //  8 This attribite controls whether spell appears in combat logs
   SPELL_ATTR0_TARGET_MAINHAND_ITEM             = 0x00000200, //  9 Client automatically selects item from mainhand slot as a cast target
   SPELL_ATTR0_ON_NEXT_SWING_2                  = 0x00000400, // 10
   SPELL_ATTR0_UNK11                            = 0x00000800, // 11
   SPELL_ATTR0_DAYTIME_ONLY                     = 0x00001000, // 12 only useable at daytime, not set in 2.4.2
   SPELL_ATTR0_NIGHT_ONLY                       = 0x00002000, // 13 only useable at night, not set in 2.4.2
   SPELL_ATTR0_INDOORS_ONLY                     = 0x00004000, // 14 only useable indoors, not set in 2.4.2
   SPELL_ATTR0_OUTDOORS_ONLY                    = 0x00008000, // 15 Only useable outdoors.
   SPELL_ATTR0_NOT_SHAPESHIFT                   = 0x00010000, // 16 Not while shapeshifted
   SPELL_ATTR0_ONLY_STEALTHED                   = 0x00020000, // 17 Must be in stealth
   SPELL_ATTR0_DONT_AFFECT_SHEATH_STATE         = 0x00040000, // 18 client won't hide unit weapons in sheath on cast/channel
   SPELL_ATTR0_LEVEL_DAMAGE_CALCULATION         = 0x00080000, // 19 spelldamage depends on caster level
   SPELL_ATTR0_STOP_ATTACK_TARGET               = 0x00100000, // 20 Stop attack after use this spell (and not begin attack if use)
   SPELL_ATTR0_IMPOSSIBLE_DODGE_PARRY_BLOCK     = 0x00200000, // 21 Cannot be dodged/parried/blocked
   SPELL_ATTR0_CAST_TRACK_TARGET                = 0x00400000, // 22 Client automatically forces player to face target when casting
   SPELL_ATTR0_CASTABLE_WHILE_DEAD              = 0x00800000, // 23 castable while dead?
   SPELL_ATTR0_CASTABLE_WHILE_MOUNTED           = 0x01000000, // 24 castable while mounted
   SPELL_ATTR0_DISABLED_WHILE_ACTIVE            = 0x02000000, // 25 Activate and start cooldown after aura fade or remove summoned creature or go
   SPELL_ATTR0_NEGATIVE_1                       = 0x04000000, // 26 Many negative spells have this attr
   SPELL_ATTR0_CASTABLE_WHILE_SITTING           = 0x08000000, // 27 castable while sitting
   SPELL_ATTR0_CANT_USED_IN_COMBAT              = 0x10000000, // 28 Cannot be used in combat
   SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY    = 0x20000000, // 29 unaffected by invulnerability (hmm possible not...)
   SPELL_ATTR0_HEARTBEAT_RESIST_CHECK           = 0x40000000, // 30 random chance the effect will end TODO: implement core support
   SPELL_ATTR0_CANT_CANCEL                      = 0x80000000  // 31 positive aura can't be canceled

enum SpellAttr1

   SPELL_ATTR1_DISMISS_PET                      = 0x00000001, //  0 for spells without this flag client doesn't allow to summon pet if caster has a pet
   SPELL_ATTR1_DRAIN_ALL_POWER                  = 0x00000002, //  1 use all power (Only paladin Lay of Hands and Bunyanize)
   SPELL_ATTR1_CHANNELED_1                      = 0x00000004, //  2 clientside checked? cancelable?
   SPELL_ATTR1_CANT_BE_REDIRECTED               = 0x00000008, //  3
   SPELL_ATTR1_UNK4                             = 0x00000010, //  4 stealth and whirlwind
   SPELL_ATTR1_NOT_BREAK_STEALTH                = 0x00000020, //  5 Not break stealth
   SPELL_ATTR1_CHANNELED_2                      = 0x00000040, //  6
   SPELL_ATTR1_CANT_BE_REFLECTED                = 0x00000080, //  7
   SPELL_ATTR1_CANT_TARGET_IN_COMBAT            = 0x00000100, //  8 can target only out of combat units
   SPELL_ATTR1_MELEE_COMBAT_START               = 0x00000200, //  9 player starts melee combat after this spell is cast
   SPELL_ATTR1_NO_THREAT                        = 0x00000400, // 10 no generates threat on cast 100% (old NO_INITIAL_AGGRO)
   SPELL_ATTR1_UNK11                            = 0x00000800, // 11 aura
   SPELL_ATTR1_IS_PICKPOCKET                    = 0x00001000, // 12 Pickpocket
   SPELL_ATTR1_FARSIGHT                         = 0x00002000, // 13 Client removes farsight on aura loss
   SPELL_ATTR1_CHANNEL_TRACK_TARGET             = 0x00004000, // 14 Client automatically forces player to face target when channeling
   SPELL_ATTR1_DISPEL_AURAS_ON_IMMUNITY         = 0x00008000, // 15 remove auras on immunity
   SPELL_ATTR1_UNAFFECTED_BY_SCHOOL_IMMUNE      = 0x00010000, // 16 on immuniy
   SPELL_ATTR1_UNAUTOCASTABLE_BY_PET            = 0x00020000, // 17
   SPELL_ATTR1_UNK18                            = 0x00040000, // 18 stun, polymorph, daze, hex
   SPELL_ATTR1_CANT_TARGET_SELF                 = 0x00080000, // 19
   SPELL_ATTR1_REQ_COMBO_POINTS1                = 0x00100000, // 20 Req combo points on target
   SPELL_ATTR1_UNK21                            = 0x00200000, // 21
   SPELL_ATTR1_REQ_COMBO_POINTS2                = 0x00400000, // 22 Req combo points on target
   SPELL_ATTR1_UNK23                            = 0x00800000, // 23
   SPELL_ATTR1_IS_FISHING                       = 0x01000000, // 24 only fishing spells
   SPELL_ATTR1_UNK25                            = 0x02000000, // 25
   SPELL_ATTR1_UNK26                            = 0x04000000, // 26 works correctly with [target=focus] and [target=mouseover] macros?
   SPELL_ATTR1_UNK27                            = 0x08000000, // 27 melee spell?
   SPELL_ATTR1_DONT_DISPLAY_IN_AURA_BAR         = 0x10000000, // 28 client doesn't display these spells in aura bar
   SPELL_ATTR1_CHANNEL_DISPLAY_SPELL_NAME       = 0x20000000, // 29 spell name is displayed in cast bar instead of 'channeling' text
   SPELL_ATTR1_ENABLE_AT_DODGE                  = 0x40000000, // 30 Overpower
   SPELL_ATTR1_UNK31                            = 0x80000000  // 31

enum SpellAttr2

   SPELL_ATTR2_CAN_TARGET_DEAD                  = 0x00000001, //  0 can target dead unit or corpse
   SPELL_ATTR2_UNK1                             = 0x00000002, //  1 vanish, shadowform, Ghost Wolf and other
   SPELL_ATTR2_CAN_TARGET_NOT_IN_LOS            = 0x00000004, //  2 26368 4.0.1 dbc change
   SPELL_ATTR2_UNK3                             = 0x00000008, //  3
   SPELL_ATTR2_DISPLAY_IN_STANCE_BAR            = 0x00000010, //  4 client displays icon in stance bar when learned, even if not shapeshift
   SPELL_ATTR2_AUTOREPEAT_FLAG                  = 0x00000020, //  5
   SPELL_ATTR2_CANT_TARGET_TAPPED               = 0x00000040, //  6 target must be tapped by caster
   SPELL_ATTR2_UNK7                             = 0x00000080, //  7
   SPELL_ATTR2_UNK8                             = 0x00000100, //  8 not set in 3.0.3
   SPELL_ATTR2_UNK9                             = 0x00000200, //  9
   SPELL_ATTR2_UNK10                            = 0x00000400, // 10 related to tame
   SPELL_ATTR2_HEALTH_FUNNEL                    = 0x00000800, // 11
   SPELL_ATTR2_UNK12                            = 0x00001000, // 12 Cleave, Heart Strike, Maul, Sunder Armor, Swipe
   SPELL_ATTR2_PRESERVE_ENCHANT_IN_ARENA        = 0x00002000, // 13 Items enchanted by spells with this flag preserve the enchant to arenas
   SPELL_ATTR2_UNK14                            = 0x00004000, // 14
   SPELL_ATTR2_UNK15                            = 0x00008000, // 15 not set in 3.0.3
   SPELL_ATTR2_TAME_BEAST                       = 0x00010000, // 16
   SPELL_ATTR2_NOT_RESET_AUTO_ACTIONS           = 0x00020000, // 17 don't reset timers for melee autoattacks (swings) or ranged autoattacks (autoshoots)
   SPELL_ATTR2_REQ_DEAD_PET                     = 0x00040000, // 18 Only Revive pet and Heart of the Pheonix
   SPELL_ATTR2_NOT_NEED_SHAPESHIFT              = 0x00080000, // 19 does not necessarly need shapeshift
   SPELL_ATTR2_UNK20                            = 0x00100000, // 20
   SPELL_ATTR2_DAMAGE_REDUCED_SHIELD            = 0x00200000, // 21 for ice blocks, pala immunity buffs, priest absorb shields, but used also for other spells -> not sure!
   SPELL_ATTR2_UNK22                            = 0x00400000, // 22 Ambush, Backstab, Cheap Shot, Death Grip, Garrote, Judgements, Mutilate, Pounce, Ravage, Shiv, Shred
   SPELL_ATTR2_IS_ARCANE_CONCENTRATION          = 0x00800000, // 23 Only mage Arcane Concentration have this flag
   SPELL_ATTR2_UNK24                            = 0x01000000, // 24
   SPELL_ATTR2_UNK25                            = 0x02000000, // 25
   SPELL_ATTR2_UNAFFECTED_BY_AURA_SCHOOL_IMMUNE = 0x04000000, // 26 unaffected by school immunity
   SPELL_ATTR2_UNK27                            = 0x08000000, // 27
   SPELL_ATTR2_IGNORE_ITEM_CHECK                = 0x10000000, // 28 Spell is cast without checking item requirements (charges/reagents/totem)
   SPELL_ATTR2_CANT_CRIT                        = 0x20000000, // 29 Spell can't crit
   SPELL_ATTR2_TRIGGERED_CAN_TRIGGER_PROC       = 0x40000000, // 30 spell can trigger even if triggered
   SPELL_ATTR2_FOOD_BUFF                        = 0x80000000  // 31 Food or Drink Buff (like Well Fed)

enum SpellAttr3

   SPELL_ATTR3_UNK0                             = 0x00000001, //  0
   SPELL_ATTR3_UNK1                             = 0x00000002, //  1
   SPELL_ATTR3_UNK2                             = 0x00000004, //  2
   SPELL_ATTR3_BLOCKABLE_SPELL                  = 0x00000008, //  3 Only dmg class melee in 3.1.3
   SPELL_ATTR3_IGNORE_RESURRECTION_TIMER        = 0x00000010, //  4 you don't have to wait to be resurrected with these spells
   SPELL_ATTR3_UNK5                             = 0x00000020, //  5
   SPELL_ATTR3_UNK6                             = 0x00000040, //  6
   SPELL_ATTR3_STACK_FOR_DIFF_CASTERS           = 0x00000080, //  7 separate stack for every caster
   SPELL_ATTR3_ONLY_TARGET_PLAYERS              = 0x00000100, //  8 can only target players
   SPELL_ATTR3_TRIGGERED_CAN_TRIGGER_PROC_2     = 0x00000200, //  9 triggered from effect?
   SPELL_ATTR3_MAIN_HAND                        = 0x00000400, // 10 Main hand weapon required
   SPELL_ATTR3_BATTLEGROUND                     = 0x00000800, // 11 Can only be cast in battleground
   SPELL_ATTR3_ONLY_TARGET_GHOSTS               = 0x00001000, // 12
   SPELL_ATTR3_DONT_DISPLAY_CHANNEL_BAR         = 0x00002000, // 13 Clientside attribute - will not display channeling bar
   SPELL_ATTR3_IS_HONORLESS_TARGET              = 0x00004000, // 14 "Honorless Target" only this spells have this flag
   SPELL_ATTR3_UNK15                            = 0x00008000, // 15 Auto Shoot, Shoot, Throw,  - this is autoshot flag
   SPELL_ATTR3_CANT_TRIGGER_PROC                = 0x00010000, // 16 confirmed with many patchnotes
   SPELL_ATTR3_NO_INITIAL_AGGRO                 = 0x00020000, // 17 Soothe Animal, 39758, Mind Soothe
   SPELL_ATTR3_IGNORE_HIT_RESULT                = 0x00040000, // 18 Spell should always hit its target
   SPELL_ATTR3_DISABLE_PROC                     = 0x00080000, // 19 during aura proc no spells can trigger (20178, 20375)
   SPELL_ATTR3_DEATH_PERSISTENT                 = 0x00100000, // 20 Death persistent spells
   SPELL_ATTR3_UNK21                            = 0x00200000, // 21 unused
   SPELL_ATTR3_REQ_WAND                         = 0x00400000, // 22 Req wand
   SPELL_ATTR3_UNK23                            = 0x00800000, // 23
   SPELL_ATTR3_REQ_OFFHAND                      = 0x01000000, // 24 Req offhand weapon
   SPELL_ATTR3_TREAT_AS_PERIODIC                = 0x02000000, // 25 Makes the spell appear as periodic in client combat logs - used by spells that trigger another spell on each tick
   SPELL_ATTR3_CAN_PROC_WITH_TRIGGERED          = 0x04000000, // 26 auras with this attribute can proc from triggered spell casts with SPELL_ATTR3_TRIGGERED_CAN_TRIGGER_PROC_2 (67736 + 52999)
   SPELL_ATTR3_DRAIN_SOUL                       = 0x08000000, // 27 only drain soul has this flag
   SPELL_ATTR3_UNK28                            = 0x10000000, // 28
   SPELL_ATTR3_NO_DONE_BONUS                    = 0x20000000, // 29 Ignore caster spellpower and done damage mods?  client doesn't apply spellmods for those spells
   SPELL_ATTR3_DONT_DISPLAY_RANGE               = 0x40000000, // 30 client doesn't display range in tooltip for those spells
   SPELL_ATTR3_UNK31                            = 0x80000000  // 31

enum SpellAttr4

   SPELL_ATTR4_IGNORE_RESISTANCES               = 0x00000001, //  0 spells with this attribute will completely ignore the target's resistance (these spells can't be resisted)
   SPELL_ATTR4_PROC_ONLY_ON_CASTER              = 0x00000002, //  1 proc only on effects with TARGET_UNIT_CASTER?
   SPELL_ATTR4_UNK2                             = 0x00000004, //  2
   SPELL_ATTR4_UNK3                             = 0x00000008, //  3
   SPELL_ATTR4_UNK4                             = 0x00000010, //  4 This will no longer cause guards to attack on use??
   SPELL_ATTR4_UNK5                             = 0x00000020, //  5
   SPELL_ATTR4_NOT_STEALABLE                    = 0x00000040, //  6 although such auras might be dispellable, they cannot be stolen
   SPELL_ATTR4_CAN_CAST_WHILE_CASTING           = 0x00000080, //  7 Can be cast while another cast is in progress - see CanCastWhileCasting(SpellRec const*,CGUnit_C *,int &)
   SPELL_ATTR4_FIXED_DAMAGE                     = 0x00000100, //  8 Ignores resilience and any (except mechanic related) damage or % damage taken auras on target.
   SPELL_ATTR4_TRIGGER_ACTIVATE                 = 0x00000200, //  9 initially disabled / trigger activate from event (Execute, Riposte, Deep Freeze end other)
   SPELL_ATTR4_SPELL_VS_EXTEND_COST             = 0x00000400, // 10 Rogue Shiv have this flag
   SPELL_ATTR4_UNK11                            = 0x00000800, // 11
   SPELL_ATTR4_UNK12                            = 0x00001000, // 12
   SPELL_ATTR4_COMBAT_LOG_NO_CASTER             = 0x00002000, // 13 No caster object is sent to client combat log
   SPELL_ATTR4_DAMAGE_DOESNT_BREAK_AURAS        = 0x00004000, // 14 doesn't break auras by damage from these spells
   SPELL_ATTR4_UNK15                            = 0x00008000, // 15
   SPELL_ATTR4_NOT_USABLE_IN_ARENA_OR_RATED_BG  = 0x00010000, // 16 Cannot be used in both Arenas or Rated Battlegrounds
   SPELL_ATTR4_USABLE_IN_ARENA                  = 0x00020000, // 17
   SPELL_ATTR4_AREA_TARGET_CHAIN                = 0x00040000, // 18 (NYI)hits area targets one after another instead of all at once
   SPELL_ATTR4_UNK19                            = 0x00080000, // 19 proc dalayed, after damage or don't proc on absorb?
   SPELL_ATTR4_NOT_CHECK_SELFCAST_POWER         = 0x00100000, // 20 supersedes message "More powerful spell applied" for self casts.
   SPELL_ATTR4_UNK21                            = 0x00200000, // 21 Pally aura, dk presence, dudu form, warrior stance, shadowform, hunter track
   SPELL_ATTR4_UNK22                            = 0x00400000, // 22 Seal of Command (42058, 57770) and Gymer's Smash 55426
   SPELL_ATTR4_UNK23                            = 0x00800000, // 23
   SPELL_ATTR4_UNK24                            = 0x01000000, // 24 some shoot spell
   SPELL_ATTR4_IS_PET_SCALING                   = 0x02000000, // 25 pet scaling auras
   SPELL_ATTR4_CAST_ONLY_IN_OUTLAND             = 0x04000000, // 26 Can only be used in Outland.
   SPELL_ATTR4_UNK27                            = 0x08000000, // 27
   SPELL_ATTR4_UNK28                            = 0x10000000, // 28 Aimed Shot
   SPELL_ATTR4_UNK29                            = 0x20000000, // 29
   SPELL_ATTR4_UNK30                            = 0x40000000, // 30
   SPELL_ATTR4_UNK31                            = 0x80000000  // 31 Polymorph (chicken) 228 and Sonic Boom (38052, 38488)

enum SpellAttr5

   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

   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

   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 (≥ WoD)

   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 (≥ WoD)

   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 (≥ WoD)

   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 (≥ WoD)

   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 (≥ WoD)

   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