Prerequisites
Dependencies
su -
pkg install git readline mariadb118-client mariadb118-server cmake-core libressl
exit
Download Source
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'
Database
Settings
rm -Rf ~/'Projects/TrinityCore-335/mariadb/database' && mkdir -p ~/'Projects/TrinityCore-335/mariadb/database' && ee ~/'Projects/TrinityCore-335/mariadb/custom.cnf'
[client]
default-character-set = 'utf8mb4'
[mariadb-client]
default-character-set = 'utf8mb4'
[mariadbd]
character-set-client-handshake = 'FALSE'
character-set-server = 'utf8mb4'
collation-server = 'utf8mb4_unicode_ci'
init-connect='SET NAMES utf8mb4'
expire_logs_days = '7'
max_binlog_size = '100M'
skip-networking = 'On'
table_definition_cache = '1400'
# End
Initialize
mariadb-install-db --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --defaults-file=$HOME/'Projects/TrinityCore-335/mariadb/custom.cnf'
Initial Setup
mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock'
mariadb-secure-installation --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER
mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER
Databases
Connect
mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock'
mariadb --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER
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;
mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER
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' -DCMAKE_CXX_FLAGS='-w' -DWITHOUT_METRICS='1' -DTOOLS='1' && make -j "$(nproc)" install
Content
DBCs, Maps, and Cameras
~/'Projects/TrinityCore-335/run/bin/mapextractor' -i ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' -o ~/'Projects/TrinityCore-335/run/bin' -f '0'
VMaps
cd ~/'Projects/TrinityCore-335/run/bin' && ~/'Projects/TrinityCore-335/run/bin/vmap4extractor' -d ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' -l && cd -
Assemble
~/'Projects/TrinityCore-335/run/bin/vmap4assembler' ~/'Projects/TrinityCore-335/run/bin/Buildings' ~/'Projects/TrinityCore-335/run/bin/vmaps'
MMaps

~30 minutes i5-8400H
1)
--threads $(nproc)
cd ~/'Projects/TrinityCore-335/run/bin' && ~/'Projects/TrinityCore-335/run/bin/mmaps_generator' --silent --skipJunkMaps 'true' --debugOutput 'false' --bigBaseUnit 'true' --threads "$(nproc)" && cd -
Check Files
~/Projects/TrinityCore-335/run/bin needs Cameras, dbc, maps, mmaps, and vmaps folders
cd ~/'Projects/TrinityCore-335/run/bin' && ls -d 'Cameras' 'dbc' 'maps' 'mmaps' 'vmaps' && cd -
gio open ~/'Projects/TrinityCore-335/run/bin'
Clean-up
rm -Rf ~/'Projects/TrinityCore-335/run/bin/Buildings' ~/'Projects/TrinityCore-335/run/bin/mapextractor' ~/'Projects/TrinityCore-335/run/bin/vmap4extractor' ~/'Projects/TrinityCore-335/run/bin/vmap4assembler' ~/'Projects/TrinityCore-335/run/bin/mmaps_generator'
World Database
TDB
ls ~/'Downloads/TDB_full_world_335.'*'.7z' && rm -f ~/'Projects/TrinityCore-335/run/bin/TDB_full_world_335.'*'.sql' && 7z e -o$HOME/'Projects/TrinityCore-335/run/bin' -y ~/'Downloads/TDB_full_world_335.'*'.7z'
rm -f ~/'Downloads/TDB_full_world_335.'*'.7z'
Settings
authserver
cp -f ~/'Projects/TrinityCore-335/run/etc/authserver.conf.dist' ~/'Projects/TrinityCore-335/run/etc/authserver.conf'
mkdir -p ~/'Projects/TrinityCore-335/authserver.conf.d' && ee ~/'Projects/TrinityCore-335/authserver.conf.d/localhost-authserver.conf'
[authserver]
# Connection
BindIP = "127.0.0.1"
LoginDatabaseInfo = "127.0.0.1;../../mariadb.sock;authserver;x;authserver"
# Etc
AllowLoggingIPAddressesInDatabase = 0
Updates.EnableDatabases = 1
Updates.CleanDeadRefMaxCount = -1
# End
worldserver
cp -f ~/'Projects/TrinityCore-335/run/etc/worldserver.conf.dist' ~/'Projects/TrinityCore-335/run/etc/worldserver.conf'
mkdir -p ~/'Projects/TrinityCore-335/worldserver.conf.d' && ee ~/'Projects/TrinityCore-335/worldserver.conf.d/localhost-worldserver.conf'
[worldserver]
# Connection
BindIP = "127.0.0.1"
LoginDatabaseInfo = "127.0.0.1;../../mariadb.sock;authserver;x;authserver"
WorldDatabaseInfo = "127.0.0.1;../../mariadb.sock;worldserver;x;worldserver"
CharacterDatabaseInfo = "127.0.0.1;../../mariadb.sock;characters;x;characters"
# Server
Updates.CleanDeadRefMaxCount = -1
FlashAtStart = 0
Server.LoginInfo = 1
Motd = "Welcome to your localhost server!"
AllowTickets = 0
CharDelete.Method = 1
CharDelete.KeepDays = 0
WhoList.Update.Interval = 300
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
Scripts
authserver
mkdir -p ~/'Projects/TrinityCore-335/scripts' && ee ~/'Projects/TrinityCore-335/scripts/localhost-authserver-start.sh' && chmod +x ~/'Projects/TrinityCore-335/scripts/localhost-authserver-start.sh'
#!/bin/sh
cd ~/'Projects/TrinityCore-335/run/bin'
~/'Projects/TrinityCore-335/run/bin/authserver' --config-dir ~/'Projects/TrinityCore-335/authserver.conf.d'
# End
~/'Projects/TrinityCore-335/scripts/localhost-authserver-start.sh'
worldserver
mkdir -p ~/'Projects/TrinityCore-335/scripts' && ee ~/'Projects/TrinityCore-335/scripts/localhost-worldserver-start.sh' && chmod +x ~/'Projects/TrinityCore-335/scripts/localhost-worldserver-start.sh'
#!/bin/sh
cd ~/'Projects/TrinityCore-335/run/bin'
~/'Projects/TrinityCore-335/run/bin/worldserver' --config-dir ~/'Projects/TrinityCore-335/worldserver.conf.d'
# End
~/'Projects/TrinityCore-335/scripts/localhost-worldserver-start.sh'
Database Start
mkdir -p ~/'Projects/TrinityCore-335/scripts' && ee ~/'Projects/TrinityCore-335/scripts/localhost-database-start.sh' && chmod +x ~/'Projects/TrinityCore-335/scripts/localhost-database-start.sh'
#!/bin/sh
cd '/tmp'
mariadbd-safe --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock'
# End
~/'Projects/TrinityCore-335/scripts/localhost-database-start.sh'
Server Update
mkdir -p ~/'Projects/TrinityCore-335/scripts' && ee ~/'Projects/TrinityCore-335/scripts/localhost-server-update.sh' && chmod +x ~/'Projects/TrinityCore-335/scripts/localhost-server-update.sh'
#!/bin/sh
cd '/tmp'
git -C ~/'Projects/TrinityCore-335/src' reset --hard
git -C ~/'Projects/TrinityCore-335/src' pull origin '3.3.5' --rebase
cd ~/'Projects/TrinityCore-335/build'
cmake ~/'Projects/TrinityCore-335/src' -DCMAKE_INSTALL_PREFIX=~/'Projects/TrinityCore-335/run' -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_FLAGS='-w' -DWITHOUT_METRICS='1' -DTOOLS='0'
make -j "$(nproc)" install
cd '/tmp'
cp -f ~/'Projects/TrinityCore-335/run/etc/authserver.conf.dist' ~/'Projects/TrinityCore-335/run/etc/authserver.conf'
cp -f ~/'Projects/TrinityCore-335/run/etc/worldserver.conf.dist' ~/'Projects/TrinityCore-335/run/etc/worldserver.conf'
notify-send -i ~/'.wine/Icons/WoW-335-256.png' -t '3000' 'WoW 3.3.5 localhost server update complete'
read -p 'Done. Press Enter to exit.' 'x'
# End
~/'Projects/TrinityCore-335/scripts/localhost-server-update.sh'
Database Back-up
mkdir -p ~/'Projects/TrinityCore-335/scripts' && ee ~/'Projects/TrinityCore-335/scripts/localhost-databases-backup.sh' && chmod +x ~/'Projects/TrinityCore-335/scripts/localhost-databases-backup.sh'
#!/bin/sh
cd '/tmp'
notify-send -i ~/'.wine/Icons/WoW-335-256.png' -t '2000' 'Backing-up WoW 3.3.5 Databases...'
mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock'
sleep '2'
mariadb-dump --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER --single-transaction --quick 'authserver' -r $HOME/'Downloads/'$(date +%Y-%m-%d-%s)'-localhost-authserver.sql'
mariadb-dump --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER --single-transaction --quick 'characters' -r $HOME/'Downloads/'$(date +%Y-%m-%d-%s)'-localhost-characters.sql'
mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER
notify-send -i ~/'.wine/Icons/WoW-335-256.png' -t '2000' 'WoW 3.3.5 Databases Backed-up Successfully to Downloads'
# End
~/'Projects/TrinityCore-335/scripts/localhost-databases-backup.sh'
Database Maintenance
mkdir -p ~/'Projects/TrinityCore-335/scripts' && ee ~/'Projects/TrinityCore-335/scripts/localhost-database-maintenance.sh' && chmod +x ~/'Projects/TrinityCore-335/scripts/localhost-database-maintenance.sh'
#!/bin/sh
cd '/tmp'
notify-send -i ~/'.wine/Icons/WoW-335-256.png' -t '2000' 'Starting WoW 3.3.5 DB maintenance...'
mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock'
sleep '2'
mariadb-check --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER -o -A -f -e --auto-repair
mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER
notify-send -i ~/'.wine/Icons/WoW-335-256.png' -t '2000' 'WoW 3.3.5 DB maintenance complete'
# End
~/'Projects/TrinityCore-335/scripts/localhost-database-maintenance.sh'
Server Start
mkdir -p ~/'Projects/TrinityCore-335/scripts' && ee ~/'Projects/TrinityCore-335/scripts/localhost-server-start.sh' && chmod +x ~/'Projects/TrinityCore-335/scripts/localhost-server-start.sh'
#!/bin/sh
cd '/tmp'
xfce4-terminal --minimize -T 'WoW 3.3.5 [MariaDB]' -I ~/'.wine/Icons/WoW-335-256.png' -e ~/'Projects/TrinityCore-335/scripts/localhost-database-start.sh' &
sleep '2'
xfce4-terminal --minimize -T 'WoW 3.3.5 [auth]' -I ~/'.wine/Icons/WoW-335-256.png' -e ~/'Projects/TrinityCore-335/scripts/localhost-authserver-start.sh' &
xfce4-terminal --minimize -T 'WoW 3.3.5 [world]' -I ~/'.wine/Icons/WoW-335-256.png' -e ~/'Projects/TrinityCore-335/scripts/localhost-worldserver-start.sh'
# End
~/'Projects/TrinityCore-335/scripts/localhost-server-start.sh'
Create GM Account
~/'Projects/TrinityCore-335/scripts/localhost-server-start.sh'
account create Espionage724 x
account set gmlevel Espionage724 3 -1
server shutdown 1
Items
Northshire Gift Voucher
Tyrael's Hilt
-

