====== Information ======
* TrinityCore ((https://www.trinitycore.org))
* These notes provide a local single-player server for World of Warcraft 3.3.5
* Last tested commit: [[https://github.com/TrinityCore/TrinityCore/commit/a1814cf13d24e7bb5142417a6f8f0dfd08db72e1|a1814cf]]
===== Media =====
* [[https://media.realmofespionage.xyz/index/category/6|Progress Pics]]
===== Prerequisites =====
* [[windows:10|Windows 10 (21H2)]]
* [[windows;11_ltsc|Windows 11 (24H2)]]
* [[games;windows;world_of_warcraft_3.3.5|World of Warcraft 3.3.5]]
===== Resources =====
* [[https://trinitycore.org/|TrinityCore]]
* [[https://trinitycore.info/|TrinityCore MMo Project Wiki]]
==== Web ====
* [[https://talk.trinitycore.org/t/singleplayer-scripts-and-desktop-start-launchers-on-windows-linux-freebsd/33293|TrinityCore Forums]]
====== Dependencies ======
* https://trinitycore.info/en/install/requirements/windows
===== Git =====
* https://gitforwindows.org/
* Last tested: ''Git-2.49.0-64-bit.exe''
* No components required
* Git from the command line and also from 3rd-party software
===== Visual Studio 2022 =====
* VS2022 [[https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&channel=Release&version=VS2022|VisualStudioSetup.exe]]
* Pause installer to prevent initial auto-download of unnecessary components
==== Required Components ====
* Desktop development with C++ (C++ core desktop features)
* MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest)
* Windows 11 SDK (10.0.22621.0)
"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\setup.exe"
===== MariaDB Server =====
* https://mariadb.org/download/
* Last tested: ''mariadb-11.7.2-winx64.msi''
* ''[x]'' MariaDB Server
* ''[x]'' Development Components
* ''[ ]'' Third party tools
* ''[ ]'' Enable access from remote machines for 'root' user
* ''[x]'' Use UTF8 as default server's character set
* ''[ ]'' Install as service
* ''[ ]'' Enable networking
===== Boost =====
* https://sourceforge.net/projects/boost/files/boost-binaries/
* Last tested: ''boost_1_88_0-msvc-14.3-64.exe''
===== CMake =====
* https://cmake.org/download/
* Last tested: ''cmake-4.0.1-windows-x86_64.msi''
* ''[ ]'' Add CMake to the PATH environment variable
===== OpenSSL =====
* https://slproweb.com/products/Win32OpenSSL.html (:!: not Light)
* Last tested: ''Win64OpenSSL-3_5_0.msi''
* Copy OpenSSL DLLs to:
* ''[x]'' The OpenSSL binaries (/bin) directory
====== Download Source ======
* https://github.com/TrinityCore/TrinityCore/commits/3.3.5
"%ProgramFiles%\Git\bin\git.exe" clone --branch "3.3.5" --depth "1" --recurse-submodules "https://github.com/TrinityCore/TrinityCore.git" "%UserProfile%\Projects\TrinityCore-335\src"
====== Databases ======
===== Connect =====
"%ProgramFiles%\MariaDB 11.7\bin\mariadbd.exe" --defaults-file="%ProgramFiles%\MariaDB 11.7\data\my.ini"
"%ProgramFiles%\MariaDB 11.7\bin\mariadb.exe" -u "root" -p
===== Databases =====
CREATE DATABASE authserver;
CREATE DATABASE characters;
CREATE DATABASE worldserver;
===== Users =====
CREATE USER 'authserver'@'localhost' IDENTIFIED BY 'x';
CREATE USER 'characters'@'localhost' IDENTIFIED BY 'x';
CREATE USER 'worldserver'@'localhost' IDENTIFIED BY 'x';
===== Permissions =====
GRANT ALL PRIVILEGES ON authserver.* to 'authserver'@'localhost';
GRANT ALL PRIVILEGES ON characters.* to 'characters'@'localhost';
GRANT ALL PRIVILEGES ON worldserver.* to 'worldserver'@'localhost';
FLUSH PRIVILEGES;
EXIT
====== Initial Compile ======
* https://trinitycore.info/en/install/Core-Installation/windows-core-installation
===== CMake =====
****
"%ProgramFiles%\CMake\bin\cmake.exe" -S "%UserProfile%\Projects\TrinityCore-335\src" -B "%UserProfile%\Projects\TrinityCore-335\build" -G "Visual Studio 17 2022" --fresh -Wno-dev -DBOOST_ROOT="%SystemDrive%/local/boost_1_88_0" -DMYSQL_INCLUDE_DIR="%ProgramFiles%\MariaDB 11.7\include\mysql" -DMYSQL_LIBRARY="%ProgramFiles%\MariaDB 11.7\lib\libmariadb.lib" -DWITHOUT_METRICS="1" -DTOOLS="1"
===== Compile =====
****
"%ProgramFiles%\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\MSBuild.exe" "%UserProfile%\Projects\TrinityCore-335\build\ALL_BUILD.vcxproj" -target:"Rebuild" -property:"Configuration=Release"
===== DLLs =====
COPY /Y "%ProgramFiles%\MariaDB 11.7\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 ======
****
"%ProgramFiles%\Git\bin\git.exe" -C "%UserProfile%\Projects\TrinityCore-335\src" reset --hard && "%ProgramFiles%\Git\bin\git.exe" -C "%UserProfile%\Projects\TrinityCore-335\src" pull origin "3.3.5" --rebase && "%ProgramFiles%\CMake\bin\cmake.exe" -S "%UserProfile%\Projects\TrinityCore-335\src" -B "%UserProfile%\Projects\TrinityCore-335\build" -G "Visual Studio 17 2022" --fresh -Wno-dev -DBOOST_ROOT="%SystemDrive%/local/boost_1_88_0" -DMYSQL_INCLUDE_DIR="%ProgramFiles%\MariaDB 11.7\include\mysql" -DMYSQL_LIBRARY="%ProgramFiles%\MariaDB 11.7\lib\libmariadb.lib" -DWITHOUT_METRICS="1" -DTOOLS="1" && "%ProgramFiles%\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\MSBuild.exe" "%UserProfile%\Projects\TrinityCore-335\build\ALL_BUILD.vcxproj" -target:"Build" -property:"Configuration=Release"
====== Content ======
* Expects [[games;windows;world_of_warcraft_3.3.5#world_of_warcraft|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 =====
==== Extract ====
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 =====
* :!: Takes 30-40 minutes on i5-8400H
* ''--threads 4''
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 "4"
===== Move Files =====
* Move ''Cameras'' ''dbc'' ''maps'' ''mmaps'' and ''vmaps'' folders to the ''Release'' folder
"explorer.exe" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" && "explorer.exe" "%ProgramFiles(x86)%\World of Warcraft 3.3.5"
===== Clean-up =====
* Remove ''Buildings'' and extractor ''.exe''s
"explorer.exe" "%ProgramFiles(x86)%\World of Warcraft 3.3.5"
===== World Database =====
==== TDB ====
* https://github.com/TrinityCore/TrinityCore/releases
* Last tested: ''TDB_full_world_335.24111_2024_11_22.7z''
* Download the latest ''TDB 335'' ''.7z'' with a web browser
* Extract ''TDB_full_world_335.sql'' (keep filename from archive) to ''Release'' folder
"explorer.exe" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release"
DIR "%UserProfile%\Projects\TrinityCore-335\build\bin\Release\"*".sql"
====== Settings ======
===== authserver =====
* Last commit: [[https://github.com/TrinityCore/TrinityCore/commit/68bf7e6d12e1689d688db32c05066b8832922c67|Jul 28, 2021]] ''68bf7e6''
* [[https://github.com/TrinityCore/TrinityCore/commits/3.3.5/src/server/authserver/authserver.conf.dist|New commits check]]
* [[https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/authserver/authserver.conf.dist|Upstream authserver.conf.dist]] ([[https://raw.githubusercontent.com/TrinityCore/TrinityCore/3.3.5/src/server/authserver/authserver.conf.dist|raw]])
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\conf\authserver"
"notepad.exe" "%UserProfile%\Projects\TrinityCore-335\conf\authserver\localhost.conf"
[authserver]
# Connection
BindIP = "127.0.0.1"
MySQLExecutable = "C:\Program Files\MariaDB 11.7\bin\mariadb.exe"
LoginDatabaseInfo = ".;3306;authserver;x;authserver"
AllowLoggingIPAddressesInDatabase = 0
# Etc
RealmsStateUpdateDelay = 0
Updates.EnableDatabases = 1
Updates.CleanDeadRefMaxCount = -1
# End
===== worldserver =====
* Last commit: [[https://github.com/TrinityCore/TrinityCore/commit/62fe2d6a8d848b9dcf106ccf9abee10c76493c5d|Feb 14, 2025]] ''62fe2d6''
* [[https://github.com/TrinityCore/TrinityCore/commits/3.3.5/src/server/worldserver/worldserver.conf.dist|New commits check]]
* [[https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/worldserver/worldserver.conf.dist|Upstream worldserver.conf.dist]] ([[https://raw.githubusercontent.com/TrinityCore/TrinityCore/3.3.5/src/server/worldserver/worldserver.conf.dist|raw]])
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\conf\worldserver"
"notepad.exe" "%UserProfile%\Projects\TrinityCore-335\conf\worldserver\localhost.conf"
[worldserver]
# Connection
BindIP = "127.0.0.1"
MySQLExecutable = "C:\Program Files\MariaDB 11.7\bin\mariadb.exe"
LoginDatabaseInfo = ".;3306;authserver;x;authserver"
WorldDatabaseInfo = ".;3306;worldserver;x;worldserver"
CharacterDatabaseInfo = ".;3306;characters;x;characters"
AllowLoggingIPAddressesInDatabase = 0
# Server
Updates.CleanDeadRefMaxCount = -1
FlashAtStart = 0
Server.LoginInfo = 1
Motd = "Welcome to your localhost server!"
AllowTickets = 0
CharDelete.Method = 1
CharDelete.KeepDays = 0
HotSwap.Enabled = 0
HotSwap.EnableReCompiler = 0
# Quests
Quests.LowLevelHideDiff = -1
Quests.HighLevelHideDiff = -1
# Character
GM.LoginState = 0
# Protections
MaxOverspeedPings = 0
PacketSpoof.Policy = 0
ChatFakeMessagePreventing = 0
ChatFlood.MessageCount = 0
# End
====== Firewall ======
===== Block =====
"netsh.exe" advfirewall firewall add rule name="TrinityCore 3.3.5 localhost (authserver)" dir="in" action="block" profile="any" program="%UserProfile%\Projects\TrinityCore-335\build\bin\Release\authserver.exe"
"netsh.exe" advfirewall firewall add rule name="TrinityCore 3.3.5 localhost (worldserver)" dir="in" action="block" profile="any" program="%UserProfile%\Projects\TrinityCore-335\build\bin\Release\worldserver.exe"
"netsh.exe" advfirewall firewall add rule name="MariaDB Server" dir="in" action="block" profile="any" program="%ProgramFiles%\MariaDB 11.7\bin\mariadbd.exe"
===== Delete Rules =====
"netsh.exe" advfirewall firewall delete rule name="TrinityCore 3.3.5 localhost (authserver)"
"netsh.exe" advfirewall firewall delete rule name="TrinityCore 3.3.5 localhost (worldserver)"
"netsh.exe" advfirewall firewall delete rule name="MariaDB Server"
====== Scripts ======
****
MKDIR "%UserProfile%\Projects\TrinityCore-335\scripts"
===== Server Start =====
"notepad.exe" "%UserProfile%\Projects\TrinityCore-335\scripts\localhost-server-start.bat"
@echo off
START "MariaDB Server" "%ProgramFiles%\MariaDB 11.7\bin\mariadbd.exe" --defaults-file="%ProgramFiles%\MariaDB 11.7\data\my.ini"
TIMEOUT "3"
CD "%UserProfile%\Projects\TrinityCore-335\build\bin\Release"
START "WoW 3.3.5 [auth]" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release\authserver.exe" --config-dir "%UserProfile%\Projects\TrinityCore-335\conf\authserver"
START "WoW 3.3.5 [world]" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release\worldserver.exe" --config-dir "%UserProfile%\Projects\TrinityCore-335\conf\worldserver"
:: End
"%UserProfile%\Projects\TrinityCore-335\scripts\localhost-server-start.bat"
===== Server Update =====
"notepad.exe" "%UserProfile%\Projects\TrinityCore-335\scripts\localhost-server-update.bat"
@echo off
"%ProgramFiles%\Git\bin\git.exe" -C "%UserProfile%\Projects\TrinityCore-335\src" reset --hard
"%ProgramFiles%\Git\bin\git.exe" -C "%UserProfile%\Projects\TrinityCore-335\src" pull origin "3.3.5" --rebase
"%ProgramFiles%\CMake\bin\cmake.exe" -S "%UserProfile%\Projects\TrinityCore-335\src" -B "%UserProfile%\Projects\TrinityCore-335\build" -G "Visual Studio 17 2022" --fresh -Wno-dev -DBOOST_ROOT="%SystemDrive%/local/boost_1_88_0" -DMYSQL_INCLUDE_DIR="%ProgramFiles%\MariaDB 11.7\include\mysql" -DMYSQL_LIBRARY="%ProgramFiles%\MariaDB 11.7\lib\libmariadb.lib" -DWITHOUT_METRICS="1" -DTOOLS="1"
"%ProgramFiles%\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\MSBuild.exe" "%UserProfile%\Projects\TrinityCore-335\build\ALL_BUILD.vcxproj" -target:"Build" -property:"Configuration=Release"
:: End
"%UserProfile%\Projects\TrinityCore-335\scripts\localhost-server-update.bat"
===== Database Back-up =====
"notepad.exe" "%UserProfile%\Projects\TrinityCore-335\scripts\localhost-database-backup.bat"
@echo off
START "MariaDB Server" "%ProgramFiles%\MariaDB 11.7\bin\mariadbd.exe" --defaults-file="%ProgramFiles%\MariaDB 11.7\data\my.ini"
TIMEOUT "3"
CD "%UserProfile%\Downloads"
ECHO Root MariaDB user password prompts:
"%ProgramFiles%\MariaDB 11.7\bin\mariadb-dump.exe" -u "root" -p --opt -r "localhost-authserver-rolling.sql" "authserver"
"%ProgramFiles%\MariaDB 11.7\bin\mariadb-dump.exe" -u "root" -p --opt -r "localhost-characters-rolling.sql" "characters"
:: End
"%UserProfile%\Projects\TrinityCore-335\scripts\localhost-database-backup.bat"
====== Launcher Shortcuts ======
===== Desktop =====
* Right-click Desktop -> New -> Shortcut
==== Server Start ====
"%UserProfile%\Projects\TrinityCore-335\scripts\localhost-server-start.bat"
WoW 3.3.5 Server
===== Start Menu =====
* Right-click -> New -> Shortcut
MKDIR "%AppData%\Microsoft\Windows\Start Menu\Programs\World of Warcraft 3.3.5"
"explorer.exe" "%AppData%\Microsoft\Windows\Start Menu\Programs\World of Warcraft 3.3.5"
==== Server Start ====
"%UserProfile%\Projects\TrinityCore-335\scripts\localhost-server-start.bat"
Server Start
==== Update ====
"%UserProfile%\Projects\TrinityCore-335\scripts\localhost-server-update.bat"
Server Updater
==== Database Backup ====
"%UserProfile%\Projects\TrinityCore-335\scripts\localhost-database-backup.bat"
Database Back-up
==== Install Notes ====
"https://wiki.realmofespionage.xyz/servers;windows;games;trinitycore_3.3.5_localhost"
Install Notes (Server)
====== Realm ======
===== authserver =====
* ''authserver'' needs started at least once to create the tables and to start ''worldserver'' for account creation
* Ctrl + C to exit
"%ProgramFiles%\MariaDB 11.7\bin\mariadbd.exe" --defaults-file="%ProgramFiles%\MariaDB 11.7\data\my.ini"
CD "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" && "authserver.exe" --config-dir "%UserProfile%\Projects\TrinityCore-335\conf\authserver"
===== Create GM Account =====
* Change ''x'' to password
"%ProgramFiles%\MariaDB 11.7\bin\mariadbd.exe" --defaults-file="%ProgramFiles%\MariaDB 11.7\data\my.ini"
CD "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" && "worldserver.exe" --config-dir "%UserProfile%\Projects\TrinityCore-335\conf\worldserver"
account create Espionage724 x
account set gmlevel Espionage724 3 -1
server shutdown 1
====== Character Data ======
===== Backup =====
"%ProgramFiles%\MariaDB 11.7\bin\mariadbd.exe" --defaults-file="%ProgramFiles%\MariaDB 11.7\data\my.ini"
CD "%UserProfile%\Downloads"
"%ProgramFiles%\MariaDB 11.7\bin\mariadb-dump.exe" -u "root" -p --opt -r "localhost-authserver-rolling.sql" "authserver"
"%ProgramFiles%\MariaDB 11.7\bin\mariadb-dump.exe" -u "root" -p --opt -r "localhost-characters-rolling.sql" "characters"
===== Restore =====
* [[#databases|Initial set-up]]
"%ProgramFiles%\MariaDB 11.7\bin\mariadbd.exe" --defaults-file="%ProgramFiles%\MariaDB 11.7\data\my.ini"
==== authserver ====
"%ProgramFiles%\MariaDB 11.7\bin\mariadb.exe" -u "root" -p --execute="CREATE DATABASE authserver"
"%ProgramFiles%\MariaDB 11.7\bin\mariadb.exe" -u "root" -p "authserver" < "%UserProfile%\Downloads\localhost-authserver-rolling.sql"
"%ProgramFiles%\MariaDB 11.7\bin\mariadb.exe" -u "root" -p --execute="GRANT ALL PRIVILEGES ON authserver.* to 'authserver'@'localhost';"
==== characters ====
"%ProgramFiles%\MariaDB 11.7\bin\mariadb.exe" -u "root" -p --execute="CREATE DATABASE characters"
"%ProgramFiles%\MariaDB 11.7\bin\mariadb.exe" -u "root" -p "characters" < "%UserProfile%\Downloads\localhost-characters-rolling.sql"
"%ProgramFiles%\MariaDB 11.7\bin\mariadb.exe" -u "root" -p --execute="GRANT ALL PRIVILEGES ON characters.* to 'characters'@'localhost';"