Spell.dbc/Attributes: Difference between revisions

From wowdev
Jump to navigation Jump to search
(Fixed several mismatched descriptions. Cleaned up some text for clarity; will finish more soon,)
(Added Table 6. Other minor edits.)
Line 248: Line 248:
| 65,536 || SPELL_ATTR3_SUPPRESS_CASTER_PROCS|| 0x00010000 || 16 - This will suppress any procs that could otherwise trigger (Ex. Spell/Item/Hidden).
| 65,536 || SPELL_ATTR3_SUPPRESS_CASTER_PROCS|| 0x00010000 || 16 - This will suppress any procs that could otherwise trigger (Ex. Spell/Item/Hidden).
|-
|-
| 131,072 || SPELL_ATTR3_SUPPRESS_TARGET_PROCS|| 0x00020000 || 17 - This will suppress any procs the target could trigger from this spell. Similar to the flag before this one.
| 131,072 || SPELL_ATTR3_SUPPRESS_TARGET_PROCS|| 0x00020000 || 17 - This will suppress any procs the target could trigger from this spell. Similar to SPELL_ATTR3_SUPPRESS_CASTER_PROCS.
|-
|-
| 262,144 || SPELL_ATTR3_ALWAYS_HIT || 0x00040000 || 18 - Spell cannot miss, or be dodged/parried/blocked. Could still miss if overridden by another flag from caster or target.
| 262,144 || SPELL_ATTR3_ALWAYS_HIT || 0x00040000 || 18 - Spell cannot miss, or be dodged/parried/blocked. Could still miss if overridden by another flag from caster or target.
Line 349: Line 349:
|}
|}


==enum SpellAttr5 ({{Template:Sandbox/VersionRange|min_expansionlevel=2}})==
==enum SpellAttr5==
    SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING          = 0x00000001, //  0 available casting channel spell when moving
{| class="wikitable sortable"
    SPELL_ATTR5_NO_REAGENT_WHILE_PREP            = 0x00000002, //  1 not need reagents if UNIT_FLAG_PREPARATION
|-
    SPELL_ATTR5_UNK2                            = 0x00000004, //  2
! Flag !! Attribute String !! Bitmask !! Comments
    SPELL_ATTR5_USABLE_WHILE_STUNNED            = 0x00000008, //  3 usable while stunned
|-
    SPELL_ATTR5_UNK4                            = 0x00000010, //  4
| 1 || SPELL_ATTR5_ALLOW_ACTIONS_DURING_CHANNEL || 0x00000001 || 0 - Allows actions during a channeled spell such as moving and jumping.
    SPELL_ATTR5_SINGLE_TARGET_SPELL              = 0x00000020, //  5 Only one target can be apply at a time
|-
    SPELL_ATTR5_UNK6                            = 0x00000040, //  6
| 2 || SPELL_ATTR5_NO_REAGENT_COST_WITH_AURA || 0x00000002 || 1 - Reagents will not be required in conjunction with UNIT_FLAG_PREPARATION.
    SPELL_ATTR5_UNK7                            = 0x00000080, //  7
|-
    SPELL_ATTR5_UNK8                            = 0x00000100, //  8
| 4 || SPELL_ATTR5_REMOVE_ENTERING_ARENA || 0x00000004 || 2 - TrinityCore: "Force this aura to be removed on entering arena, regardless of other properties."
    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
| 8 || SPELL_ATTR5_ALLOW_WHILE_STUNNED || 0x00000008 || 3 - Self descriptive.
    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?
| 16 || SPELL_ATTR5_TRIGGERS_CHANNELING || 0x00000010 || 4 - Self descriptive. Likely more script oriented.
    SPELL_ATTR5_HASTE_AFFECT_DURATION            = 0x00002000, // 13 haste effects decrease duration of this
|-
    SPELL_ATTR5_UNK14                            = 0x00004000, // 14
| 32 || SPELL_ATTR5_LIMIT_N || 0x00000020 || 5 - Can only be used on one target at a time.
    SPELL_ATTR5_UNK15                            = 0x00008000, // 15 Inflits on multiple targets?
|-
    SPELL_ATTR5_UNK16                            = 0x00010000, // 16
| 64 || SPELL_ATTR5_IGNORE_AREA_EFFECT_PVP_CHECK || 0x00000040 || 6 - Possible world PvP flag for objectives such as Spirit Towers?
    SPELL_ATTR5_USABLE_WHILE_FEARED              = 0x00020000, // 17 usable while feared
|-
    SPELL_ATTR5_USABLE_WHILE_CONFUSED            = 0x00040000, // 18 usable while confused
| 128 || SPELL_ATTR5_NOT_ON_PLAYER || 0x00000080 || 7 - Somehow different than SPELL_ATTR3_ONLY_TARGET_PLAYERS?
    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
| 256 || SPELL_ATTR5_NOT_ON_PLAYER_CONTROLLED_NPC || 0x00000100 || 8 - Self descriptive. (Ex. Pets, Minions).
    SPELL_ATTR5_UNK21                            = 0x00200000, // 21
|-
    SPELL_ATTR5_UNK22                            = 0x00400000, // 22
| 512 || SPELL_ATTR5_EXTRA_INITIAL_PERIOD || 0x00000200 || 9 - TrinityCore: "Immediately do periodic tick on apply."
    SPELL_ATTR5_UNK23                            = 0x00800000, // 23
|-
    SPELL_ATTR5_UNK24                            = 0x01000000, // 24
| 1,024 || SPELL_ATTR5_DO_NOT_DISPLAY_DURATION || 0x00000400 || 10 - Does not send duration to the client.
    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
| 2,048 || SPELL_ATTR5_IMPLIED_TARGETING || 0x00000800 || 11 - Uses target of target if original target not valid (Ex. Intervene).
    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
| 4,096 || SPELL_ATTR5_MELEE_CHAIN_TARGETING || 0x00001000 || 12 - Possible cleave type flag?
    SPELL_ATTR5_UNK29                            = 0x20000000, // 29
|-
    SPELL_ATTR5_UNK30                            = 0x40000000, // 30
| 8,192 || SPELL_ATTR5_SPELL_HASTE_AFFECTS_PERIODIC || 0x00002000 || 13 - Causes haste to affect the duration of periodic spells.
    SPELL_ATTR5_UNK31                            = 0x80000000 // 31 Forces all nearby enemies to focus attacks caster
|-
| 16,384 || SPELL_ATTR5_NOT_AVAILABLE_WHILE_CHARMED || 0x00004000 || 14 - Self descriptive.
|-
| 32,768 || SPELL_ATTR5_TREAT_AS_AREA_EFFECT || 0x00008000 || 15 - Similar to SPELL_ATTR3_TREAT_AS_PERIODIC.
|-
| 65,536 || SPELL_ATTR5_AURA_AFFECTS_NOT_JUST_REQ_EQUIPPED_ITEM || 0x00010000 || 16 - Self descriptive.
|-
| 131,072 || SPELL_ATTR5_ALLOW_WHILE_FLEEING || 0x00020000 || 17 - Self descriptive.
|-
| 262,144 || SPELL_ATTR5_ALLOW_WHILE_CONFUSED || 0x00040000 || 18 - Self descriptive.
|-
| 524,288 || SPELL_ATTR5_AI_DOESNT_FACE_TARGET || 0x00080000 || 19 - Client does not automatically turn caster's model to face target. Opposite of SPELL_ATTR0_CAST_TRACK_TARGET.
|-
| 1,048,576 || SPELL_ATTR5_DO_NOT_ATTEMPT_A_PET_RESUMMON_WHEN_DISMOUNTING || 0x00100000 || 20 - TrinityCore: "No generic handling possible, used by scripted dismount spells."
|-
| 2,097,152 || SPELL_ATTR5_IGNORE_TARGET_REQUIREMENTS || 0x00200000 || 21 -  *NYI* Self descriptive.
|-
| 4,194,304 || SPELL_ATTR5_NOT_ON_TRIVIAL || 0x00400000 || 22 - *NYI* Self descriptive.
|-
| 8,388,608 || SPELL_ATTR5_NO_PARTIAL_RESISTS || 0x00800000 || 23 - *NYI*, TrinityCore: "Resisting only some spell effects not implemented."
|-
| 16,777,216 || SPELL_ATTR5_IGNORE_CASTER_REQUIREMENTS || 0x01000000 || 24 - *NYI* Self descriptive.
|-
| 33,554,432 || SPELL_ATTR5_ALWAYS_LINE_OF_SIGHT || 0x02000000 || 25 - Constant line of sight required for spell duration.
|-
| 67,108,864 || SPELL_ATTR5_ALWAYS_AOE_LINE_OF_SIGHT || 0x04000000 || 26 - Same as SPELL_ATTR5_ALWAYS_LINE_OF_SIGHT but with area of effect spells instead.
|-
| 134,217,728 || SPELL_ATTR5_NO_CASTER_AURA_ICON || 0x08000000 || 27 Auras with this attribute are not visible on units that are the spell caster.
|-
| 268,435,456 || SPELL_ATTR5_NO_TARGET_AURA_ICON || 0x10000000 || 28 - Auras with this attribute are not visible on units that are the spell target.
|-
| 536,870,912 || SPELL_ATTR5_AURA_UNIQUE_PER_CASTER || 0x20000000 || 29 - Similar to SPELL_ATTR3_STACK_FOR_DIFF_CASTERS. Could be used for debuff grouping.
|-
| 1,073,741,824 || SPELL_ATTR5_ALWAYS_SHOW_GROUND_TEXTURE || 0x40000000 || 30 - Likely refers to the Projected Texture setting and will cause this spell to ignore its value.
|-
| 2,147,483,648 || SPELL_ATTR5_ADD_MELEE_HIT_RATING || 0x80000000 || 31 - Self descriptive.
|}


