Brian Koponen

Programming and Tech Tips

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.


Commands

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.

But most actions they need to be explicitly commanded to do it.

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.

NPC Interaction

Command Description
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

Command Description
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.

Inventory

Command Description
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.

Combat

Command Description
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.

Formation

You can tell each bot to move in formation when following you.

Command Description
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.


Bot Behavior

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.

Command Description
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.

General Strategies

Strategy Description
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.

Class Strategies

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.

Strategy Description
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

Looting

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.

Command Description
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.

Gathering

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.


MangosBot AddOn

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.

MangosBot Group

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.

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.

Character Control

MangosBot Druid

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

EngBags

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.

EngBags Menu

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.).


Macros

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:

/bot

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 *


Conclusion

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.

If you haven't already, check out my Quick Start Guide to get a local server up and running. It's very easy to do. You should also read about the Advanced Configuration Settings that let you control a lot of different factors in the game world, making the game more fun as a single player experience.

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:

World of Warcraft Macros

Question or Comment?