APPEND ~ACTION.IDS~ ~31 SpellRES(S:RES*,O:Target*)~
             UNLESS ~31 SpellRES(S:RES\*,O:Target\*)~
APPEND ~ACTION.IDS~ ~95 SpellPointRES(S:RES*,P:Target*)~
             UNLESS ~95 SpellPointRES(S:RES\*,P:Target\*)~
APPEND ~ACTION.IDS~ ~113 ForceSpellRES(S:RES*,O:Target)~
             UNLESS ~113 ForceSpellRES(S:RES\*,O:Target)~
APPEND ~ACTION.IDS~ ~114 ForceSpellPointRES(S:RES*,P:Target)~
             UNLESS ~114 ForceSpellPointRES(S:RES\*,P:Target)~
APPEND ~ACTION.IDS~ ~147 RemoveSpellRES(S:Spell*)~
             UNLESS ~147 RemoveSpellRES(S:Spell\*)~
APPEND ~ACTION.IDS~ ~160 ApplySpellRES(S:RES*,O:Target)~
             UNLESS ~160 ApplySpellRES(S:RES\*,O:Target)~
APPEND ~ACTION.IDS~ ~181 ReallyForceSpellRES(S:RES*,O:Target)~
             UNLESS ~181 ReallyForceSpellRES(S:RES\*,O:Target)~
APPEND ~ACTION.IDS~ ~191 SpellNoDecRES(S:RES*,O:Target*)~
             UNLESS ~191 SpellNoDecRES(S:RES\*,O:Target\*)~
APPEND ~ACTION.IDS~ ~192 SpellPointNoDecRES(S:RES*,P:Target*)~
             UNLESS ~192 SpellPointNoDecRES(S:RES\*,P:Target\*)~
APPEND ~ACTION.IDS~ ~240 ReallyForceSpellDeadRES(S:RES*,O:Target)~
             UNLESS ~240 ReallyForceSpellDeadRES(S:RES\*,O:Target)~
APPEND ~ACTION.IDS~ ~318 ForceSpellRangeRES(S:RES*,O:Target)~
             UNLESS ~318 ForceSpellRangeRES(S:RES\*,O:Target)~
APPEND ~ACTION.IDS~ ~319 ForceSpellPointRangeRES(S:RES*,P:Target)~
             UNLESS ~319 ForceSpellPointRangeRES(S:RES\*,P:Target)~
APPEND ~ACTION.IDS~ ~337 ReallyForceSpellPointRES(S:RES*,P:Target*)~
             UNLESS ~337 ReallyForceSpellPointRES(S:RES\*,P:Target\*)~
COPY_EXISTING ~action.ids~ ~override~
  REPLACE_TEXTUALLY ~^106 Shout(.*$~ ~106 Shout(I:ID*SHOUTIDS)~
  BUT_ONLY_IF_IT_CHANGES

APPEND ~TRIGGER.IDS~ ~0x00A1 SpellCastOnMeRES(S:Spell*,O:Caster*)~
              UNLESS ~0x00A1 SpellCastOnMeRES(S:Spell\*,O:Caster\*)~
APPEND ~TRIGGER.IDS~ ~0x0091 SpellCastRES(S:Spell*,O:Object*)~
              UNLESS ~0x0091 SpellCastRES(S:Spell\*,O:Object\*)~
APPEND ~TRIGGER.IDS~ ~0x00A6 SpellCastPriestRES(S:Spell*,O:Object*)~
              UNLESS ~0x00A6 SpellCastPriestRES(S:Spell\*,O:Object\*)~
APPEND ~TRIGGER.IDS~ ~0x00A7 SpellCastInnateRES(S:Spell*,O:Object*)~
              UNLESS ~0x00A7 SpellCastInnateRES(S:Spell\*,O:Object\*)~
APPEND ~TRIGGER.IDS~ ~0x4031 HaveSpellRES(S:Spell*)~
              UNLESS ~0x4031 HaveSpellRES(S:Spell\*)~
APPEND ~TRIGGER.IDS~ ~0x40D5 ActuallyInCombat()~
              UNLESS ~0x40D5 ActuallyInCombat()~
COPY_EXISTING ~trigger.ids~ ~override~
  REPLACE_TEXTUALLY ~\bHeard(O:Object\*,I:ID\*)~
                    ~Heard(O:Object*,I:ID*SHOUTIDS)~
  BUT_ONLY_IF_IT_CHANGES

ACTION_IF NOT FILE_EXISTS_IN_GAME ~shoutids.ids~ THEN BEGIN
  
<<<<<<<<shoutids.ids
90
123 HEALME
124 ASSIST
125 ALERT
126 SOLAR_STANCE
>>>>>>>>
COPY ~shoutids.ids~ ~override~

END

COPY_EXISTING ~kit.ids~ ~override~
  REPLACE_TEXTUALLY ~.*\bTRUECLASS\b~              ~0x4000 TRUECLASS~
  REPLACE_TEXTUALLY ~.*\bBERSERKER\b~              ~0x4001 BERSERKER~
  REPLACE_TEXTUALLY ~.*\bWIZARDSLAYER\b~           ~0x4002 WIZARDSLAYER~
  REPLACE_TEXTUALLY ~.*\bKENSAI\b~                 ~0x4003 KENSAI~
  REPLACE_TEXTUALLY ~.*\bCAVALIER\b~               ~0x4004 CAVALIER~
  REPLACE_TEXTUALLY ~.*\bINQUISITOR\b~             ~0x4005 INQUISITOR~
  REPLACE_TEXTUALLY ~.*\bUNDEADHUNTER\b~           ~0x4006 UNDEADHUNTER~
  REPLACE_TEXTUALLY ~.*\bMAGESCHOOL_ABJURER\b~     ~0x0040 MAGESCHOOL_ABJURER~
  REPLACE_TEXTUALLY ~.*\bMAGESCHOOL_CONJURER\b~    ~0x0080 MAGESCHOOL_CONJURER~
  REPLACE_TEXTUALLY ~.*\bMAGESCHOOL_DIVINER\b~     ~0x0100 MAGESCHOOL_DIVINER~
  REPLACE_TEXTUALLY ~.*\bMAGESCHOOL_ENCHANTER\b~   ~0x0200 MAGESCHOOL_ENCHANTER~
  REPLACE_TEXTUALLY ~.*\bMAGESCHOOL_ILLUSIONIST\b~ ~0x0400 MAGESCHOOL_ILLUSIONIST~
  REPLACE_TEXTUALLY ~.*\bMAGESCHOOL_INVOKER\b~     ~0x0800 MAGESCHOOL_INVOKER~
  REPLACE_TEXTUALLY ~.*\bMAGESCHOOL_NECROMANCER\b~ ~0x1000 MAGESCHOOL_NECROMANCER~
  REPLACE_TEXTUALLY ~.*\bMAGESCHOOL_TRANSMUTER\b~  ~0x2000 MAGESCHOOL_TRANSMUTER~
  REPLACE_TEXTUALLY ~.*\bMAGESCHOOL_GENERALIST\b~  ~0x4000 MAGESCHOOL_GENERALIST~
  REPLACE_TEXTUALLY ~.*\bFERALAN\b~                ~0x4007 FERALAN~
  REPLACE_TEXTUALLY ~.*\bSTALKER\b~                ~0x4008 STALKER~
  REPLACE_TEXTUALLY ~.*\bBEASTMASTER\b~            ~0x4009 BEASTMASTER~
  REPLACE_TEXTUALLY ~.*\bASSASIN\b~                ~0x400A ASSASIN~
  REPLACE_TEXTUALLY ~.*\bBOUNTYHUNTER\b~           ~0x400B BOUNTYHUNTER~
  REPLACE_TEXTUALLY ~.*\bSWASHBUCKLER\b~           ~0x400C SWASHBUCKLER~
  REPLACE_TEXTUALLY ~.*\bBLADE\b~                  ~0x400D BLADE~
  REPLACE_TEXTUALLY ~.*\bJESTER\b~                 ~0x400E JESTER~
  REPLACE_TEXTUALLY ~.*\bSKALD\b~                  ~0x400F SKALD~
  REPLACE_TEXTUALLY ~.*\bGODTALOS\b~               ~0x4013 GODTALOS~
  REPLACE_TEXTUALLY ~.*\bGODHELM\b~                ~0x4014 GODHELM~
  REPLACE_TEXTUALLY ~.*\bGODLATHANDER\b~           ~0x4015 GODLATHANDER~
  REPLACE_TEXTUALLY ~.*\bTOTEMIC\b~                ~0x4010 TOTEMIC~
  REPLACE_TEXTUALLY ~.*\bSHAPESHIFTER\b~           ~0x4011 SHAPESHIFTER~
  REPLACE_TEXTUALLY ~.*\bBEASTFRIEND\b~            ~0x4012 BEASTFRIEND~
  REPLACE_TEXTUALLY ~.*\bBARBARIAN\b~              ~0x40000000 BARBARIAN~
  REPLACE_TEXTUALLY ~.*\bWILDMAGE\b~               ~0x80000000 WILDMAGE~
  BUT_ONLY_IF_IT_CHANGES

APPEND ~kit.ids~ ~0x4000 TRUECLASS~
  UNLESS ~\bTRUECLASS\b~
APPEND ~kit.ids~ ~0x40000000 BARBARIAN~
  UNLESS ~\bBARBARIAN\b~
APPEND ~kit.ids~ ~0x80000000 WILDMAGE~
  UNLESS ~\bWILDMAGE\b~
