These notes provide a local singleplayer server for World of Warcraft 3.3.5 on Windows (see
these notes for Linux)
Prerequisites
Resources
TODOs
Dependencies
2024/10/14: Git, Visual Studio 2022, MariaDB, Boost, CMake, OpenSSL
SQLyog for
GUI database management
Git
Git from the command line and also from 3rd-party software (make sure it's selected)
Visual Studio 2022
MariaDB Server
Boost
SETX "BOOST_ROOT" "%SystemDrive%/local/boost_1_86_0"
CMake
OpenSSL
Copy OpenSSL DLLs to: The OpenSSL binaries (/bin) directory
Download Source
git clone --branch "3.3.5" --depth "1" --recurse-submodules "https://github.com/TrinityCore/TrinityCore.git" "%UserProfile%\Projects\TrinityCore-335\src"
explorer "%UserProfile%\Projects\TrinityCore-335\src"
Databases
"%ProgramFiles%\SQLyog Community\SQLyogCommunity.exe"
Create DBs
Ctrl + D or Database → Create Database
Database charset: utf8mb4
Database collation: utf8mb4_unicode_ci
authserver
characters
worldserver
DB Users
authserver
characters
worldserver
Initial Compile
-
Ideally log-out and back in or reboot to update Environment Variables before starting
CMake
Visual Studio 17 2022
[x] WITHOUT_METRICS
MKDIR "%UserProfile%\Projects\TrinityCore-335\build\bin\Release"
"%ProgramFiles%\CMake\bin\cmake-gui.exe"
"%UserProfile%\Projects\TrinityCore-335\src"
"%UserProfile%\Projects\TrinityCore-335\build"
MariaDB
"%ProgramFiles%\MariaDB 11.5\bin\mariadb.exe"
"%ProgramFiles%\MariaDB 11.5\include\mysql"
"%ProgramFiles%\MariaDB 11.5\lib\libmariadb.lib"
Visual Studio
DLLs
COPY /Y "%ProgramFiles%\MariaDB 11.5\lib\libmariadb.dll" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release"
COPY /Y "%ProgramFiles%\OpenSSL-Win64\bin\legacy.dll" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release"
COPY /Y "%ProgramFiles%\OpenSSL-Win64\bin\libssl-3-x64.dll" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release"
COPY /Y "%ProgramFiles%\OpenSSL-Win64\bin\libcrypto-3-x64.dll" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release"
Update
git -C "%UserProfile%\Projects\TrinityCore-335\src" reset --hard && git -C "%UserProfile%\Projects\TrinityCore-335\src" pull origin "3.3.5" --rebase
"%ProgramFiles%\CMake\bin\cmake-gui.exe"
Content
explorer "%UserProfile%\Projects\TrinityCore-335\build\bin\Release"
explorer "%ProgramFiles(x86)%\World of Warcraft 3.3.5"
DBCs, Maps, and Cameras
COPY /Y "%UserProfile%\Projects\TrinityCore-335\build\bin\Release\mapextractor.exe" "%ProgramFiles(x86)%\World of Warcraft 3.3.5"
CD "%ProgramFiles(x86)%\World of Warcraft 3.3.5" && "mapextractor.exe" -f "0"
VMaps
COPY /Y "%UserProfile%\Projects\TrinityCore-335\build\bin\Release\vmap4extractor.exe" "%ProgramFiles(x86)%\World of Warcraft 3.3.5"
CD "%ProgramFiles(x86)%\World of Warcraft 3.3.5" && "vmap4extractor.exe" -l
Assemble
COPY /Y "%UserProfile%\Projects\TrinityCore-335\build\bin\Release\vmap4assembler.exe" "%ProgramFiles(x86)%\World of Warcraft 3.3.5"
CD "%ProgramFiles(x86)%\World of Warcraft 3.3.5" && "vmap4assembler.exe" "Buildings" "vmaps"
MMaps
COPY /Y "%UserProfile%\Projects\TrinityCore-335\build\bin\Release\mmaps_generator.exe" "%ProgramFiles(x86)%\World of Warcraft 3.3.5"
CD "%ProgramFiles(x86)%\World of Warcraft 3.3.5" && "mmaps_generator.exe" --bigBaseUnit "true" --threads "8"
Move Files
explorer "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" && explorer "%ProgramFiles(x86)%\World of Warcraft 3.3.5"
Clean-up
explorer "%ProgramFiles(x86)%\World of Warcraft 3.3.5"
World Database
TDB
explorer "%UserProfile%\Projects\TrinityCore-335\build\bin\Release"
Settings
authserver
COPY /Y "%UserProfile%\Projects\TrinityCore-335\build\bin\Release\authserver.conf.dist" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release\authserver.conf"
MKDIR "%UserProfile%\Projects\TrinityCore-335\authserver.conf.d"
notepad "%UserProfile%\Projects\TrinityCore-335\authserver.conf.d\localhost-authserver.conf"
[authserver]
MySQLExecutable = "C:\Program Files\MariaDB 11.5\bin\mariadb.exe"
LoginDatabaseInfo = "localhost;3306;authserver;x;authserver"
Updates.EnableDatabases = 1
worldserver
COPY /Y "%UserProfile%\Projects\TrinityCore-335\build\bin\Release\worldserver.conf.dist" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release\worldserver.conf"
MKDIR "%UserProfile%\Projects\TrinityCore-335\worldserver.conf.d"
notepad "%UserProfile%\Projects\TrinityCore-335\worldserver.conf.d\localhost-worldserver.conf"
[worldserver]
MySQLExecutable = "C:\Program Files\MariaDB 11.5\bin\mariadb.exe"
LoginDatabaseInfo = "localhost;3306;authserver;x;authserver"
WorldDatabaseInfo = "localhost;3306;worldserver;x;worldserver"
CharacterDatabaseInfo = "localhost;3306;characters;x;characters"
Quests.LowLevelHideDiff = -1
Quests.HighLevelHideDiff = -1
Motd = "Welcome to your localhost server!"
Server.LoginInfo = 1
Realm
authserver
CD "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" && "authserver.exe" --config-dir "%UserProfile%\Projects\TrinityCore-335\authserver.conf.d"
Create GM Account
CD "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" && "worldserver.exe"
account create Espionage724 x
account set gmlevel Espionage724 3 -1
server shutdown 1
Launch
Commands
CD "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" && "authserver.exe" --config-dir "%UserProfile%\Projects\TrinityCore-335\authserver.conf.d"
CD "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" && "worldserver.exe" --config-dir "%UserProfile%\Projects\TrinityCore-335\worldserver.conf.d"