Voor het opzetten van een World of Warcraft-server moet je serveremulatiesoftware installeren, een database configureren, gamegegevens 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 draaien op Linux, Windows en macOS. In deze handleiding richten we ons op de installatie op Ubuntu 26.04 LTS, volgens de actuele installatieprocedure van het project op basis van de broncode.
We behandelen de belangrijkste opdrachten, 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 technische educatie en omgevingen waarvoor je over de benodigde rechten en toestemmingen beschikt. De handleiding biedt geen gameclients, bedrijfseigen bestanden of toestemming om een ongeautoriseerde dienst te exploiteren.
Wat is AzerothCore?
AzerothCore is een opensource-emulator voor MMORPG-servers, 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 gamewereld.
De software gebruikt drie hoofdonderdelen:
- Authserver: Verwerkt inlogauthenticatie en de selectie van realms.
- Worldserver: Beheert activiteiten in de gamewereld, personages en spelsystemen.
- MySQL-database: Slaat authenticatiegegevens, personages en informatie over de gamewereld 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 opnieuw te verspreiden.

Vereisten voor een World of Warcraft-server
De vereisten van AzerothCore hangen af van je installatiemethode en de belasting. Het compileren van de software vereist doorgaans meer resources dan het draaien van een kleine testomgeving.
Voor een ontwikkel- of testomgeving op Linux kun je uitgaan van deze 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 gegarandeerde spelerscapaciteiten.
Voor deze handleiding gebruiken we Ubuntu 26.04 LTS, dat via zijn pakketbronnen ondersteunde pakketten voor MySQL 8.4 beschikbaar stelt.
Voor de installatie heb je ook beheerderstoegang en kennis van eenvoudige Linux-opdrachten nodig.
Als je nog niet bekend bent met het hosten van multiplayergames, legt onze handleiding voor gameserverhosting uit hoe serverhardware, netwerkprestaties en hostinginfrastructuur van invloed zijn 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 voldoen aan de actuele vereisten van AzerothCore.
Gebruik een gewoon Linux-account 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 buildmap aan:
cd ~/azerothcore
mkdir build
cd build
Configureer de build 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. Daardoor wordt het geheugen minder belast dan wanneer je alle beschikbare CPU-threads gebruikt.
Als je server weinig RAM heeft en het compileren mislukt door een tekort aan geheugen, probeer dan make -j1.
Installeer de binaire 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 hulpprogramma’s.
Stap 3: Configureer de MySQL-database
AzerothCore gebruikt drie databases:
acore_auth— authenticatie- en accountgegevens.acore_characters— personage- en spelersgegevens.acore_world— informatie over de gamewereld.
Voor een nieuwe installatie biedt AzerothCore een SQL-script om de databases en databasegebruiker aan te maken.
Voer het volgende uit:
sudo mysql < ~/azerothcore/data/sql/create/create_mysql.sql
Gebruik dit initialisatiescript alleen bij 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 dat 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 aanduiding door een sterk, uniek wachtwoord. Houd het geheim en werk de bijbehorende databasegegevens in de configuratiebestanden bij.
Sluit MySQL af:
EXIT;
AzerothCore bevat een automatische database-updater die de benodigde tabellen initialiseert en bijwerkt wanneer de betreffende serverprocessen starten.
Je hoeft niet elk database-updatebestand handmatig te importeren.
Stap 4: Bereid de benodigde gamegegevens voor
AzerothCore heeft gamewereldgegevens nodig die compatibel zijn met de 3.3.5a-omgeving.
Deze gegevens staan los van de opensource-servercode. Ga daarom zorgvuldig om met bedrijfseigen bestanden en licenties.
De belangrijkste gegevensmappen zijn:
| Map | Doel |
|---|---|
dbc | Gameconfiguratie en referentiegegevens |
maps | Terrein- en kaartinformatie |
vmaps | Gegevens over botsingen en zichtlijnen |
mmaps | Navigatie- en bewegingsgegevens |
AzerothCore biedt extractieprogramma’s om deze gegevens voor te bereiden vanuit een compatibele clientinstallatie waarvoor je over de benodigde rechten beschikt.
Het extractieproces gebruikt programma’s zoals map_extractor, vmap4_extractor, vmap4_assembler en mmaps_generator. Volg de officiële instructies voor het opzetten van een Linux-server voor het extractieproces dat bij jouw omgeving past.
Plaats na de extractie de benodigde mappen op de geconfigureerde locatie voor gamegegevens.
Bij de standaardconfiguratie worden ze doorgaans verwacht naast het geïnstalleerde binaire bestand worldserver in:
~/azerothcore/env/dist/bin/
Controleer of de benodigde 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 opnieuw 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 aan:
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.
Ze 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 eerder aangemaakte databasewachtwoord.
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 gamegegevens naast het geïnstalleerde binaire bestand van de worldserver staan, is het standaard relatieve pad mogelijk al geschikt. Stel anders DataDir in op de juiste map.
Sla de configuratiebestanden op voordat je verdergaat.
Stap 6: Start de worldserver en authenticatieserver
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
Bij de eerste start kan AzerothCore je vragen om databasetabellen aan te maken of te vullen. Volg de aanwijzingen en laat de initialisatie voltooien.
Controleer de uitvoer op problemen met de databaseverbinding of ontbrekende bestanden met gamegegevens.
Om de tmux-sessie te verlaten zonder het proces te sluiten, druk je op Ctrl+B en vervolgens op D.
Start een tweede sessie:
tmux new -s wow-auth
Voer daarna het volgende uit:
cd ~/azerothcore
./acore.sh run-authserver
Beide serverprocessen zouden nu in aparte sessies moeten draaien.
Je kunt je sessies weergeven met:
tmux ls
Gebruik voor langdurige implementaties 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 met succes 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 voorbeeldgebruikersnaam en het voorbeeldwachtwoord door de door jou gekozen inloggegevens.
AzerothCore ondersteunt ook verschillende machtigingsniveaus voor accounts.
Met de opdrachten voor accountbeheer kun je bijvoorbeeld beheerdersrechten toewijzen:
account set gmlevel testuser 3 -1
Niveau 3 geeft beheerdersrechten, terwijl -1 de instelling op alle realms toepast.
Geef verhoogde rechten alleen aan accounts die ze echt nodig hebben.
Dit zijn consoleopdrachten van AzerothCore, geen gewone Linux-shellopdrachten.
Stap 8: Begrijp de netwerkinstellingen voor realms
AzerothCore gebruikt standaard twee TCP-poorten:
| Poort | Dienst |
|---|---|
| 3724 | Authenticatieserver |
| 8085 | Worldserver |
AzerothCore bewaart ook 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 voor de toegestane client bereikbaar is. Ook moet de netwerktoegang daarop zijn ingesteld.
Je kunt de bestaande realm-configuratie bekijken via MySQL:
sudo mysql
Vervolgens:
USE acore_auth;
SELECT id, name, address FROM realmlist;
De netwerkdocumentatie van AzerothCore legt uit 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 firewallregels of regels voor een privénetwerk.
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 niet-officiële server.
Veelvoorkomende problemen bij het opzetten van een World of Warcraft-server
Zelfs als de software met succes is gecompileerd, kunnen configuratieproblemen verhinderen dat de diensten starten.
| Probleem | Wat je moet controleren |
|---|---|
| Databaseverbinding mislukt | MySQL-status, databasegegevens, gebruikersrechten |
| Worldserver kan kaarten niet laden | Ontbrekende of verkeerd geplaatste bestanden in dbc, maps of vmaps |
| Realm niet beschikbaar | Status van Authserver en configuratie van realmlist |
| Verbinding geweigerd | Serverproces, luisterpoort, firewall |
| Compileren mislukt | Compilerversie, afhankelijkheden, beschikbaar RAM |
| Onverwachte crashes | Opstartlogboeken, compatibiliteit van softwareversies, resourcelimieten |
Controleer bijvoorbeeld het beschikbare geheugen en de opslagruimte met:
free -h
df -h
Als je een compileerfout onderzoekt, voer de betreffende opdracht dan opnieuw uit en lees de eerste relevante foutmelding, in plaats van je alleen op de laatste melding over het mislukken te richten.
Raadpleeg bij aanhoudende problemen de documentatie over veelvoorkomende fouten van AzerothCore.
AzerothCore bijgewerkt en veilig houden
AzerothCore ontvangt voortdurend ontwikkelupdates. Daardoor kunnen de installatievereisten en configuratieopties veranderen.
Voordat je een bestaande omgeving bijwerkt:
- Maak een back-up van je MySQL-databases en aangepaste configuraties.
- Bekijk de nieuwste installatie- en update-instructies van het project.
- Stop de betreffende diensten op een gecontroleerde manier.
- Werk de broncode bij en compileer de software opnieuw wanneer dat nodig is.
- Laat de gedocumenteerde database-updates volledig uitvoeren.
- Controleer de serverprocessen en bekijk hun logboeken.
Installeer ook beveiligingsupdates voor het besturingssysteem, bescherm de inloggegevens van beheerders, 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 opnieuw kunnen opstarten.
Veelgestelde vragen
Ja. AzerothCore ondersteunt Linux en biedt documentatie voor het compileren en configureren van de opensource-serversoftware. Voor het gebruik van bedrijfseigen gamebestanden of het verbinden van een WoW-client gelden aanvullende rechten en licentievoorwaarden.
Nee. Het AzerothCore WotLK-project is gericht op de historische World of Warcraft 3.3.5a-omgeving. Moderne clients van de reguliere gameversie zijn niet rechtstreeks compatibel.
Nee. AzerothCore heeft de ondersteuning voor MariaDB in september 2024 beëindigd. De actuele documentatie beveelt MySQL 8.4 LTS aan.
Niet per se. Een ontwikkel- of testomgeving kan draaien op een voldoende krachtige virtuele machine. De benodigde resources hangen af van het compileren, de geïnstalleerde modules, de 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. Wie overweegt een emulatoromgeving op te zetten, moet de relevante licenties controleren en de benodigde toestemmingen verkrijgen.
Conclusie
Bij het opzetten van een World of Warcraft-server met AzerothCore komt veel meer kijken dan een emulator downloaden en twee opdrachten uitvoeren.
Een werkende technische omgeving vereist compatibele software, een MySQL-configuratie, geschikte gamegegevens, correct geconfigureerde authenticatie- en worldserver-diensten en passende netwerkinstellingen.
Door de actuele documentatie van het project te volgen en elke stap te controleren voordat je verdergaat, krijg je meer inzicht in de werking van MMORPG-serverinfrastructuur en voorkom je veel veelvoorkomende installatiefouten.
Maak altijd onderscheid tussen opensource-servertechnologie en de bedrijfseigen content en toestemmingen die nodig zijn om deze te gebruiken.