Voor het opzetten van een World of Warcraft-server moet je serveremulatiesoftware installeren, een database configureren, spelgegevens voorbereiden en de verschillende serveronderdelen met elkaar verbinden. Een van de bekendste opensourceprojecten om dit proces te bestuderen is AzerothCore, dat de serveromgeving van World of Warcraft: Wrath of the Lich King 3.3.5a emuleert.
AzerothCore kan op Linux, Windows en macOS draaien. In deze handleiding richten we ons op de installatie op Ubuntu 26.04 LTS, volgens de huidige installatieprocedure van het project op basis van de broncode.
We behandelen de belangrijkste commando’s, de databaseconfiguratie, netwerkinstellingen en veelvoorkomende installatieproblemen.
Belangrijk: AzerothCore is een onafhankelijk opensourceproject, geen officiële Blizzard-server. De licentievoorwaarden van Blizzard beperken ongeautoriseerde emulatie en verbindingen. Deze handleiding is bedoeld voor technisch onderwijs en voor omgevingen waarvoor je over de benodigde rechten en toestemmingen beschikt. De handleiding biedt geen gameclients of bedrijfseigen bestanden en verleent geen toestemming om een ongeautoriseerde dienst te exploiteren.
Wat is AzerothCore?
AzerothCore is een opensource-MMO-serveremulator gebaseerd op de omgeving van Wrath of the Lich King 3.3.5a.
De software bootst serversystemen na, zoals personagebeheer, authenticatie, quests, wezens en interacties in de spelwereld.
De software gebruikt drie hoofdonderdelen:
- Authserver: Verzorgt de authenticatie bij het inloggen en de selectie van realms.
- Worldserver: Beheert de activiteit in de spelwereld, personages en gameplay-systemen.
- MySQL-database: Slaat authenticatiegegevens, personages en informatie over de spelwereld op.
Beide serverapplicaties communiceren met MySQL en kunnen op dezelfde machine draaien.
AzerothCore levert serversoftware, maar geen gelicentieerde World of Warcraft-gameclient of rechten om bestanden van Blizzard verder te verspreiden.

