User Tools

Site Tools


servers:windows:games:trinitycore_3.3.5_localhost

Information

  • TrinityCore 1)
  • These notes provide a local single-player server for World of Warcraft 3.3.5

Media

Prerequisites

Resources

Web

Dependencies

Git

  • No components required
  • Git from the command line and also from 3rd-party software

Visual Studio 2022

  • Install can be Modified after the auto-install or canceled mid-initial to save around 9 GB space
  • Required components: 3)

MariaDB Server

  • [x] MariaDB Server (Entire feature)
  • [x] Development components (Entire feature)
  • Third party tools not required
  • Use UTF8 as default server's character set
  • Uncheck Install as service and Enable networking

Boost

CMake

  • CMake to PATH not required

OpenSSL

  • :!: Copy OpenSSL DLLs to: The OpenSSL binaries (/bin) directory

Download Source

"%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

"%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
CREATE DATABASE authserver;
CREATE DATABASE characters;
CREATE DATABASE worldserver;
CREATE USER 'authserver'@'localhost' IDENTIFIED BY 'x';
CREATE USER 'characters'@'localhost' IDENTIFIED BY 'x';
CREATE USER 'worldserver'@'localhost' IDENTIFIED BY 'x';
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

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_INCLUDE_DIR="%SystemDrive%/local/boost_1_86_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

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.exe" -S "%UserProfile%\Projects\TrinityCore-335\src" -B "%UserProfile%\Projects\TrinityCore-335\build" -G "Visual Studio 17 2022" --fresh -Wno-dev -DBoost_INCLUDE_DIR="%SystemDrive%/local/boost_1_86_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

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
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 "%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\conf\authserver"
notepad "%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

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 "%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

netsh 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 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 advfirewall firewall add rule name="MariaDB Server" dir="in" action="block" profile="any" program="%ProgramFiles%\MariaDB 11.7\bin\mariadbd.exe"

Scripts

MKDIR "%UserProfile%\Projects\TrinityCore-335\scripts"

Server Start

notepad "%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

Server Update

notepad "%UserProfile%\Projects\TrinityCore-335\scripts\localhost-server-update.bat"
@echo off

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.exe" -S "%UserProfile%\Projects\TrinityCore-335\src" -B "%UserProfile%\Projects\TrinityCore-335\build" -G "Visual Studio 17 2022" --fresh -Wno-dev -DBoost_INCLUDE_DIR="%SystemDrive%/local/boost_1_86_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

Database Back-up

notepad "%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

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 "%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
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
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

Separate PC

MKDIR "%UserProfile%\Projects\TrinityCore-335\build\bin\Release"
"explorer.exe" "%UserProfile%\Projects\TrinityCore-335\build\bin\Release"

Character Data

Backup

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

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';"
"%ProgramFiles%\MariaDB 11.7\bin\mariadb.exe" -u "root" -p --execute="DROP DATABASE authserver"
"%ProgramFiles%\MariaDB 11.7\bin\mariadb.exe" -u "root" -p --execute="CREATE DATABASE authserver"

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';"
"%ProgramFiles%\MariaDB 11.7\bin\mariadb.exe" -u "root" -p --execute="DROP DATABASE characters"
"%ProgramFiles%\MariaDB 11.7\bin\mariadb.exe" -u "root" -p --execute="CREATE DATABASE characters"
2)
2025/01/24: Seems to require SET realmName “localhost” to workaround gray realm list loop
3)
MSBuild, MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest), C++ core features, Windows 11 SDK
C:/www/wiki/data/pages/servers/windows/games/trinitycore_3.3.5_localhost.txt · Last modified: by Sean Rhone