User Tools

Site Tools


servers:windows:games:trinitycore_3.3.5_localhost

Information

  • TrinityCore 1)
  • 3.3.5 2)
  • These notes provide a local singleplayer server for World of Warcraft 3.3.5 on Windows (see these notes for Linux)

Prerequisites

Resources

TODOs

  • Start/desktop shortcuts
  • Set MariaDB to manual start Windows Service (install-time?) and have shortcuts to start/stop it (so not 24/7 background service even if minimal)

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

  • Install can be Modified after the auto-install to recover about 9 GB space
  • Workloads → Desktop development with C++ (uncheck Mobile/Game/Linux dev C++)
  • Individual components: Optional 3)

MariaDB Server

  • No Third party tools
  • Use UTF8 as default server's character set

SQLyog Community Edition

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

  • All Database management including backups/restores are done through SQLyog
"%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

  • Ctrl + U or Tools → User Manager
  • All Host as localhost
  • Click the database with the same name as username and Select All privileges
authserver
characters
worldserver

Initial Compile

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

  • [x] Advanced (next to Add Entry)
  • Search → mysql
  • MYSQL_EXECUTABLE
"%ProgramFiles%\MariaDB 11.5\bin\mariadb.exe"
  • MYSQL_INCLUDE_DIR
"%ProgramFiles%\MariaDB 11.5\include\mysql"
  • MYSQL_LIBRARY
"%ProgramFiles%\MariaDB 11.5\lib\libmariadb.lib"

Visual Studio

  • Build → Configuration Manager → Active solution configuration: Release
  • Build → Rebuild Solution

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"
  • Visual Studio → Build → Build Solution

Content

  • Move mapextractor mmaps_generator vmap4assembler and vmap4extractor to the WoW folder or use COPY commands below
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

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

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

  • Move Cameras dbc maps mmaps and vmaps folders to the Release folder
explorer "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" && explorer "%ProgramFiles(x86)%\World of Warcraft 3.3.5"

Clean-up

  • Remove Buildings and extractor .exes
explorer "%ProgramFiles(x86)%\World of Warcraft 3.3.5"

World Database

TDB

  • Extract TDB_full_world_335.sql to Release folder
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

  • authserver needs started at least once to create the tables and to start worldserver for account creation
  • Ctrl + C to exit
CD "%UserProfile%\Projects\TrinityCore-335\build\bin\Release" && "authserver.exe" --config-dir "%UserProfile%\Projects\TrinityCore-335\authserver.conf.d"

Create GM Account

  • Change x to password
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"
3)
17.11.5: Uncheck GitHub Copilot, NuGet package manager, vcpkg package manager, C++ Build Insights, C++ AddressSanitizer, C++ profiling tools, Just-In-Time debugger, Test Adapter for Boost.Test, IntelliCode, Security Issue Analysis
/var/www/wiki/data/pages/servers/windows/games/trinitycore_3.3.5_localhost.txt · Last modified: by Sean Rhone