AzerothCore
Pages :

spell_group

<-Back-to:World

The `spell_group` table

Table used to group spells for varius checks in the core. One spell may be added to many groups, but can occur in one group only once.

Field Type Attributes Key Null Default Extra Comment
id INT UNSIGNED PRI NO 0
spell_id INT UNSIGNED PRI NO 0
special_flag INT UNSIGNED NO 0

Description of the fields

id

Group identifier Rules of assigning id:

  • if group is going to be used in core code, use first avalible entry below 1000 and add enum value to SpellGroup enum in SpellMgr.h
  • if group is not going to be used in core code, use lowest avalible entry higher than 1000

spell_id

SpellId from Spell.dbc or spell_group id prefixed with "-". If spell is added to spell_ranks, spell_id has to be first rank of that spell.

special_flag

Enum SpellGroupSpecialFlags in core:

Flag Hex Name Comment
0 0x000 SPELL_GROUP_SPECIAL_FLAG_NONE
1 0x001 SPELL_GROUP_SPECIAL_FLAG_ELIXIR_BATTLE
2 0x002 SPELL_GROUP_SPECIAL_FLAG_ELIXIR_GUARDIAN
3 0x003 SPELL_GROUP_SPECIAL_FLAG_FLASK SPELL_GROUP_SPECIAL_FLAG_ELIXIR_BATTLE SPELL_GROUP_SPECIAL_FLAG_ELIXIR_GUARDIAN
4 0x004 SPELL_GROUP_SPECIAL_FLAG_ELIXIR_UNSTABLE
8 0x008 SPELL_GROUP_SPECIAL_FLAG_ELIXIR_SHATTRATH
15 0x00F SPELL_GROUP_SPECIAL_FLAG_STACK_EXCLUSIVE_MAX
16 0x010 SPELL_GROUP_SPECIAL_FLAG_FORCED_STRONGEST Helpful flag if some spells have different auras, but only one should be present
32 0x020 SPELL_GROUP_SPECIAL_FLAG_SKIP_STRONGER_CHECK
64 0x040 SPELL_GROUP_SPECIAL_FLAG_BASE_AMOUNT_CHECK
256 0x100 SPELL_GROUP_SPECIAL_FLAG_PRIORITY1
512 0x200 SPELL_GROUP_SPECIAL_FLAG_PRIORITY2
1024 0x400 SPELL_GROUP_SPECIAL_FLAG_PRIORITY3
2048 0x800 SPELL_GROUP_SPECIAL_FLAG_PRIORITY4
4096 0x1000 SPELL_GROUP_SPECIAL_FLAG_SAME_SPELL_CHECK
8192 0x2000 SPELL_GROUP_SPECIAL_FLAG_SKIP_STRONGER_SAME_SPELL