A macro is made up of slash commands and they make tasks easier by doing several of these commands with one button click. With some exceptions, these commands behave exactly as if you had typed them into the chat window. Blizzard provides two different "banks" of macro slots, 18 for general purpose macros that are shared by all your toons, and 18 macro slots for each toon independently. Macros are limited to 255 characters including spaces. Originally the thought behind this was Blizzard intend to store macros on the servers some day and that by putting a limit on how big a macro could get there would be less of a chance for exploitation. While macros can execute multiple slash commands, they are limited to executing ONE spell or ability per button press (With one exception discussed below). When WoW 2.0 went live the macro system was changed dramatically; Blizzard halted macros that they felt automated game play too much, such as macros that pick the appropriate rank of a heal spell to top off the target with minimal over heal. However, Blizzard added many new commands and variables to make new macros that are still extremely useful.
Making a Macro
Now that we know what a macro can do and their limitations, let's get down to business. To access the macro banks type /macro in the chat box. You'll see a window with two tabs, general and character macros, with 18 macro bank slots. Pick if you want the macro to be usable by all your characters or just the one you're currently playing, next we select an empty slot and a window pops up where we can type in the macro's name and select an icon. There's a special question mark icon that will automatically pick the icon that matches the abilities you type into a macro. After you select the icon you want you begin writing the macro itself. Finally you drag the macro to an action bar just like an ability from your spellbook.
I could include a complete guide to writing macros, however there are already a few excellent guides that do as good or better job than I ever could. Check out these great resources.
The Question Everyone Asks
Ahh, the issue that always arises with macros, if you can perform more than one ability per button click. The answer... sort of! Oh how wonderfully confusing. Let's explain. First off the bad news; you will never be able to perform more than one ability from your spellbook with only one button press... with one small caveat. If the ability has no effect on universal cooldown then you can combine it with an ability that does by using the /stopcasting command. For example the Druid talent Nature's Swiftness has no effect on universal cooldown, so it can be used in the same macro as a heal to make an instant cast healing spell with only one button click. This also works with items like trinkets that add to spell power or attack power to make one button that uses the item and casts a spell or do an ability.
The other unique macro command I feel is worth highlighting is the /castsequence command. This special macro command replaces the /cast command and allows you to define a sequence of spells to be cast. The limiting factor is that each spell requires its own button push, so the game won't automatically start casting the next spell until you press the button again. Also the game has no idea if a spell in the sequence was resisted or not, so if and then statements aren't possible. The /castsequence command has a special modifier telling the macro when to reset the sequence, such as at the end of combat, after X amount of seconds have gone by, or when you change your target.
Examples of macros using /stopcasting and /castsequence are given below and in the resource links above.General Macros
Here are some macros practically everyone can find handy. However, only you know what works best for your style of play, so use these as a jumping off point in creating your own. Each macro is highlighted in itialics, and should be copied precisely as is.
/use Conjured Crystal Water
/use Conjured Cinnamon Roll
A simple macro to eat and drink with one click. Change the items to what you use regularly./use [flyable] Ebon Gryphon; Stormpike Battle Charger
This macro will use your flying mount if it's usable, otherwise it'll use your normal mount. Be sure to change the mounts to the ones you use.#showtooltip Remove Lesser Curse/cast [target=mouseover] Remove Lesser Curse
This macro allows you to decurse someone without having to target them. Hover your mouse cursor over the target's unit frame and hit the macro. This makes for fast decursing when used with party and raid frames. Remember to change Remove Lesser Curse to the spell of your choice. This macro can also be used for healing and buffing./use [modifier:alt,target=player] Heavy Runecloth Bandage/use [modifier:ctrl,target=pet] Heavy Runecloth Bandage/use [help] Heavy Runecloth Bandage
Click the macro with alt to bandage yourself, with ctrl to bandage your pet, or with no modifier to select the target to bandage with your cursor.#showtooltip Frostbolt/stopmacro [help,noexists,dead]/cast [button:1] Frostbolt/use [button:2,exists,nodead] 13/stopcasting [button:2]/cast [button:2] Frostbolt
This is one of my favorite macros that can be adapted to any class. We all have trinkets with a clicky effect and this macro makes it super easy to use them. Click the macro like normal to do the chosen ability like always. Right click the macro to use your top trinket and immediately begin doing the ability all with the same click. What makes this so nice is the macro won't use your trinket if you don't have a valid target. No more accidently using your trinket on a bad target, or wasting precious time with 2 buttons. This macro uses the top trinket slot, to use the bottom change the use 13 line to 14. Also be sure to change the modifier and spell/ability name to whatever works best for you.Macros by Class
One of the things I like best about WoW is how diverse the classes are. As such, it would be really hard to make a list of macros encompassing all classes and circumstance in which they would be used. However I wanted to list several for each class as a jumping off point. Use these as a template for your own.Druid/cast Nature's Swiftness/stopcasting/cast [target=player] Healing Touch
One button to use Nature's Swiftness and cast Healing Touch. Change or omit the [target=player] to your heal someone other than yourself./cancelform/dismount/cast [swimming,nostance]Aquatic Form; [nostance,nocombat,noswimming,flyable]Flight Form; [noswimming,nostance]Travel Form
An all-terrain travel form macro. When executed this will shapeshift you out of your current form if you're in one, dismount you if you are mounted, and then use the appropriate travel form depending if you're swimming, can fly, or in combat.Hunter/cast [modifier:alt] Revive Pet; [target=pet,dead] Revive Pet; [nopet] Call Pet; [nocombat] Feed Pet; Mend Pet/use [nocombat] <food item>
All in one Revive/Call/Mend/Feed pet button. This will revive the pet if it's dead, call the pet if not summoned, mend the pet in combat, or feed the pet out of combat. One caveat, if you're reviving the pet and its corpse has already disappeared or is out of range, you'll need to also press alt.#showtooltip Hunter's Mark/cast Hunter's Mark/petattack [target=pettarget,noexists]/petfollow [target=pettarget,exists]
This macro will send the pet in and cast Hunter's Mark at the same time, but if pressed once more will halt your pet from attacking. Really useful to stop your pet from attacking a target./cast [noactionbar:1] Aspect of the Hawk; [noactionbar:2] Aspect of the Monkey/swapactionbar 1 2
This macro will swap between a melee and a range actionbar and cast Aspect of the Monkey for melee or Aspect of the Hawk for range. In this example the melee spells are on actionbar 2 and the range spells on actionbar 1.Mage#show Light Feather/dismount/cast Slow Fall
Will dismount you and cast Slow Fall, useful when running off cliffs. Will also show how many Light Feathers you have on the button's icon./focus [button:1,harm] target/cast [button:3, target=focus,harm] Polymorph: Turtle; [button:1] Polymorph: Turtle/stopmacro [button:1,button:3]/clearfocus [button:2]
This is a pretty complex Polymorph macro using the focus command. On normal click it will cast Polymoph and make the target your focus, allowing you to change targets. When middle-clicked the macro will cast Polymorph on your focus without changing your primary target. Finally when right click'd it will clear your focus. Remember to change the Polymorph spell to the one you like best. Also, I'm big on using my mouse, so I choose mouse buttons as my modifiers. Keyboarders out there will want to change the modifiers to shift/ctrl/alt.Paladin#showtooltip/cast [target=mouseover,help,exists,nodead] Righteous Defense; [target=target,help,exists,nodead] Righteous Defense; [target=targettarget,harm,exists,nodead] Righteous Defense;
This one will cast Righteous Defense on your target if it is friendly, on your target's target if your target is an enemy, or on the target your mouse cursor is over.#showtooltip/castsequence [harm] reset=30/combat/target/shift Seal of Light, Judgement
Will cast Seal of Light with the first press, and Judge the seal with the second. The sequence is reset when you change targets, press shift, combat ends, or 30 seconds go by.Priest/cast [button:2] Prayer of Fortitude; Power Word: Fortitude
Casts single target buff, or group buff with right click. This can be tailored for any buff with single or group versions. /cast [target=mouseover,exists,help,nodead] Renew; [target=mouseover,exists,harm,nodead] Shadow Word: Pain; [help,nodead] Renew; [harm,nodead] Shadow Word: Pain; [target=player] Renew
This macro casts either Renew (friendly) or Shadow Word: Pain (hostile) on whoever is hovering under your mouse that exists and is not dead. If you're not hovering, it does either Renew (friendly) or Shadow Word: Pain (hostile) on your selected target that is not dead. If all of the above are false, you will Renew yourself.Rogue/cast [nostealth] stealth/cast [stealth] cheap shot/cast [combat] Hemorrhage
This will stealth you, use Cheap Shot if you're steathed, or Hemorrhage if you're in combat. Change out the abilities to suit your own./cast Gouge/stopcasting/use [target=player] Netherweave Bandage
Will Gouge your target and immediately Bandage yourself. Be warned however if Gouge fails you will still start to Bandage yourself. Shaman #showtooltip /cast [Stance:1] Ghost Wolf/cast [button:2] Ghost wolf/cast [nomounted,flyable] flying mount name/use [nomounted,outdoors] standard mount name/cast [combat,nomounted,outdoors] Ghost Wolf/dismount
This macro will use the flying mount if you can or regular mount otherwise. If you're in combat you'll shapheshift to Ghost Wolf form. Press again to dismount or shapeshift back. You can also right click the macro to cast Ghost Wolf directly. Remember to edit in the names of your mounts.#showtooltip Windfury Weapon/cast [equipped:shields/two-hand] Windfury Weapon/stopmacro [equipped:shields/two-hand]/castsequence Windfury Weapon(Rank 5), Windfury Weapon
This will cast Windfury on your main hand and stop if you have a two-hander or shield equipped, otherwise on the next press it will cast Windfury on your off-hand. Remember to change Windfury to your favorite weapon enchant on the off-chance you use something different.Warlock/cast [pet:voidwalker, nocombat] Consume Shadows; [pet:voidwalker, combat] Sacrifice; [pet:Felhunter] Devour Magic; [pet:succubus] Seduction
With a Voidwalker out this will use Consume Shadows out of combat or Sacrifice in combat, Devour Magic with a Felhunter out, and finally Seduce your target with a Succubus out./castsequence reset=15/combat/target Corruption, Curse of Agony, Siphon Life, Immolate, Shoot
This is a dot sequence macro ending with shooting your wand. The sequence resets in 15 seconds,
when you change your target, or combat ends. Be sure to change the spells around to an order you prefer and ditch Siphon Life if you're not spec'd for it.Warrior/cast [nocombat,stance:1] Charge; [combat,nostance:3] Berserker Stance; [nocombat,nostance:1] Battle Stance; [combat,stance:3] Intercept
Charge the target when not in combat, or Intercept the target when in combat and switch to the appropriate stance./script CancelPlayerBuff("Blessing of Salvation")/cast charge/stopcasting/cast defensive stance/stopcasting/cast bloodrage
Charge a mob for extra rage, then switch to Defensive Stance and use Bloodrage for even more rage. As an added bonus this macro removes Salvation.Whew, That's a lot to Take In
Whelp that wraps up our look at macros. I hope this wasn't information overload. When I began learning macros it seemed daunting, almost like learning a mini programming language, but the effort was really worth it. I'm sure I'm leaving out great macros I'm not aware of since I don't play every class (yet :P). I encourage you all to experiment and find macros that work for you. I've also found that you can sometimes cut back on the amount of addons you use by replacing them with macros that accomplish the same task. I invite you all to share your macro creations in the comments section. Thanks for reading! Matthew will continue finding new ways to enhance WoW's game play in the hopes of helping you enjoy your WoW time even more.