==enum SpellAttr6 ({{Template:Sandbox/VersionRange|min_expansionlevel=2}})==
==enum SpellAttr6 ({{Template:Sandbox/VersionRange|min_expansionlevel=2}})==
Line 650: Line 686:
Extracted from Trinity Core Source (SharedDefines.h). November 22, 2019. Updated Tables 0-4 to March 16, 2023.
Extracted from Trinity Core Source (SharedDefines.h). November 22, 2019. Updated Tables 0-4 to March 16, 2023.


Please note that while many Spell Headers may contain different wording from various sources and years of work, the goal is to convey information most accurately and understandably.
Please note that while many Spell Headers may contain different wording from various sources and years of work, the goal is to convey information most accurately and understandably. Only when programming would the header information be needed (which can be found in the most recent aforementioned file.)


This is an ongoing update of many important characteristics that define spells and abilities. If you have knowledge of these please feel free to add any missing information. - [[User:Xiberion|Xiberion]]
This is an ongoing update of many important characteristics that define spells and abilities. If you have knowledge of these please feel free to add any missing information. - [[User:Xiberion|Xiberion]]
[[Category:Auxiliary]]
[[Category:Auxiliary]]

Revision as of 11:44, 17 March 2023

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 - TrinityCore: "Use ammo, ranged attack range modifiers, ranged haste, etc".
4 SPELL_ATTR0_ON_NEXT_SWING 0x00000004 2 - TrinityCore: "On next melee (Type 1). Both "on next swing" attributes have identical handling in server & client".
8 SPELL_ATTR0_IS_REPLENISHMENT 0x00000008 3 - Not set in or past 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. TrinityCore: "Cannot be reflected, not affected by cast speed modifiers, etc".
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. TrinityCore: "Spell is automatically cast on self by core."
128 SPELL_ATTR0_HIDDEN_CLIENTSIDE 0x00000080 7 - Spells with this attribute are not visible in spellbook or aura bar.
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 main-hand slot as a cast target. TBC Classic: "Held Item Only".
1,024 SPELL_ATTR0_ON_NEXT_SWING_2 0x00000400 10 - TrinityCore: "On next melee (Type 2). Both "on next swing" attributes have identical handling in server & client".
2,048 SPELL_ATTR0_WEARER_CASTS_PROC_TRIGGER 0x00000800 11 - TrinityCore: Marker attribute to show auras that trigger another spell (either directly or with a script).
4,096 SPELL_ATTR0_DAYTIME_ONLY 0x00001000 12 - Only useable at daytime, not set in or past 2.4.2. TBC Classic: "Server Only".
8,192 SPELL_ATTR0_NIGHT_ONLY 0x00002000 13 - Only useable at night, not set in or past 2.4.2. TBC Classic: "Allow Item Spell In PvP".
16,384 SPELL_ATTR0_INDOORS_ONLY 0x00004000 14 - Only useable indoors, not set in or past 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 or 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_AFFECT_SHEATH_STATE 0x00040000 18 - Leaves your weapons (if) sheathed during spell animation. TrinityCore: "Does not sheathe weapons (client only)".
524,288 SPELL_ATTR0_LEVEL_DAMAGE_CALCULATION 0x00080000 19 - Spell damage depends on level of the caster. TrinityCore: "For non-player casts, scale impact and power cost with caster's level".
1,048,576 SPELL_ATTR0_STOP_ATTACK_TARGET 0x00100000 20 - Cancels current auto-attack when cast.
2,097,152 SPELL_ATTR0_IMPOSSIBLE_DODGE_PARRY_BLOCK 0x00200000 21 - Cannot be Dodged, Parried, or Blocked. Prevents physical based avoidance.
4,194,304 SPELL_ATTR0_CAST_TRACK_TARGET 0x00400000 22 - Automatically forces player to face the target when casting. Applicable only on the client.
8,388,608 SPELL_ATTR0_CASTABLE_WHILE_DEAD 0x00800000 23 - Attribute that allows a spell to be cast while in the dead state as well as ghost state.
16,777,216 SPELL_ATTR0_CASTABLE_WHILE_MOUNTED 0x01000000 24 - Spell can be cast while mounted.
33,554,432 SPELL_ATTR0_DISABLED_WHILE_ACTIVE 0x02000000 25 - Activate a cooldown after aura expiration, current summon removed, or go script. Spell is unusable while already active; cooldown starts when effect expires.
67,108,864 SPELL_ATTR0_NEGATIVE_AURA 0x04000000 26 - Forces the spell to be handled as negative. Example: Aura is shown in the debuff bar.
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. TrinityCore: "Spell can ignore Invulnerability, unless the Invulnerability spell also has this attribute". TBC Classic: "No Immunities".
1,073,741,824 SPELL_ATTR0_HEARTBEAT_RESIST_CHECK 0x40000000 30 - Periodic resistance checks. TrinityCore: "Periodically re-rolls against resistance to potentially expire the aura early".
2,147,483,648 SPELL_ATTR0_CANT_CANCEL_AURA 0x80000000 31 - Aura cannot be canceled or right-clicked off.

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 already has a pet. TBC Classic: "Dismiss Pet First".
2 SPELL_ATTR1_DRAIN_ALL_POWER 0x00000002 1 - Uses all power (Ex. Lay on Hands, Bunyanize). TrinityCore: "Ignores listed power cost and drains entire pool instead". TBC Classic: "Use All Mana".
4 SPELL_ATTR1_IS_CHANNELED 0x00000004 2 - Spell is channeled. Spell is handled equally with client and server.
8 SPELL_ATTR1_CANT_BE_REDIRECTED 0x00000008 3 - No redirection to another target. Ignores spells with the "SPELL_AURA_SPELL_MAGNET" aura number 96 of effect number 6.
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. Spell is handled equally with client and server.
128 SPELL_ATTR1_CANT_BE_REFLECTED 0x00000080 7 - Spell will bypass any reflection effects.
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 and will not initiate combat.
2,048 SPELL_ATTR1_DONT_REFRESH_DURATION_ON_RECAST 0x00000800 11 - TrinityCore: "Aura will not refresh it's duration when recast".
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 negative auras on immunity. Immunity purges effect.
65,536 SPELL_ATTR1_UNAFFECTED_BY_SCHOOL_IMMUNE 0x00010000 16 - TrinityCore: "Unaffected by School Immunities. Will not pierce Divine Shield, Ice Block, and other full Invulnerabilities". TBC Classic: "Immunity to Hostile & Friendly Effects".
131,072 SPELL_ATTR1_UNAUTOCASTABLE_BY_PET 0x00020000 17 - No AutoCast by Pet AI.
262,144 SPELL_ATTR1_PREVENTS_ANIM 0x00040000 18 - Stun, Polymorph, Daze and Hex. Applies aura "UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT". TBC Classic: "Prevents Anim".
524,288 SPELL_ATTR1_CANT_TARGET_SELF 0x00080000 19 - Excludes caster from spell effects even if not the primary target.
1,048,576 SPELL_ATTR1_REQ_COMBO_POINTS1 0x00100000 20 - Finishing Move - Damage.
2,097,152 SPELL_ATTR1_THREAT_ON_MISS_ONLY 0x00200000 21 - Self descriptive.
4,194,304 SPELL_ATTR1_REQ_COMBO_POINTS2 0x00400000 22 - Finishing Move - Duration.
8,388,608 SPELL_ATTR1_IGNORE_OWNER_DEATH 0x00800000 23 - Unaffected by death of owner. Possibly works with temporary summons as well?
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 - Self descriptive.
67,108,864 SPELL_ATTR1_REQUIRE_ALL_TARGETS 0x04000000 26 - Works correctly with [target=focus] and [target=mouseover] macros? (Used in many vehicle type spells) 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 Self descriptive.
536,870,912 SPELL_ATTR1_NAME_IN_CHANNEL_BAR 0x20000000 29 - Spell name is displayed in cast bar instead of "Channeling" text in Channel Bar. (Client Only).
1,073,741,824 SPELL_ATTR1_ENABLE_AT_DODGE 0x40000000 30 - Activates on dodge; Overpower. TBC Classic: "Combo on Block (Mainline: Dispel All Stacks)".
2,147,483,648 SPELL_ATTR1_CAST_WHEN_LEARNED 0x80000000 31 - Cast the spell 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 - Self descriptive.
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_DO_NOT_CONSUME_IF_GAINED_DURING_CAST 0x00008000 Self descriptive.
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_ITEM_CAST_WITH_OWNER_SKILL 0x01000000 24 - Self descriptive.
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_HIDE_IN_RAID_FILTER 0x00004000 14 - Self descriptive. *Define Raid Filter.* 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_SUPPRESS_CASTER_PROCS 0x00010000 16 - This will suppress any procs that could otherwise trigger (Ex. Spell/Item/Hidden).
131,072 SPELL_ATTR3_SUPPRESS_TARGET_PROCS 0x00020000 17 - This will suppress any procs the target could trigger from this spell. Similar to SPELL_ATTR3_SUPPRESS_CASTER_PROCS.
262,144 SPELL_ATTR3_ALWAYS_HIT 0x00040000 18 - Spell cannot miss, or be dodged/parried/blocked. Could still miss if overridden by another flag from caster or target.
524,288 SPELL_ATTR3_INSTANT_TARGET_PROCS 0x00080000 19 - Proc events are triggered before spell batching processes the spell hit on target. 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. Self descriptive.
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 (Ex. Vampiric Embrace). 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. *Recheck and update needed.*
268,435,456 SPELL_ATTR3_IGNORE_RESTRICTIONS 0x10000000 28 - Ignore caster and target restrictions.
536,870,912 SPELL_ATTR3_IGNORE_CASTER_MODIFIERS 0x20000000 29 - Does not inherit any of the casters spell, ability, or stat modifiers.
1,073,741,824 SPELL_ATTR3_DONT_DISPLAY_RANGE 0x40000000 30 - Client does not display range in tooltip for these 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 - Most debuffs (with exceptions such as Resurrection Sickness) will automatically do this.
8 SPELL_ATTR4_NO_HELPFUL_THREAT 0x00000008 3 - Self descriptive.
16 SPELL_ATTR4_NO_HARMFUL_THREAT 0x00000010 4 - Self descriptive. May influence certain situations in towns with guard aggro in respect to PvP.
32 SPELL_ATTR4_ALLOW_CLIENT_TARGETING 0x00000020 5 - Allow client targeting. Applies only to pet spells, if this is not applied then opcode CMSG_PET_ACTION is sent instead of CMSG_PET_CAST_SPELL.
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. Alternate "XYZ_REACTIVE_DAMAGE_PROC".
32,768 SPELL_ATTR4_NOT_IN_SPELLBOOK 0x00008000 15 - Self descriptive.
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_BOUNCING_CHAIN_MISSILES 0x00040000 18 - Proc delayed, after damage or will not proc on absorb? TBC Classic: "Bouncy Chain Missiles".
524,288 SPELL_ATTR4_ALLOW_PROC_WHILE_SITTING 0x00080000 19 - Self descriptive. TBC Classic: "Allow Proc While Sitting"
1,048,576 SPELL_ATTR4_AURA_NEVER_BOUNCES 0x00100000 20 - Static Aura. Pally aura, DK presence, Warrior stance, Shadowform, etc. TBC Classic: "Aura Never Bounces".
2,097,152 SPELL_ATTR4_ALLOW_IN_ARENA 0x00200000 21 - Aura/Buff is not removed upon entering an arena match? TBC Classic: "Allow Entering Arena".
4,194,304 SPELL_ATTR4_PROC_SUPPRESS_SWING_ANIM 0x00400000 22 - Disables client side weapon swing animation. TBC Classic: "Proc Suppress Swing Anim".
8,388,608 SPELL_ATTR4_SUPPRESS_WEAPON_PROCS 0x00800000 23 - Suppress weapon procs. Similar to SPELL_ATTR3_SUPPRESS_CASTER_PROCS.
16,777,216 SPELL_ATTR4_AUTO_RANGED_COMBAT 0x01000000 24 - Self descriptive. TBC Classic: "Auto Ranged Combat".
33,554,432 SPELL_ATTR4_OWNER_POWER_SCALING 0x02000000 25 - Pet scaling auras. TBC Classic: "Owner Power Scaling".
67,108,864 SPELL_ATTR4_ONLY_FLYING_AREAS 0x04000000 26 - Self descriptive.
134,217,728 SPELL_ATTR4_FORCE_DISPLAY_CASTBAR 0x08000000 27 - Self descriptive.
268,435,456 SPELL_ATTR4_IGNORE_COMBAT_TIMER 0x10000000 28 - Self descriptive.
536,870,912 SPELL_ATTR4_AURA_BOUNCE_FAILS_SPELL 0x20000000 29 - Self descriptive.
1,073,741,824 SPELL_ATTR4_OBSOLETE 0x40000000 30 - Deprecation indicator? TBC Classic: "Obsolete".
2,147,483,648 SPELL_ATTR4_USE_FACING_FROM_SPELL 0x80000000 31 - Orientation/Positional Requirements for scripting purposes?

