servers:linux:games:trinitycore_3.3.5_localhost
This is an old revision of the document!
Table of Contents
Information
- TrinityCore 1)
- These notes provide a local single-player server for World of Warcraft 3.3.5
- For a traditional dedicated server see these notes
Media
Resources
Web
Prerequisites
Dependencies
sudo dnf install bzip2-devel gcc-c++ cmake git boost boost-devel readline-devel zlib-ng-compat-devel openssl-devel mariadb-devel
Download Source
cd ~ && mkdir -p ~/'Projects' && rm -Rf ~/'Projects/TrinityCore-335/src' && git clone --branch '3.3.5' --depth '1' --recurse-submodules 'https://github.com/TrinityCore/TrinityCore.git' ~/'Projects/TrinityCore-335/src' && sync
Databases
mariadb -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
rm -Rf ~/'Projects/TrinityCore-335/build' ~/'Projects/TrinityCore-335/run' && mkdir -p ~/'Projects/TrinityCore-335/build' ~/'Projects/TrinityCore-335/run' && cd ~/'Projects/TrinityCore-335/build' && cmake ~/'Projects/TrinityCore-335/src' -DCMAKE_INSTALL_PREFIX=~/'Projects/TrinityCore-335/run' -DCMAKE_BUILD_TYPE='Release' -DWITHOUT_METRICS='1' -DTOOLS='1' && sync && make --jobs=$(nproc) install && sync
Update
git -C ~/'Projects/TrinityCore-335/src' pull origin '3.3.5' && cd ~/'Projects/TrinityCore-335/build' && cmake ~/'Projects/TrinityCore-335/src' -DCMAKE_INSTALL_PREFIX=~/'Projects/TrinityCore-335/run' -DCMAKE_BUILD_TYPE='Release' -DWITHOUT_METRICS='1' -DTOOLS='1' && sync && make --jobs=$(nproc) install && cp -v --remove-destination ~/'Projects/TrinityCore-335/run/etc/authserver.conf.dist' ~/'Projects/TrinityCore-335/run/etc/authserver.conf' && cp -v --remove-destination ~/'Projects/TrinityCore-335/run/etc/worldserver.conf.dist' ~/'Projects/TrinityCore-335/run/etc/worldserver.conf' && sync
Content
- Expects World of Warcraft 3.3.5
DBCs, Maps, and Cameras
- Sizes 2)
cp -f ~/'Projects/TrinityCore-335/run/bin/mapextractor' ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && rm -Rf 'dbc' 'maps' 'Cameras' && ./'mapextractor' -f '0'
VMaps
Extract
- Size 3)
cp -f ~/'Projects/TrinityCore-335/run/bin/vmap4extractor' ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && rm -Rf 'Buildings' && ./'vmap4extractor' -l
Assemble
- Size 4)
cp -f ~/'Projects/TrinityCore-335/run/bin/vmap4assembler' ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && rm -Rf 'vmaps' && mkdir -p 'vmaps' && ./'vmap4assembler' 'Buildings' 'vmaps'
MMaps
2)
dbc
folder 247
/90.3 MB, maps
folder 5744
/557.6 MB, Cameras
folder 14
/34.8 KB3)
Buildings
folder 7552
/584.7 MB4)
vmaps
folder 12501
/1.3 GB5)
mmaps
folder 3635
/1.6 GB6)
Fastest time:
Finished. MMAPS were built in 33 Minutes 23 Seconds.
at 'threads 4))
cp -f ~/'Projects/TrinityCore-335/run/bin/mmaps_generator' ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && rm -Rf 'mmaps' && mkdir -p 'mmaps' && ./'mmaps_generator' --bigBaseUnit 'true' --threads '4'
<code>--threads $(nproc)</code>
===== Move Files =====
cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files (x86)/World of Warcraft 3.3.5a.12340'*'/' && mv --force 'dbc' 'maps' 'Cameras' 'vmaps' 'mmaps' ~/'Projects/TrinityCore-335/run/bin' && rm -f 'mapextractor' 'vmap4extractor' 'vmap4assembler' 'mmaps_generator' && cd ~ && sync
==== Check Files ====
*
~/Projects/TrinityCore-335/run/bin needs
Cameras,
dbc,
maps,
mmaps, and
vmaps folders
ls --directory ~/'Projects/TrinityCore-335/run/bin/dbc' ~/'Projects/TrinityCore-335/run/bin/maps' ~/'Projects/TrinityCore-335/run/bin/Cameras' ~/'Projects/TrinityCore-335/run/bin/vmaps' ~/'Projects/TrinityCore-335/run/bin/mmaps'
gio open ~/'Projects/TrinityCore-335/run/bin/'
===== Clean-up =====
cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files (x86)/World of Warcraft 3.3.5a.12340'*'/' && rm -Rf 'Buildings' 'mapextractor' 'vmap4extractor' 'vmap4assembler' 'mmaps_generator' 'WoWDL.lnk' && cd ~ && sync
gio open ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files (x86)/World of Warcraft 3.3.5a.12340'*'/'
===== World Database =====
==== TDB ====
* https://github.com/TrinityCore/TrinityCore/releases
* Download the latest
TDB 335
.7z with a web browser
* Expects something like
TDB_full_world_335.24111_2024_11_22.7z in
~/Downloads
rm -Rf ~/'Projects/TrinityCore-335/run/bin/TDB_full_world_335.'*'.sql' && cd ~/'Projects/TrinityCore-335/run/bin' && 7za x ~/'Downloads/TDB_full_world_335.'*'.7z' && cd ~
====== Settings ======
===== authserver =====
* Last commit: Jul 28, 2021
68bf7e6
* New commits check
* Upstream authserver.conf.dist (raw)
cp ~/'Projects/TrinityCore-335/run/etc/authserver.conf.dist' ~/'Projects/TrinityCore-335/run/etc/authserver.conf'
mkdir -p ~/'Projects/TrinityCore-335/authserver.conf.d' && nano ~/'Projects/TrinityCore-335/authserver.conf.d/localhost-authserver.conf'
<code>[authserver]
# Connection
BindIP = “127.0.0.1”
LoginDatabaseInfo = “.;/var/lib/mysql/mysql.sock;authserver;x;authserver”
AllowLoggingIPAddressesInDatabase = 0
# Etc
RealmsStateUpdateDelay = 0
Updates.EnableDatabases = 1
Updates.CleanDeadRefMaxCount = -1
# End</code>
===== worldserver =====
* Last commit: Nov 29, 2024
65e2474
* New commits check
* Upstream worldserver.conf.dist (raw)
cp ~/'Projects/TrinityCore-335/run/etc/worldserver.conf.dist' ~/'Projects/TrinityCore-335/run/etc/worldserver.conf'
mkdir -p ~/'Projects/TrinityCore-335/worldserver.conf.d' && nano ~/'Projects/TrinityCore-335/worldserver.conf.d/localhost-worldserver.conf'
<code>
[worldserver]
# Connection
BindIP = “127.0.0.1”
LoginDatabaseInfo = “.;/var/lib/mysql/mysql.sock;authserver;x;authserver”
WorldDatabaseInfo = “.;/var/lib/mysql/mysql.sock;worldserver;x;worldserver”
CharacterDatabaseInfo = “.;/var/lib/mysql/mysql.sock;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</code>
====== Launch ======
===== authserver =====
cd ~/'Projects/TrinityCore-335/run/bin' && ~/'Projects/TrinityCore-335/run/bin/authserver' --config-dir ~/'Projects/TrinityCore-335/authserver.conf.d'
===== worldserver =====
cd ~/'Projects/TrinityCore-335/run/bin' && ~/'Projects/TrinityCore-335/run/bin/worldserver' --config-dir ~/'Projects/TrinityCore-335/worldserver.conf.d'
====== Create GM Account ======
* Done from
worldserver console
* Change
x to password
account create Espionage724 x
account set gmlevel Espionage724 3 -1
server shutdown 1
====== Scripts ======
===== Server Start =====
* WoW 3.3.5 Desktop Action Server
mkdir -p ~/'Projects/TrinityCore-335/scripts' && nano ~/'Projects/TrinityCore-335/scripts/tc-335-server-start.sh' && chmod +x ~/'Projects/TrinityCore-335/scripts/tc-335-server-start.sh'
<code>
#!/bin/bash
cd ~/'Projects/TrinityCore-335/run/bin'
ptyxis --standalone --title='WoW 3.3.5 localhost [auth] — ' -- ~/'Projects/TrinityCore-335/run/bin/authserver' --config-dir ~/'Projects/TrinityCore-335/authserver.conf.d' &
ptyxis --standalone --title='WoW 3.3.5 localhost [world] — ' -- ~/'Projects/TrinityCore-335/run/bin/worldserver' --config-dir ~/'Projects/TrinityCore-335/worldserver.conf.d'
# End</code>
~/'Projects/TrinityCore-335/scripts/tc-335-server-start.sh'
==== Xfce TODO ====
<code>xfce4-terminal --minimize -T 'WoW 3.3.5 — [auth]' -I ~/'.local/share/icons/hicolor/48×48/apps/WBE5_Wow.0.png' -x ~/'Projects/TrinityCore-335/run/bin/authserver' --config-dir ~/'Projects/TrinityCore-335/authserver.conf.d'</code>
<code>xfce4-terminal --minimize -T 'WoW 3.3.5 — [world]' -I ~/'.local/share/icons/hicolor/48×48/apps/WBE5_Wow.0.png' -x ~/'Projects/TrinityCore-335/run/bin/worldserver' --config-dir ~/'Projects/TrinityCore-335/worldserver.conf.d'</code>
===== Update =====
* WoW 3.3.5 Desktop Action Server-Update
mkdir -p ~/'Projects/TrinityCore-335/scripts' && nano ~/'Projects/TrinityCore-335/scripts/tc-335-server-update.sh' && chmod +x ~/'Projects/TrinityCore-335/scripts/tc-335-server-update.sh'
<code>
#!/bin/bash
git -C ~/'Projects/TrinityCore-335/src' pull origin '3.3.5'
cd ~/'Projects/TrinityCore-335/build'
cmake ~/'Projects/TrinityCore-335/src' -DCMAKE_INSTALL_PREFIX=~/'Projects/TrinityCore-335/run' -DCMAKE_BUILD_TYPE='Release' -DWITHOUT_METRICS='1' -DTOOLS='1'
make --jobs=$(nproc) install
cp --remove-destination ~/'Projects/TrinityCore-335/run/etc/authserver.conf.dist' ~/'Projects/TrinityCore-335/run/etc/authserver.conf'
cp --remove-destination ~/'Projects/TrinityCore-335/run/etc/worldserver.conf.dist' ~/'Projects/TrinityCore-335/run/etc/worldserver.conf'
sync
notify-send -i ~/'.local/share/icons/hicolor/48×48/apps/WBE5_Wow.0.png' 'WoW 3.3.5 localhost server update complete'
# End</code>
~/'Projects/TrinityCore-335/scripts/tc-335-server-update.sh'
===== Database Back-up =====
* WoW 3.3.5 Desktop Action Server-Saves
mkdir -p ~/'Projects/TrinityCore-335/scripts' && nano ~/'Projects/TrinityCore-335/scripts/tc-335-save-backup.sh' && chmod +x ~/'Projects/TrinityCore-335/scripts/tc-335-save-backup.sh'
<code>
#!/bin/bash
cd ~/'Downloads'
echo 'Root MariaDB user password prompts:'
echo
mariadb-dump -u 'root' -p --opt -r 'localserver-authserver-database-'$(date +%Y-%m-%d-%s)'.sql' 'authserver'
mariadb-dump -u 'root' -p --opt -r 'localserver-characters-database-'$(date +%Y-%m-%d-%s)'.sql' 'characters'
sync
read -n '1' -s -r -p 'WoW 3.3.5 localhost server databases have been dumped to Downloads. Press any key to exit.'
# End</code>
~/'Projects/TrinityCore-335/scripts/tc-335-save-backup.sh'====== Character Data ====== ===== Backup =====
- Dumps
authserver
andcharacters
MySQL databases as.sql
in~/Downloads
cd ~/'Downloads' && mariadb-dump -u 'root' -p --opt -r 'localserver-authserver-database-'$(date +%Y-%m-%d-%s)'.sql' 'authserver'
cd ~/'Downloads' && mariadb-dump -u 'root' -p --opt -r 'localserver-characters-database-'$(date +%Y-%m-%d-%s)'.sql' 'characters'===== Restore ===== ==== authserver ====
x
is path to aauthserver
.sql
database dump
mariadb --user='root' --password --execute='DROP DATABASE authserver'
mariadb --user='root' --password --execute='CREATE DATABASE authserver'
mariadb --user='root' --password 'authserver' < x==== characters ====
x
is path to acharacters
.sql
database dump
mariadb --user='root' --password --execute='DROP DATABASE characters'
mariadb --user='root' --password --execute='CREATE DATABASE characters'
mariadb --user='root' --password 'characters' < x==== Reapply Permissions ====
mariadb -u 'root' -p
GRANT ALL PRIVILEGES ON authserver.* to 'authserver'@'localhost';
GRANT ALL PRIVILEGES ON characters.* to 'characters'@'localhost';
FLUSH PRIVILEGES;
EXIT====== Troubleshooting ====== ===== Gray Realm/List Loop =====
- Reset account password
cd ~/'Projects/TrinityCore-335/run/bin' && ~/'Projects/TrinityCore-335/run/bin/worldserver' --config-dir ~/'Projects/TrinityCore-335/worldserver.conf.d'
account set password Espionage724 x
server shutdown 1===== Compile =====
ldd ~/'Projects/TrinityCore-335/run/bin/worldserver'
readelf --string-dump='.comment' ~/'Projects/TrinityCore-335/run/bin/worldserver'
/srv/www/wiki/data/attic/servers/linux/games/trinitycore_3.3.5_localhost.1756192166.txt.gz · Last modified: by Sean Rhone