Macros can be powerful when written well. Once you get the hang of how macros work, it's easier to write them on the fly when you need one. Knowing how a macro works also helps you check if one is working correctly in case you snagged it from somewhere else.
Technically a macro command
, putting #showtooltip
first in a macro allows the icon of the ability to be shown, and it will give you its tooltip when you mouse over the icon on your action bar. #showtooltip accepts conditionals and icon names, but by itself it adapts dynamically well enough.
We're casters -- we cast spells -- so the ubiquitous command for warlock macros is /cast
. A string of /cast lines can be found in macros that let you use the first ability not on cooldown; e.g., trinket macros will have a /use 13
or /use 14
line above a frequently used ability or cooldown so you can activate an on-use trinket. Typically you see /castsequence
in opening rotation macros, which allows you to cast several spells in order using only a single repeated button press. Occasionally you'll see a /stopcast
early in a macro, which interrupts whatever you were doing and immediately begins the spell in the macro.
Finally, you can add in plenty of conditionals
-- these are the words in square brackets -- to your macros, so you can set up different abilities for different conditions in the same button press. Conditionals work like if/else statements, and each bracketed pair is one set of conditionals strung together with "and," while brackets next to each other are strung together like "or."
For example, if I want to cast Corruption on either my mouseover target OR my focus, then I would write:
/cast [@mouseover][@focus] Corruption
If I wanted to cast Corruption on my mouseover target only if it was an enemy (mouseover AND harm), but otherwise cast it on my focus, then I would write:
/cast [@mouseover, harm][@focus] Corruption
Here are a few common conditionals
and what they mean:
Streamlining the new Mists talents
- [mod:ctrl] [mod:shift] [mod:alt] -- If you're holding a modifier key down, cast this. Having simply [mod] will cast this if you hold down any of the three modifier keys.
- [spec:1] [spec:2] -- If you're in your first or second spec, cast this.
- [harm] [help] -- If your target is an enemy or if it is a friend, cast this.
- [@target] [@player] [@focus] [@mouseover] -- This sets your macro target to either your target, yourself, your focus, or your mouseover. Blank brackets --  -- are the same as default, which is your target.
- [exists] [nodead] -- This is often paired with an [@focus] conditional to see if your focus actually exists or isn't dead yet.
With Mists of Pandaria
came the new talent selections, where you can choose one of three talents in a row. Some, like Soul Leech
, are passive abilities, but there are other talented active abilities you can drag onto your bar. If you're no longer talented into an ability, it shows up as a ? icon on your bars and the button does nothing. Despite having great ability sets like Command Demon
that switch the ability automatically based on what pet is out or sacrificed, Blizzard didn't extend this switching to talent trees. So we'll have to do it ourselves.
The general macro works for any set of talents on any class you wish to play; you just need to change the spell names. The icon remains a question mark or a greyed out version of the previous talent until you activate the ability for the first time since logging in or switching talents.
Warlocks can pass on using this macro for the level 15 or level 90 talents, as each tier has only one active ability in it. For levels 30, 45, 60, and 75, however, you can use these macros:
/cast Demonic Breath
/cast Mortal Coil
/run local G=GetSpellInfo SetMacroSpell("30T", G"Demonic Breath" or G"Mortal Coil" or G"Shadowfury")
/cast Sacrificial Pact
/cast Dark Bargain
/run local G=GetSpellInfo SetMacroSpell("45T", G"Sacrificial Pact" or G"Dark Bargain")
/cast Blood Horror
/cast Burning Rush
/cast Unbound Will
/run local G=GetSpellInfo SetMacroSpell("60T", G"Blood Horror" or G"Burning Rush" or G"Unbound Will")
/cast Grimoire of Sacrifice
/cast Grimoire: Felguard
/run local G=GetSpellInfo SetMacroSpell("75T", G"Grimoire of Sacrifice" or G"Grimoire: Felguard")
For the level 75 talents, just change "Grimoire: Felguard" to whichever Service pet you would prefer to use. I left Soul Link
and Grimoire of Supremacy
out of the macros as both abilities are passives.
Basic warlock macros for common use
Warlocks don't need as many macros anymore since the specs have entirely different combat spells now, but you can use a macro to keep common toggled abilities around by modifier key or spec change.
-- I combine the two common curses together. Since every tank has the equivalent of Curse of Enfeeblement baked into their basic abilities, I leave that one on modifier in the rare event I need it (e.g., when soloing). Otherwise I'll cast Curse of the Elements when there's no rogue around.
/cast [mod:ctrl] Curse of Enfeeblement; Curse of the Elements
Since our slowing curse is limited to affliction only, I combined that as a modifier conditional on another affliction-only ability.
/cast [mod:shift] Curse of Exhaustion; Agony
-- With all the shadow damage in this tier, we can actually use Twilight Ward effectively in raid, and it comes in handy sometimes when PvPing against another warlock.
Doomguard / Infernal
/cast [mod:shift] Twilight Ward; Unending Resolve
-- You can combine our two cooldown guardians into one button with a simple macro, and yes, it changes on the fly to the supreme versions with Grimoire of Supremacy.
/cast [mod:shift] Summon Infernal; Summon Doomguard
-- With our tank-esque glyph, demonology warlocks can have two stances to flip between. Pressing a stance again just takes you out of it, so instead of using the stance bar, you can put this on your action bars:
Let's get complicated
/cast [mod:shift] Dark Apotheosis; Metamorphosis
My '2' key does some heavy lifting when it comes to its macro. I have Fishing, Fel Flame, and my filler based on spec -- all on the same key. Let's look at it.
/cast [equipped:Fishing Poles, nocombat] Fishing;[mod:shift, @mouseover, harm][mod:shift] Fel Flame; [spec:1]Malefic Grasp; [spec:2] Shadow Bolt
The first line throws a bobber in the water if I have both my fishing pole
on and I'm not in combat. The moment I aggro something, it flips to my filler key.
Next, if I press shift, I'll cast Fel Flame
either on an enemy mouseover target or the enemy I already have targeted.
If I'm not holding a modifier key and I don't have a fishing pole equipped, if I'm in my first spec (affliction) I'll cast Malefic Grasp
on my target like usual, or if I'm in my second spec (demonology or destruction) I'll cast Shadow Bolt
. Don't worry -- if my second spec is destruction, the macro still works! In destruction, Incinerate is
@mouseover versus @focus
One of the tricks you can learn from a stint of PvPing is how to write efficient yet complex macros. A hallmark is the [@focus] macro, which lets you cast a spell on your focus without switching targets. Mouseover works in the same way, except it casts it on whatever is on your mouse.
Cynwise sparked this week's post by sharing a couple of his mouseover macros for Havoc/Soulstone
, for Fel Flame/Symbiosis: Rejuvenation
, and for a pet/Symbiosis
combination. He points out
to take advantage of how mouseover can apply to friendly and unfriendly targets alike.
Others may beg to differ, but I've come to love mouseover in PvE. While it requires some precise mouse handling sometimes in a thicket of mobs, @mouseover is more versatile in target choice than @focus. Mouseover can handle not only mobs in the field of vision but unit frames
as well. This is why having a mouseover Soul Swap
macro is powerful for affliction warlocks with populated boss frames.
and Soul Swap tend to be prime candidates for mouseover macros, I have a mouseover macro specifically for short daily-quest tagging or those dino-batting
scenarios that like to crop up once per raiding tier. This macro lets me put Corruption
on my focus, my mouseover, or my target with the shift key down, else I'll use Fel Flame
in nearly the same circumstances. (Why Corruption
? It's the cheapest instant spell we have. Destruction is stuck with Fel Flame, however.)
/cast [@focus, exists][@mouseover,mod:shift,harm][mod:shift,@target] Corruption; [@mouseover,harm][@target] Fel Flame
Macros are about as endless as advice: feel free to share your own warlock macros in the comments!
Blood Pact is a weekly column detailing DOTs, demons and all the dastardly deeds done by warlocks. We'll coach you in the fine art of staying alive, help pick the best target for Dark Intent, and steer you through tier 13 set bonuses.