enum SpellAttr5

Flag Attribute String Bitmask Comments
1 SPELL_ATTR5_ALLOW_ACTIONS_DURING_CHANNEL 0x00000001 0 - Allows actions during a channeled spell such as moving and jumping.
2 SPELL_ATTR5_NO_REAGENT_COST_WITH_AURA 0x00000002 1 - Reagents will not be required in conjunction with UNIT_FLAG_PREPARATION.
4 SPELL_ATTR5_REMOVE_ENTERING_ARENA 0x00000004 2 - TrinityCore: "Force this aura to be removed on entering arena, regardless of other properties."
8 SPELL_ATTR5_ALLOW_WHILE_STUNNED 0x00000008 3 - Self descriptive.
16 SPELL_ATTR5_TRIGGERS_CHANNELING 0x00000010 4 - Self descriptive. Likely more script oriented.
32 SPELL_ATTR5_LIMIT_N 0x00000020 5 - Can only be used on one target at a time.
64 SPELL_ATTR5_IGNORE_AREA_EFFECT_PVP_CHECK 0x00000040 6 - Possible world PvP flag for objectives such as Spirit Towers?
128 SPELL_ATTR5_NOT_ON_PLAYER 0x00000080 7 - Somehow different than SPELL_ATTR3_ONLY_TARGET_PLAYERS?
256 SPELL_ATTR5_NOT_ON_PLAYER_CONTROLLED_NPC 0x00000100 8 - Self descriptive. (Ex. Pets, Minions).
512 SPELL_ATTR5_EXTRA_INITIAL_PERIOD 0x00000200 9 - TrinityCore: "Immediately do periodic tick on apply."
1,024 SPELL_ATTR5_DO_NOT_DISPLAY_DURATION 0x00000400 10 - Does not send duration to the client.
2,048 SPELL_ATTR5_IMPLIED_TARGETING 0x00000800 11 - Uses target of target if original target not valid (Ex. Intervene).
4,096 SPELL_ATTR5_MELEE_CHAIN_TARGETING 0x00001000 12 - Possible cleave type flag?
8,192 SPELL_ATTR5_SPELL_HASTE_AFFECTS_PERIODIC 0x00002000 13 - Causes haste to affect the duration of periodic spells.
16,384 SPELL_ATTR5_NOT_AVAILABLE_WHILE_CHARMED 0x00004000 14 - Self descriptive.
32,768 SPELL_ATTR5_TREAT_AS_AREA_EFFECT 0x00008000 15 - Similar to SPELL_ATTR3_TREAT_AS_PERIODIC.
65,536 SPELL_ATTR5_AURA_AFFECTS_NOT_JUST_REQ_EQUIPPED_ITEM 0x00010000 16 - Self descriptive.
131,072 SPELL_ATTR5_ALLOW_WHILE_FLEEING 0x00020000 17 - Self descriptive.
262,144 SPELL_ATTR5_ALLOW_WHILE_CONFUSED 0x00040000 18 - Self descriptive.
524,288 SPELL_ATTR5_AI_DOESNT_FACE_TARGET 0x00080000 19 - Client does not automatically turn caster's model to face target. Opposite of SPELL_ATTR0_CAST_TRACK_TARGET.
1,048,576 SPELL_ATTR5_DO_NOT_ATTEMPT_A_PET_RESUMMON_WHEN_DISMOUNTING 0x00100000 20 - TrinityCore: "No generic handling possible, used by scripted dismount spells."
2,097,152 SPELL_ATTR5_IGNORE_TARGET_REQUIREMENTS 0x00200000 21 - *NYI* Self descriptive.
4,194,304 SPELL_ATTR5_NOT_ON_TRIVIAL 0x00400000 22 - *NYI* Self descriptive.
8,388,608 SPELL_ATTR5_NO_PARTIAL_RESISTS 0x00800000 23 - *NYI*, TrinityCore: "Resisting only some spell effects not implemented."
16,777,216 SPELL_ATTR5_IGNORE_CASTER_REQUIREMENTS 0x01000000 24 - *NYI* Self descriptive.
33,554,432 SPELL_ATTR5_ALWAYS_LINE_OF_SIGHT 0x02000000 25 - Constant line of sight required for spell duration.
67,108,864 SPELL_ATTR5_ALWAYS_AOE_LINE_OF_SIGHT 0x04000000 26 - Same as SPELL_ATTR5_ALWAYS_LINE_OF_SIGHT but with area of effect spells instead.
134,217,728 SPELL_ATTR5_NO_CASTER_AURA_ICON 0x08000000 27 - Auras with this attribute are not visible on units that are the spell caster.
268,435,456 SPELL_ATTR5_NO_TARGET_AURA_ICON 0x10000000 28 - Auras with this attribute are not visible on units that are the spell target.
536,870,912 SPELL_ATTR5_AURA_UNIQUE_PER_CASTER 0x20000000 29 - Similar to SPELL_ATTR3_STACK_FOR_DIFF_CASTERS. Could be used for debuff grouping.
1,073,741,824 SPELL_ATTR5_ALWAYS_SHOW_GROUND_TEXTURE 0x40000000 30 - Likely refers to the Projected Texture setting and will cause this spell to ignore its value.
2,147,483,648 SPELL_ATTR5_ADD_MELEE_HIT_RATING 0x80000000 31 - Self descriptive.

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). November 22, 2019. Updated Tables 0-4 to March 16, 2023.

Please note that while many Spell Headers may contain different wording from various sources and years of work, the goal is to convey information most accurately and understandably. Only when programming would the header information be needed (which can be found in the most recent aforementioned file.)

This is an ongoing update of many important characteristics that define spells and abilities. If you have knowledge of these please feel free to add any missing information. - Xiberion