Skip to content

IzomSoftware/wotlk-classic-343-guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

TrinityCore WotLK Classic 3.4.3.54261 (WDC4) — FULL HOW‑TO

In this guide, we included everything required to setup a wotlk classic 3.4.3 WoW server using TrinityCore, including:

  • what we cloned / downloaded (repos + DB),
  • how we built the project,
  • how we packaged a deploy folder,
  • how we fixed the real errors we hit (and why),
  • and the final login steps (TLS cert + REST/SRP).

NOTE: There's no illegal "stuff" here. everything included in this guide, is completely open-source and community made.

Requirements

Common Errors / Problems

  • invalid literal suffix 'h' or std::chrono::high_resolution_clock not found

Fix

  • TrinityCore/src/common/Utilities/Duration.h: add <chrono>
  • TrinityCore/src/server/database/Updater/UpdateFetcher.cpp: add <chrono>

0 - Build the core using cmake

  • First, create a build folder:
mkdir -p build/
  • After doing so, execute the following command:
cd build/
cmake ../
  • This command will then provide required files to build the project. after the execution, you need to build the project using make:
make
make install
  • You can optionally also provide a -j argument to use your full CPU power to build more efficiently.

1 - Setup the database

  • Execute the following queries on your MYSQL server
mysql -u root -p -e "CREATE DATABASE auth DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_unicode_ci;"
mysql -u root -p -e "CREATE DATABASE characters DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_unicode_ci;"
mysql -u root -p -e "CREATE DATABASE world DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_unicode_ci;"
mysql -u root -p -e "CREATE DATABASE hotfixes DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_unicode_ci;"
mysql -u root -p -e "CREATE USER 'trinity'@'localhost' IDENTIFIED BY 'trinity'; GRANT ALL PRIVILEGES ON *.* TO 'trinity'@'localhost'; FLUSH PRIVILEGES;"
mysql -u root -p world < "TDB_full_world_343.24081_2024_08_17.sql"
  • After executing the queries, you also need to import 3 .mysql files. this files are provided / executed by trinity core itself, but just in case:
mysql -u root -p auth < "SQL\base\auth_database.sql"
mysql -u root -p characters < "SQL\base\characters_database.sql"
mysql -u root -p hotfixes < "SQL\TDB\TDB_full_hotfixes_343.24081_2024_08_17.sql"

2 - Setup the config files

  • Depending on your environment, you would have your worldserver and bnetserver binaries and configs in /usr/local/bin / /usr/local/etc, but generally, you need to edit configurations in /usr/local/etc or SERVER_DIR/etc/worldserver.conf or SERVER_DIR/worldserver.conf

in your worldserver.conf, edit the following variables:

  • DataDir must point to ..\Data (or absolute path)
  • keep Updates.EnableDatabases = 0

in your bnetserver.conf, edit the following variables:

  • Updates.EnableDatabases = 0

3 - install world files

  • you should use provided tools in build/ folder to get data files, including maps, camera, vmaps, etc. and provide them in your Data folder.

4 - Ensure firewall doesn't block server ports

  • Execute the following commands to configure your firewall:
sudo ufw allow 1119/tcp
sudo ufw allow 8081/tcp
sudo ufw allow 8085/tcp

5 - TLS configuration

4.5) TLS certificate for bnetserver (self‑signed with SAN IP)

  • The client/launcher is sensitive to the certificate presented on 1119. We fixed our BLZ issues by:
  • generating a cert whose CN is the public IP, and
  • including the IP in SAN (Subject Alternative Name),
  • and forcing absolute paths in config (otherwise TC may serve the default cert).
  • Execute the following commands in your data folder:
openssl req -x509 -newkey rsa:2048 -keyout bnetserver.key.pem -out bnetserver.cert.pem -days 365 -nodes \
  -subj "/CN=YOUR-IP" \
  -addext "subjectAltName=IP:YOUR-IP,DNS:localhost,IP:127.0.0.1"
  • Replace YOUR-IP with your server IP.
  • In bnetserver.conf set absolute paths:
CertificatesFile = "/opt/trinitycore/bin/bnetserver.cert.pem"
PrivateKeyFile   = "/opt/trinitycore/bin/bnetserver.key.pem"

Note on /bnetserver/login/ returning: "srp_url":"https://127.0.0.1:8081/bnetserver/login/srp/"

  • Fix:
  • in bnetserver.conf:
LoginREST.ExternalAddress=YOUR-IP
LoginREST.LocalAddress=YOUR-IP

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors