Macro Primer

Much like the Recommended PvP Addons that Cyn mentioned, I know a lot of people aren’t very familiar with macros. Not just PvP macros, but macro all together.

I’m going to give a few examples of macros and tell you how they work and when/where/why you would want to use a macro over the default methods of casting spells or using addons. As this is the primer I’m not going to go too in depth for specific classes or anything, this is more to get you familiar with them in general before we delve into the specific ones in other posts.

There is a lot more to macros that just what I’m covering here, but I wanted to give you some good starter macros as examples so that you can get comfortable using macros and be confident in knowing how they will work for you.

OFFENSIVE MACROS
All of my offensive macros are built off of the same template, because regardless of what the spell itself does the typical actions I want to perform with it remain the same. I use this (or a variation of it) for every single offensive spell that I have, on every character that I ever roll.

#showtooltip
/startattack
/cast SpellNameHere
/run UIErrorsFrame:Clear()

When you create this marco you want to use the default icon which is just a red question mark on a black background. That icon changes to reflect whatever your macro itself actually does, which in this case will cause it to become the icon of whatever spell you have in the “/cast SpellNameHere” line.

#showtooltip causes the icon to show the tool tip information for whatever spell you have the macro casting as well, so when you mouse over it you get the spell’s information like a normal spell icon instead of just the name of the macro. This line is especially useful when you have complex macros that cast multiple spells, but we’ll get into that later.

/startattack works just like the auto-attack feature, and most melee attacks. If you do not have an enemy targeted, this line will cause you to target an enemy that’s in front of you (usually the one closest to you, but not necessarily) and activate your auto-attack against the target. If you do already have an enemy targeted, then it simply activates your auto-attack against them. The usefulness of this is two-fold. First, it’s essentially an auto-target feature built into your attack buttons so you don’t have to click or tab to select a target if you don’t already have one. Second, it turns on auto-attack which is basically free damage for clothies once an opponent closes in for melee. So many casters just keep spamming their spells when I close in with a melee character and they miss out on free attack damage because they do nothing to activate their auto-attack.

/cast SpellNameHere performs the actual spell cast. You do have to actually put the name of the spell there instead, of course. With no modifiers at all, this line has no additional functionality so it simply casts the spell on your target. (We’ll get into modifiers in the class-specific macro posts, later.)

/run UIErrorsFrame:Clear() removes that cluttered mess of error messages that pop up near the top of your screen when you’re trying to cast spells that are still on cooldown, or your target is out of range, etc. It clears all of the error text that shows up. You can also modify this portion of the macro to turn your sound off/on when using the macros so you don’t hear your character’s annoying remarks about not being able to cast a spell yet, but when you’re talking about PvP I feel that even a fraction of a second where your sound is turned off can be a bad thing, so I never turn off my sound via macros.

Here are some examples of how this simple macro is used.

#showtooltip
/startattack
/cast Smite
/run UIErrorsFrame:Clear()


#showtooltip
/startattack
/cast Frostbolt
/run UIErrorsFrame:Clear()


#showtooltip
/startattack
/cast Immolate
/run UIErrorsFrame:Clear()

Another type of offensive macro is one that uses a cast sequence. This macro is best used in relation to spells that have cooldowns, or spells that you know you want to cast in a particular order. I use this most often on classes that have DoT spells, or when I have useful offensive spells that have annoying cooldowns like Priests.

#showtooltip
/startattack
/castsequence reset=combat/6 FirstSpellName, SecondSpellName, EtcSpellNames
/run UIErrorsFrame:Clear()


#showtooltip
/startattack
/castsequence reset=target/combat/6 FirstSpellName, SecondSpellName, EtcSpellNames
/run UIErrorsFrame:Clear()

Most of this macro is exactly the same as the ones above, except for the /cast line.

/castsequence tells the computer that you’re going to cast the first spell the first time you activate this macro, then the second spell the second time you press it, and so on. Note that you do have to press this macro for each spell, it’s not just going to cast them all at the same time (we’ll look at those macros in a minute). Basically you’ll be spamming this button to some degree to cast all of the spells you have in the sequence.

reset=combat/6/target this part tells the macro when you want it to reset the sequence early. If you don’t have a reset line in the cast sequence then it will simply rotate through the spells in order over and over, and wherever you happen to have left off is where it starts up again. reset=combat makes this macro start back over at the first spell any time you leave or enter combat. reset=target makes the macro start back at the first spell any time you change targets, which is good when you’re either stacking DoT’s or crowd control. reset=6 makes the macro reset to the first spell after six seconds of not using the macro.

The macro will reset to the first spell by default if you cast every spell you have listed in the castsequence. Note that this only includes spells cast from the macro itself. If your next spell on the list is Frostbolt and you cast that spell from your regular Frostbolt spell/macro instead of the castsequence macro, it does not trigger the castsequence to move to the next spell on the list because the macro itself wasn’t used to cast it.

You can use any combination of these reset features, and they are separated by the slashes when using multiples rather than just commas or semi-colons. Here are some examples of how to use this type of macro for each class.

#showtooltip
/startattack
/castsequence reset=10 Holy Fire, Shadow Word: Pain, Smite, Smite
/run UIErrorsFrame:Clear()


#showtooltip
/startattack
/castsequence reset=target/6 Frostbolt, Fireball, Fire Blast
/run UIErrorsFrame:Clear()


#showtooltip
/startattack
/castsequence reset=target/6 Corruption, Bane of Agony
/run UIErrorsFrame:Clear()

These particular macros should be used when you’re going to follow that specific sequence of spell casts. I do not recommend that you use this macro as the sole method of casting the spells within the macro unless you’re comfortable with not having access to all of those spells at a given time.

You need to be able to stay fluid in what spells you can cast and when, so you don’t want to only have access to a castsequence, especially not when you’re currently in sequence 4 and the spell you need to cast is set as the third spell to cast.

In the first example I used reset=10 because that’s the cooldown on Holy Fire, so there’s no reason to ever reset earlier than 10 seconds because the first spell on the list would be on cooldown. In the second I used reset=target/6 because I want to start with a Frostbolt on every target since slowing opponents is a key feature in PvP, but I also want it to reset after six seconds just in cast the target stays out of range of my Fire Blast or I need to use that spell on another target so it’s on cooldown, this way I get back to Frostbolt without having to cast the other spells on the macro in case the situation doesn’t allow me to. In the last example, it’s a simple application of DoT’s from the Warlock which can be used while on the move and stacks both of our instant-DoT’s on the target.

The next type of macro we’re going to discuss are the ones I mentioned a moment ago that allow you to cast more than one spell at a time. In order to do this, the spells in question have to not trigger the global cooldown. At least, all but one of them does. I’ll come up with a list of all the spells that allow that when we got over macros for the individual classes, but for now I’m just going to show you some basic example of that so that you can get the general idea of how it works.

#showtooltip Mind Flay
/startattack
/cast Lifeblood
/cast Mind Flay
/run UIErrorsFrame:Clear()

You’ll see a couple of differences in this macro compared to the others above.

#showtooltip Mind Flay when you’re using a macro like this, you want the primary spell in the macro to be the one that the tooltip displays. If you were to leave Mind Flay off of that first line like we’ve done with the other macros above, the icon and tooltip would both be for the Lifeblood spell instead of Mind Flay, where putting the name of the spell itself after the #showtooltip line forces those to be that of Mind Flay instead.

Lifeblood is the spell that you get for being an Herbalist, and it grants a bonus to Haste as well as a heal over time effect. The Haste is the real benefit of the spell though, and that’s why people like to tie it to spells when they want to benefit from it’s haste. Lifeblood also doesn’t trigger the global cooldown (GCD), so activating this macro only once casts both Lifeblood and Mind Flay at the same time.

If Lifeblood is on cooldown, this macro simply attempts to cast Lifeblood (and fails), and then casts Mind Flay regardless of whether or not Lifeblood was available. You can even do this with all of your attack spells if you’re just dying to take advantage of that haste every time it’s off of cooldown, just be aware that with this particular method Lifeblood will always be cast when using this macro so long as it’s not on cooldown.

DEFENSIVE MACROS
PvP combat can be pretty chaotic at times, and when you have more than just a couple of people involved in the fighting things can get out of hand pretty quick and it’s easy to lose sight of targets. Every healer has their own way of healing, whether it be through macros, addons, or some old school click-healing via party/raid frames. I am going to give you some healing macros here though, just to give you an idea of what functionality macros can have for healers beyond simply healing.

The first example I’m going to show you is a combination of focus macro and forced self-healing through the use of a modifier. This is getting a bit more complex, but I’m going to keep the example simple so that you can use it even if you don’t fully understand the concept of the macros.

#showtooltip
/cast [mod:alt,@YourCharacterNameHere] Flash Heal
/cast [@focus] Flash Heal
/run UIErrorsFrame:Clear()


#showtooltip
/cast [mod:alt,@YourCharacterNameHere] Power Word: Shield
/cast [@focus] Power Word: Shield
/run UIErrorsFrame:Clear()

/cast [mod:alt,@YourNameHere] Flash Heal is going to make this macro cast Flash Heal on you whenever you are holding the Alt key when you press/click this macro to activate it.

/cast [@focus] Flash Heal causes you to cast Flash Heal on your focus.

I typically use this type of macro when I’m either running the flag myself or when I’m escorting a flag runner. I use the HealBot addon for most of my healing in groups, but when it comes time to protect my flag carrier, I want to make absolutely sure that they’re getting the heals that they need and I can give myself the heals that I need, regardless of what I need to do with my mouse at the time.

#showtooltip
/cast Polymorph
/bg Sheeping %t!
/p Sheeping %t!
/run UIErrorsFrame:Clear()


