====== 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';"