This tutorial isn't about cookie-cutter macros. The macros below don't take additional souls into account and are very specific to one configuration and play style. The point of this article is to teach you how to build your own macros and what to look for when reading your spells and abilities. Once you learn this, you won't need cookie-cutters, though they're still useful to look at, as you may have missed something (for example, my Pyro build wasn't using Heat Wave very often because I didn't see the 50% casting speed increase, and was only using it to reset the cooldown of Withering Flames, a real waste of the ability!)
Here's an example for a pyromancer:
#show Fireball suppressmacrofailures cast Inferno cast Countdown cast Flame Bolt cast Fireball
Notice a few features of this macro:
- The "#show" line tells the UI what spell to show an icon for.
- The "suppressmacrofailures" line tells the UI not to display errors for this macro.
- Every spell except for the last one has a cooldown and/or trigger condition.
- Spells that have long cooldowns
- Spells that trigger only when some condition is met
- A "bread and butter" spell which is meant to be cast every time you have nothing else to do
- build charge, channel to drain charge or,
- build charge, activate charge-draining buff, continue casting
The second type is what the macro above would be for. For example a Pyromancer might use the above macro, then when charge is full cast Internalize Charge which increases damage by 20%, then continue using the macro while charge drains to 0 and back to full and repeat. If the Pyromancer is using Pyromancer's Armor to give themselves instant-cast Cinder Bursts, then a third button could be used for the Cinder Burst and pressed when that comes up. Now you have your full Pyromancer rotation in 3 buttons.
Ah, but what about long cooldowns that improve abilities? Let's look at Pyromancer's Heat Wave. This finishes all fire cooldowns and increases casting speed by 50% for 15 seconds. A huge boost to DPS! Two things: you want to combine such long cooldowns with any other dps-increasing abilities you have in order to maximize the resulting damage. For example, Pyromancers want to make sure that Internalize Charge is active when Heat Wave is. This requires a little juggling of Internalize Charge when Heat Wave is about to come off of cooldown, and it also means that you don't want to cast Heat Wave when you first go into battle against a boss, but rather after you have built up charge (Archon/Pyro doesn't have this problem, as they start off boss fights with Pillaging Stone and build charge that way). To resolve this, use two macros for your primary dps rotation: one that includes the long cooldown and one that does not. The one that does include the long cooldown, and uses "#show" to display the cooldown status of the dps-enhancing ability. So, you might see:
#show Heat Wave suppressmacrofailures cast Inferno cast Countdown cast Flame Bolt cast Heat Wave cast Fireball
Along with the version of the macro from earlier in this article. When you see that the cooldown on Heat Wave is within a few casts of being active, turn off Internalize Charge and leave it off until just after the Heat Wave triggers, then turn it on and let loose! You'll have 15 seconds of +20% damage and +50% casting haste while you continue to mash this one button and occasionally bang on Cinder Burst!
A few other macros are necessary for the typical raiding mage. For example, a Necromancer/Warlock (commonly called "Necrolock") will use the following for AoE damage on trash packs or when adds spawn during a boss fight:
#show Grave Rot suppressmacrofailures cast Grave Rot cast Devouring Shadows
In combat, the necrolock will cast Neddra's Grasp, Dark Touch, Radiate Death (each on their own button) and then this macro once, place the Grave Rot target circle, then press it again to place the Devouring Shadows targeting circle and continue channeling. The dps output of this combination of spells is shockingly high. You simple refresh the Devouring Shadows until Grave Rot comes off of cooldown, then refresh both. It's a rare trash pack that's going to last much more than 25 seconds, but if mobs are still at or just below half health when Radiate Death comes off of cooldown, go ahead and re-cast the two dots and Radiate, then continue with the macro. Lather, rinse, repeat.
Chloromancers have unique needs because they need to heal. Healing by targeting a player is time-consuming and saps valuable situational awareness in dungeons and raids. Instead, mouseover macros can be used to cast healing spells on whoever's unit frame the mouse is currently over. So, for example:
#show Bloom suppressmacrofailures cast @mouseover Bloom cast @mouseover Natural Healing
There is a third heal that Chloros get, Essence Surge, but because it's a very large heal on a long cooldown, it should be reserved for its own macro with Natural Healing and Bloom as backups:
#show Essence Surge suppressmacrofailures cast @mouseover Essence Surge cast @mouseover Bloom cast @mouseover Natural Healing
Putting the first macro on one button and the second macro on another allows you to press the second button when things are really bad and otherwise use the first button to do run-of-the-mill healing. One could even argue that, since pressing your "oh sh*t" button three times means that any instant healing is probably a win, you might even put your AoE heal, Flourish, into this second macro, allowing as many as three instant heals on a main tank in the span of two global cooldowns; a pretty major win if damage is coming in hard and fast during a particular phase of a fight, but unsustainable over the long term.
The goal of this tutorial has been to give you a basic understanding of the way macros are used and how they can work with your cast rotations, not replace them. I hope that every mage, no mater what soul build they choose, can gain something from this article. In future articles, I'll be including more detail on specific macros used by common soul configurations, so don't despair if your particular build doesn't make use of any of the examples, here.