Mini Tyrael might have buggy movement and not follow more-often than other pets (Mini Diablo seems fine)
.additem 39656
Character Data
Backup
mariadbd-safe --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock'
mariadb-dump --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER --single-transaction --quick 'authserver' -r $HOME/'Downloads/'$(date +%Y-%m-%d-%s)'-WoW-335-localhost-authserver.sql'
mariadb-dump --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER --single-transaction --quick 'characters' -r $HOME/'Downloads/'$(date +%Y-%m-%d-%s)'-WoW-335-localhost-characters.sql'
Restore
authserver
mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock'
mariadb --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER --execute='CREATE DATABASE authserver;'
cat ~/'Downloads/'*'-localhost-authserver.sql' | mariadb --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER 'authserver'
characters
mariadb --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER --execute='CREATE DATABASE characters;'
cat ~/'Downloads/'*'-localhost-characters.sql' | mariadb --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER 'characters'
mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER
Quick Commands
DB Optimize
mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' && sleep '2' && mariadb-check --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER -o -A -f -e --auto-repair && mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER
MariaDB Server
mariadbd-safe --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock'
mariadbd-safe --no-watch --skip-syslog --datadir=$HOME/'Projects/TrinityCore-335/mariadb/database' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock'
Stop
mariadb-admin 'shutdown' --socket=$HOME/'Projects/TrinityCore-335/mariadb/mariadb.sock' --user=$USER
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'