Mount macros [ Working ] Random Ground / Flying Mount ~ MoP 5 . 4 . Found useful randomization between flying and ground mounts of your choosing . Not as fancy looking with lua scripting , but it is easy to follow and understand as well . Smart Mount Macro With Aquatics . Modified from " Random Smart Mount with Sea Horse " ( Don ' t like modifiers inside macros ) Replace " g , g " with ground mounts , " f , f " with flying mounts , " s , s " with all - around aquatic mounts ( turtles ) , " v " with Abyssal Seahorse . 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 . ) Things it tries to do in order from first to last : Shamans and druids could also replace the " / dismount " with " / cast Ghost Wolf " or " / cast Travel Form " depending on their needs . might display " Another action in progress " when mounting from travel forms . For those who do not have turtles or hybrid mounts : When swimming and not in vashjir it will just go with a ground mount Random Smart Mount with Sea Horse ( WORKING ) . # showtooltip RM Key RM - Favorite Mount FM - Flying Mount GM - Ground Mount Random Smart Mount with Sea Horse , Sea Turtle and Vehicle Exit ( WORKING ) . # showtooltip Red Proto - Drake If you only want it to use one type of mount in any category , replace " castrandom " with " cast " and remove the comma after the name of the mount you wish to use . Random Smart Mount with Sea Horse ( WORKING ) . / run if not IsMounted ( ) then local g , f , s = { g , g , g } , { f , f , f } , { s , s , s } local t = ( strsub ( GetMapInfo ( ) , 0 , 7 ) = = " Vashjir " and IsSwimming ( ) and not IsShiftKeyDown ( ) ) and s or ( IsFlyableArea ( ) ) and f or g CallCompanion ( " MOUNT " , t [ random ( # t ) ] ) end Replace " g , g , g " with your preferred ground mount slot numbers ; " f , f , f " with flyers ; " s , s , s " with water mounts . Where only one mount is desired , place only one number in the { } with no commas . The number of mounts you can list is limited by the 255 character macro limit . This macro takes into consideration the zone name so it only tries to use the Vashj ' ir mount if you ' re in Vashj ' ir . GetMapInfo ( ) returns the Zone + Subzone ( VashjirRuins , Vashjir < SubZone > , e . g . ) , so by trimming after the 7th character , it always will say " Vashjir . " There is a possibility this could error out if the zone + subzone length < 7 , but I can ' t think of any areas that meet this criteria . If you have no need to mount on the surface of the water in Vashj ' ir , use the following macro as it frees up more space for random mounts since the " IsShiftKeyDown ( ) modifier is removed . Random Smart Mount with Sea Horse ( NOT WORKING ) . / run if not IsMounted ( ) then local g , f , s = { g , g , g } , { f , f , f } , { s , s , s } local t = ( IsSwimming ( ) and not IsShiftKeyDown ( ) ) and s or IsFlyableArea ( ) and f or g CallCompanion ( " MOUNT " , t [ random ( # t ) ] ) end 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 comma ' s . The number of mounts you can list is limited by the 255 character macro limit . This is based on the below macro which didn ' t work for me . The GetCurrentMapAreaID only worked detecting one zone at a time , not all 3 , so I modded it as follows , since I don ' t use Shift to mount ground mount anyway , nor do I mount when swimming except in Vashj ' ir . 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 = ( GetCurrentMapAreaID ( ) = = ( 610 or 614 or 615 ) and IsSwimming ( ) ) and s or ( IsFlyableArea ( ) and not IsShiftKeyDown ( ) ) and f or g CallCompanion ( " MOUNT " , t [ random ( # t ) ] ) end 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 comma ' s . The number of mounts you can list is limited by the 255 character macro limit . Simple Druid Flight Form , Aquatic Form , and otherwise Mount . / cast [ swimming ] Aquatic Form Replace Black War Bear with your favorite mount . This should work anywhere , even underwater . You can use the seahorse in place of the Aquatic Form . Fly where possible , ride , dismount if mounted . / cast [ nomounted , flyable ] Flight Form 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 . ) Ground and Flying with Cold Weather Flying . Simple Ground and Flying mount macro with dismount . / cast [ nomounted ] Albino Drake Simply replace the names of the mounts with the names of your preferred flying and ground mount . As with most macros , spelling must be exact . This allows you to simply select from your collection of mounts using the name of the mount you want . The benefit is that you don ' t have to change the reference number of your mount every time you get a new one . Complex Ground and Flying mount macro with dismount . Right Click forces ground mount or dismounting while in flight . # showtooltip [ flyable ] Albino Drake ; Great Red Elekk Since the " flyable " condition was fixed for Dalaran in patch 3 . 0 , the only place the old standby macros from the past will not work properly is Wintergrasp . If it weren ' t for the Wintergrasp problem , my addon [ http : / / wow . curse . com / downloads / wow - addons / details / mounty . aspx [ Mounty ] ] would have no purpose at all and could be replaced by the above macro . I am not certain if the macro will take into account the conditions of Cold Weather Flying , which could give another use to [ http : / / wow . curse . com / downloads / wow - addons / details / mounty . aspx [ Mounty ] ] . As with the previous macro ; simply replace the names of the mounts with the names of your preferred flying and riding mount . Spelling must be exact , and I advise you highlight the current name and shift + click the mount icon from your mount frame . This will place the name of the mount into the macro . The only exception may possibly be with the " Bronze Drake Mount " as it is named in your mount list . You may need to put " Bronze Drake " in the macro instead of " Bronze Drake Mount " . Ground and Flying mount macro that will not dismount you when flying unless you hold alt . Replace the names of the mounts with the names of your preferred flying and ground mounts . Works everywhere , only dismounts when you are not flying or if you hold alt while flying , and has no errors . Requires Cold Weather Flying in Northrend . Remove the last line if you don ' t ever want to dismount when flying ( It ' s annoying trying to land while racing another for a node . ) And you can take it further too . For a priest you can set mod : ctrl to not only dismount you but cast levitate ( just replace with slow fall ( mages ) or some parachute ( engineers ) ) So now holding ctrl - alt while activating macro will dismount you even in air and then cast a safty spell so you don ' t go squish . If you are in Northrend and don ' t have Cold Weather Flying , you can use this macro , but it will flash an error on the screen when mounting . A macro similar to the above for death knights that allows you to mount flying if available , ground if unavailable , override and mount ground even if flying is available , dismount on the ground , and dismount in flight with alt . Works in 4 . 0 . 6 , by Sinirina of Grizzly Hills ( US ) 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 ) Random - from - list Mount and Dismount 3 . 2 . / castrandom [ nomounted , flyable ] Bronze Drake , Black Drake 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 ( IsFlyableArea ( ) and f ) or g ; z = ( IsMounted ( ) or CallCompanion ( " MOUNT " , f [ random ( # f ) ] ) ) and IsFlying ( ) or Dismount ( ) 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 ( IsFlyableArea ( ) and f ) or g ; if ( IsMounted ( ) ) then Dismount ( ) else CallCompanion ( " MOUNT " , f [ random ( # f ) ] ) end Random Smart Mount 3 . 1 ( Compact ) . / run if IsMounted ( ) then Dismount ( ) return end local t = GetZoneText ( ) if ( ( ( 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 ) ] ) 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 ( ) Supercompact Smart Mount 3 . 1 ( Works with large numbers of mounts ) . / run if IsMounted ( ) then Dismount ( ) else 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 Supercompact Smart Mount 3 . 3 . / run if IsMounted ( ) then 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 ) ] ) 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 ) Random Smart Mount for 4 . 0 . 3 Shattering . / run g , f , c , t = { G , G } , { F , F } ; if IsMounted ( ) and not IsFlying ( ) then Dismount ( ) ; return end ; c = GetCurrentMapContinent ( ) ; if ( c = = 3 ) or ( c = = 4 ) and IsFlyableArea ( ) then t = f else t = g end ; CallCompanion ( " MOUNT " , t [ random ( # t ) ] ) ; Random Smart Mount for 4 . 0 . 3 with modifier to force ground mount . / run g , f , t = { G , G } , { F , F } ; if IsMounted ( ) and not IsFlying ( ) then Dismount ( ) ; return end ; if IsFlyableArea ( ) and not IsModifiedClick ( ) then t = f else t = g end ; CallCompanion ( " MOUNT " , t [ random ( # t ) ] ) ; Mount Macro Addon . « < This addon now works for mounting in Vashj ' ir » > 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 4 . 0 . 3 . The addon is Mounty . 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 ) 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 ) ; Ground Only or Not Type Specific . Mount Outside . / dismount [ mounted ] Random mount . / dismount [ mounted ] One - button flyer or ground mount with emote . / mountspecial [ mounted ] DrakeZoomer - Zooming mount macro . # showtooltip % FLYINGMOUNT % What it does : Warning , this macro will not work out uf the box , first you have to take a second to set your preferred camera views . Here ' s how : / run SetView ( 2 ) = 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 .