Table of Contents
- Installation Guide
- Table of Contents
- Requirements
- Clean Installation (From Source)
- 1. Clone the Repositories
- 2. Follow the AzerothCore Installation Guide
- 3. Playerbots Database Setup
- 4. Configure Playerbots
- 5. Start the Server
- Migrating From an Existing AzerothCore Installation
- Docker Installation
- Adding Other Modules
- Updating Your Installation
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Installation Guide
This guide covers installing mod-playerbots on a clean setup or migrating an existing AzerothCore installation. Supported platforms are Ubuntu, Windows, and macOS.
Important:
mod-playerbotsrequires a custom fork of AzerothCore — the standard AzerothCore repository will not work. This is the single most common installation mistake. See Requirements below.
Table of Contents
- Requirements
- Clean Installation (From Source)
- Migrating From an Existing AzerothCore Installation
- Docker Installation
- Adding Other Modules
- Updating Your Installation
- Next Steps
Requirements
The Playerbots AzerothCore Fork
You must use the Playerbots fork of AzerothCore. The standard azerothcore-wotlk repository will not work — you will get hundreds of compilation errors if you try to build mod-playerbots against the standard core.
The correct repository is:
https://github.com/mod-playerbots/azerothcore-wotlk (branch: Playerbot)
Why a fork?
mod-playerbotsrequires modifications to the AzerothCore base code that cannot be implemented as a standard drop-in module. The fork includes these core changes and is regularly updated from upstream AzerothCore.
Boost Compatibility (Windows)
Boost 1.87+ is known to be incompatible with some AzerothCore builds. Use Boost 1.78–1.83 for best results.
Clean Installation (From Source)
1. Clone the Repositories
git clone https://github.com/mod-playerbots/azerothcore-wotlk.git --branch=Playerbot
cd azerothcore-wotlk/modules
git clone https://github.com/mod-playerbots/mod-playerbots.git --branch=master
This gives you the correct AzerothCore fork with the mod-playerbots module inside the modules/ directory.
2. Follow the AzerothCore Installation Guide
From this point, follow the standard AzerothCore Installation Guide for your platform. The guide covers:
- Requirements (per platform: Windows, Linux, macOS)
- Core Installation (per platform: Windows, Linux, macOS)
- Server Setup
- Database Installation
- Networking
- Final Server Steps
- Client Setup
Follow all steps using the Playerbots fork you cloned in Step 1 (not the standard AzerothCore repo). The build process is identical — the only difference is the source repository.
Playerbots-Specific Build Notes
Compiler warnings: The build will produce many "unused parameter" and other warnings. These are cosmetic and do not affect functionality. To suppress them and speed up recompilation, add
-DCMAKE_CXX_FLAGS="-w"or-DWITH_WARNINGS=0to your cmake command.
Windows — Visual Studio memory: If Visual Studio runs out of memory during compilation, go to Tools > Options > Projects and Solutions > Build and Run and set "maximum number of parallel project builds" to 4.
DBC language: Use enUS DBC files on the server side. The bot spell system relies on enUS spell names. Your game client language can be anything — only the server-side DBC files matter.
3. Playerbots Database Setup
The playerbots module uses its own database (acore_playerbots) in addition to the standard AzerothCore databases. After completing the AzerothCore database setup, create the playerbots database and grant permissions:
CREATE DATABASE IF NOT EXISTS acore_playerbots;
GRANT ALL PRIVILEGES ON acore_playerbots.* TO 'acore'@'localhost';
FLUSH PRIVILEGES;
The server's auto-updater will populate most tables on first run. However, playerbots SQL files may need to be imported manually if the auto-updater does not pick them up:
bash
# From the azerothcore-wotlk directory
# 1. Import the playerbots additions to acore_characters
for f in modules/mod-playerbots/data/sql/characters/base/*.sql; do
mysql -u acore -p acore_characters < "$f"
done
# 2. Import the playerbots additions to acore_world
for f in modules/mod-playerbots/data/sql/world/base/*.sql; do
mysql -u acore -p acore_world < "$f"
done
Check: If you see errors like
Table 'playerbots_random_bots' doesn't existorUnknown database 'acore_playerbots'when starting the server, ensure the database was created and the SQL files were imported as shown above.
4. Configure Playerbots
After building and installing, a playerbots.conf.dist file will be in your server's config directory (under etc/modules/ or configs/modules/ depending on platform).
-
Copy the dist file to create your config:
cp playerbots.conf.dist playerbots.conf -
Edit
playerbots.conf— key settings to get started:
Critical: Always edit the
.conffile in your server's install/config directory, not the.conf.distfile in the module source folder. Changes to.conf.distor to files in the sourcemodules/directory have no effect on the running server. Both the.conf.distand.conffiles must be present for the module to work.
-
Increase map update threads in
worldserver.conf. This is the single most impactful performance setting for playerbots:MapUpdate.Threads = 4Set this to 4–6 for most systems (roughly number of CPU cores minus 2). AzerothCore performance is heavily dependent on single-core performance, and you are unlikely to see any benefit from using more than 8 threads. Setting this to 12, 16, or higher does not improve performance — it can actually increase overhead.
-
Tune MySQL for playerbots. The default MySQL configuration is not adequate for use with playerbots and will lead to increased disk activity and decreased performance. Key settings to add to your MySQL config (
my.cnformy.ini):[mysqld] skip-log-bin # Disables binary logging — reduces disk writes by 75-90%. Safe for single-server setups that don't need replication. innodb_buffer_pool_size = 4G # Set to ~50% of total RAM innodb_io_capacity = 500 innodb_io_capacity_max = 2500 transaction_isolation = READ-COMMITTEDSee the Playerbot Configuration wiki page for full MySQL tuning recommendations, bot activity profiles, hardware requirements, and detailed
worldserver.conf/playerbots.confsettings.
5. Start the Server
Start the auth server and world server as described in the AzerothCore Final Server Steps.
On first start, the server will create bot accounts and begin logging in bots. This may take several minutes. You will see bot login messages in the console — this is normal.
Migrating From an Existing AzerothCore Installation
If you already have a working AzerothCore server and want to add mod-playerbots, you cannot simply drop the module into your existing installation. The playerbots fork includes core modifications that are not present in standard AzerothCore.
Migration Steps
-
Back up your existing databases:
mysqldump -u acore -p acore_auth > auth_backup.sql mysqldump -u acore -p acore_characters > characters_backup.sqlTip: If you only need to back up specific characters rather than the entire database, you can use the
.pdump writeand.pdump loadcommands in-game. For example,.pdump write dump.sql <character_name>exports a single character, and.pdump load dump.sql <account_name>imports it. This is a quick option if you don't need a full database backup. -
Switch your AzerothCore repository to the Playerbots fork. From your existing
azerothcore-wotlkdirectory, change the remote URL and pull the Playerbot branch:cd azerothcore-wotlk git remote set-url origin https://github.com/mod-playerbots/azerothcore-wotlk.git git fetch origin git checkout Playerbot -
Clone the playerbots module into the
modules/directory:cd modules git clone https://github.com/mod-playerbots/mod-playerbots.git --branch=master cd .. -
Rebuild the server following the AzerothCore Installation Guide for your platform. Since the source has changed, a full rebuild is recommended (delete your
build/directory and re-run cmake). -
Create the playerbots database and grant permissions:
CREATE DATABASE IF NOT EXISTS acore_playerbots; GRANT ALL PRIVILEGES ON acore_playerbots.* TO 'acore'@'localhost'; FLUSH PRIVILEGES; -
Import playerbots SQL files if the auto-updater doesn't handle them:
bash
# From the azerothcore-wotlk directory
# 1. Import the playerbots additions to acore_characters
for f in modules/mod-playerbots/data/sql/characters/base/*.sql; do
mysql -u acore -p acore_characters < "$f"
done
# 2. Import the playerbots additions to acore_world
for f in modules/mod-playerbots/data/sql/world/base/*.sql; do
mysql -u acore -p acore_world < "$f"
done
- Update your configuration files. New
.conf.distfiles may contain additional settings after the rebuild. Compare them with your existing.conffiles and merge any new entries. Then follow Step 4: Configure Playerbots above.
Note: Your existing extracted data (maps, vmaps, mmaps, dbc) and database connection settings in
worldserver.confcan be kept as-is. The auto-updater will apply any necessary schema changes on first start.
Docker Installation
Docker installations have with limited support. Previous Docker experience is recommended.
Steps
-
Clone the repositories:
git clone https://github.com/mod-playerbots/azerothcore-wotlk.git --branch=Playerbot cd azerothcore-wotlk/modules git clone https://github.com/mod-playerbots/mod-playerbots.git --branch=master cd .. -
Create
docker-compose.override.ymlin theazerothcore-wotlkroot:services: ac-worldserver: volumes: - ./modules:/azerothcore/modules:ro -
Set environment variables for configuration (optional but recommended):
services: ac-worldserver: environment: AC_AI_PLAYERBOT_RANDOM_BOT_AUTOLOGIN: "1" AC_AI_PLAYERBOT_MIN_RANDOM_BOTS: "50" AC_AI_PLAYERBOT_MAX_RANDOM_BOTS: "200" volumes: - ./modules:/azerothcore/modules:roConfig settings are converted to environment variables by uppercasing, replacing
.with_, and prefixing withAC_. For example:AiPlayerbot.RandomBotAutologin = 1becomesAC_AI_PLAYERBOT_RANDOM_BOT_AUTOLOGIN: "1". -
Set up the
.envfile (recommended):cp conf/dist/env.docker .envEdit
.envto set the database password and Docker user/group if needed. Permissions issues are the most common cause of Docker installation problems. -
Handle SQL imports for the module. The Docker db-import container may not automatically import module SQL files. If you encounter
Unknown database 'acore_playerbots'or missing table errors:# Copy module SQL files to the custom SQL import directories cp modules/mod-playerbots/sql/characters/base/*.sql data/sql/custom/db_characters/ cp modules/mod-playerbots/sql/world/base/*.sql data/sql/custom/db_world/ -
Build and run:
docker compose up -d --build
For more information, see the AzerothCore Install With Docker page.
Adding Other Modules
When using third-party modules alongside mod-playerbots, keep in mind:
- The playerbots AzerothCore fork may lag behind the latest upstream AzerothCore. Modules that target the very latest AC version may fail to compile. In this case, find an older commit/release of the module that is compatible.
Clone additional modules into the modules/ directory and rebuild:
Updating Your Installation
To update both the core and the module:
# Update the core
cd azerothcore-wotlk
git pull
# Update the module
cd modules/mod-playerbots
git pull
# Update any other modules
cd ../mod-other-module
git pull
# Rebuild
cd ../../build
cmake ..
make -j $(nproc)
make install
Note: If you are only pulling updates (no new cmake options or module additions), you can skip the
cmake ..step and just runmake -j $(nproc) && make install. Re-running cmake is only necessary when you change build options, add/remove modules, or do a fresh build.
Important: Always update both the core and the module together. Running a newer module against an older core (or vice versa) can cause compilation errors or runtime crashes.