-
-
Notifications
You must be signed in to change notification settings - Fork 75
Base Spells and Translating Sequences and Macro between languages.
World of Warcraft Macros have limitations in that the commands have to be used in the client's language. If you are playing in enUS, things like /cast Judgment
work. But if you are playing on a French client, this command won't work as it needs the French equivalent. GSE stores the spellID so that sequences and macros can be shared between players playing in different languages.
WoW also has a "feature" where spells change periodically. While in normal macros, /cast
and /use
are usually interchangeable, in GSE their behaviour is marginally different. /cast
and /castsequence
translate back to their Base Spell while /use
stays as the current value of the spell.
The spell changes to X no matter how many times I enter it.
GSE saves the BASE SPELL for an ability. This started in BFA or Legion (I cant remember which) where Talents and Procs would change an ability (very temporarily for procs, more permanently for talents) into an updated version. Paladin’s Avenging Wrath and the Talent Crusade are the simplest examples. If you put /cast Avenging Wrath
into a macro and had the talent for Crusade, it would cast Crusade. If you had /cast Crusade
and no longer had the talent, your macro would never cast Avenging Wrath.
While this worked - underneath the covers, I had a list and checked it twice to determine which spells replaced which. As it was manual, it missed some and had the wrong combination in a few cases. While working through Shadowlands changes, I found that Blizzard's function is to get the base spell from any ability. We didn’t know then, but now we know that Spec changes change a base spell into a spec-specific variant. For Priests, Flash Heal becomes Shadow Mend when you swap to Shadow. There is a similar relationship between Eviserate and Dispatch, Shear and Demon’s Bite. /cast Flash Heal if you are I. Shadow form will cast Shadow Mend. (You can test this by being Shadow and entering /cast Flash Heal
into your chat box.) Do not panic but use your brain and look at the logs. (I had someone post a castsequence to prove this didn’t work. Their castsequence was locking 3 spells earlier. We will talk about this in Understanding Castsequence.)
This also means that we can write a macro to work across specs now. Whether you would want to do that or not is another matter.
Before you freak out you can do some simple tests. Take a spell you are trying to add to your macro and do the following:
/dump C_Spell.GetSpellInfo("Shadow Mend")
This will return some stuff, but the important number is the spell id. For the sake of the exercise I’m going to use 1234
/dump FindBaseSpellByID(1234)
This will return a different spell id if it is an update to a base spell. If it returns nothing, then this is the base spell - for examples sake, I’m going to use 9876
/dump C_Spell.GetSpellInfo(9876)
This will then return Flash Heal.
/cast Flash Heal
will cast instead Shadow Mend
if I am shadow spec'd.
*Note these numbers aren’t the right ones. You can do this with any spell but to go from a name to an id in the first step, you need to know the spell ie it needs to be in your spellbook. You can also look the SpellID up by looking at the URL of a spell on WoWHead eg https://www.wowhead.com/spell=292040/shadow-mend the 292040 is the SpellID for Shadow Mend.