WoW account
Passkeys
Each passkey signs you in to this site. Add one for every phone or computer you use.
Server status
Connect
Paste the realmlist line into Data/enUS/realmlist.wtf
(or enGB) in your WoW 3.3.5a folder, replacing the line that starts with
set realmlist.
Player bots
The server can run computer-controlled characters that join your party for questing and dungeons. Everything below can be typed in the chat box: commands starting with .playerbots go to the server, plain words like follow go in party chat (/p) to every bot or in a whisper (/w Botname) to one.
Easier: the MultiBot addon. The launcher installs it. Once installed, type /mb in game for a control bar with buttons for all of this — summon and dismiss bots, follow / stay / attack, formations, tank or healer roles, bot bags and gear, talents, quests and loot rules — without the chat replies. The chat commands still work alongside it.
1. Summon a party
.playerbots bot addclass paladin .playerbots bot addclass priest .playerbots bot addclass mage
Classes: warrior, paladin, hunter, rogue, priest, shaman, mage, warlock, druid, dk. Add female or male after the class if you like. If a bot doesn't join your group on its own, invite it by name — it accepts instantly and is teleported to you. A tank, a healer and two damage dealers plus you is a full dungeon group.
2. Bring them to your level
.playerbots bot init=auto Botname
Sets the bot to your level with gear scaled to yours. init=green, init=blue or init=epic gear them better. Run it once per bot after summoning.
3. Give them a spec
A summoned bot comes with whatever talents it has. Tell it a spec by name (whisper, or party chat with its name first) and it retrains on the spot. talents spec list shows the choices for its class. Set the spec after the gear step, in case a re-gear resets it.
talents spec disc pve priest healer talents spec prot pve warrior tank talents spec affli pve warlock damage
A dungeon party: addclass priest + disc, addclass warrior + prot and co +tank, then two damage dealers of your choice.
4. Tell them what to do
follow/stay/flee— positioning. Keepfollowon and they walk into dungeons with you.attack— hit whatever you have targeted./w Tankname pull my targetstarts a pull./w Tankname co +tankmakes that bot tank;co +dpsfor damage. Healers heal on their own.llshows what they'll loot,statsandquestsreport on them,reset botAIunsticks one.leavedrops them from the group;.playerbots bot remove Botnamelogs one out.summon(in party chat) brings every bot to where you stand.
Summoning a person. Bots cannot cast a warlock's ritual for a human, so the server does it: .gamingroo summon Charname sends a party member the game's usual "accept summon" prompt, and on accepting they land next to you. Party members only, and not while they are in combat or flying.
5. Questing with bots
Kill credit works like any party. When you hand in a quest, bots holding the same quest complete it at that moment, so they never fight you for quest items. Accept and turn in at the NPC with them next to you and they do the same.
6. Use your own characters as bots
.playerbots bot add Charname .playerbots bot addaccount ACCOUNTNAME
Any logged-out character on your own account can run as a bot. So can a guildmate's characters if you share a guild. To control another player's characters without a guild, link the accounts once: they type .playerbots setKey somesecret, you type .playerbots link THEIRACCOUNT somesecret. These bots are real characters — they earn normal XP, roll on loot, equip upgrades and level up while you play together.
Four or five bots are fine. A full raid of bots will make the world lag for everyone.
Server tweaks
Server Members
Handy commands and macros
Type them in chat, or save them as macros (/macro) and put them on your bar.
Summon another player
They get the usual "accept summon" box. Use their character's name.
.gamingroo summon CharName
Bring your party into the game
Logs your own characters in as bots and invites them. The same macro works for any member of the party: one line per character.
.playerbots bot add Char1 .playerbots bot add Char2 .playerbots bot add Char3 .playerbots bot add Char4 .playerbots bot add Char5
Summon your bots
Every bot in your party appears where you stand.
/p summon
Bots accept every quest
Talk to the quest giver yourself; the bots take every quest on offer.
/p accept *
Sell and check up
At a vendor: the bots sell everything they have no use for, then report their crafting materials and their stats.
/p s vendor /p mats /p stats
Setup guide — how this server was built
Everything runs in Docker on one Windows PC. This is the from-scratch recipe, in order.
1. What you need
- Windows 10/11 with Docker Desktop (WSL2 backend), ~30 GB free disk, and a machine with 12 GB+ RAM (16 GB is comfortable).
- A WoW 3.3.5a client (build 12340) for every player. The server does not need it — it downloads its own pre-extracted map data.
- Optional: a reverse proxy with HTTPS (we use Nginx Proxy Manager) if the website should have a real hostname. Passkeys require HTTPS or
localhost.
2. Get the code
Playerbots requires a specific fork of AzerothCore — the stock repo will not work.
mkdir AzerothCore && cd AzerothCore git clone --branch Playerbot https://github.com/mod-playerbots/azerothcore-wotlk.git source cd source/modules git clone https://github.com/mod-playerbots/mod-playerbots.git git clone https://github.com/azerothcore/mod-transmog.git git clone https://github.com/azerothcore/mod-ahbot.git mod-ah-bot git clone https://github.com/azerothcore/mod-progression-system.git git clone https://github.com/chromiecraft/mod-chromiecraft-smartstone.git git clone https://github.com/chromiecraft/mod-contributors.git
The auction-house bot must be cloned as mod-ah-bot (with the hyphen). Its loader is named for that directory; under the repo's own name the final link fails with undefined reference to Addmod_ahbotScripts().
Also copy in our own module, modules/mod-gamingroo (the login speed bonus), and the website from webui/ next to source/.
3. Configure
source/.env— database root password, ports, the website's JWT secret / hostname / registration code, the server's LAN IP, SOAP credentials, bot counts, world tick.source/docker-compose.override.yml— adds theac-webuiservice and the worldserver environment overrides. AzerothCore reads any config key fromAC_<KEY_IN_UPPER_SNAKE_CASE>, which is how SOAP, bot sizing and the tick are set without editing generated files.- Drop the players' client as
webui/dist/client.zipfor the LAN download.
4. Build and start
cd source docker compose build # first time: 1–3 hours (C++), later minutes docker compose up -d # seeds the databases, downloads map data, starts everything
Playerbots database: the dbimport tool cannot create it and the worldserver image has no SQL to fill it from. The override mounts modules/mod-playerbots/data into the worldserver and sets AC_UPDATES_ENABLE_DATABASES=8 so the worldserver provisions it itself on first boot. Without this the first boot crash-loops.
5. One-time steps after the first start
- Point the realm at the LAN:
UPDATE acore_auth.realmlist SET address='<LAN IP>', localAddress='<LAN IP>'; - Module configs: in
env/dist/etc/modules/copy each*.conf.distto*.conf(the container only does this forworldserver.conf), then restart the worldserver. - In the worldserver console (
docker attach ac-worldserver, detach with Ctrl+P Ctrl+Q):account create SOAPADMIN <pw>andaccount set gmlevel SOAPADMIN 3 -1— the website uses this account. Make your own GM account the same way. Passwords: 16 characters max; names: letters and digits. - Reverse proxy →
ac-webui:3000(attach the proxy container tosource_ac-network; going throughhost.docker.internalis ~4× slower on Docker Desktop). Addproxy_buffering off;for large downloads.
6. Players
- Sign up on this site with the registration code and a passkey, then Create WoW account — the password is shown once; regenerate it here any time.
- Download the client, extract it, and set
Data\enUS\realmlist.wtfto the line shown under Connect. - Run
Wow.exe, log in with the game account (not the passkey).
7. Day to day
- Desktop shortcuts Start / Stop / Status / Restart World (they wrap
tools/gamingroo.ps1). Restart World refuses while a client download is in progress and asks before logging players out. - Gameplay rates live in
env/dist/etc/worldserver.conf; module settings inenv/dist/etc/modules/*.conf. Most apply with.reload configin-game as a GM — no restart. - Changing module code:
docker compose build ac-worldserver ac-authserver ac-db-importthen Restart World. - Summon dungeon bots in-game:
.playerbots bot addclass hunter(any class), remove with.playerbots bot remove <name>.
Hard-won notes
- Keep
MapUpdate.Threads = 1with this Playerbots fork; more threads caused multi-second world stalls. UseMinWorldUpdateTime = 50(the classic tick) — the default of 1 pins a core doing nothing. - Random world bots cost RAM (they keep map areas loaded). Summonable dungeon bots are a separate pool and cost nothing until used.
- Every game client reaches the server as the Docker gateway address, so any IP-based ban would lock everyone out — use account-based lockouts only.
- Passive buffs (like the speed bonus) never show an icon in the buff bar; that's the client, not a fault.
Modules
GamingRoo.SpeedBonusPct, applied on login), and profession yield multipliers (GamingRoo.Loot.*) that scale the stack size of ore, herbs, leather, disenchant dust and the like — the thing the core's Rate.Drop.* settings cannot reach, because a vein always drops its ore at 100% chance. Quest items and gear are never touched. It also raises stack sizes for materials, ammo and food (GamingRoo.Items.*) by editing the loaded item templates in memory, so the world database stays untouched. Delete the WoW Cache folder once to see the new limits. Also puts a player who falls through the world back on the ground where they fell, and .gamingroo summon Charname sends a party member the "accept summon" prompt..scout face turns your character toward whatever is attacking you (macro: /run SendChatMessage(".scout face","SAY")); .scout where says which way the enemy is; .scout danger lists the mobs that would pull and how close; .scout loot does the same for corpses you can loot (minimap coins), and .scout loot all loots them from where you stand — group Need/Greed rolls still pop as normal..questassist goals answers where your quests want you to go, nearest first, for the quest arrow; in a party the leader's goal comes first and the leader sees everyone's progress, who is missing a quest and who still has to turn one in..bagsassist gear scores your bag items and quest rewards against what you wear (the bots' class and spec stat weights), and .bagsassist destroy deletes junk for the addon, which the 3.3.5 client will not let an addon do itself..fishingassist off turns it off for yourself (the GamingRoo Fishing addon has the switch)..combatassist cast <spellId> ... casts a spell for the player exactly as if they had pressed its button (same mana, cooldown, range and facing rules), which is what lets the addon offer one big "press this" icon — the 3.3.5 client never lets addons cast in combat. Also turns every player toward their target before any hostile cast while standing still (CombatAssist.FaceOnCast).mod_ahbot.conf