other iconSmart random mount macro

vote up

Macro for Wow: Smart random mount for Other. Works in World of Warcraft patch 5.4 Siege of Orgrimmar, Mists of Pandaria

Posted on: 08-29-2012 - Updated on: 02-01-2014 - viewed 32628 times

Need help?


Now that mounts are account wide, you need a cool random mount macro to mount all of them! This Wow macro is smart enough to figure out if you are in a zone that’s flyable or if you can’t, like in a battleground. It then casts a random mount from your list. Its really fun to see what mount you get. 

See the related macros below for links to different kinds of mount macros for Wow.

/run if not IsMounted() then local m,t,f="mount",{{},{}} for i=2,GetNumCompanions(m) do tinsert(t[bit.band(2,select(6,GetCompanionInfo(m,i)))==0 and 1 or 2],i) end f=IsFlyableArea() and 2 or 1 CallCompanion(m,t[f][random(#t[f])]) else Dismount() end

10 responses to “Smart random mount”

  1. Jonah says:

    Can you create a macro that will use Swift Flying form in flyable areas, and a random ground mount everywhere else?

  2. Lucid says:

    Ok, so I have a challenge . I would like to kind of combine two random mount macro and was hoping someone can make it happen?

    MACRO 1 (where it cast a random mount depending if zone allows flying or just ground with no errors, like “can’t do that here”, but also only if you write the full name of mount which takes up space)

    /castrandom [nomounted, flyable] flying mount name, flying mount name, flying mount name
    /castrandom [nomounted] ground mount name, ground mount name, ground mount name
    /script VehicleExit()

    MARCO 2 (where it will cast any random mount flying/ground regardless of zone, its just that it may give you a flying mount when you can only use ground or vise-versa, but it does allow to use the mount list # like t={2,3,4} to allow more mounts rather than naming the mounts)

    /run if (not IsMounted()) then local t={2,3,9,16,27} CallCompanion(“MOUNT”, t[random(#t)]) else DismissCompanion(“MOUNT”) end

    So the challenge is to make these two macro as one where we can mount/dismount a random mount that will only let a flying mount in a flying zone and a ground mount in a non-flying zone with no errors and using the mount # list rather than using the full name of a mount to fit more mounts in the macro.
    Please let me know if this is even possible and if so how to do it.

  3. Nasarox says:

    Great macro!!
    However, when I’m on my druid it will not allow me to mount while in form (ie: bear, cat, travel). I get a warning “Can’t mount while transformed”.
    How can I fix this?

  4. anon says:

    good marco. however it does not prevent a player from attempting to summon a profession mount, like the flying carpet or eng heli

  5. ildian says:

    The one problem i can find with this macro is that it never summons the mount that is on the very 1st spot of the list.
    How can i fix that? I’ve been trying to decypher how it works since i dont know this type of programming, but im preety sure all we have to do is a little change.

    I have albino drake as the 1st mount on my list and it never summons it, a friend of mine has bronze drake, never summons it.

    I’ll try with the old version where i starts from 1 instead of 2, since i dont have the seahorse yet it shouldt try to summon him.

    (Now that i think about it, that should fix it, since abyssal seahorse starts alphabetycally with and a and a b, hard to top that as the 1st mount on the list)

  6. StPatty33 says:

    Awesome job! The only thing I can think of is that it doesn’t seem to summon the hybrid mounts for those without flying ability yet, or in a zone where you can’t fly. IE the Horseman’s mount or Quillen etc, that can be used as ground mounts or flying mounts either one.

  7. Ro says:

    For 99.99% of users on English clients with an Abyssal Seahorse, Change the 1 into a 2 in the for i=1,GetNumCompanions and it will never attempt to summon an Abyssal Seahorse.

    /run if not IsMounted() then local m,t,f=”mount”,{{},{}} for i=2,GetNumCompanions(m) do tinsert(t[bit.band(2,select(6,GetCompanionInfo(m,i)))==0 and 1 or 2],i) end f=IsFlyableArea() and 2 or 1 CallCompanion(m,t[f][random(#t[f])]) else Dismount() end

  8. Nasarox says:

    this macro works great. however it keeps trying to mount my seahorse on land and I get and error message “Can only use in water”. If there is a fix for that it would be great. I’m not sure if it has tried to mount my AQ raid mounts outside of AQ, but I will watch for it. Thank you.

Leave a Reply

Your email address will not be published. Required fields are marked *