Systeemvereisten voor een World of Warcraft-server
De vereisten voor AzerothCore hangen af van je installatiemethode en de belasting. Voor het compileren van de software zijn doorgaans meer resources nodig dan voor het draaien van een kleine testomgeving.
Voor een ontwikkel- of testomgeving op Linux kun je uitgaan van de volgende specificaties:
| Resource | Aanbevolen configuratie |
|---|---|
| CPU | 4 vCPU of meer |
| RAM | 8 GB of meer voor het compileren |
| Opslag | 60–100 GB SSD of NVMe |
| Besturingssysteem | Ubuntu 26.04 LTS |
| Database | MySQL 8.4 LTS |
| Compiler | GCC 15+ of Clang 18+ |
Deze hardwarespecificaties zijn praktische richtwaarden, geen officiële minimumvereisten of garanties voor het aantal spelers.
Voor deze handleiding gebruiken we Ubuntu 26.04 LTS, dat via zijn pakketbronnen ondersteunde pakketten voor MySQL 8.4 aanbiedt.
Voor de installatie heb je ook beheerderstoegang en kennis van eenvoudige Linux-commando’s nodig.
Als je nog niet bekend bent met het hosten van multiplayergames, legt onze handleiding voor het hosten van gameservers uit welke invloed serverhardware, netwerkprestaties en hostinginfrastructuur hebben op de gameplay, stabiliteit en benodigde resources.
Stap 1: Bereid je Linux-server voor
Maak via SSH verbinding met je Linux-omgeving:
ssh admin@YOUR_SERVER_IP
Vervang admin door je gebruikersnaam en YOUR_SERVER_IP door het daadwerkelijke adres van je server.
Werk het systeem bij:
sudo apt update
sudo apt upgrade
Installeer vervolgens de afhankelijkheden die voor Ubuntu 26.04 zijn gedocumenteerd:
sudo apt install git cmake make gcc g++ clang \
libstdc++-16-dev default-libmysqlclient-dev \
libssl-dev libbz2-dev libreadline-dev \
libncurses-dev mysql-server libboost-all-dev tmux
Controleer of MySQL draait:
sudo systemctl status mysql
Je kunt ook de versies van de compiler en de database controleren:
clang --version
mysql --version
Controleer voordat je verdergaat of ze aan de huidige vereisten van AzerothCore voldoen.
Gebruik een gewone Linux-gebruikersaccount om AzerothCore te compileren en uit te voeren, in plaats van de applicatie als root te draaien.
Stap 2: Download en compileer AzerothCore
Download de officiële broncode van GitHub:
git clone https://github.com/azerothcore/azerothcore-wotlk.git \
--branch master --single-branch ~/azerothcore
Ga naar de projectmap en maak een aparte map voor het compileren aan:
cd ~/azerothcore
mkdir build
cd build
Configureer het compilatieproces met CMake:
cmake .. \
-DCMAKE_INSTALL_PREFIX="$HOME/azerothcore/env/dist/" \
-DCMAKE_C_COMPILER=/usr/bin/clang \
-DCMAKE_CXX_COMPILER=/usr/bin/clang++ \
-DTOOLS_BUILD=all \
-DSCRIPTS=static \
-DMODULES=static
Als de configuratie slaagt, compileer je AzerothCore:
make -j2
De optie -j2 beperkt het compileren tot twee parallelle taken. Dat vermindert de druk op het geheugen vergeleken met het gebruik van alle beschikbare CPU-threads.
Als je server weinig RAM heeft en het compileren mislukt door een tekort aan geheugen, probeer dan make -j1.
Installeer de uitvoerbare bestanden zodra het compileren is voltooid:
make install
De geïnstalleerde bestanden zouden nu beschikbaar moeten zijn in:
~/azerothcore/env/dist/
De map bin bevat de serverapplicaties en gecompileerde tools.
Stap 3: Configureer de MySQL-database
AzerothCore gebruikt drie databases:
acore_auth— authenticatie- en accountgegevens.acore_characters— personage- en spelergegevens.acore_world— informatie over de spelwereld.
Voor een nieuwe installatie biedt AzerothCore een SQL-script waarmee je de databases en de databasegebruiker kunt aanmaken.
Voer het volgende uit:
sudo mysql < ~/azerothcore/data/sql/create/create_mysql.sql
Gebruik dit initialisatiescript alleen voor een nieuwe installatie. Het script maakt ook de standaarddatabasegebruiker opnieuw aan, wat bestaande configuraties kan verstoren.
Het script maakt een acore-account aan met een standaardwachtwoord. Wijzig dit wachtwoord voordat je de installatie gebruikt.
Open MySQL:
sudo mysql
Wijzig het wachtwoord van het account:
ALTER USER 'acore'@'localhost'
IDENTIFIED BY 'YOUR_STRONG_PASSWORD';
Vervang de tijdelijke waarde door een sterk, uniek wachtwoord. Houd dit geheim en werk de bijbehorende databasegegevens in de configuratiebestanden bij.
Sluit MySQL af:
EXIT;
AzerothCore bevat een automatische database-updater die de vereiste tabellen initialiseert en bijwerkt wanneer de betreffende serverprocessen starten.
Je hoeft niet elk bestand met database-updates handmatig te importeren.
Stap 4: Bereid de benodigde spelgegevens voor
AzerothCore heeft spelwereldgegevens nodig die compatibel zijn met de 3.3.5a-omgeving.
Deze staan los van de opensource-servercode. Voor bedrijfseigen bestanden en licenties is extra zorgvuldigheid vereist.
De belangrijkste gegevensmappen zijn:
| Map | Doel |
|---|---|
dbc | Spelconfiguratie en referentiegegevens |
maps | Terrein- en kaartinformatie |
vmaps | Gegevens over botsingen en zichtlijnen |
mmaps | Navigatie- en bewegingsgegevens |
AzerothCore biedt extractietools om deze gegevens voor te bereiden vanuit een compatibele clientinstallatie waarvoor je over de benodigde rechten beschikt.
Bij het extraheren worden tools gebruikt zoals map_extractor, vmap4_extractor, vmap4_assembler en mmaps_generator. Volg de officiële instructies voor het opzetten van een Linux-server voor de extractieprocedure die bij jouw omgeving past.
Plaats na het extraheren de vereiste mappen op de geconfigureerde locatie voor spelgegevens.
Bij de standaardconfiguratie worden ze doorgaans verwacht naast het geïnstalleerde uitvoerbare bestand worldserver in:
~/azerothcore/env/dist/bin/
Controleer of de vereiste mappen bestaan voordat je de worldserver start.
Let op: De licentie van de opensource-emulator geeft geen toestemming om bedrijfseigen World of Warcraft-clientbestanden te downloaden, te delen of verder te verspreiden.
Stap 5: Configureer Authserver en Worldserver
AzerothCore biedt voorbeeldconfiguratiebestanden voor beide diensten.
Ga naar de configuratiemap:
cd ~/azerothcore/env/dist/etc/
Maak werkkopieën:
cp authserver.conf.dist authserver.conf
cp worldserver.conf.dist worldserver.conf
Open de configuratiebestanden met de teksteditor van je voorkeur.
Bijvoorbeeld:
nano worldserver.conf
Zoek de instellingen voor de databaseverbinding.
Deze hebben de volgende indeling:
LoginDatabaseInfo = "127.0.0.1;3306;acore;YOUR_PASSWORD;acore_auth"
WorldDatabaseInfo = "127.0.0.1;3306;acore;YOUR_PASSWORD;acore_world"
CharacterDatabaseInfo = "127.0.0.1;3306;acore;YOUR_PASSWORD;acore_characters"
Vervang YOUR_PASSWORD door het databasewachtwoord dat je eerder hebt ingesteld.
Configureer ook LoginDatabaseInfo in authserver.conf.
Elke vermelding bevat de MySQL-host, poort, gebruikersnaam, het wachtwoord en de databasenaam.
Controleer vervolgens de optie DataDir in worldserver.conf.
Als de benodigde mappen met spelgegevens naast het geïnstalleerde uitvoerbare bestand van de worldserver staan, is het standaard relatieve pad mogelijk al geschikt. Stel DataDir anders in op de juiste map.
Sla de configuratiebestanden op voordat je verdergaat.
Stap 6: Start de Worldserver en Authserver
AzerothCore bevat opstartscripts voor het beheren van de serverprocessen.
Voor een interactieve test kun je tmux gebruiken om elk proces in een aparte terminalsessie te laten draaien.
Maak eerst een sessie aan voor de worldserver:
tmux new -s wow-world
Voer binnen die sessie het volgende uit:
cd ~/azerothcore
./acore.sh run-worldserver
Wanneer AzerothCore voor het eerst start, wordt je mogelijk gevraagd om databasetabellen aan te maken of te vullen. Volg de aanwijzingen en wacht tot de initialisatie is voltooid.
Controleer de uitvoer op problemen met de databaseverbinding of ontbrekende spelgegevens.
Om de tmux-sessie te verlaten zonder het proces af te sluiten, druk je op Ctrl+B en daarna op D.
Start een tweede sessie:
tmux new -s wow-auth
Voer vervolgens het volgende uit:
cd ~/azerothcore
./acore.sh run-authserver
Beide serverprocessen zouden nu in afzonderlijke sessies moeten draaien.
Je kunt je sessies weergeven met:
tmux ls
Gebruik voor langdurig draaiende omgevingen de gedocumenteerde opties van AzerothCore voor servicebeheer, in plaats van uitsluitend op interactieve terminalsessies te vertrouwen.
Stap 7: Maak een testaccount aan
Zodra de worldserver succesvol is gestart, kun je via de console een account aanmaken.
Maak opnieuw verbinding met de worldserver-sessie:
tmux attach -t wow-world
Voer in de worldserver-console het volgende in:
account create testuser YOUR_STRONG_PASSWORD
Vervang de gebruikersnaam en het wachtwoord uit het voorbeeld door je eigen inloggegevens.
AzerothCore ondersteunt ook verschillende machtigingsniveaus voor accounts.
Met de commando’s voor accountbeheer kun je bijvoorbeeld beheerdersrechten toekennen:
account set gmlevel testuser 3 -1
Niveau 3 verleent beheerdersrechten, terwijl -1 de instelling op alle realms toepast.
Ken uitgebreide rechten alleen toe aan accounts die ze echt nodig hebben.
Dit zijn consolecommando’s van AzerothCore, geen gewone Linux-shellcommando’s.
Stap 8: Begrijp de netwerkinstellingen voor realms
AzerothCore gebruikt standaard twee TCP-poorten:
| Poort | Dienst |
|---|---|
| 3724 | Authenticatieserver |
| 8085 | Worldserver |
Daarnaast bewaart AzerothCore verbindingsgegevens voor realms in de tabel realmlist binnen acore_auth.
Voor lokale tests kan het adres 127.0.0.1 blijven. Voor een geautoriseerde externe testomgeving moet het realm-adres overeenkomen met het adres dat de toegestane client kan bereiken. De netwerktoegang moet daarop worden afgestemd.
Je kunt de bestaande realm-configuratie bekijken via MySQL:
sudo mysql
Voer vervolgens het volgende uit:
USE acore_auth;
SELECT id, name, address FROM realmlist;
In de netwerkdocumentatie van AzerothCore lees je hoe realm-adressen en netwerkinstellingen werken.
Stel je databasepoort niet bloot aan het openbare internet. Als externe toegang nodig is voor een geautoriseerde omgeving, beperk die dan met geschikte firewall- of privénetwerkregels.
AzerothCore is gericht op het historische WoW 3.3.5a-clientprotocol. Moderne World of Warcraft-clients zijn niet uitwisselbaar met die versie. Compatibiliteit van een client betekent op zichzelf niet dat je toestemming hebt om verbinding te maken met een onofficiële server.
Veelvoorkomende problemen bij het opzetten van een World of Warcraft-server
Zelfs als de software succesvol is gecompileerd, kunnen configuratieproblemen verhinderen dat de diensten starten.
| Probleem | Wat je moet controleren |
|---|---|
| Databaseverbinding mislukt | Status van MySQL, databasegegevens, gebruikersrechten |
| Worldserver kan kaarten niet laden | Ontbrekende of verkeerd geplaatste dbc-, maps– of vmaps-bestanden |
| Realm niet beschikbaar | Status van Authserver en configuratie van realmlist |
| Verbinding geweigerd | Serverproces, luisterende poort, firewall |
| Compilatie mislukt | Compilerversie, afhankelijkheden, beschikbaar RAM |
| Onverwachte crashes | Opstartlogboeken, compatibiliteit van softwareversies, resourcebeperkingen |
Controleer bijvoorbeeld het beschikbare geheugen en de opslagruimte met:
free -h
df -h
Als je een mislukte compilatie onderzoekt, voer dan het betreffende commando opnieuw uit en lees de eerste relevante foutmelding, in plaats van je alleen op de laatste melding te richten.
Raadpleeg bij aanhoudende problemen de documentatie over veelvoorkomende fouten van AzerothCore.
AzerothCore bijgewerkt en veilig houden
AzerothCore wordt voortdurend verder ontwikkeld. Daardoor kunnen installatievereisten en configuratieopties veranderen.
Voordat je een bestaande omgeving bijwerkt:
- Maak een back-up van je MySQL-databases en aangepaste configuraties.
- Lees de nieuwste installatie- en update-instructies van het project.
- Stop de betreffende diensten op de juiste manier.
- Werk de broncode bij en compileer de software opnieuw als dat nodig is.
- Wacht tot de gedocumenteerde database-updates zijn voltooid.
- Controleer de serverprocessen en bekijk hun logboeken.
Houd ook het besturingssysteem up-to-date met beveiligingsupdates, bescherm beheerdersgegevens, beperk onnodige netwerktoegang en test herstelprocedures.
Schakel automatische beveiligingsupdates niet volledig uit. Plan in plaats daarvan onderhoudsvensters en stem updates af die MySQL of andere diensten mogelijk opnieuw starten.
Als je gameserver op Ubuntu draait, gebruik dan UFW om de serverfirewall te configureren. Sta alleen toegang tot de benodigde spelpoorten en SSH toe en houd onnodige diensten gesloten voor verbindingen vanaf het openbare internet.
Veelgestelde vragen
Ja. AzerothCore ondersteunt Linux en biedt documentatie voor het compileren en configureren van zijn opensource-serversoftware. Voor het gebruik van bedrijfseigen spelbestanden of het verbinden van een WoW-client moet je ook rekening houden met rechten en licenties.
Nee. Het AzerothCore WotLK-project is gericht op de historische World of Warcraft 3.3.5a-omgeving. Moderne clients voor de reguliere versie van het spel zijn niet rechtstreeks compatibel.
Nee. AzerothCore heeft de ondersteuning voor MariaDB in september 2024 stopgezet. De huidige documentatie beveelt MySQL 8.4 LTS aan.
Niet per se. Een ontwikkel- of testomgeving kan op een voldoende krachtige virtuele machine draaien. De benodigde resources hangen af van het compileren, de geïnstalleerde modules, actieve diensten en de belasting.
De eindgebruikerslicentieovereenkomst van Blizzard beperkt ongeautoriseerde serveremulatie en verbindingen. Opensource-serversoftware geeft geen rechten op de gameclient, illustraties of andere bedrijfseigen content van Blizzard. Als je overweegt een emulatoromgeving te gebruiken, moet je de relevante licenties doornemen en eventuele vereiste toestemmingen verkrijgen.
Conclusie
Bij het opzetten van een World of Warcraft-server met AzerothCore komt veel meer kijken dan het downloaden van een emulator en het uitvoeren van twee commando’s.
Voor een werkende technische omgeving heb je compatibele software, een geconfigureerde MySQL-database, geschikte spelgegevens, correct geconfigureerde authenticatie- en worldserverdiensten en passende netwerkinstellingen nodig.
Door de huidige documentatie van het project te volgen en elke stap te controleren voordat je verdergaat, krijg je meer inzicht in de werking van MMO-serverinfrastructuur en voorkom je veel voorkomende installatiefouten.
Maak altijd onderscheid tussen opensource-servertechnologie en de bedrijfseigen content en toestemmingen die nodig zijn om deze te gebruiken.