Useful macros

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!

Show/hide cloak
/run ShowCloak(not ShowingCloak)
 * Use: Shows or hides your cloak.
 * Works in 4.x

Show/hide helm
/run ShowHelm(not ShowingHelm)
 * Use: Shows or hides your helm.
 * Works in 4.x

Switch language
/run c,d,i,p=DEFAULT_CHAT_FRAME,GetDefaultLanguage,GetLanguageByIndex,player;l=(d(p)==i(1) and 2 or 1);if c.editBox.language~=d(p)then c.editBox.language=d(p)else c.editBox.language=i(l)end;c:AddMessage("Language set to : "..c.editBox.language);
 * Credit: Yza @ EU-Ysondre
 * Use: Intelligent switch between default and racial language
 * Warning: Generates a LUA error when used with a Human/Orc (no racial language)
 * Works in 4.x

Swap Current Dual-Spec Talent
/run if( GetActiveTalentGroup == 1 ) then DEFAULT_CHAT_FRAME:AddMessage("Spec1...");SetActiveTalentGroup(2) else DEFAULT_CHAT_FRAME:AddMessage("Spec2...");SetActiveTalentGroup(1) end /in 6 /equipset [spec:2]Eq1;Eq2


 * Credit: Earthsoul of Thunderhorn, many thanks to Desiday of Antonidas for inspiration
 * Use: "Quickly" swaps your Primary/Secondary talent specs.
 * Also changes your equipped item set, only need to change the name of Eq1 and Eq2
 * Works in 3.1.1

Here is one that switches the set before the spec (may avoid some errors):

/equipset [spec:1] PSS ; SSS /usetalents [spec:1] 2; [spec:2] 1

Just have to replace PSS with the name of your primary spec set, and SSS with the name of your secondary spec set.

Swap Talents, Equipment, and Stance
This macro will switch your talent spec and put you into the respective gear and stance. /equipset [spec:1] ;  /cast [spec:1] ;  /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.

/usetalents [button:1,spec:1] 2; [button:1,spec:2] 1 /equipset [button:2,spec:1] ; [button:2,spec:2]  /cast [spec:1] ; [spec:2] 
 * 1) show [spec:1] ; [spec:2] 

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.

/equipslot 17 0 16
 * 1) showtooltip [mod] 0 16; 17


 * 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.
 * &#x23;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

Sound and Message Error Cleaner
When you spam a spell you get sounds and error messages that can be annoying. Using the macro below you will avoid all that. This example is a macro which you can use to spam Arcane Missiles. It will not cut an already channeling Arcane Missile cast, nor will it make the error sound or spam your screen with error messages.

/console Sound_EnableSFX 0 /run UIErrorsFrame:UnregisterEvent("UI_ERROR_MESSAGE") /cast [nochanneling:Arcane Missiles] Arcane Missiles /run UIErrorsFrame:RegisterEvent("UI_ERROR_MESSAGE") /console Sound_EnableSFX 1


 * Credit: Vermin of Talnivarr.
 * Use: Change the third 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.3a

No Error Text or Sound (Improved Again)
This is just like the one above but with an added tooltip that matches the original skill, and doesn't disable sound for the skill's error messages. Sound and error messages for the trinket use are still suppressed though. If you set the name of the macro to a blank space, you can't even tell it's a macro. This one is designed more for trinket use than anything else, but it's here for when you only want to silence one of the two skills this macro uses.

/run sfx=GetCVar("Sound_EnableSFX"); /console Sound_EnableSFX 0 /use ExampleTrinket2 /run UIErrorsFrame:Clear /run SetCVar("Sound_EnableSFX",sfx); /cast ExampleSpell1
 * 1) showtooltip ExampleSpell1

If you're running low on characters and you're using this for a trinket, you can replace the use command with "use 13" (for upper trinket) or "use 14" (for lower trinket).


 * Credit: Vandalite of Feathermoon, and Xaeros of Shadowmoon for the macro this was based on.
 * Use: Replace "ExampleTrinket2" and "ExampleSpell1" With your cooldowns and abilities, then drag to your bar like a normal macro.
 * Works in 3.3.2

Learn all Spells from a Trainer
/run LoadAddOn"Blizzard_TrainerUI" f=ClassTrainerTrainButton f.e = 0 if f:GetScript"OnUpdate" then f:SetScript("OnUpdate", nil)else f:SetScript("OnUpdate", function(f,e) f.e=f.e+e if f.e>.01 then f.e=0 f:Click end end)end


 * Click a second time to stop learning

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))

Gear By iLevel
/run t={}; for i=1,18 do if i~=4 then l=GetInventoryItemLink('player',i); if l then _,_,_,v=GetItemInfo(l); table.insert(t,{l=l,v=v}); end end end sort(t, function(a,b) return a.v>b.v end ) for i,v in pairs(t) do print(v.v..' '..v.l); end
 * Lists all of your equipped gear sorted by iLevel

Print Money and Currencies to Chat Frame
/script local cu = GetMoney; print(GetCoinTextureString(cu,"12")) /stopmacro [btn:1] /script yy = GetNumWatchedTokens; for xx = 1, yy,1 do aa, bb, cc, dd, ee = GetBackpackCurrencyInfo(xx); print(bb, aa) end
 * Left click to display your total money in the chat window.
 * Click any other way to display your money and all your watched currencies.
 * Works in 3.3.2

Sell all grey items
/script for bag = 0, 4 do for slot = 1, GetContainerNumSlots(bag) do local name = GetContainerItemLink(bag,slot) if name and string.find(name,"ff9d9d9d") then DEFAULT_CHAT_FRAME:AddMessage("Selling "..name) UseContainerItem(bag,slot) end end end
 * Use: sells all grey quality items
 * Works in 4.0.3
 * May get you in trouble since the selling is so fast that sometimes the server thinks it's spam.

Sell all grey items
/run local p,N,c,n=0 for b=0,4 do for s=1,GetContainerNumSlots(b) do n=GetContainerItemLink(b,s) if n and string.find(n,"9d9d9d") then N={GetItemInfo(n)} c=GetItemCount(n) p=p+(N[11]*c)UseContainerItem(b,s) print(n) end end end print(GetCoinText(p))
 * Use: sells all grey items, shows what was sold and how much money was made from selling
 * Works in 4.0.3

Item Link
/run local s={"10000"} for i=1,#s do DEFAULT_CHAT_FRAME:AddMessage("\124c00ffffff\Item Link: \124c00FF0033\124Hitem:"..s[i]..":0:0:0:0:0:0:0:0\124h[ID: "..s[i].."]\124h\124r\124c00ffffff - Click ID for item info.")end
 * Use: Displays an item link in the default chat frame.
 * Replace "10000" with the desired item ID #.
 * Works in 4.0.3

Spell Link
/run local s={"10000"} for i=1,#s do DEFAULT_CHAT_FRAME:AddMessage("\124c00ffffff\Spell Link: \124c00ff0033\[ID: "..s[i].."] \124c00ffffff\- "..GetSpellLink(""..s[i])..".")end
 * Use: Displays a spell link in the default chat frame.
 * Replace "10000" with the desired spell ID #.
 * Works in 4.0.3

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. Also, trade chat is not necessarily always your number 2 channel. Make sure you check it and adjust accordingly. Replace channel with guild to link it to your guild, or raid to link to raid chat.

/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

One-Button Disenchant/Milling/Prospecting
/use [nomod] Disenchant; [mod:alt] Milling; You can of course change the order, skill and modifier to suite your needs
 * 1) showtooltip

AIO Profession Button
/use [nomod] Enchanting; [mod:alt] Inscription; [mod:ctrl] Cooking; [mod:shift] First Aid; You can of course change the order, skill and modifier to suite your needs
 * 1) showtooltip

Modifier Swap
/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
 * 1) showtooltip


 * 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.3.3a

Set Swap
/equipset [noequipped:Fishing Pole, mod] Fishing; [noequipped:Fishing Pole, nomod, spec:1] [mod, spec:1] Set1; [noequipped:Fishing Pole, nomod, spec:2] [mod, spec:2] Set2 /use [equipped:Fishing Pole, nomod] Fishing

If your fishing set is equipped, click will cast Fishing, mod-click will equip the set fitting your current spec. Otherwise, mod-click will equip your fishing set, normal click will equip the spec-relevant set.
 * Uses the Blizzard Equipment Manager
 * Requires one set called Fishing that contains your fishing pole and any equipment you want to wear while fishing (fishing hat, gloves or similar) and two sets that fit your specs (replace Set1 and Set2 with your names)

Alternate version for toons with just one spec or equipment set: /equipset [noequipped:Fishing Pole, mod] Fishing; [noequipped:Fishing Pole, nomod] [mod] Set1 /use [equipped:Fishing Pole, nomod] Fishing

Automated Equipment Manager Fishing & Lure Macro
/equipset [noequipped:Fishing Poles, nomod] Fishing /cast [equipped:Fishing Poles, nomod] Fishing /use [mod:shift] Bright Baubles /use [mod:shift] 16 /equipset [mod:alt] Normal /equipset [mod: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. 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)

Multi Gathering Macro
/cast [nomodifier]  /cast [modifier:ctrl] Find Minerals /cast [modifier:shift] Find Herbs /cast [modifier:alt] Smelting Can of course be modified to your liking and professions
 * 1) showtooltip
 * Not holding down a button: Will summon a mount of your choice (Note: has to be swapped with a mount in your possession).
 * Holding down ctrl: Will make mining nodes appear on your minimap.
 * Holding down shift: Will make herb nodes appear on your minimap.
 * Holding down alt: Will show the Smelting pane, where you can smelt your ore bars.

