Skip to content

Staburus/TrinityCore-Cataclysm-Playerbots

Repository files navigation

TrinityCore 4.3.4 (Cataclysm) + Playerbots

A TrinityCore 4.3.4 (Cataclysm, client build 15595) server with an integrated playerbots module (src/server/scripts/Custom/mod-playerbots-cataclysm). The bots and the core live in this single repository, so they build and update together.

Playerbots add player-like characters to the server: random bots that roam, quest, run dungeons, battlegrounds and raids, plus the ability to log in your own alts as bots and group with them.

Based on the Cataclysm Preservation Project branch of TrinityCore and the mod-playerbots project (originally ike3's mangosbot), ported to 4.3.4.


⚠️ Game data / copyright

This repository contains source code only. It does not include any Blizzard game data (maps, vmaps, mmaps, dbc, cameras, the client, or MPQ data) — those are copyrighted and must be extracted from your own legally-owned 4.3.4 client. The build/ directory (compiled binaries, extracted data, configs, logs) is intentionally git-ignored.


Requirements

Component Version / Notes
OS Windows 10/11 (this guide). Linux works too with the equivalent toolchain.
Compiler Visual Studio 2022 (Desktop development with C++)
CMake 3.18 or newer
MySQL 8.0 / 8.4 (MariaDB 10.5+ also works)
Boost 1.78 or newer
OpenSSL 3.x
Git latest
Client World of Warcraft 4.3.4 (build 15595) — for extracting game data
RAM 8 GB minimum; 16 GB+ recommended when running many bots

Setup

1. Clone

git clone https://github.com/Staburus/TrinityCore-Cataclysm-Playerbots.git
cd TrinityCore-Cataclysm-Playerbots

2. Configure & build (CMake + Visual Studio 2022)

mkdir build
cd build
cmake .. -G "Visual Studio 17 2022" -A x64 -DTOOLS=1 -DSCRIPTS=static

Open the generated TrinityCore.sln in Visual Studio, set the configuration to RelWithDebInfo, and build ALL_BUILD (or just the worldserver, authserver, and the extractor tools). Binaries land in build/bin/RelWithDebInfo/.

The playerbots module is wired into the build automatically (SCRIPTS=static) — no extra steps.

3. Extract game data (from your own client)

Copy these tools from build/bin/RelWithDebInfo/ into your WoW 4.3.4 client folder and run them in order, then move the generated folders to your server's data directory:

mapextractor.exe          ->  produces  dbc/  maps/
vmap4extractor.exe        ->  produces  Buildings/
vmap4assembler.exe        ->  produces  vmaps/
mmaps_generator.exe       ->  produces  mmaps/

Place the resulting dbc/, maps/, vmaps/, mmaps/, and Cameras/ folders together in a data directory (e.g. bin/RelWithDebInfo/data/) and point DataDir at it in the config (step 5).

4. Database

Create the three core databases:

CREATE DATABASE auth        DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE DATABASE characters  DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE DATABASE world       DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  • Import the base SQL from sql/base/ (auth + characters), and the Cataclysm world database (TDB) from the Cataclysm Preservation Project releases into world.
  • The worldserver applies pending sql/updates/ automatically on startup (keep Updates.EnableDatabases and Updates.AutoSetup enabled in the config).

Playerbots SQL: the playerbots tables live in the characters database (the module aliases its PlayerbotsDatabase to CharacterDatabase). Import them once:

# from the repo root, into the characters DB
mysql -u root -p characters < src/server/scripts/Custom/mod-playerbots-cataclysm/data/sql/playerbots/base/*.sql

(Also apply anything under mod-playerbots-cataclysm/data/sql/world/base/ to world.)

5. Configuration

In build/bin/RelWithDebInfo/configs/, copy the templates and edit them:

worldserver.conf.dist          -> worldserver.conf
authserver.conf.dist           -> authserver.conf
modules/playerbots.conf.dist   -> modules/playerbots.conf

In worldserver.conf set at minimum:

  • LoginDatabaseInfo, WorldDatabaseInfo, CharacterDatabaseInfo — your MySQL host/user/password/db
  • DataDir — path to the folder containing dbc/ maps/ vmaps/ mmaps/

In authserver.conf set LoginDatabaseInfo.

6. Realmlist

Point the realm at your server's address so clients can connect:

-- auth database
UPDATE realmlist SET address = '127.0.0.1' WHERE id = 1;   -- use your LAN/WAN IP for remote players

Set the client's realmlist.wtf to your auth server IP.

7. Run

Start authserver first, then worldserver:

build/bin/RelWithDebInfo/authserver.exe
build/bin/RelWithDebInfo/worldserver.exe

Create an account in the worldserver console:

account create <user> <password>
account set gmlevel <user> 3 -1

Playerbots

Configuration lives in configs/modules/playerbots.conf. Common settings:

Setting Meaning
AiPlayerbot.RandomBotAutologin Auto-log random bots into the world on startup
AiPlayerbot.MinRandomBots / MaxRandomBots How many random bots populate the world
AiPlayerbot.RandomBotAccountCount Number of bot accounts to generate

Bots are controlled with in-game chat commands (e.g. .playerbots bot add <name>, whisper follow, stay, attack, etc.). For a UI instead of chat commands, you can use a client AddOn such as MultiBot.

Performance tip: for large bot counts, raise the DB/worker/map threads in worldserver.conf (MapUpdate.Threads, CharacterDatabase.WorkerThreads, PlayerbotsDatabase.WorkerThreads, etc.) to match your CPU.


Updating

git pull

Then rebuild in Visual Studio. New sql/updates/ are applied automatically on worldserver startup; apply any new files under the module's data/sql/ manually. Because the core and the playerbots module share this repo, a single git pull updates both.

To pull upstream TrinityCore changes, this repo keeps the original as a remote:

git fetch upstream

Credits

License

GPL v2 — see COPYING. TrinityCore is released under the GNU GPL v2; the playerbots module under AGPL v3. You must comply with both. No copyrighted Blizzard data is included or permitted in this repository.

About

TrinityCore 4.3.4 (Cataclysm) server with an integrated playerbots module. See README for setup.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors