sCompanions creates slash commands for flying mounts, ground mounts, and pets. These can then be placed into macros. (I use these with OPie, personally, having it use the flying mount macro as the default action for the ring.)
Any of the above will select a mount or pet at random.
You can have an ignore list - see the INSTRUCTIONS for ignoring mounts and companions.txt file for details.
Note: the game now provides feedback on if a mount is usable by your character or not. sCompanions will no longer attempt to summon a mount that you cannot use.
There is no current support for aquatic mounts.
Question #1: How could I put all of these in one macro?
The following script will use sCompanions' slash commands depending on which modifier is held. Shift for ground, Control for a pet, and normal for air.
/run local f=hash_SlashCmdList["/SCOMPANIONS"] if IsShiftKeyDown() then f("ground") elseif IsControlKeyDown() then f("pet") else f("air") end
Question #2: I don't like this mount/pet - how can I make sCompanions ignore it?
As mentioned, read the "INSTRUCTIONS for ignoring mounts and companions.txt" file, added with version 1.2, for info on how to do this.
Question #3: Why doesn't this work with Running Wild?
Running Wild (the Worgen "mount") works as a spell and is not part of the companions interface. On my Worgen, before I got a regular mount, I added /cast Running Wild to the top of my /sCompanions_ground macro. This uses Running Wild on my Worgen, but the sCompanions command on the other characters. ("Mount" spells may be supported in a future version.)
Question #4: How can I add my seahorse to one of the macros?
There are two choices - you can use a modifier, or you can check to see if you're swimming.
/cast [mod] Abyssal Seahorse
/cast [swimming] Abyssal Seahorse
Question #4: How can I use Travel Form if I'm in combat instead of a ground mount?
You'd follow the basic example of the above macro.
/cast [combat] Travel Form
- fixed: infinite loop when all mounts are disabled from use (some phases in Legion)
- fixed: leaked global variable
- fixed: nil variable error in "no mounts" message
- fixed: script ran too long error - sCompanions now checks InCombatLockdown() and IsFalling()
- updated for Legion
- now notices when you try to call a pet while in combat and will attempt to do it when you are out of combat
- rewritten from the ground up
- updated for WoD and the new mount journal API
- updated LibPetJournal-2.0
- updated TOC for 5.1
- fixed renamed pet journal function calls
- updated LibPetJournal-2.0
- updated for new Pet Journal and MoP
- now uses LibPetJournal-2.0 to get around API wonkiness and headaches
- updated ignore instructions to show how to ignore per character
- fixed typo in file name of the ignore readme
- bumped interface number in the TOC for 4.3
- tweaked table structures to use local variables
- known bug (still): randomly, ground mounts get put into both tables, meaning that their big flags show that they can fly. A /reload fixes this.
- oops, removed some test code - you can summon your Core Hound Pup again if you didn't have an ignore list set up
- now uses new bit flags in API to identify mounts! No need to keep a list- air and ground mounts will automatically be determined.
- you can now have an ignore list (since it will now pick from all mounts rather than what you have listed) - see the INSTRUCTIONS for ingnoring mounts and companions.txt file for details
- you will no longer dismiss a pet by sCompanions selecting the same one that's already out - you'll get a new pet in that case