Mount macros

Smart Mount Macros Random Smart Mount with Sea Horse in Vashj'ir (improved)

/run if not IsMounted then local g,f,s,x={g,g,g},{f,f,f},{s,s,s},strfind(GetMapInfo,"Vashj") local t=(x and IsSwimming) and s or (IsFlyableArea and not IsShiftKeyDown) and f or g CallCompanion("MOUNT",t[random(#t)]) end /dismount


 * Validated: 4.0.6
 * Replace g,g,g with your preferred ground mount slot numbers, f,f,f with flyers, and s,s,s with water mounts. If only one mount is desired in any time, just place one number in the {} with no commas. The number of mounts you can list is limited by the 255 character macro limit. The macro has been adjusted to function throughout Vashj'ir
 * Note: This macro will dismount you if you are already mounted/flying, so be mindful.

One Flying or Land Mount /cast [flyable] mount a ; mount x /dismount [mounted]
 * 1) showtooltip


 * Validated: 4.0.1a
 * This will use mount a if it is possible to fly, and mount x if it is not. The tooltip will let you know if the zone is flyable or not. If you were mounted already, you will dismount.
 * Note: This macro will dismount you even while flying, be mindful!

One Flying or Land Mount via Modifier /use [mod:shift] Winged Steed of the Ebon Blade /use [nomod] Acherus Deathcharger /dismount [mounted] This is based off of the macro above, but with a conditional modifier added. You don't get forced onto your flying mount, or your ground mount unless the zone prevents you from doing so.
 * 1) showtooltip
 * Validated 4.0.3

A second version of that same macro, but on one line: /use [mod:shift;nomod] Acherus Deathcharger; Winged Steed of The Ebon Blade
 * 1) show

You don't need the "/dismount [mounted]" line, unless you want to start mounting the other mount immediatly.

Random Flying or Land Mount /userandom [flyable] mount a, mount b, mount c ; mount x, mount y, mount z


 * Validated: 4.0.1a
 * This will use a random one of mount a, mount b or mount c if it is possible to fly, and a random one of mount x, mount y or mount z if it is not. If you were mounted already, you will dismount for 1.5 seconds as the random mount is cast.
 * Note: This macro will dismount you even while flying, be mindful!

Right Click forces ground mount or dismounting while in flight /use [nobutton:2, flyable, nomounted] mount a ;[nomounted] mount b /cancelaura [noflying] [button:2]  mount a  /cancelaura mount b
 * 1) showtooltip


 * Validated: ??
 * Right Click forces ground mount or dismounting while in flight.

Ground and Flying mount macro that will not dismount you when flying unless you hold alt /use [flyable, nomounted] mount a /use [noflyable, nomounted] mount b  /dismount [noflying, mounted] /dismount [mod:alt, mounted] Replace mount a and mount b with the names of your preferred flying and ground mounts. Only dismounts when you are not flying or if you hold alt while flying.
 * 1) showicon

And you can take it further too, by adding a safety spell to the macro. So now holding ctrl-alt while activating the macro will dismount you even in air and then cast your safety spell so you don't go squish. Priest's Levitate, Mage's Slow Fall or an engineer's parachute can be added. Add this line to the macro: /cast [mod:ctrl, target=player] safety spell
 * Validated: ??

Not Type Specific Completely Random Mount /run CallCompanion("MOUNT", random(GetNumCompanions("MOUNT")))


 * Validated: 4.0.1a
 * Summons a completely random mount of the ones you have learned.
 * Note: This may try to summon flying or aquatic mounts where they are not allowed, which will produce an error message.

Multi-purpose Mounts /cast [nomod] mount a /cast [mod:Shift] mount b  /cast [mod:Alt] mount c  /cast [mod:Ctrl] mount d  /dismount [mounted]
 * 1) showtooltip


 * Validated: 4.0.1a
 * This enables you to summon a mount of choice while only taking up one bar space or keybind. Particularly useful when you want several mounts with different purposes to be easily accesible, but don't want to use them all the time, such as a vendor mount, aquatic mount or passenger mount.
 * Press normally to summon mount a, hold Shift to summon mount b , Alt to summon mount c or Ctrl to summon mount d . If you were mounted already, you will dismount.

Mount Outside /dismount [mounted] /cast [nomounted,outdoors] mount a


 * Validated: 3.1
 * This will attempt to mount if you are outside and not mounted. There will be no reaction if you are in an area that does not permit mounts. It will produce an error if you are in combat.

Random mount /dismount [mounted] /castrandom mount a, mount b, mount c


 * Validated: 3.1
 * This will randomly use one of the mounts listed in the macro. If you were mounted already, you will dismount for 3 seconds as the random mount is channeled.
 * Note: This macro will dismount you even while flying, be mindful!

Need testing post-4.0 Random Smart Mount with Sea Horse in Vashj'ir /run if not IsMounted then local g,f,s={g,g,g},{f,f,f},{s,s,s} local t=GetRealZoneText=="Kelp'thar Forest" and s or (IsFlyableArea and not IsShiftKeyDown) and f or g CallCompanion("MOUNT",t[random(#t)]) end /dismount

Replace g,g,g with your preferred ground mount slot numbers, f,f,f with flyers, and s,s,s with water mounts. If only one mount desired in any type, place one number in the {} with no commas. The number of mounts you can list is limited by the 255 character macro limit. The macro does not currently work everywhere in Vashj'ir because it is technically three zones: Kelp'thar Forest, Shimmering Expanse, and Abyssal Depths.

Fly where possible, ride, dismount if mounted

/cast [nomounted,flyable] Flight Form /run if not(IsFlyableAreaand IsMounted)then CallCompanion("Mount",2) else Dismountend

This will work in any area. Replace the number of the mount with the desired mount, 1 is the first mount in your mounts list.

Ground and Flying without Cold Weather Flying

Fly where possible without Cold Weather Flying

