World of Warcraft Single Player Server Bot Control
If you followed my World of Warcraft Single Player Server Quick Start Guide, you should have a working Single Player Project local server running. If you've played for a while, you probably have noticed that the bots can handle combat quite well, but they don't turn in quests, sell items, advance their professions or anything else like that.
Much of that is possible, you just have to manually command the bots to do them. This guide will show you how that works. We'll talk about how to issue chat commands to the bots, use some addons to provide a user interface and write some macros for the most common actions.
If you just use the bots as combat companions, and aren't actually leveling them up as real characters, much of this won't be required. But if you are using a party of your own characters, it is nice to have the ability to control their inventory, accept and complete quests and learn skills without having to logout and logon as each individual character.
First, let's talk about direct orders you can give the bots. You can use these to direct combat or make the bots interact with NPCs that they can't do by themselves.
Bots will perform certain actions when you do.
- Accepting and Completing Quests (if available to them).
- Taking Flight Paths.
- Using the Hearthstone.
But most actions they need to be explicitly commanded to do it.
- Choosing quest rewards.
- Learning spells from a class trainer.
- Buying or selling items at a vendor.
- Using quest items.
- Trading items.
These commands are issued by sending chat messages. You can send a command to the whole party, raid, or just to one character by whispering to them.
|home||The bot will set its hearthstone to the current inn (if it is near an innkeeper).|
|talk||The bot talks to the NPC. This is how you get a bot to learn flight paths, as well as talk to quest NPCs.|
|leave||The bot leaves their current party. Useful if you invite them to your party but they are already in one.|
|trainer||The bot will list any spells they can learn from the class or profession trainer.|
|trainer learn||If you are by a class or profession trainer, the bot will learn any spells available to them, if they have enough money to do so.|
|d accept all quests||The bot will accept any quests from the NPC.|
|quests||The bot will list how many quests it has completed and uncompleted.|
|quests all||The bot will list all incomplete and completed quests.|
|quests co||The bot will list only completed quests.|
|quests in||The bot will list only incomplete quests.|
|q [quest]||The bot will list the details of the quest. Shift-click the quest name from the previous commands to insert the link. This is very useful for figuring out which bots still need items for a quest.|
|r [item]||The bot will choose the item as the reward for a quest. The bot will tell you its options in chat. Shift-click on one of these to insert the item into your chat box.|
|c||The bot will list its inventory.|
|c [item]||The bot will list how many of the item they have.|
|s *||The bot will sell all gray items if they are near a merchant.|
|s [item]||The bot will sell the item.|
|b [item]||The bot will buy the item.|
|e [item]||The bot will equip the item.|
|ue [item]||The bot will unequip the item.|
|u [item]||The bot will use the item.|
|u [item] [target]||The bot will use the item on the target.|
|destroy [item]||The bot will destroy the item. Useful if their bag fills up.|
|repair||The bot will repair items if it is near an NPC that repairs.|
|d attack my target||The bot will attack your target.|
|grind||The bot will endlessly attack all targets in sight.|
|follow||The bot will follow you, including teleporting to your location if they are very far away.|
|stay||The bot will stay where it is.|
|flee||The bot will stop attacking and follow you.|
|d add all loot||The bot will loot all available objects (corpses, chests, gathering nodes, etc.)|
|save mana <1-5>||The bot will save mana more aggressively with higher numbers.|
You can tell each bot to move in formation when following you.
|formation near||The default, the bot stays close to you.|
|formation far||The bot will stay far behind you. Great for ranged DPS classes.|
|formation arrow||Tanks will stay in front, DPS behind them.|
|formation melee||The bots will surround you.|
|formation chaos||The bots will move freely around at random distances.|
|formation line||The bots will stay in a line, shoulder to shoulder around you.|
|formation queue||The bots will line up behind you and follow your path.|
Beyond directly ordering the bot to do something, you can also adjust their self-directed actions. These strategies are available for both in combat (co) and non-combat (nc) contexts.
|co ?||This will list the current combat strategies of the bot.|
|nc ?||This will list the current non-combat strategies of the bot.|
|co/nc +strategy||Add a strategy.|
|co/nc -strategy||Remove a strategy.|
|co/nc ~strategy||Toggle a strategy.|
|tank assist||Attack the target with the most threat off of another party member. Focuses on a single target at a time. Classes will still use attacks that effect multiple targets. In those cases tank assist and tank aoe will largely be the same.|
|tank aoe||Attack multiple targets, periodically switching attacks between different mobs, while using abilities to hold aggro.|
|dps assist||Attack the target with the most threat off of another party member. Focuses on a single target at a time. Classes will still use attacks that effect multiple targets, but they won't switch their target.|
|dps aoe||Attack multiple targets, periodically switching attacks between different mobs.|
|attack weak||Attack the target with the least health, switching targets if necessary.|
|grind||Automatically attack any visible target, continuously finding new targets if necessary. This is a useful, but dangerous strategy as it is easy for the bots to get spread out and get too many mobs involved.|
|passive||Don't attack anything.|
|conserve mana||Use the 'save mana' value to slow down the rate of casting.|
|cast time||Avoids long cast time spells if a target has low health.|
|potions||Use health and mana potions.|
|food||Use food and drinks.|
|loot||Loot corpses, chests, gathering nodes, etc.|
|gather||Loot skinning, mining and herb nodes. Only works if loot is enabled as well.|
In addition to those above, there are more class-specific strategies that will effect the style of combat. You will likely want to customize these to fit the characters you have created based on their build, e.g. a fire mage vs a frost mage.
|tank||Use threat-generating abilities. Druid will use bear form. Classes: Warrior, Paladin and Druid|
|dps||Focus on DPS skills. Druid will use cat form. Classes: Rogue, Hunter, Druid, Shaman, Priest|
|heal||Heal party members rather than DPS or tanking. Classes: Shaman and Priest|
|arcane||Use arcane spells. Class: Mage|
|frost||Use frost spells. Class: Mage|
|fire||Use fire spells. Class: Mage|
|bear||Use bear form to tank. Class: Druid|
|cat||Use cat form for dps. Class: Druid|
|caster||Use balance spells. Class: Druid|
|bspeed||Hunter will use Aspect of Cheetah / Pack. Class: Hunter|
|bdps||Use buff spells that increase DPS on the bot and the party.|
|bhealth||Use buff spells to increase health.|
|bmana||Use buff spells to increase mana.|
|rfire||Use spells that add fire resistance.|
|rfrost||Use spells that add frost resistance.|
|rshadow||Use spells that add shadow resistance.|
|rnature||Use spells that add nature resistance.|
The default strategies tend to work fine. Tank classes use 'tank aoe' and the rest use 'attack weak.' This lets the tank hold aggro while the dps classes finish off all the targets. Perhaps counter-intuitively, you need to add the attacking strategies to both the combat and non-combat categories, otherwise when a bot is out of combat, it will never be able to get into combat without a direct order to attack.
Certain strategies are mutually exclusive to each other. You cannot tank and be passive at the same time. In those cases, enabling one disables the other.
You can combine multiple strategies into one command. For instance, this command will turn on dps assist, looting and gathering in the non-combat state:
nc +dps assist,+loot,+gather
When you have the loot strategy enabled, you can further customize which items the bot will loot. This is called the loot list ("ll").
Note: Even though the official documentation includes an additional "skill" setting, it doesn't actually exist.
|ll normal||Loots if the bot can use the item, whether it be for a profession or equipment. Won't loot Bind-on-Pickup items.|
|ll gray||Same as normal, but adds looting gray items.|
|ll disenchant||Same as normal, but adds any green or higher items, even if they can't use it. Still won't loot Bind-on-Pickup items.|
|ll all||Loots everything, including Bind-on-Pickup items.|
If you have the gather strategy enabled, the bots will perform their gathering skills (Mining, Herbalism and Skinning) automatically, much like looting corpses, but you have to first manually train the characters in the skill so they get above level 1.
While many commands can only be issued using the chat, the MangosBot AddOn provides a UI for the most common ones. It makes the experience much better, rather than using chat commands all the time.
From the GitHub page, click on "Clone or download," then "Download ZIP." Extract the zip and rename the "mangosbot-addon-1.12" folder to "Mangosbot". Copy the Mangosbot folder into your Interface/AddOns folder in your World of Warcraft installation folder.
There are versions for Vanilla, The Burning Crusade and Wrath of the Lich King clients. On the GitHub page, click on Branches and select the version for the client you are using.
In game, type "/bot" to bring up the bot control panel. The top section lists all your characters. Click on the green arrow to bring them online. Once a bot is online, icons appear that let you logout the bot, add or remove the bot from your party, summon the bot at a meeting stone and open a whisper chat to them.
You can set the group formation, issue all the common commands and set the save mana level. Every button has a descriptive tooltip, so it is very easy to use without having to learn what every icon means.
When you have a party member targeted, a control panel appears where you can control their individual behavior. Much of this is duplicated in the group panel, but here you can set each bot to behave differently. A common setting would be to set ranged DPS to follow far, while the rest of the group is set to follow near.
This is where you can set the class-specific battle strategies.
EngBags AddOn + Patch
The commands that deal with the bot inventory are the slowest and most annoying to use. Thankfully, there is an addon that provides a UI for this. It's a little tricky to install, because you need to download the original addon and the patch that makes it work with the bots.
First download the original version of EngBags. Next, download the patch files. Click on "Clone or download" and choose "Download ZIP".
Extract both the original and the patch zip files. Drag all the files from "mangosbot-EngBags-1.12" into the EngBags folder, overwriting any existing files. Now copy the EngBags folder into the Interface/Addons folder in your World of Warcraft installation folder.
The only annoying thing is that it effects your bag UI as well, but since the functionality it provides for dealing with bot inventories is invaluable, it is worth getting used to.
When you right-click on an item, a menu appears with all the commands you can give. This is so much faster and easier than using the chat commands. Many of the commands only work when the bot is near the appropriate NPC or object (Banker, Mailbox, Merchant, etc.).
You can easily make macros for common commands, since you are just sending chat messages for commands. You can bind these to keys, which is really helpful for common commands like attacking a target.
I like to keep an action bar on the side of my screen with these macros for easy access.
Show and hide the MangosBot group window:
Tell your party to attack your target or to flee if the Shift key is pressed:
/run s=SendChatMessage; if IsShiftKeyDown() then s("flee", PARTY) else s("d attack my target", PARTY) end
Tell your party to talk to the NPC so they can get flightpaths, turn in quests, accept any quests they need, repair their items and sell the junk in their inventory:
/p talk /p d accept all quests /p repair /p s *
With a solid understanding of these commands and using the addons, you can add a whole new dimension to playing World of Warcraft. Controlling a team of characters becomes a whole new challenge and is a lot of fun.
I hope this has been helpful. Please let me know if you have any comments or questions.
You may also be interested in these World of Warcraft related pages: