Mozman's WoW Warrior Macros


WoW Warrior Macros

By: Mozman

Originally posted on the official WoW forums and reposted on TankSpot. This was excavated from an archive made by the Wayback Machine. As such, offsite links will likely not work. Note that this was posted on Jul 27, 2007 – so it may reference Burning Crusade talents, abilities, or items. Much of it is still applicable to Vanilla though.

This is an updated and reformatted post of my WoW warrior forum ‘2.0 Warrior Macros’ thread (written on Jedroth)

Please post your questions, queries, tested and broke warrior macros here and tell us what they do…

Its idea is show examples of the endless variety and combinations of macros - you can copy them or, as many have done - use them as a base for your own play-style

As Ciderhelm pointed out in Fortifications, especially when used with keybinds, macros can improve your gaming, even if just to take some of the repetition out of it.

Contents this is a general classification – you may find what you’re after, or the basic commands in different areas…

  • Weapon swaps
  • Stance dances
  • Charge/Intercept/Intervene
  • PvP / DPS / Leveling
  • Tanking
  • Multi Tanking
  • Miscellaneous
  • Common macro commands

Note you can shift-click the name of your spell, ability, trinket, weapon, shield etc. into your macro. You do not need the “(Rank X)” when you do as it will always use the highest rank.

Weapon Swaps

Dual wielding to 2h and back to DW :

/equipslot 16 Maladath, Runed Blade of the Black Flight
/equipslot 17 Qiraji Sacrificial Dagger
/equipslot 16 The Untamed Blade

Shield (first line puts you into def stance)

/cast [stance:1/3]Defensive Stance
/equipslot 16 Maladath, Runed Blade of the Black Flight
/equipslot 17 Drillborer Disk

A one button version of the quick equip macro. Normal is tank, ctrl is DW, alt is resist shield. You can modify this any number of ways for 2H wep and different button combos.

/equipslot 16 Thunderfury, Blessed Blade of the Windseeker
/equipslot 17 Elementium Reinforced Bulwark
/equipslot [modifier:ctrl] 17 Sickle of Unyielding Strength
/equipslot [modifier:alt] 17 Draconian Deflector

DW to Shield to 2h and back

/equipslot 16 Vindicator's Brand
/equipslot 17 Revenger
/equip [equipped:One-Handed Swords] Aegis of the Sunbird
/equip [equipped:Shields] Gorehowl

for particlular bag spots: ‘PickupContainerItem’ is where you want to put your shield.

/script PickupInventoryItem(17); if CursorHasItem()then PickupContainerItem(4,4);EquipItemByName("The Unstoppable Force");else EquipItemByName("Stormstrike Hammer"); EquipItemByName("The Immovable Object");end;

Stance Dances

Simple 1 ability dances, will put you in correct stance and cast ability as well as show cooldowns &/or tooltips

# showtooltip Overpower
/cast [stance:1] Overpower; Battle Stance
# show Mocking Blow
/cast [stance:1] Mocking Blow; Battle Stance
# show Taunt
/cast [stance:2] Taunt; Defensive Stance
# showtooltip Whirlwind
/cast [stance:3] Whirlwind; Berserker Stance

Stance change “loop” macro. Access all stances from any stance with just 2 keybinds.

/cast [stance:1]Berserker Stance;[stance:3]Defensive Stance;[stance:2]Battle Stance

This one goes in the opposite direction:

/cast [stance:1]Defensive Stance;[stance:2]Berserker Stance;[Stance:3]Battle Stance

Toggles stances between def and battle stance and if control clicked, it will go to zerker stance.

/cast [modifier:ctrl,nostance:3] Berserker Stance; [stance:1] Defensive Stance; Battle Stance

Generic Stance Macro: Replace <* Stance Ability> with whatever you want.

/cast [stance:1] <Battle Stance Ability>; [stance:2] <Defensivee Stance Ability>; [stance:3] <Berserker Stance Ability>

Example: Will cast Overpower in Battle stance, Sunder Armor in Defensive, and Whirlwind in Berserker stance

/cast [stance:1] Overpower; [stance:2] Sunder Armor; [stance:3] Whirlwind

stance dance with wep swaps - changes to battle stance & equips 2h, then def stance with 1h and shield, then zerk stance & re-equips 2h…

/cast [stance:1]Berserker Stance;[stance:3]Defensive Stance;[stance:2]Battle Stance
/equipslot 16 Gorehowl
/stopmacro [stance:1]
/equipslot 16 King's Defender
/equipslot 17 Aegis of the Sunbird

Fear Dance - think Nightbane, Onyxia… will put you into zerker stance, pop zerker rage and then (back) to def stance if you have a shield on or to battle if not

# show Berserker Rage
/cast [stance:3] Berserker Rage; Berserker Stance
/cast [noequipped:shields] Battle Stance; Defensive Stance
Charge / intercept / intervene

Charge & intercept - puts you into the correct stance, another use and you charge/intercept. It will also leave you in zerker while in combat…

/cast [nocombat,stance:1] Charge; [combat,nostance:3] Berserker Stance; [nocombat,nostance:1] Battle Stance; [combat,stance:3] Intercept
/cast [nostance:2] Defensive Stance; [help] Intervene; [target=targettarget, help] Intervene

or this will mouseover:

/cast [target=mouseover,help,nodead,stance:2] Intervene; Defensive Stance

Focus intervene - useful for any situation where you need to get away quickly. Ctrl-click on your healer (or someone else in a safe location) before combat (use “/clear focus” to clear your current focus). Use in combat to intervene on that person.

#show Intervene
/focus [modifier:ctrl]
/stopmacro [modifier:ctrl]
/cast [nostance:2] Defensive Stance
/cast [target=focus] Intervene

A seperate charge/intercept macro for each of the stance bars. Put them in the same slot on their respective bar and then just spam that button/key and it will perform the appropriate logic as it switches around from bar to bar.

Charge/Intercept - (Battle Stance Bar)
Note, if you are out of range the charge will fail, but it will still pop bloodrage and zerker stance.

/cast [stance:1, combat] Berserker Stance; [stance:1, nocombat] Charge

Charge/Intercept - (Berserker Stance Bar)

/cast [stance:3, combat] Intercept; [stance:3, nocombat] Battle Stance

Charge/Intercept - (Defensive Stance Bar)

/cast [stance:2, combat] Berserker Stance [stance:2, nocombat] Battle Stance

all in 1: out of combat it will charge, in combat change to zerk & intercept or if targeting friendly, change to def stance & intervene

/cast [help,stance:2]Intervene; [help,nostance:2]Defensive Stance; [combat,harm,nostance:3]Berserker Stance; [nocombat,nostance:1]Battle Stance; [combat,harm,stance:3]Intercept; [nocombat,stance:1]Charge

PvP / DPS / Lvling

Mortal & Heroic Strike - if you have the rage…

#showtooltip Mortal Strike
/cast Mortal Strike
/cast Heroic Strike

Mortal Strike & Slam - get Quartz swing timer mod – Slam immediately after a white swing, then Mortal Strike with the next white swing then immediately Slam again = pwnage. Best with imp slam. As with all castsequence macros make it with the “?” macro icon to see what is next

/castsequence reset=combat/5 Slam, Mortal Strike, Slam

Sweeping Strikes, Mortal Strike & Cleave - /startattack is there to change targets when they drop o.O

# showtooltip Sweeping Strikes
/cast [stance:2/3] Battle Stance; Sweeping Strikes
/cast Mortal Strike
/cast Cleave

Sweeping Strikes, Cleave & Whirlwind (use ctrl to change to battle, use again with 30 rage for SS, then spam)

# showtooltip Sweeping Strikes
/cast [modifier:ctrl] Battle Stance; Sweeping Strikes
/cast [stance:1] Berserker Stance;Whirlwind
/cast Cleave

equip 2hander & Overpower

/cast [stance:1] Overpower; Battle Stance
/stopmacro [equipped:Two-Handed Swords]
/equip "2 hand sword of pwnage"

Execute: in def stance will switch to battle; in battle or zerker will execute

/cast [stance:1/3] Execute; [stance:2] Battle Stance

Always attempts to use Execute, but will use Heroic Strike if not available. Ctrl uses Cleave instead of Heroic Strike.

/cast Execute
/cast [modifier:ctrl] Cleave; Heroic Strike

Intercept & Hamstring

/cast [stance:3] Intercept; Berserker Stance
/cast Hamstring

Shield Slam with Gnomeregan Auto-Blocker 600 - this allows you to Shield Slam at the exact same time as trinket activation. It checks to make sure your target is alive and hostile, and will also not activate the trinkets if you do not have a Shield already equipped. If you do not, it will equip the Shield, so you can simply double-click it.

