Setting up a private World of Warcraft server used to feel like wizardry, but AzerothCore has turned it into a documented weekend project. In this guide I walk you through how to install AzerothCore modules and NPCBots on your own machine in 2026, so you can run a custom WoW server for solo play, a friends-only realm, or full community hosting.
AzerothCore is an open-source MMORPG server framework based on MaNGOS, TrinityCore, and SunwellCore. It runs WoW patch 3.3.5a (WotLK) and is the most actively maintained WotLK server emulator out there. Modules let you bolt on extra features (NPCBots, transmog, ahbot, and dozens more) without editing the core source code. By the end of this article you will have NPCBots running, your worldserver recompiled, and a working server with bots you can summon for solo dungeons and raids.
Table of Contents
What Is AzerothCore and Why Add Modules
AzerothCore is a free, open-source server emulator that lets you host your own World of Warcraft WotLK (3.3.5a) private server. It is a community fork focused on stability, blizzlike accuracy, and easy customization through a modular plugin system. Because the project is fully open-source on GitHub, anyone can review the code, contribute fixes, or build their own fork.
Modules in AzerothCore are standalone add-ons that sit alongside the core source code. They add new features such as auction house bots, transmog NPCs, custom quests, and NPCBots (non-player character bots you control). The whole architecture is designed so that you do not need to touch the core to add or remove features, which keeps your main installation clean and updateable.
Key Terminology Before You Start
- AzerothCore: the core server emulator you compile into the authserver and worldserver binaries.
- Modules directory: a folder inside the source tree where cloned modules live. Anything placed there can be picked up by CMake.
- NPCBots: bots that behave like players (healers, tanks, DPS) that you can summon and command in-game.
- Playerbots: an older bot system; in 2026 the recommended path is NPCBots via the mod-playerbots repository.
- Recompile: rebuilding the worldserver binary after adding new modules so the new code is linked in.
- worldserver.conf: the main configuration file for worldserver, where you toggle NPCBots settings.
Prerequisites You Need Before Installing AzerothCore Modules
You need a working AzerothCore installation before modules can be added. That means the core source is cloned, the databases (auth, characters, world) are created and populated, and you have already built the authserver and worldserver once successfully. If you have not done that yet, follow the official AzerothCore installation guide for your OS first, then come back here.
Beyond the core, you need three tools: Git (for cloning module repositories), CMake (for re-generating the build files after adding modules), and a C++ compiler toolchain (Visual Studio with the C++ workload on Windows, or gcc/clang plus make on Linux). You will also want a MySQL/MariaDB client to import SQL files that come with most modules.
Windows Requirements vs Linux Requirements
On Windows you need Git for Windows, Visual Studio 2019 or 2022 with the “Desktop development with C++” workload, MySQL Server (or MariaDB), and CMake 3.16 or newer. On Linux (Ubuntu 22.04 or 24.04 LTS in 2026) you need git, cmake, build-essential, libmysqlclient-dev, libssl-dev, and libboost-system-dev installed via apt. The build commands are different but the workflow is identical: clone, configure, build, run.
How to Install AzerothCore Modules Step by Step
Installing an AzerothCore module is a six-step process: navigate to the modules folder, clone the module repository, move the inner files up one level, drop the -master suffix, regenerate CMake, and rebuild the worldserver. Below is the exact sequence I follow on every fresh setup, and it works for any well-maintained module from the official catalogue.
Step 1 — Open a terminal and navigate to your AzerothCore source directory. On Windows open Git Bash in the source root (for example C:AzerothCore); on Linux open a terminal in ~/azerothcore-wotlk.
Step 2 — Move into the modules folder. Run cd modules. This is where every module lives. CMake scans this folder every time you regenerate build files.
Step 3 — Clone the module repository from GitHub. Use git clone <repository-url>. For example, to grab the transmog module you would run git clone https://github.com/azerothcore/mod-transmog.git.
Step 4 — Copy the module contents into the modules directory. Most modules contain a folder named after themselves (for example mod-transmog/) with the actual code, CMakeLists.txt, and a sql folder inside. You need to move those inner contents up one level so CMake sees them directly under modules/. Use cp -r mod-transmog/* . on Linux or drag the contents up one level in File Explorer on Windows.
Step 5 — Rename the folder to remove the -master suffix. Git clones often append -master to the folder name. If you skip this, CMake will silently ignore the module. Rename the cloned folder so it matches the module name exactly (for example mod-transmog-master becomes mod-transmog).
Step 6 — Regenerate CMake and rebuild the worldserver. Go back to the source root, run CMake again (or re-open the CMake GUI), then rebuild. Detailed build instructions are in the recompiling section below.
How to Install NPCBots in AzerothCore
NPCBots is one of the most popular AzerothCore modules because it lets you summon party members, tanks, healers, and DPS bots to run dungeons and raids solo. The recommended path in 2026 is the mod-playerbots repository by trickerer, which is the actively maintained fork and works with current AzerothCore builds.
The install flow is the same as any module: clone, copy into modules, drop the -master suffix, run CMake, recompile, import SQL, configure worldserver.conf. The difference is that NPCBots has extra configuration flags and a database import that must run before the worldserver starts, otherwise the bot tables will not exist and bots will silently fail to spawn.
Difference Between NPCBots and Playerbots
The original Playerbots module was designed for TrinityCore and was partially ported to AzerothCore years ago. NPCBots is the modern reimplementation focused on AzerothCore WotLK, with better AI, more class support, and active maintenance. In 2026 you should use NPCBots via the mod-playerbots repository; the legacy Playerbots path is essentially deprecated and not recommended for new servers.
Installing NPCBots via mod-playerbots Repository
From inside your modules directory, run git clone https://github.com/mod-playerbots/mod-playerbots.git. Then copy the inner contents up one level with cp -r mod-playerbots/* . (Linux) or by dragging files up in Explorer (Windows). Rename the cloned folder from mod-playerbots-master to mod-playerbots.
Next, re-run CMake from your build directory. On Linux that is cmake ../ -DCMAKE_INSTALL_PREFIX=$HOME/azerothcore-wotlk/.. -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DWITH_WARNINGS=0 -DTOOLS_BUILD=all -DSCRIPTS=static -DMODULES=static. Then rebuild with make -j$(nproc) and reinstall with sudo make install. On Windows open the CMake GUI, click Configure, then Generate, then build the worldserver target in Visual Studio.
Recompiling AzerothCore After Adding Modules
Recompiling is the part most first-time admins stumble on, but it is genuinely simple once you have done it once. Every time you add, remove, or update a module you must regenerate the build files and rebuild the worldserver binary. The authserver binary does not need to be rebuilt for module changes since modules only affect the world (game) server.
The total rebuild time depends on your hardware. On a modern 8-core CPU the full worldserver compile takes 8 to 15 minutes on first build, and 1 to 3 minutes for incremental rebuilds after that. Plan for a coffee break.
Windows Build (Visual Studio)
Open CMake GUI, point “Where is the source code” at your AzerothCore source root, and “Where to build the binaries” at a separate build folder (commonly build/ inside the source tree). Click Configure, choose your Visual Studio generator, then click Generate. Open the generated solution in Visual Studio, set the worldserver project as the startup project, choose Release x64, and build. Copy the new worldserver.exe into your server runtime folder when done.
Linux Build (CMake + Make)
From your build directory run the same CMake command shown earlier, then make -j$(nproc) followed by sudo make install. The compiled binaries land in your install prefix (commonly /usr/local/bin/ or a custom path you set during the initial core setup). Restart the worldserver process to load the new build.
Importing SQL Files and Configuring NPCBots
Most modules ship a sql folder with one or more .sql files that create the database tables and seed reference data the module needs. NPCBots in particular requires multiple SQL imports for bot classes, bot equipment, and bot AI spell data. Skipping this step is the single most common reason for “the module installed but nothing works” complaints.
Use the MySQL command line or a GUI like HeidiSQL or DBeaver to import each .sql file into the world database. The NPCBots module has an SQL folder with subdirectories for base data and class-specific data; import every file in order. After import, run a quick SHOW TABLES; in the world database and confirm the new bot tables exist.
Key Worldserver.conf Settings for NPCBots
Open worldserver.conf and search for “Bot”. You will find settings like NpcBot.Enable (set to 1 to turn the module on), NpcBot.BaseFollowDistance, NpcBot.SpawnDistance, and several class-specific flags. The defaults work well for most servers. Set NpcBot.Enable to 1, save the file, and restart the worldserver for changes to take effect.
Testing NPCBots In-Game and Essential Commands
Once the worldserver boots without errors, log into the game with a level-capped character and test NPCBots in a quiet zone. Open the chat box and try .npcbot spawn (or use an in-game vendor that sells bot summon tokens if your module config includes one). You should see a bot appear next to you that you can target, invite to your group, and command to attack your target.
If a bot spawns, follows you, and engages a hostile mob, your install is working. Try running a dungeon with a tank, healer, and two DPS bots to confirm the AI is responding to combat correctly. NPCs that do nothing at all usually mean SQL was not imported; bots that crash the worldserver usually mean the build is missing a module dependency.
Most Useful NPCBot Commands
The full command list lives in the mod-playerbots wiki, but the essentials are .npcbot for the main menu, .npcbot spawn <name> to summon a specific bot, .npcbot remove to dismiss the selected bot, and .npcbot follow / .npcbot attack for basic control. Server admins with GM rank can also use .npcbot add <name> to create persistent bot entries tied to a player account.
Troubleshooting Common AzerothCore Module Errors
Most module install failures come from a handful of recurring mistakes. The good news is that all of them are easy to diagnose once you know what to look for. Below are the issues I see most often in forum threads and Discord channels, along with the fix that has worked for me every time.
The -master suffix issue: Git clones add -master to the folder name. If you forget to rename, CMake ignores the module and you get no error, just a missing feature. Fix: rename the folder to match the module name exactly.
Module not detected by CMake: Usually means the inner files were not moved up one level. The CMakeLists.txt must live directly under modules/<module-name>/. Fix: copy the contents up one level.
SQL import errors: Foreign key errors during import usually mean tables the module depends on do not exist yet. Fix: run the AzerothCore base SQL files first, then the module SQL files in the order listed in the module README.
Worldserver crashes on startup after install: Almost always a version mismatch between the module and the core. Fix: check the module’s GitHub releases page and confirm it supports your AzerothCore branch (master vs specific tag).
Bots do not spawn in game: Check that NpcBot.Enable = 1 in worldserver.conf, that SQL was imported, and that your account has a GM level high enough to use the spawn command (usually 3 or higher).
Frequently Asked Questions About AzerothCore Modules
Is hosting a private WoW server illegal?
Hosting a private WoW server is legal in most jurisdictions as long as you do not charge money for access, do not distribute Blizzard’s game client, and do not infringe on Blizzard’s intellectual property. Private servers operate in a legal gray area, but the open-source server software itself is legal to download, compile, and run for personal, non-commercial use.
How to install playerbots in AzerothCore?
Clone the mod-playerbots repository into your AzerothCore modules folder, remove the -master suffix from the cloned folder, run CMake again to detect the module, rebuild the worldserver, import the module’s SQL files into the world database, and set NpcBot.Enable to 1 in worldserver.conf. Restart the worldserver and bots will be available in-game.
How to make a custom WoW server?
To make a custom WoW server, clone AzerothCore from GitHub, set up MySQL or MariaDB, create the auth, characters, and world databases, run the base SQL files, configure worldserver.conf and authserver.conf, build the source with CMake and your C++ compiler, and start the authserver and worldserver binaries. Add modules like NPCBots by cloning them into the modules folder and rebuilding.
What is AzerothCore?
AzerothCore is an open-source World of Warcraft server emulator based on MaNGOS, TrinityCore, and SunwellCore that lets you host a private WotLK (3.3.5a) server. It is community-maintained on GitHub and supports a modular system for adding features like NPCBots, transmog, and custom quests without editing the core source.
What is the difference between NPCBots and playerbots?
Playerbots is an older bot system originally built for TrinityCore. NPCBots is the modern AzerothCore-native reimplementation found in the mod-playerbots repository, with better AI, more class support, and active maintenance. New AzerothCore servers in 2026 should use NPCBots rather than the legacy Playerbots path.
Final Thoughts on Running AzerothCore With Modules and NPCBots
Once you have your AzerothCore modules and NPCBots installed, you have a fully working private WotLK server with bots ready to fill any group. From here, explore the official AzerothCore module catalogue, add a transmog NPC, set up ahbot to keep the auction house lively, and tune your worldserver.conf for the rates you want. If you hit a wall, the AzerothCore Discord and the mod-playerbots issue tracker are the fastest places to get unstuck.