Wowpedia

We have moved to Warcraft Wiki. Click here for information and the new URL.

READ MORE

Wowpedia
Advertisement
Macros
General guides

Macros Beginners Guide
Making a macro
Macro conditionals
Macro commands
Category:Macros

Useful macros by class

Useful macros for death knights Useful macros for demon hunters Useful macros for druids Useful macros for hunters Useful macros for mages Useful macros for monks
Useful macros for paladins Useful macros for priests Useful macros for rogues Useful macros for shamans Useful macros for warlocks Useful macros for warriors

Macro Formatting Guidelines

Note: With the release of 6.0.2, many spells have been renamed, and much of the scripted command functionality has been modified. In an effort to keep Wowpedia posts relevant, please re-validate and re-post macros that work in the current version.

Re-Creating Old Macros

When re-creating a macro in Useful macros please

  • follow the example format posted below (to get the frame around your macro, add a space before you start it)
  • describe what it does
  • note the version of WoW in which you tested it
  • remove it from the Old Macros page

Example Macro

/y Hooray, I made a macro!
  • Use: This yells, "Hooray, I made a macro!"
  • Works in 6.x

Useful Macros

Tanks: Check unhittability and avoidance (+ how far away hard-defcap)

/run local b,d,p,r,a=GetBlockChance(),GetDodgeChance(),GetParryChance(),GetCombatRating(CR_DEFENSE_SKILL) a=1/(.0625+.956/(r/122.9625)) ChatFrame1:AddMessage(format("Unhittable: %.2f%%  Avoidance: %.2f%%  Defense %+.0f rating",b+d+p+5+a,d+p+5+a,r-689))


Announce Vent in Raid

/rw Vent Details Posted
/raid My Guild Vent | abc.leetvent.com
/raid My Guild Vent | 1234
/raid My Guild Vent | secretpassword
/raid Normalize Vent - http://some.vent.server/somewhere
/threshold epic
/master player
  • Use: Announces your Vent details to your raid, sets your loot threshold Epic master looter (with yourself as the master looter) if you are the leader.
  • Works in 3.1.1

Announce Vent in Party

/party My Guild Vent | abc.leetvent.com
/party My Guild Vent | 1234
/party My Guild Vent | secretpassword
/party Normalize Vent - http://some.vent.server/somewhere
/threshold rare
  • Use: Announces your Vent details to your party, sets your loot threshold Rare if you are the leader.
  • Works in 3.1.1

Swap Current Dual-Spec Talent

/run if( GetActiveTalentGroup() == 1 ) then DEFAULT_CHAT_FRAME:AddMessage("Activating Secondary Spec...");SetActiveTalentGroup(2) else DEFAULT_CHAT_FRAME:AddMessage("Activating Primary Spec...");SetActiveTalentGroup(1) end
  • Use: "Quickly" swaps your Primary/Secondary talent specs.
  • Works in 3.1.1



Recommended for dual spec players who are frequently asked to swap. It announces what you're doing to whatever group you're in, configures your gear and setups your UI.

/run SendChatMessage(GetActiveTalentGroup()==2 and"Going Primary"or"Going Secondary",UnitInRaid"PlayerName"and"RAID"or GetNumPartyMembers()>0 and"PARTY"or"SAY")
/equipset [spec:2]Eq1;Eq2
/usetalents [spec:2]1;2
/changeactionbar [spec:2]1;2
  • Credit: Desiday of Antonidas
  • Replace PlayerName with the name of your character
  • Replace Primary and Secondary with something more descriptive i.e. pvp, tank, dps, heals. Note keep it short to remain under the 255 character cap
  • Make two ingame equipment sets, and name them Eq1 and Eq2. Eq1 is associated to your primary spec whereas Eq2 is associated to your secondary spec. Or replace Eq1 & Eq2 with the names of your already created equipment sets
  • Setup action bar 1 with your primary spec actions, and setup action bar 2 with your secondary spec actions. This is only necessary for players who have overlapping builds and who frequently use macros.
  • Works in 3.2.2

Swap Talents, Equipment, and Stance

This macro will switch your talent spec and put you into the respective gear and stance.

/equipset [spec:1] <Secondary Set Name>; <Primary Set Name> 
/cast [spec:1] <Secondary Stance>; <Primary Stance> 
/usetalents [spec:1] 2; 1

Here is an alternate version for fury warriors that cannot use the above macro due to Titan's Grip. Left click swaps the talent spec, right click swaps gear and stance.

#show [spec:1] <Secondary Stance>; [spec:2] <Primary Stance> 
/usetalents [button:1,spec:1] 2; [button:1,spec:2] 1 
/equipset [button:2,spec:1] <Primary Set Name>; [button:2,spec:2] <Secondary Set Name> 
/cast [spec:1] <Primary Stance>; [spec:2] <Secondary Stance>


A one button spec, stance and equipment interchanger, caters for Furry Warriors Titan's Grip

/cast [stance:3] Defensive Stance; [Stance:1] Berserker Stance
/usetalents [spec:1] 2; [spec:2] 1
/in 5.30 /equipset [spec:1] Tank ; DPS


Offhand weapon switching

You might find yourself in a situation where you have two offhand weapons with the same name but different poisons on them and you want to switch between them quickly. Or perhaps you just want to alternate between two offhand weapons with just one hotkey.

#showtooltip [mod] 0 16; 17
/equipslot 17 0 16
  • Keep your alternate dagger in the sixteenth slot (lower right corner) of your main (rightmost) backpack.
  • The number 17 refers to your offhand weapon slot.
  • #showtooltip makes the macro's icon and tooltip display the icon of the equipped weapon, or hold down a modifier key (say Alt) and it will display the icon of the weapon that's ready to be switched in.
  • Works in 3.2.2

One-click Northrend dailies

/use item:42246
/use item:42164
/use item:40946
/use item:34127
/use item:42480
/use item:40587
/use item:43147
/use item:43101
/use item:43149
/use item:43142
/use item:35506
/use item:38566
/use item:38556
/use item:38544
/use item:38574
/use item:42479

This macro has the Ebon Blade Banner, Darkmender's Tincture, Hodir's Horn, Essence of Ice, Raelorasz's Spear, Dalaran cooking dailies (ie:the stewpots), Steel Spade, Incinerating Oil, Argent Crusade Banner, High Impact Grenade, Ethereal Worg's Fang, Anuniaq's Net and Tasty Reef Fish. Please feel free to request in the discussion page other dailies you would like to see added here, and anything you find wrong with this daily. Hotkey this and enjoy never searching your bags for your quest items that need using every day. 255 characters exactly!

Sound and Message Error Cleaner

When you spam a spell you get a sound and a message error that are annoying, using this macro you will get rid of it. In this example there is a macro where you can spam Arcane Missiles and it will not cut the already channeling process from a previous arcane missile cast and will not spam in your screen the sounds errors and messages errors.

/console Sound_EnableSFX 0
/cast [nochanneling:Arcane Missiles] Arcane Missiles
/run UIErrorsFrame:Clear() 
/console Sound_EnableSFX 1
  • Credit: Vermin of Talnivarr.
  • Use: Change the second line to the spell you want to spam.
  • Works in 3.3 but at least one or two errors will not be cleaned with this macro

No Error Text or Sound (Improved)

For people that macro cd's into normal spells, such as petattacks, trinkets, everlasting potions, etc. it gets annoying being spammed with "This ability is not ready" and that fun error sound. I've seen a common solution online (similar to the macro above) that fixes this problem with a single issue that's almost as bad as the problem it's fixing.

For people who play without sound to begin with, these macro will -enable your sound- every time you use them. So here is my solution:

/run sfx=GetCVar("Sound_EnableSFX");
/console Sound_EnableSFX 0
/cast ExampleTrinket1
/cast ExampleSpell2
/run UIErrorsFrame:Clear() 
/run SetCVar("Sound_EnableSFX",sfx);

The overall effect is the same, but my macro checks to see what you sound currently is set to (enabled or disabled), disables it for the error, and then sets it back where you had it. (ex: if your sound was already off, it will prevent the text error without turning your sound on at the end)

  • Credit: Xaeros of Shadowmoon
  • Use: Replace "ExampleTrinket1" and "ExampleSpell2" with your cd(s) and abilities, then drag to your bar like a normal macro.
  • Works in 3.3.0a

Professions

One-Button Disenchant/Milling/Prospecting

#showtooltip
/use [nomodifier] Disenchant; [modifier:alt] Milling;

You can of course change the order, skill and modifier to suite your needs

AIO Profession Button

#showtooltip
/use [nomodifier] Enchanting; [modifier:alt] Inscription; [modifier:ctrl] Cooking; [modifier:shift] First Aid;

You can of course change the order, skill and modifier to suite your needs

Fishing

Modifier Swap