#show Gnomeregan Auto-Blocker 600
/use [harm,nodead,equipped:Shields] 13
/cast [equipped:Shields] Shield Slam
/equip [noequipped:Shields] Azure-Shield of Coldarra

This is important because it allows 4 Shield Slams reliably off one trinket use. Since you will use the SS at the 0 second marker, then at the 6, 12, and 18 second marker, with regular server lag you can still get 4 in safely.

This is a great farming macro – it will dismount you , charge, bloodthirst (or change it to MS), queue HS and WW – anytime the target flees or otherwise gets out of range you will intercept – just watch your rage . Rinse repeat…

/cast [nocombat,stance:1] Charge; [combat,nostance:3] Berserker Stance; [nocombat,nostance:1] Battle Stance; [combat,stance:3] Intercept
/castsequence reset=5 Bloodthirst, Heroic Strike, Whirlwind

for PvP, I use the same macro above and replace the last line (i.e. beginning with /castsequence…) with

/cast Hamstring

or replace last line with /cast Victory Rush as charge/intercept will often be used to get to new the target…

Disarm (From Battle/Berserker Stance):

# show Disarm
/cast [nostance:2] Defensive Stance; Disarm

Depending on the stance you want to swap back to you could put another line immediately following like:

/cast [nostance:3] Berserker Stance

Interrupt - Shield bash or Pummel macro depending on whether or not a shield is equipped - /stopcasting is there to cancel any queued abilities… speed = win though do not mash it.

/cast [stance:1/2,noequipped:Shields] Berserker Stance; [stance:1/2,equipped:Shields] Shield Bash; [stance:3] Pummel


#show Execute
/castrandom [nostance:1] Battle Stance; Overpower, Execute

Spell reflect - If you do not have a shield equipped, it will equip the one you designate. If you have a shield equipped and are in Battle or Defensive Stance, use Spell Reflect. If you are in Berserker Stance, it will change to Defensive Stance so that Spell Reflect can be cast. use with ‘ctrl’ to (re)equip your 2h.

# showtooltip Spell Reflection
/cast [stance:1/2,equipped:Shields] Spell Reflection; [stance:3] Defensive Stance
/equip [modifier:ctrl] Gorehowl
/stopmacro [equipped: Shields]
/equipslot 17 Aegis of the Sunbird
/equipslot 16 King's Defender

Universal shoot macro

/cast [equipped:Bows/Guns/Crossbows] Shoot; [equipped:Thrown] Throw

Taunt (with equip sword and board)

#show Taunt
/cast [stance:2] Taunt; [stance:1/3] Defensive Stance
/stopmacro [equipped:Shields]
/equipslot 16 King's Defender
/equip Aegis of the Sunbird

Mocking Blow - swaps you to Battle stance and then casts Mocking Blow, then switches you back to Defensive Stance.

# show Mocking Blow
/cast [nostance:1] Battle Stance; Mocking Blow
/cast [nostance:2]Defensive Stance


I use a combination of two macros for your basic tank & spank encounters:

/cast [stance:2] Sunder Armor; Defensive Stance
/cast Heroic Strike


/cast [stance:2] Revenge; Defensive Stance
/cast Shield Block

I use the HS/SA one first to get excellent threat (make sure you’ve got the rage, otherwise simply sunder), then the revenge/SB to give mitigation and threat, adding in the other now and then…

Devastate & Sunder – use with ‘ctrl’ until 5 sunders then devastates

/cast [modifier:ctrl] Sunder Armor; Devastate

Devastate, Shield Slam, and Heroic Strike - keeps HS queued and uses Devastate and Shield Slam for your supplemental aggro. Ctrl uses Cleave instead of Heroic Strike – assumes you have plenty of rage.

/castrandom Devastate, Shield Slam
/cast [modifier:ctrl] Cleave; Heroic Strike

fit in 2 devastates b/w SS cooldown

/castsequence reset=6 Shield Slam, Devastate, Devastate

Taunt-MB-CS - Taunt/Def Stance switch. Ctrl is Mocking Blow/Battle Stance switch. Alt is Challenging Shout.

# showtooltip Taunt
/cast [modifier:alt] Challenging Shout;[modifier:ctrl,nostance:1] Battle Stance; [modifier:ctrl,stance:1] Mocking Blow; [stance:2] Taunt; [nostance:2] Defensive Stance

Shield Slam with Gnomeregan Auto-Blocker 600 (see explanation above under PvP / DPS)

#show Gnomeregan Auto-Blocker 600
/use [harm,nodead,equipped:Shields] 13
/cast [equipped:Shields] Shield Slam
/equip [noequipped:Shields] Azure-Shield of Coldarra

a ‘castsequence’ tanking macro

/castsequence reset=5 Shield Block, Revenge, Sunder Armor

Multi tanking

Tab sunder - cc breaking early? seamlessly tab to the nearest target, sunder them and switch back to your current target – you won’t even see the switch but they’ll be sundered and come to you if they break early…

/cast Sunder Armor

Mouseover sunder - this macro will sunder the mob your mouse pointer is over without losing your current target (the mob must still be in melee range, of course). It also checks if the target is actually hostile and alive before doing this.

#show Sunder Armor
/cast [target=mouseover, harm, nodead] Sunder Armor

Thunder Clap

# showtooltip Thunder Clap
/cast [stance:1/2] Thunder Clap; Defensive Stance

To overcome the ‘tab’ key’s propensity to target anything, this macro first reduces the distance at which tab works to 10 units, performs the equivalent of a Tab (/targetenemy), then restores the default value. Ciderhelm has some very good macros using this script - see Fortifications.

/script SetCVar("targetNearestDistance", 10)
/script SetCVar("targetNearestDistance", 41)

mash this every GCD (note without the reset to 41 it will leave your tab at 5 or whatever value you give it) watch debuff slots & then revenge, shield slam etc. on those with low sunders:

/script SetCVar("targetNearestDistance", 5)
/cast [nostance:2] Defensive Stance
/castsequence reset=6 Sunder Armor, Thunder Clap, Cleave, Sunder Armor

It changes target every use - I have held 6 & more Shattered Halls’ mobs with this & didn’t have a single point in prot at the time (ok you do need some time with them to get properly acquainted ) - the key is revenging & shield slamming those with low sunders or even taunting them, to give you extra time to build threat on the others. Use the target icon macro (below) to mark one as the focus fire target - it will need extra attention.


activating a trinket into a macro?

/use 13
/use 14

(13 = top trinket, 14 = bottom)

sharpen left click to do MH, right click for off hand

# show Dense Sharpening Stone
/use Dense Sharpening Stone
/use [button:2] 17; 16

sharpen or fish

/use [equipped:Fishing Pole,nomodifier:alt] Bright Baubles ; [equipped:Fishing Pole] Aquadynamic Fish Attractor ; Dense Sharpening Stone
/use [button:1] 16; [button:2] 17
Universal mount macro
/cast [noflying] Ebon Gryphon
/cast [nomounted] Stormpike Battle Charger
/dismount [noflying]

self bandage (1st macro is bandages in bag 1 position 1, 2nd macro position does not matter)

/use [target=player] 1 1
/use [target=player] Heavy Runecloth Bandage

intim shout & bandage and then re-target - 3 clicks, pause for bandage after second…

/cast Intimidating Shout
/use [target=player] Heavy Runecloth Bandage

oh crap!

/castsequence Last Stand, Major Healthstone, Super Healing Potion, Fel Blossom, Nightmare Seed

I manage shouts, AP and rage boosts thru a single macro - its not for everyone & nor is it suitable for every encounter… it will reset manually with ‘ctrl’ or after 120 secs after last use (the cooldown of battle shout & BB)… one use for each - it assumes you have imp zerker rage for the rage boost tho zerker rage also generates extra rage when taking damage so its great to keep it up when grinding…

/castsequence reset=ctrl/120 Battle Shout, Berserker Rage, Bladefist's Breadth, Rampage, Berserker Rage, Uniting Charm, Rampage, Berserker Rage, Rampage

Some common macro commands…


/assist [name] - Assist your target or the named unit if specified

Using Items:

/userandom , , item3, …

Examples of /equip and /use:

/equip <itemname>
/equip <bagid> <bagslot>
/equipslot <slot> <itemname>
/use <itemname>
/use <slot>
/use <bagid> <bagslot>
/userandom <item1>, <item2>, <item3> will attempt to use a randomly selected one of the specified items