#showtooltip Fear
/cast [mod:alt] Lifeblood
/cast Fear
/bg Fearing %t!
/p Fearing %t!
/run UIErrorsFrame:Clear()

These macros are used for crowd control and to announce that crowd control to your teammates. There are a couple of new lines here that I haven’t used in the other macros above, so here are the details on them.

/bg Sheeping %t! this announces to the battleground chat channel (/bg) that you are “Fearing” someone. The %t portion of this is a shortcut that Blizzard has in place to represent your target. You can use %t in any type of chat channel and it will replace %t with the name of your target. So if you had me selected as your target and you used the top macro it would cast Polymorph on me and then in the /bg chat channel it would say “Sheeping Psynister!”

/p Sheeping %t! works exactly the same way except that it’s making the announcement to the Party channel instead, making this macro useful both in battlegrounds and in LFG groups. You can replace /p and /bg with any other type of chat you want to use, just replace it with whatever the designation is for the channel: /2 is trade chat, /raid for places like Wintergrasp/Tol Barad, /5 for Twitter chat (or whatever number it is for you), and so on.

The second example that uses Fear instead of Polymorph does exactly the same function, but it combines the non-GCD Lifeblood spell to speed the Fear cast. I changed the #showtooltip line to always show me Fear rather than Lifeblood, and then added an Alt modifier to a Lifeblood cast. Whenever you use this macro it will cast Fear on your target and announce that to /bg and /p so that people are aware that you’re using crowd control (CC), hoping that they take that as a sign they should not break the CC. If you happen to be holding Alt when you activate the macro it will do all of that plus it will cast Lifeblood right before the Fear cast so that the extra haste from Lifeblood will make Fear cast faster. This way you can speed up your CC cast when you need to, but you’re not always burning Lifeblood during Fear when it’s not completely necessary.

COMBINING THE TWO
In some cases you want your macros to be able to be both offensive and defensive based on the situation. The most obvious case of that in our GnomeClone group is the Discipline Priest’s Penance spell which can be used either as a channeled offensive nuke, or as a heal. If you were to use Penance with that first macro I have listed at the top of this post, you’ll find that your Penance always casts offensively when there are enemies around you because of the “/startattack” line in the macro which auto-targets an enemy if it can.

#showtooltip
/startattack
/cast [mod:alt,@focus] Penance
/cast Penance
/run UIErrorsFrame:Clear()

/cast [mod:alt,@focus] Penance will force your Penance cast to target the person you have set as your focus even though we have the /startattack line in the macro, and even if you have an enemy selected as your current target. So long as you have a focus set, it will cast it on that person so long as they are within range of the spell.

Because of the way that Penance works, you can use this macro with either an enemy or an ally set as your focus. If you like to focus the enemy flag carrier to watch their life bars, this is a good way to force casts on them when they’re within range and line of sight. Likewise, if you prefer to focus your primary healing target (your flag carrier) then you can use this to make sure you’re always able to heal them with Penance regardless of your current target.

Advertisements

6 thoughts on “Macro Primer

  1. This is an awesome guide, and I’m really looking forward to the articles on class-specific macros. I didn’t know half this stuff, and I am already thinking of ways to put this info to use. Thanks!

  2. Thanks for posting this. My approach to macros is deer in the headlights I just don’t know what to do. Since we are doing battlegrounds I have macros set up that say key things in BG chat. Our flag going tunnel or our flag going ramp are a couple examples. Can’t stop to type when you are running or running down a flag.

  3. One tweak:

    #showtooltip
    /cast Frostbolt
    /cast !Freeze
    /run UIErrorsFrame:Clear()

    This is a matter of preference, but I like keeping my pets freeze on CD for offensive pressure, then use Nova and CoC for defensive. This will pop up the freeze targeting reticule whenever its off cooldown. If you don’t want to use it, just right click. In PvP this gives you the advantage of freezing a target just before your shatter combo lands (bc pet freeze is off your gcd), rather than watching hopelessly while some warrior beats on your frozen targets unaware.

    • The purpose of this particular post is simply to familiarize people with the use of macros in general. Each of the three classes of the Gnome Clones have their own post with specific macros that is already under development which include macros like this. Since your example is not only mage-specific but also spec-specific, it doesn’t belong within the scope of this post. I do already have this exact macro planned for the Mage guide, though I don’t use it myself. I like to have complete control over my Freeze effect so I give it a macro all to itself.

      I use the same concept of your macro for explosives when designing macros from my wife when she has an Engineer, and for the very same reason, to keep them off of cooldown by constantly making use of them. In terms of PvP though, I find Squirtle’s Freeze ability too valuable for its utility to simply throw it away every chance I get for a DPS boost or to accidentally waste it on a miss-click. That’s purely a matter of playstyle though, and I play Frost twinks as fully control focused as I can get because it’s my style.

  4. Thank you for this post. I have been playing for over 4 years and have never been able to figure macros out. This is a nice beak down and I cannot wait to use it in game.

Comments are closed.