/run if IsMounted and not IsFlying then Dismount return end local t if (GetCurrentMapContinent==3) then t={2} else t={1,4} end CallCompanion("MOUNT",t[random(#t)])

If, you have not yet mastered Cold Weather Flying, this macro will only summon your flying mount in Outland. My flying mount is in slot 2 on the Mounts pane, while my two epic ground mounts are in slots 1 and 4. Replace these numbers as appropriate. (I have not found a function to show the continent you are currently in, only what continent the map shows. If you have just switched continent and this macro doesn't work as it should, a quick double-tap on the M-button should update your map, and fix it.)


 * Validated: 3.2.0a
 * Credit: Eldhannas of Wildhammer(EU)

Ground and Flying with Cold Weather Flying

Mount Macro for the right place and time

/run if IsMounted then Dismount return end local m if not IsFlyableArea or (GetWintergraspWaitTime==nil and GetZoneText=="Wintergrasp") or IsSwimming then m=(1) else m=(3) end CallCompanion("MOUNT",m)


 * Validated: 3.2
 * Focus: Universal
 * This just checks to see whether the area you're in is flyable or not, works for Dalaran depending if you are inside the city, then your ground mount will be selected or if you're on Krasus' landing then your flying mount since IsFlyableArea works for this. IsFlyableArea also works Wintergrasp, but when the battle for wintergrasp starts then it will check to see if you're in Wintergrasp and if the timer is 0, it will then select your ground mount if so, but if you're in Wintergrasp and the timer is not 0 then you will use your flying mount. Also added IsSwimming if you decide to mount when in water, although if you have a underwater mount then you can change the macro to the following to use your underwater mount.

/run if IsMounted then Dismount return end local m if not IsFlyableArea or (GetWintergraspWaitTime==nil and GetZoneText=="Wintergrasp") then m=(1) else m=(3) end if IsSwimming then m=(2) end CallCompanion("MOUNT",m)


 * Replace the values of m=(1) to the slot of your ground mount and m=(3) to the slot of your flying Mount and if you have a swimming mount, m=(2) to the slot of your Swimming mount


 * Note: this macro will dismount you in mid air. Use it wisely.


 * By Ryarc of Sunstrider

Random-from-list Mount and Dismount 3.2

/castrandom [nomounted, flyable] Bronze Drake, Black Drake /castrandom [nomounted] Frostwolf Howler, Swift Green Hawkstrider, Black War Bear, Purple Skeletal Warhorse, Swift Orange Raptor /dismount /script VehicleExit


 * Validated: 3.2
 * Focus: Universal
 * Credit: Smiteness of Barthilas
 * Use: This will fly if possible, and mount a grounded mount if possible, and if mounted OR in a vehicle, will get off. Works perfectly in Dalaran, Wintergrasp, Outlands and Old World. Aka everywhere.
 * Replace: Simply add or remove mounts from the first line for flying mounts, and add or remove mounts from the second line for ground mounts.
 * Note: This works on ANY character, WITH or WITHOUT Cold Weather flying. Also works with lazy people who don't wish to count their mount's specific placing and just put the name down. This may produce an error on use, but you will mount anyway so I doubt you will care.

Random Smart Mount

/run g,f={G,G,G},{F,F,F};z={["Dalaran"]=g,["Wintergrasp"]=g,["Krasus' Landing"]=f};f=z[GetSubZoneText]or z[GetZoneText]or(IsFlyableAreaand f)or g;z=(IsMountedor CallCompanion("MOUNT",f[random(#f)]))and IsFlyingor Dismount


 * Validated: 3.3.3a
 * Focus: Universal
 * Credit: Xaeros of Shadowmoon, Faceeater of Nozdormu
 * Use: When you are mounted the macro will dismount you (unless you are flying), when you are in any non-flyable zone (Kalimdor/Eastern Kingdoms/Dalaran/Wintergrasp) it will use your ground mount. When you can fly (anywhere else + Krasus' Landing in Dalaran) it will put you on a flying mount.
 * Replace G with a ground mount, and F with a flying mount. To find your mount number, open your mounts tab and count from left-to-right, top-to-bottom. (eg: The top-left mount on the first page is 1, the bottom-right mount on the first page is 12)
 * This macro produces no errors (for the most part, you can mount up manually in the room between Krasus' Landing and Dalaran, but not with this macro. This happens because you are being recognized as being in Krasus' Landing so the macro attempts to mount you on your flying mount, but the room itself is still in-doors.) and will not start re-casting a mount if you are already mounted.

Random Smart Mount with Flying Dismount

/run g,f={G,G,G},{F,F,F};z={["Dalaran"]=g,["Wintergrasp"]=g,["Krasus' Landing"]=f};f=z[GetSubZoneText]or z[GetZoneText]or(IsFlyableAreaand f)or g;if(IsMounted)then Dismountelse CallCompanion("MOUNT",f[random(#f)])end


 * Validated: 3.2.2.10505
 * Focus: Universal
 * Credit: Magumbadin of Sen'Jin, Xaeros of Shadowmoon, Faceeater of Nozdormu
 * Use: When you are mounted the macro will dismount you (even if you are flying - only difference from the above "Random Smart Mount"), when you are in any non-flyable zone (Kalimdor/Eastern Kingdoms/Dalaran/Wintergrasp) it will use your ground mount. When you can fly (anywhere else + Krasus' Landing in Dalaran) it will put you on a flying mount.
 * Replace G with a ground mount, and F with a flying mount. To find your mount number, open your mounts tab and count from left-to-right, top-to-bottom. (eg: The top-left mount on the first page is 1, the bottom-right mount on the first page is 12)
 * This macro produces no errors (for the most part, you can mount up manually in the room between Krasus' Landing and Dalaran, but not with this macro. This happens because you are being recognized as being in Krasus' Landing so the macro attempts to mount you on your flying mount, but the room itself is still in-doors.) and will not start re-casting a mount if you are already mounted.

Random Smart Mount 3.1 (Compact)

/run if IsMountedthen Dismountreturn end local t=GetZoneTextif(((t=="Dalaran")and(GetSubZoneText~="Krasus' Landing"))or(t=="Wintergrasp")or not IsFlyableArea)then t={ a,b,c }else t={ x,y,z }end CallCompanion("MOUNT",t[random(#t)])


 * Validated: 3.1.3
 * Focus: Universal
 * Credit: Blindsight of Spirestone
 * Use: When you are mounted the macro will dismount you (including when you are flying), when you are in any non-flyable zone (Kalimdor/Eastern Kingdoms/Dalaran/Wintergrasp) it will use your ground mount. When you can fly (anywhere else + Krasus' Landing in Dalaran) it will put you on a flying mount.
 * Replace a,b,c with a list of ground mounts, and x,y,z with a list of flying mounts. To find your mount number, open your mounts tab and count from left-to-right, top-to-bottom. (eg: The top-left mount on the first page is 1, the bottom-right mount on the first page is 12. For each page add +12.)
 * This macro removes as many unnecessary characters as possible to allow for a longer list of mounts. Still be mindful of the 255 character limit.
 * This macro will summon a land mount in the Dalaran Sewer pipe and the top of the Violet Tower.
 * Note: This macro will dismount you even while flying, be mindful!

Random Smart Mount 3.1 (Alternate Compact)

/run local g,f={ a,b,c },{ x,y,z };local z={["Dalaran"]=g,["Wintergrasp"]=g,["Krasus' Landing"]=f};f=z[GetSubZoneText] or z[GetZoneText] or (IsFlyableArea and f) or g;z=(IsMounted or CallCompanion("MOUNT", f[random(#f)])) and Dismount


 * Validated: 3.1.3
 * Focus: Universal
 * Credit: Faceeater of Nozdormu
 * Use: same as Blindsight's macro above.
 * Replace a,b,c with a list of ground mounts, and x,y,z with a list of flying mounts. (see above)
 * This macro offers the exact same functionality as the one from Blindsight.

Supercompact Smart Mount 3.1 (Works with large numbers of mounts)

/run if IsMountedthen Dismountelse f={a,b,c}g={n,o,p}c=CallCompanion r=random m="MOUNT"c(m,f[r(#f)])c(m,g[r(#g)])end


 * Validated: 3.1
 * Focus: Universal
 * Due to the checks for Dalaran and Wintergrasp there is very little room left in other macros for mounts (because the game thinks Dalaran/Wintergrasp are flyable areas-some consider this a defect). This version uses a different technique to circumvent the lengthy wintergrasp/dalaran check: it attempts to mount twice - normally the second attempt will fail because you are already mounting. However in the case of wintergrasp or dalaran or other non-flyable areas the original mount attempt will have failed so the second mount command will succeed.
 * Replace a,b,c with a list of your flying mounts (e.g. 4,6,9,12,15), n,o,p with your ground mounts.
 * This macro will cause a "You cant use that here" or "Action already in progress" error. If you prefer not to see errors then you should choose a different mount macro but you may be limited in the number of mounts you can specify.
 * Note: This macro will dismount you even while flying, be mindful!

Supercompact Smart Mount 3.3

/run if IsMountedthen return end local m if IsFlyableArea and not (GetWintergraspWaitTime == nil and GetZoneText=="Wintergrasp") then m={a,b,c} else m={d,e,f} end CallCompanion("MOUNT",m[random(#m)]) /dismount

/run if IsMountedthen return end local m if IsFlyableArea and not (GetWintergraspWaitTime == nil and GetZoneText=="Wintergrasp") then m={a,b,c} else m={d,e,f} end CallCompanion("MOUNT",m[random(#m)]) /dismount [noflying, mounted] /dismount [mod:alt, mounted]


 * Validated: 3.2.2a and 3.3.0
 * Updated to fix will no longer cast second mount instead of dismount
 * Focus: Universal
 * They seem to have fixed the IsFlyableArea script command, so this allows you to use a random mount. The second macro dismounts you, and dismounts you in-flight if you hold alt to click it.
 * Replace a,b,c and d,e,f with the list of your flying mounts and ground mounts, respectfully.
 * The list consists of the number of you mount as it appears in your pet tab on you character pane. (The first mount is 1, the last mount on the first page is 12, the first mount on the 2nd page is 13, and so on.)
 * You can have more or less than 3 in each list, just have a comma between each mount number.
 * Note: This macro is very similar to the one from above, it just allows you to use alt to dismount in air and does not show any errors.
 * Does work during in Wintergrasp during the battle.

Random Smart Mount 4.0 (Alliance version, english client)

/run n={"rake","ryp","rpet","qui"};g={G1,G2};z=random;s="Mount";m=g[z(#g)];if(IsFlyableArea)then i=0;while i<1 do m=z(200);for j=1,#n do b=({GetCompanionInfo(s,m)})[2];x=strfind(b or"",n[j]);if(x~=nil)then i=9;break;end end end end CallCompanion(s,m)


 * Validated: 4.0.1
 * Focus: Universal
 * Credit: Puriella of Gilneas
 * There is still no easy way to determine if a mount is capable of flying
 * Use: When you are in any non-flyable zone it will use one of your ground mounts. When you can fly it will put you on a flying mount.
 * Replace G1,G2 with a list of ground mounts (watch for 255 characters!). To find your mount number, open your mounts tab and count from left-to-right, top-to-bottom. (eg: The top-left mount on the first page is 1, the bottom-right mount on the first page is 12. For each page add +12.)
 * It will look for certain parts in the mount name (p.e. "rake" finds "Red Proto Drake" as well as "Albino Drake", "ryp" will find "Ebon Gryphon" as well as "Cenarion War Hippogryph" or "Argent Hippogryph", "rpet" will find all sorts of "Carpet", and "qui" all "Vanquishers". You can localize your macro or adapt it to Horde (p.e. you could change "ryp" to "d R" for Wind Rider). But those parts should be unique to flying mounts, or there is a chance you may get a ground mount (p.e. "Swift" will find "Swift Green Gryphon" as well as "Swift Frostsaber"). And it is case-sensitive.
 * This macro removes as many unnecessary characters as possible to allow for a longer list of mounts. Still be mindful of the 255 character limit.

Mount Macro Addon There is an addon that creates an maintains a mount macro. It uses a LUA function call to an addon that keeps track of your location. The macro shows the icon of your favorite mount for flying or riding, depending on what it will operate. The macro will also exit from vehicles. This addon works everywhere as of patch 3.2.0. The addon is Mounty. Draewind (talk) 17:26, 14 August 2009 (UTC)

Mount Macro for the right place and time

/run if IsMounted then Dismount return end local m if not IsFlyableArea or (GetWintergraspWaitTime==nil and GetZoneText=="Wintergrasp") or IsSwimming then m=(1) else m=(3) end CallCompanion("MOUNT",m)


 * Validated: 3.2
 * Focus: Universal
 * This just checks to see whether the area yur in is flyable or not, works for Dalaran depending if you inside the city, then your ground mount will be selected or if your on Krasus' landing then your flying mount since IsFlyableArea works for this. IsFlyableArea also works Wintergrasp, but when the battle for wintergrasp starts then it will check to see if your in wintergrasp and if the timer is 0, it will then slect your ground mount if so, but if your in wintergrasp and the timer is not 0 then you will use your flying mount. Also added IsSwimming if you decide to mount when in water, although if you have a underwater mount then you can change the macro tot he following to use your underwater mount.

/run if IsMounted then Dismount return end local m if not IsFlyableArea or (GetWintergraspWaitTime==nil and GetZoneText=="Wintergrasp") then m=(1) else m=(3) end if IsSwimming then m=(2) end CallCompanion("MOUNT",m)


 * Replace the values of m=(1) to the slot of your ground mount and m=(3) to the slot of your flying Mount and if you have a swimming mount, m=(2) to the slot of your Swimming mount


 * Note: this macro will dismount you in mid air. Use it wisely.

by Ryarc of Sunstrider

Left/Right Click for Random Flying/Ground Mount

/run local m,f,g,c=GetMouseButtonClicked,{1,2,4,11,13},{3,5,6,7,8};if m=="LeftButton"then c=f[random(#f)]else c=g[random(#g)]end;CallCompanion("MOUNT",c);


 * Credit: Xaeros of Shadowmoon
 * Use: Left-click to summon random flying mount, right-click to summon random ground mount. Replace the first set of numbers with your flying mounts, and the second set with your ground mounts. To find your mount number: open your mounts tab and count from top-left to bottom-right, starting on the first page. (ex: The first mount on page 1 is "1", the first mount on page 2 is "13")
 * Works in 3.3.3a

Ground Only or Not Type Specific

One-button flyer or ground mount with emote

/mountspecial [mounted] /use [modifier:alt] White Polar Bear Mount /use [nomounted, flyable] Albino Drake /use [nomounted] White Riding Talbuk


 * Validated: 3.1.1
 * Replace Albino Drake, talbuk etc. with flyers and ground mounts of your choice.
 * This mounts you on your flying mount anywhere you can fly, if you are not already mounted. In Old School WoW and in no-fly zones ( Dalaran, Wintergrasp etc.  Tested in 3.1.1a, you still need a conditional for Dalaran, etc.)  and Northrend if you don't have the skill) it summons your ground mount. Holding down alt will summon a 'showing off' ground mount. Pressing the macro when you are already mounted will do the 'mountspecial' emote (rearing, growling, stretching).

Outdated Macros

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