====== Information ====== * TrinityCore ((https://www.trinitycore.org)) * 3.3.5 ((https://github.com/TrinityCore/TrinityCore/tree/3.3.5)) * These notes provide a local singleplayer server for World of Warcraft 3.3.5 on Windows (see [[servers;linux;games;trinitycore_3.3.5_localhost|these notes]] for Linux) ===== Prerequisites ===== * [[windows:10|Windows 10]] * [[games;windows;world_of_warcraft_3.3.5|World of Warcraft 3.3.5 (Windows)]] ===== Resources ===== * [[https://trinitycore.org/|TrinityCore]] * [[https://trinitycore.info/|TrinityCore MMo Project Wiki]] ====== Dependencies ====== * https://trinitycore.info/en/install/requirements/windows * 2024/07/24: Git, Visual Studio 2022, MySQL, Boost, CMake, OpenSSL * :!: Any ''SETX'' usage needs a Windows user re-sign in * SQLyog for GUI database management * :!: MariaDB is untested ((it works on Linux still as of 2024/08/29 but support may be deprecated: https://github.com/TrinityCore/TrinityCore/pull/29960)) ===== Git ===== * https://www.git-scm.com/download/win * Last tested: ''Git-2.46.0-64-bit.exe'' * Git from the command line and also from 3rd-party software ===== Visual Studio 2022 ===== * https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&channel=Release&version=VS2022 * :!: Install needs Modified after the auto-install * Desktop development with C++ * Any components that doesn't remove Desktop dev C++ is optional (Pilot, Sanitizers, Live, etc) ===== MySQL ===== * https://dev.mysql.com/downloads/windows/ * Last tested: ''mysql-installer-community-8.0.39.0.msi'' * Server Only * Development Computer * :!: Uncheck Open Windows Firewall ports for network access SETX /M path "%path%;%ProgramFiles%\MySQL\MySQL Server 8.0\bin" ===== SQLyog Community Edition ===== * https://github.com/webyog/sqlyog-community/wiki/Downloads * Last tested: ''SQLyog-13.3.0-0.x64Community.exe'' ===== Boost ===== * https://sourceforge.net/projects/boost/files/boost-binaries/ * Last tested: ''boost_1_86_0-msvc-14.3-64.exe'' SETX /M "BOOST_ROOT" "C:/local/boost_1_86_0" ===== CMake ===== * https://cmake.org/download/ * Last tested: ''cmake-3.30.2-windows-x86_64.msi'' ===== OpenSSL ===== * https://slproweb.com/products/Win32OpenSSL.html (:!: not Light) * Last tested: ''Win64OpenSSL-3_3_2.exe'' * :!: 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\trinity-335\src" explorer "%UserProfile%\Projects\trinity-335\src" ====== Databases ====== * All Database management including backups/restores are done through SQLyog ===== Create DBs ===== * Ctrl + D or Database -> Create Database * Database charset: ''utf8mb4'' * Database collation: ''utf8mb4_unicode_ci'' authserver characters worldserver ===== DB Users ===== * Ctrl + U or Tools -> User Manager * All Host as ''127.0.0.1'' * Click the database with the same name as username and Select All privileges authserver characters worldserver ====== Initial Compile ====== * https://trinitycore.info/en/install/Core-Installation/windows-core-installation ===== CMake ===== * Visual Studio 17 2022 MKDIR "%UserProfile%\Projects\trinity-335\build\bin\Release\" cmake-gui "%UserProfile%\Projects\trinity-335\src" "%UserProfile%\Projects\trinity-335\build" ===== Visual Studio ===== * Build -> Configuration Manager -> Active solution configuration: Release * Build -> Rebuild Solution ===== DLLs ===== COPY /Y "%ProgramFiles%\MySQL\MySQL Server 8.0\lib\libmysql.dll" "%UserProfile%\Projects\trinity-335\build\bin\Release\" COPY /Y "%ProgramFiles%\OpenSSL-Win64\bin\legacy.dll" "%UserProfile%\Projects\trinity-335\build\bin\Release\" COPY /Y "%ProgramFiles%\OpenSSL-Win64\bin\libssl-3-x64.dll" "%UserProfile%\Projects\trinity-335\build\bin\Release\" COPY /Y "%ProgramFiles%\OpenSSL-Win64\bin\libcrypto-3-x64.dll" "%UserProfile%\Projects\trinity-335\build\bin\Release\" ====== Update ====== git -C "%UserProfile%\Projects\trinity-335\src" reset --hard && git -C "%UserProfile%\Projects\trinity-335\src" pull origin "3.3.5" --rebase cmake-gui * Visual Studio -> Build -> Build Solution ====== Content ====== * https://trinitycore.info/en/install/Server-Setup * Expects [[games:windows:world_of_warcraft_3.3.5|World of Warcraft 3.3.5]] * Move ''mapextractor'' ''mmaps_generator'' ''vmap4assembler'' and ''vmap4extractor'' to the WoW folder or use ''COPY'' commands below explorer "%UserProfile%\Projects\trinity-335\build\bin\Release" explorer "%ProgramFiles(x86)%\World of Warcraft 3.3.5" ===== DBCs, Maps, and Cameras ===== COPY /Y "%UserProfile%\Projects\trinity-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\trinity-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\trinity-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\trinity-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 "%UserProfile%\Projects\trinity-335\build\bin\Release" && explorer "%ProgramFiles(x86)%\World of Warcraft 3.3.5" ===== Clean-up ===== * Remove ''Buildings'' and extractor ''.exe''s explorer "%ProgramFiles(x86)%\World of Warcraft 3.3.5" ===== World Database ===== ==== TDB ==== * https://trinitycore.info/en/install/Database-Installation * https://github.com/TrinityCore/TrinityCore/releases * Download the latest ''TDB 335'' ''.7z'' with a web browser * Extract ''TDB_full_world_335.sql'' to ''Release'' folder explorer "%UserProfile%\Projects\trinity-335\build\bin\Release" ====== 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]]) * Last updated: 2024/06/02 COPY /Y "%UserProfile%\Projects\trinity-335\build\bin\Release\authserver.conf.dist" "%UserProfile%\Projects\trinity-335\build\bin\Release\authserver.conf" notepad "%UserProfile%\Projects\trinity-335\build\bin\Release\authserver.conf" LoginDatabaseInfo = "127.0.0.1;3306;authserver;x;authserver" Updates.EnableDatabases = 1 ===== worldserver ===== * Last commit: [[https://github.com/TrinityCore/TrinityCore/commit/e11613eeb5dcad16f5908c9c7dd8109baabe9272|Feb 16, 2023]] ''e11613e'' * [[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]]) * Last updated: 2024/06/02 COPY /Y "%UserProfile%\Projects\trinity-335\build\bin\Release\worldserver.conf.dist" "%UserProfile%\Projects\trinity-335\build\bin\Release\worldserver.conf" notepad "%UserProfile%\Projects\trinity-335\build\bin\Release\worldserver.conf" LoginDatabaseInfo = "127.0.0.1;3306;authserver;x;authserver" WorldDatabaseInfo = "127.0.0.1;3306;worldserver;x;worldserver" CharacterDatabaseInfo = "127.0.0.1;3306;characters;x;characters" Quests.LowLevelHideDiff = -1 Quests.HighLevelHideDiff = -1 Motd = "Welcome to your localhost server!" Server.LoginInfo = 1 ====== Realm ====== ===== authserver ===== * ''authserver'' needs started at least once to create the tables and to start ''worldserver'' for account creation * Ctrl + C to exit CD "%UserProfile%\Projects\trinity-335\build\bin\Release" && "authserver.exe" ====== Create GM Account ====== * Change ''x'' to password CD "%UserProfile%\Projects\trinity-335\build\bin\Release" && "worldserver.exe" account create Espionage724 x account set gmlevel Espionage724 3 -1 server shutdown 1 ====== Launch ====== ===== Commands ===== CD "%UserProfile%\Projects\trinity-335\build\bin\Release" && "authserver.exe" CD "%UserProfile%\Projects\trinity-335\build\bin\Release" && "worldserver.exe"