#showtooltip
/cast [nomod] Fishing
/equip [noequipped:Fishing Poles, mod] Nat Pagle's Extreme Angler FC-5000
/equip [equipped:Fishing Poles, mod] Titansteel Guardian
/equip [equipped:Fishing Poles, mod] Matriarch's Spawn
  • Credit: Xaeros of Shadowmoon
  • Use:(Make sure to replace the fishing pole/weapons with your own)
    • On click, you will attempt to cast fishing.
    • On mod+click you will switch between your fishing pole and your weapon(s).
  • Works in 3.2.0a

Link your professions in the trade channel

Link a single profession

/script CastSpellByName(#prof#);SendChatMessage("I'll create items against mats, look out: "..GetTradeSkillListLink(),"CHANNEL",nil,GetChannelName("Trade - City"));CloseTradeSkill();

This macro sends a link with your Profession recipes to a Channel.

Replace #prof# with your profession. If your Profession is Engineering, then write:

/script CastSpellByName("Engineering");SendChatMessage("I'll create items against mats, look out: "..GetTradeSkillListLink(),"CHANNEL",nil,GetChannelName("Trade - City"));CloseTradeSkill();

Link two professions

One button to link both of your professions to trade chat and guild chat. Just replace "Inscription" and "Enchanting" with your two professions.

/cast Inscription
/run SendChatMessage("Free with your mats "..GetTradeSkillListLink(), "channel", nil, "2")
/cast Enchanting
/run SendChatMessage(GetTradeSkillListLink().." I'll even give you 5g if I skill up!", "channel", nil, "2") CloseTradeSkill()

Automated Equipment Manager Fishing & Lure Macro

/equipset [noequipped:Fishing Poles, nomod] Fishing
/cast [equipped:Fishing Poles, nomod] fishing
/use [modifier:shift] Bright Baubles
/use [modifier:shift] 16
/equipset [modifier:alt] Normal
/equipset [modifier:ctrl] DPS
  • Credit: Taurolyon of Sargeras-US --Taurolyon (talk) 15:53, October 14, 2009 (UTC)
  • To use:
  1. Create a Fishing outfit in your equipment manager (or if you use the Outfitter Addon, save the outfit to server)
    • Outfit must be named Fishing
  1. Create a Normal outfit for your primary spec
  2. Create a DPS outfit for your secondary spec (or remove the last line in the macro if you only have one set of gear/spec)
  • If you don't have your fishing pole equipped, it will automatically equip your "Fishing" outfit from your equipment manager
  • Clicking on this macro after your fishing pole is equipped, will automatically cast your line and start fishing.
  • Shift-Clicking on this macro will apply a lure to your equipped fishing pole (Change Bright Baubles to any lure you'd like. I.E. Inv helmet 31 [Weather-Beaten Fishing Hat])
  • Alt-Clicking on this macro will equip your Normal set of gear.
  • Ctrl-Clicking on this macro will equip your DPS set of gear.

Binding this macro to a button on your mouse will allow for easy one handed casting and reeling. --Taurolyon (talk) 15:53, October 14, 2009 (UTC)

Raiding

List raid members without a food buff

Use this version to list members without a food buff to yourself:

/run nfb="[Eat!]: ";for i=1,GetNumRaidMembers()do for b=1,40 do ua=UnitAura('raid'..i,b);if ua=="Well Fed"or ua=="Food"then break;elseif b==40 and ua~="Well Fed"then nfb=nfb..UnitName('raid'..i).." ";end;end;end;print(nfb);

Use this version to send the list to raid chat:

/run nfb="[Eat!]: ";for i=1,GetNumRaidMembers()do for b=1,40 do ua=UnitAura('raid'..i,b);if ua=="Well Fed"or ua=="Food"then break;elseif b==40 and ua~="Well Fed"then nfb=nfb..UnitName('raid'..i).." ";end;end;end;SendChatMessage(nfb,"raid");
  • Credit: Xaeros of Shadowmoon
  • Use: Click the macro to report members in raid that are neither food buffed nor eating.
  • Works in 3.2.0a

List raid members without an flask active

Use this version to list members without an active flask to yourself:

/run nf="[Flask!]: ";for i=1,GetNumRaidMembers()do for b=1,41 do ufl=UnitAura('raid'..i,b);if ufl then if strfind(ufl,"Flask")then break;end;elseif b==41 then nf=nf..UnitName('raid'..i).." ";end;end;end;print(nf);

Use this version to send the list to raid chat:

/run nf="[Flask!]: ";for i=1,GetNumRaidMembers()do for b=1,41 do ufl=UnitAura('raid'..i,b);if ufl then if strfind(ufl,"Flask")then break;end;elseif b==41 then nf=nf..UnitName('raid'..i).." ";end;end;end;SendChatMessage(nf,"raid");
  • Credit: Xaeros of Shadowmoon
  • Use: Click the macro to report members in raid that are neither food buffed nor eating.
  • Works in 3.2.0a

Reload UI and notify group

Reload your UI, send a message to your party/raid telling them you're doing so and set an appropriate /afk message.

/afk reloading UI
/run SendChatMessage("reloading my UI - afk for a sec", ((UnitInRaid("player")and "RAID")or(GetNumPartyMembers()>0 and "PARTY")or "AFK")); 
/console reloadui
  • Credit: Ashel of Antonidas
  • Works in 3.2.0a

Just For Fun

Below are macros that serve to real purpose in-game beyond amusement.

Mounts

There's a whole page dedicated to Mount Macros.

Vanity Pets

/run DismissCompanion("CRITTER"); CallCompanion("CRITTER", random(GetNumCompanions("CRITTER")));
  • Use: This will first attempt to dismiss any vanity pet you have summoned, and then attempt to randomly summon a new one.
  • Works in 3.1.2
/run local z;for i=GetNumCompanions("CRITTER"),1,-1 do local _,_,_,_,s = GetCompanionInfo("CRITTER",i); if s==1 then z=1;end end if (z==nil) then CallCompanion("CRITTER", random(GetNumCompanions("CRITTER"))) else DismissCompanion("CRITTER") end
  • Use: This is a more advanced version of the above macro, as it first attempts to determine whether or not you already have a pet summoned. If not, it summons one, else it dismisses it. (Note: There's no IsMounted() equivalent for pets, hence the for loop)
  • Works in 3.1.2

Summon Random Pet with salutation

/run local z;t="CRITTER"u=GetNumCompanions(t)v=random(u)for i=u,1,-1 do local _,_,_,_,s=GetCompanionInfo(t,i);if s==1 then z=1;end end if(z==nil)then c,n=GetCompanionInfo(t,v)SendChatMessage("Wow, it's a "..n)CallCompanion(t,v) else DismissCompanion(t)end
  • Credit: Strunge 12:55, December 23, 2009 (UTC) (Talk)
  • Use: This is a compact version of the above macro that also sends a chat message stating what pet, you have summoned. All 255 characters are used, so you can only change the text in the SendChatMessage-part to a statement with the same amount of characters.
  • Works in 3.3

Random Pet with Announce

/run g={"their","his","her"}; x=UnitSex("player");i=random(GetNumCompanions("critter"));id,name=GetCompanionInfo("critter",i);SendChatMessage("gasps as "..name .." hops out of "..g[x] .." pocket!","emote");CallCompanion("critter",i);
  • Credit Xaeros of Shadowmoon
  • Use: Click to summon a random vanity pet. This macro has 22 free characters, so feel free to change your message. By default it says: "[player] gasps as [pet] hops out of [his/her] pocket! (The [his/her] is based on the character's gender)
  • Works in 3.3.0a

Target's Gender

Have you ever wondered, "Is Razorscale a boy or a girl?", when directing a raid to attack "him" or "her"? Well now you can pronoun with confidence!

Maybe not the most "useful" macro, but a fun one :) Use this to discover your target's gender. You may be surprised, every once in a while Blizz slips up and flags Male NPCs as Female and vice-versa.

/run local x=UnitSex("target");local g={"n unknown!", " boy!", " girl!"} n=GetUnitName("target");if IsShiftKeyDown()then SendChatMessage(n .." is a" ..g[x],"SAY");else print(n .." is a" ..g[x]);end
  • Credit: Xaeros of Shadowmoon
  • Use: Click the macro to print the target's gender. Shift+Click to announce in /SAY.
  • Works in 3.3.0a

Raid Blame

Have you ever been in a raid that had an unfortunate wipe? Has your raid ever been left wondering, "What just happened? Who should we blame this on?"? Well, wonder no more! With this macro blame can always be placed upon those who most deserve it with 100% accuracy!

/run local m=GetNumRaidMembers(); local n=random(1,m); local p=GetUnitName('raid'..n); SendChatMessage("[iBlame]: "..p ..".", "raid");

  • Credit: Xaeros of Shadowmoon
  • Use: Click the macro to announce in /raid "[iBlame]: <random raid member>. This macro will only work in a raid.
  • Works in 3.3.0a

OLD MACROS BELOW

Macros written before Patch 3.1 that have not been re-validated in newer patches can be found on the Old Macros page.

Advertisement