/cast [option]
/stopmacro [option]
/castrandom , , …
/castsequence [reset=N/target/combat/shift/alt/ctrl] , , …

Sequenced Casting

  • A new command /castsequence reset=N/target/combat/shift/alt/ctrl spell1, spell2, spell3
  • The reset line can specify a number of seconds after which a sequence resets, or if it should reset on target change or leaving combat.
  • The sequence tracks the ‘next’ spell in the sequence until it resets, the next spell only advances on a successful cast.
  • You can specify a conditional at the start of the command before the reset to filter whether the sequence is used (You cannot use per-spell conditionals)
  • You can specify items and stances as well as spells

Action Bars:



/startattack [unit]


/cancelaura [Stormpike Battle Charger]


If multiple options are provided for an action, they must all be met before the action will happen. The options supported are as follows:

  • target=unit - Run the command and perform tests on the specified unit (only applicable to spell casting or item use). You can specify ‘none’ as a target unit to act as if you have no target.
  • help/harm - Choose depending on whether target is assistable or attackable
  • combat - Choose depending on whether you’re in combat or not
  • stance or stance:# - Choose depending on your stance/shapeshift (“stance” alone matches any stance)
  • stealth - Choose depending on whether you are stealthed
  • mounted - Choose depending on whether you are mounted
  • swimming - Choose depending on whether you are swimming
  • flying - Choose depending on whether you are flying
  • indoors - Choose depending on whether you are indoors
  • outdoors - Choose depending on whether you are outdoors
  • modifier or modifier:shift|ctrl|alt - Choose depending on any modifier keys you’re holding at the time the macro runs
  • equipped:|| - Choose if you have the specific item type equipped
  • actionbar: - Choose if a specific actionbar is shown
  • button:Z - Choose if the specified button is held down
  • pet:| - Choose if your current active pet has the specified name or family (e.g. pet:bear/wolf)
  • channeling or channeling:spell - Choose if you are channeling (possibly a specific spell)
  • exists - Choose if the target exists
  • dead - Choose if the target is dead

For stance and modifier you can list multiple matching values separated by the / character for the option to be true if ANY of them are true. For example modifier:shift/ctrl matches if shift or control is held down.
Any option can be prefixed with ‘no’ to select if it does NOT match. For example [nocombat]

# and - are comment characters in macros

A macro that starts with "# show or # showtooltip " will show feedback for that item or spell. A macro that starts with “# show none” will show no feedback. Otherwise the first /cast, /randomcast, /castsequence, /use, or /random use command will be used to show feedback for the macro.

Castsequence is special in that it overrides the “#show” parameter. This is intentional, as most people want the current spell to show up instead of what is listed on "#show.

macros within macros?

/click <button name>

You can find a button name by hovering your mouse over a button and entering this into chat:

/script message(GetMouseFocus():GetName())

Setting raid target icons

SetRaidTargetIcon("target", 1); -- Star
SetRaidTargetIcon("target", 2); -- Circle
SetRaidTargetIcon("target", 3); -- Diamond
SetRaidTargetIcon("target", 4); -- Triangle
SetRaidTargetIcon("target", 5); -- Moon
SetRaidTargetIcon("target", 6); -- Square
SetRaidTargetIcon("target", 7); -- Cross
SetRaidTargetIcon("target", 8); -- Skull
SetRaidTargetIcon("target", 0); -- Remove RaidIcon

are the units

if you just want to put the skull (8) on one target use:

/script if (GetRaidTargetIndex("target")~=8) then SetRaidTargetIcon("target", 8); end

if you want to target a group - one use each target:

/script if not lastraidn then lastraidn = 1; end SetRaidTarget("target", lastraidn); if lastraidn == 8 then lastraidn = 1; else lastraidn = lastraidn + 1; end

you get the idea? you can shift click the various spells items to put in your macros and change those above around… the /castrandom and /castsequence combined with conditions offer a great deal of scope for new macros - tell us whats working for you.

additions, deletions, mistakes appreciated

Neuro, Iriel, Slouken, Cogwheel, Jenavi, Falka, Kudagaxehand, Shirik, Aella, Tanque, Algol, Ciderhelm, Arbster, the UI community and posters here /salute

Further reading:
Cogwheel’s Macro Intro & FAQ: (tho you don’t have to read first!)
WoW Forums -> Cogwheel’s Complete Macro Guide - READ 1ST!