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
  • Last tested commit: a1814cf

Media

Prerequisites

Resources

Web

Dependencies

Git

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

Visual Studio 2022

  • 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

  • [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

CMake

  • [ ] Add CMake to the PATH environment variable

OpenSSL

  • Copy OpenSSL DLLs to:
    • [x] 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

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

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

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 .exes
"explorer.exe" "%ProgramFiles(x86)%\World of Warcraft 3.3.5"

World Database

TDB

  • 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

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

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

"%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';"
/srv/www/wiki/data/pages/servers/windows/games/trinitycore_3.3.5_localhost.txt · Last modified: by Sean Rhone