Run and study multiple open-source cores in isolation to compare behavior, implementations, and features.
When running multiple worldservers for comparison, ensure ports and realm entries do not conflict and keep each core's data isolated.
Example ports:
| Service | Default | AC 1 | AC 2 | TC | CM |
|---|---|---|---|---|---|
| DB | 3306 | 3311 | 3312 | 3315 | 3316 |
| World | 8085 | 8085 | 8086 | 8087 | 8088 |
| Auth | 3724 | 3724 | 3725 | 3726 | 3727 |
| realmlist (DB) | 8085 | 8085 | 8086 | 8087 | 8088 |
| Client realmlist.wtf | 3724 | 3724 | 3725 | 3726 | 3727 |
These values live in each core's worldserver.conf, authserver.conf, and the authentication DB (e.g., acore_auth.realmlist). Match your client realmlist.wtf to the auth port in use (e.g., set realmlist 127.0.0.1:3725).
Keep separate databases and ports per core to avoid accidental cross-talk during tests.
Recommended approaches:
TrinityCore - Linux Core Installation
Example: create a database user and per-core databases (run inside your DB container or host DB configured for use with containers):
CREATE USER 'trinity'@'%' IDENTIFIED BY 'trinity';
CREATE DATABASE world;
CREATE DATABASE characters;
CREATE DATABASE auth;
GRANT ALL PRIVILEGES ON world.* TO 'trinity'@'%';
GRANT ALL PRIVILEGES ON characters.* TO 'trinity'@'%';
GRANT ALL PRIVILEGES ON auth.* TO 'trinity'@'%';
Initial DB import
mysql -h 127.0.0.1 -P 3315 -u root -p
login with password password
source TDB_full_world_xxxx_2025_xx_xx.sql
0.0.0.0) if you need to access the DB from the host.Add a realm entry example:
INSERT INTO realmlist (id, name, address, port, icon, realmflags, timezone, allowedSecurityLevel)
VALUES (1, 'VMaNGOS', '192.168.122.202', 8086, 1, 0, 1, 0);