Craft a single item
/run CloseTradeSkill /cast First Aid /run local s for i=1,GetNumTradeSkills do s=GetTradeSkillInfo(i) if (s=="Linen Bandage") then DoTradeSkill(i) end end /run CloseTradeSkill

(replace "First Aid" and "Linen Bandage" with the craft and item you want)

Craft many items of a single type
/run CloseTradeSkill /cast First Aid /run local s for i=1,GetNumTradeSkills do s=GetTradeSkillInfo(i) if (s=="Linen Bandage") then DoTradeSkill(i, 100) end end

(replace "First Aid" and "Linen Bandage" with the craft and item you want, and 100 with the number you want; use a large number for "as many as possible")

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

Autoassist tank if the tank's target can be attacked
/target [target=focustarget, harm, nodead]


 * Use /focus to set focus on the main tank (or right click on the tank and select focus).
 * Your target will be set to the main tank's target, but only if the tank is targeting an enemy which is alive.
 * Works in 3.3

/target [target=focustarget, harm, nodead] /startattack
 * 1) show Attack


 * The melee dps version also starts attacking, and sets the icon to your attack ability.

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

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

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,GetNumRaidMembersdo 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,GetNumRaidMembersdo 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.3.3a

List raid members without a flask active
Use this version to list members without an active flask to yourself: /run nf="[Flask!]: ";for i=1,GetNumRaidMembersdo for b=1,41 do ufl=UnitAura('raid'..i,b);if ufl then if strfind(ufl,"Flask")or strfind(ufl,"Distilled")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,GetNumRaidMembersdo for b=1,41 do ufl=UnitAura('raid'..i,b);if ufl then if strfind(ufl,"Flask")or strfind(ufl,"Distilled")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.3.3a
 * Will not report people using the Flask of the North.

Just For Fun
Below are macros that serve no 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 4.0.3a

Random Pet with Announce v2
Another random pet macro with announce, decided to write a new one after having used to previous version for quite some time, enjoy!

/run p=GetNumCompanions("critter");i=random(p);id,name=GetCompanionInfo("critter",i);SendChatMessage("spins the Wheel O' Pets! The wheel stops on ["..i.."/"..p.."]: "..name.."!","emote");CallCompanion("critter",i); /cheer


 * Credit Xaeros of Shadowmoon
 * Use: Click to summon a random vanity pet. This macro has 34 free characters, so feel free to change your message. By default it says: "[player] spins the Wheel O' Pets! The wheel stops on [(random pet)/(number of pets)]: [Pet]! [player] cheers!"
 * Works in 4.0.3a

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 IsShiftKeyDownthen 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.
 * Will  not  help in the Quest:Tails Up (Cats are flagged as unknown, Bears are all flagged male.)
 * Works in 3.3.3a

Raid Blame (now with Guild 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! [NEW!] Too much blame to go around, and not enough raiders? Well now you can blame the whole guild!

/run x=GetNumGuildMembers(1)g=x>0 and GetGuildRosterInfo(random(1,x))or 0;y=GetNumRaidMembersr=y>0 and GetUnitName('raid'..random(1,y))or 0;if IsShiftKeyDownthen c,b="Raid",r else c,b="guild",g end;SendChatMessage("[iBlame]: "..b..".",c);
 * Credit: Xaeros of Shadowmoon
 * Use: Click the macro to blame any member of your guild in /guild ! (ex: [iBlame]: RandomGuildie)
 * Use: Shift+Click the macro to blame any member of your raid in /raid ! (ex: [iBlame]: RandomRaider)
 * Extra: This macro currently pulls a random guild member from the entire guild, if you'd rather only blame ONLINE members, change "x=GetNumGuildMembers(1)" to "x=GetNumGuildMembers(0)"
 * Works in 3.3.3a

Eating and drinking
/use [btn:1] /use [btn:1]


 * Use: Let you eat an drink at the press of one button
 * Works in 3.3.5

Eating and drinking with dynamic food & water
/use [mod:shift][btn:3] 1 20 /use [mod:alt][btn:2] 1 16 /stopmacro [mod][nobtn:1] /use [nomod][btn:1] 1 20 /use [nomod][btn:1] 1 16
 * 1) showtooltip [nomod:alt] 1 20; 1 16


 * Use:This macro uses Items from a fixed Bag slot so you can easily exchange the food (B1 Slot 20)/water (B1 Slot 16) you want to be consumed.
 * Default: this macro will use the item in slot 20 and 16 of the first bag (to the left of the bavkpack wich is zero) so you immediately start eating an drinking.
 * Modifiers: You can use the modifiers [alt] and [shift] if you only want to drink or eat. The Modifier alt also views a count of water currently in bag.
 * Buttons: btn1 is default; btn3 is similar to the shift modifier; btn2 is similar to the alt modifier.

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