User Tools

Site Tools


servers:games:trinitycore_3.3.5

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
servers:games:trinitycore_3.3.5 [2022/09/30 18:36] Sean Rhoneservers:games:trinitycore_3.3.5 [2023/07/30 19:24] Sean Rhone
Line 10: Line 10:
   * [[distros:fedora_server|Fedora Server]]   * [[distros:fedora_server|Fedora Server]]
   * [[servers:mariadb|MariaDB]]   * [[servers:mariadb|MariaDB]]
-  * [[games:wine:world_of_warcraft_3.3.5|World of Warcraft (3.3.5)]] ((required for content extraction, and since the core and tools are compiled on Linuxthe extraction tools will also require Linux OS to run on))+  * [[games:wine:world_of_warcraft_3.3.5|World of Warcraft (3.3.5)]] ((required for content extraction, and since the core and tools are compiled on Linux the extraction tools also require Linux))
  
 ===== Notes ===== ===== Notes =====
Line 16: Line 16:
   * :!: As of 2022/09/30, these notes were tested on F36 up until the systemd scripts; TODO: fix them   * :!: As of 2022/09/30, these notes were tested on F36 up until the systemd scripts; TODO: fix them
   * :!: Do **not** use Warmane's WotLK client for content extraction nor to play with as it's modified and fails if ''authserver.conf/StrictVersionCheck = 1''   * :!: Do **not** use Warmane's WotLK client for content extraction nor to play with as it's modified and fails if ''authserver.conf/StrictVersionCheck = 1''
-  * [[https://wowdl.net/index|WoWDL]] has a [[https://wowdl.net/client/3.3.5a-win-us|clean 3.3.5 client]]+  * [[https://wowdl.net/index|WoWDL]] has a [[https://wowdl.net/client/3.3.5a-win-us|clean 3.3.5 client]] that works fine with ''authserver.conf/StrictVersionCheck = 1''
  
 ====== Create Group and User ====== ====== Create Group and User ======
Line 89: Line 89:
   sudo su 'trinity' -s '/usr/bin/bash'   sudo su 'trinity' -s '/usr/bin/bash'
  
-  rm -Rf '/tmp/TDB' '/tmp/TDB/TDB335.7z' && mkdir -p '/tmp/TDB' && cd ~ && wget -O '/tmp/TDB/TDB335.7z' 'https://github.com/TrinityCore/TrinityCore/releases/download/TDB335.22081/TDB_full_world_335.22081_2022_08_15.7z' && 7za x '/tmp/TDB/TDB335.7z' -o'/tmp/TDB' && mv '/tmp/TDB/TDB_full_world_335'*'.sql' ~/'Projects/trinity-335/run/bin' && rm -Rf '/tmp/TDB' && sync+  rm -Rf '/tmp/TDB' '/tmp/TDB/TDB335.7z' && mkdir -p '/tmp/TDB' && cd ~ && wget -O '/tmp/TDB/TDB335.7z' 'https://github.com/TrinityCore/TrinityCore/releases/download/TDB335.23061/TDB_full_world_335.23061_2023_06_14.7z' && 7za x '/tmp/TDB/TDB335.7z' -o'/tmp/TDB' && mv '/tmp/TDB/TDB_full_world_335'*'.sql' ~/'Projects/trinity-335/run/bin' && rm -Rf '/tmp/TDB' && sync
  
 ====== Compile ====== ====== Compile ======
  
   * :!: This wipes out the ''run'' folder, so ideally any extracted content and the full TDB shouldn't be moved there until after this initial compile   * :!: This wipes out the ''run'' folder, so ideally any extracted content and the full TDB shouldn't be moved there until after this initial compile
 +  * :!: For content extraction, Fedora major versions should match between the compiler and extraction machines for Boost libraries ((can use ''LD_LIBRARY_PATH=.'' for all the extraction commands, and copy the requested ''.so'' library files from [[https://pkgs.org/|downloaded]] packages into the WoW folder))
  
   sudo su 'trinity' -s '/usr/bin/bash'   sudo su 'trinity' -s '/usr/bin/bash'
Line 114: Line 115:
   * See [[games:wine:world_of_warcraft_3.3.5|WoW 3.3.5]] installation notes   * See [[games:wine:world_of_warcraft_3.3.5|WoW 3.3.5]] installation notes
  
-  mkdir -p '/tmp/trinity-extractors' && scp espionage724@192.168.1.152:'/tmp/trinity-extractors/'* '/tmp/trinity-extractors' && mv '/tmp/trinity-extractors/'* ~/'Wine Prefixes/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' && sync+  mkdir -p '/tmp/trinity-extractors' && scp espionage724@192.168.1.152:'/tmp/trinity-extractors/'* '/tmp/trinity-extractors' && mv '/tmp/trinity-extractors/'* ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && sync
  
 ===== Dependencies ===== ===== Dependencies =====
Line 128: Line 129:
   * :!: Run on the machine doing the content extraction   * :!: Run on the machine doing the content extraction
  
-  cd ~/'Wine Prefixes/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' && ./'mapextractor' -f '0'  && sync+  cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && ./'mapextractor' -f '0'  && sync
  
 ==== VMaps ==== ==== VMaps ====
Line 136: Line 137:
   * :!: Run on the machine doing the content extraction   * :!: Run on the machine doing the content extraction
  
-  cd ~/'Wine Prefixes/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' && ./'vmap4extractor' -l && sync+  cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && ./'vmap4extractor' -l && sync
  
 === Assemble === === Assemble ===
Line 142: Line 143:
   * :!: Run on the machine doing the content extraction   * :!: Run on the machine doing the content extraction
  
-  cd ~/'Wine Prefixes/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' && mkdir -p 'vmaps' && ./'vmap4assembler' 'Buildings' 'vmaps' && sync+  cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && mkdir -p 'vmaps' && ./'vmap4assembler' 'Buildings' 'vmaps' && sync
  
 ==== MMaps ==== ==== MMaps ====
Line 148: Line 149:
   * :!: Run on the machine doing the content extraction   * :!: Run on the machine doing the content extraction
  
-  cd ~/'Wine Prefixes/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' && mkdir -p 'mmaps' && ./'mmaps_generator' --bigBaseUnit 'true' --threads $(nproc) && sync+  cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && mkdir -p 'mmaps' && ./'mmaps_generator' --bigBaseUnit 'true' --threads $(nproc) && sync
  
 ===== Archive Content ===== ===== Archive Content =====
Line 155: Line 156:
   * :!: Run on the machine that did the content extraction   * :!: Run on the machine that did the content extraction
  
-  cd ~/'Wine Prefixes/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' && tar -cvzf ~/'Downloads/WotLK-content-'$(date +%Y-%m-%d)'.tar.gz' 'dbc' 'maps' 'vmaps' 'mmaps' 'Cameras' && cd ~ && sync+  cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && tar -cvzf ~/'Downloads/WotLK-content-'$(date +%Y-%m-%d)'.tar.gz' 'dbc' 'maps' 'vmaps' 'mmaps' 'Cameras' && cd ~ && sync
  
 ===== Transfer Content to Server ===== ===== Transfer Content to Server =====
Line 162: Line 163:
   * :!: Run on the machine that did the content extraction   * :!: Run on the machine that did the content extraction
  
-  cd ~/'Wine Prefixes/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' && scp -r 'dbc' 'maps' 'vmaps' 'mmaps' 'Cameras' espionage724@192.168.1.152:~+  cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && scp -r 'dbc' 'maps' 'vmaps' 'mmaps' 'Cameras' espionage724@192.168.1.152:~
  
 ===== Cleanup on Client ===== ===== Cleanup on Client =====
Line 168: Line 169:
   * :!: Run on the machine that did the content extraction   * :!: Run on the machine that did the content extraction
  
-  cd ~/'Wine Prefixes/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft' && rm -Rf 'Buildings' 'Cameras' 'dbc' 'maps' 'vmaps' 'mmaps' && cd ~/'Downloads' && rm -f 'mapextractor' 'vmap4extractor' 'vmap4assembler' 'mmaps_generator' && sync+  cd ~/'.wine/World of Warcraft 3.3.5/drive_c/Program Files/World of Warcraft 3.3.5a.12340'*'/' && rm -Rf 'Buildings' 'Cameras' 'dbc' 'maps' 'vmaps' 'mmaps' && cd ~/'Downloads' && rm -f 'mapextractor' 'vmap4extractor' 'vmap4assembler' 'mmaps_generator' && sync
  
 ===== Move Content on Server ===== ===== Move Content on Server =====
Line 179: Line 180:
   sudo restorecon -F -I -R '/var/lib/trinity/Projects/trinity-335' && sync   sudo restorecon -F -I -R '/var/lib/trinity/Projects/trinity-335' && sync
  
-====== Settings ======+====== SELinux ======
  
-===== authserver =====+  sudo semanage fcontext --add --type 'bin_t' '/var/lib/trinity/Projects/trinity-335/run/bin/authserver' && sudo restorecon -F -I -R -v '/var/lib/trinity/Projects/trinity-335/run/bin/authserver'
  
-==== Copy ====+  sudo semanage fcontext --add --type 'bin_t' '/var/lib/trinity/Projects/trinity-335/run/bin/worldserver' && sudo restorecon -F -I -R -v '/var/lib/trinity/Projects/trinity-335/run/bin/worldserver'
  
-  sudo su 'trinity' -s '/usr/bin/bash' +====== Settings ======
- +
-  cp ~/'Projects/trinity-335/run/etc/authserver.conf.dist' ~/'Projects/trinity-335/run/etc/authserver.conf' +
- +
-==== Settings ==== +
- +
-  sudo su 'trinity' -s '/usr/bin/bash' +
- +
-  nano ~/'Projects/trinity-335/run/etc/authserver.conf' +
- +
-<code> +
-WrongPass.MaxCount = 5 +
-WrongPass.BanTime = 0 +
- +
-StrictVersionCheck = 1 +
- +
-LoginDatabaseInfo = ".;/var/lib/mysql/mysql.sock;authserver;x;authserver" +
- +
-Updates.EnableDatabases = 1 +
- +
-Updates.CleanDeadRefMaxCount = -1</code> +
- +
-===== worldserver ===== +
- +
-==== Copy ==== +
- +
-  sudo su 'trinity' -s '/usr/bin/bash' +
- +
-  cp ~/'Projects/trinity-335/run/etc/worldserver.conf.dist' ~/'Projects/trinity-335/run/etc/worldserver.conf' +
- +
-==== Settings ==== +
- +
-  sudo su 'trinity' -s '/usr/bin/bash' +
- +
-  nano ~/'Projects/trinity-335/run/etc/worldserver.conf' +
- +
-<code> +
-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" +
- +
-MaxCoreStuckTime = 10 +
- +
-CleanCharacterDB = 1 +
-PersistentCharacterCleanFlags = 14 +
- +
-RealmZone = 2 +
-StrictPlayerNames = 1 +
-StrictCharterNames = 1 +
-StrictPetNames = 1 +
- +
-DBC.Locale = 0   +
- +
-Instance.IgnoreRaid = 1 +
- +
-Quests.LowLevelHideDiff = -1 +
- +
-Motd = "Welcome to the Realm of Espionage World of Warcraft server!" +
-Server.LoginInfo = 1 +
-BirthdayTime = 1170471600 +
- +
-Updates.CleanDeadRefMaxCount = -1 +
- +
-Warden.Enabled = 0 +
- +
-PreserveCustomChannels = 0 +
- +
-Ra.Enable = 1 +
- +
-PacketSpoof.Policy = 0</code> +
- +
-=== Production === +
- +
-<code> +
-Warden.Enabled = 1 +
-Warden.ClientCheckFailAction = 2 +
- +
-SOAP.Enabled = 1 +
-SOAP.IP = "0.0.0.0" +
- +
-PreventRenameCharacterOnCustomization = 1 +
- +
-PacketSpoof.Policy +
-PacketSpoof.BanMode 2+
  
-AntiCheat.PendingMoveChangesTimeoutTime = 3000</code>+  * See [[notes:trinitycore_confs|authserver.conf and worldserver.conf]]
  
 ====== Create GM Account ====== ====== Create GM Account ======
Line 296: Line 214:
   * Any additional console use should come from ''telnet'' from a remote machine on the local network   * Any additional console use should come from ''telnet'' from a remote machine on the local network
   * :!: Credentials for the remote console are the same as the GM account created above   * :!: Credentials for the remote console are the same as the GM account created above
 +  * 2023/07/30: TODO: ''sed'' didn't work as-expected, hence this isn't a one-liner :p
  
   sudo su 'trinity' -s '/usr/bin/bash'   sudo su 'trinity' -s '/usr/bin/bash'
Line 320: Line 239:
  
 ===== Two-Factor Authentication ===== ===== Two-Factor Authentication =====
 +
 +  * :!: 2023/07/30: This may have different behavior, see ''TOTPMasterSecret'' in auth and world confs
  
   * To be done after databases are initialized   * To be done after databases are initialized
Line 327: Line 248:
   * Authenticator will be prompted from the game client on each log-in   * Authenticator will be prompted from the game client on each log-in
  
-  mysql -u root -p+  sudo mysql
  
   UPDATE `authserver`.`account` SET `token_key` = 'x' WHERE `account`.`id` = 1   UPDATE `authserver`.`account` SET `token_key` = 'x' WHERE `account`.`id` = 1
Line 338: Line 259:
  
 ===== authserver ===== ===== authserver =====
- 
-==== Service ==== 
  
   sudo -e '/etc/systemd/system/tc-335-auth.service' && sudo systemctl daemon-reload && sudo systemctl enable 'tc-335-auth'   sudo -e '/etc/systemd/system/tc-335-auth.service' && sudo systemctl daemon-reload && sudo systemctl enable 'tc-335-auth'
Line 360: Line 279:
 [Install] [Install]
 WantedBy=multi-user.target</code> WantedBy=multi-user.target</code>
- 
-=== SELinux === 
- 
-  * :!: May have to re-run this series of commands over-time 
- 
-  sudo setenforce 0 
- 
-  sudo systemctl start 'tc-335-auth' && sudo systemctl status 'tc-335-auth' -l 
- 
-  mkdir -p ~/'policies' && cd ~/'policies' && sudo grep 'authserver' '/var/log/audit/audit.log' | sudo audit2allow -M 'authserver' && sudo semodule -i 'authserver.pp' && cd ~ 
- 
-  sudo setenforce 1 
- 
-  nano ~/'policies/authserver.te' 
  
 ===== worldserver ===== ===== worldserver =====
  
-  * :!: Make sure worldserver's Console is disabled before starting the ''worldserver'' service (see [[servers:games:trinitycore_3.3.5#disable_console|configuration]]) +  * :!: Make sure worldserver's Console is disabled before starting the ''worldserver'' service
- +
-==== Service ====+
  
   sudo -e '/etc/systemd/system/tc-335-world.service' && sudo systemctl daemon-reload && sudo systemctl enable 'tc-335-world'   sudo -e '/etc/systemd/system/tc-335-world.service' && sudo systemctl daemon-reload && sudo systemctl enable 'tc-335-world'
Line 400: Line 303:
 [Install] [Install]
 WantedBy=multi-user.target</code> WantedBy=multi-user.target</code>
- 
-=== SELinux === 
- 
-  * :!: May have to re-run this series of commands over-time 
- 
-  sudo setenforce 0 
- 
-  sudo systemctl start 'tc-335-world' && sudo systemctl status 'tc-335-world' -l 
- 
-  mkdir -p ~/'policies' && cd ~/'policies' && sudo grep 'worldserver' '/var/log/audit/audit.log' | sudo audit2allow -M 'worldserver' && sudo semodule -i 'worldserver.pp' && cd ~ 
- 
-  sudo setenforce 1 
- 
-  nano ~/'policies/worldserver.te' 
  
 ===== Information ===== ===== Information =====
Line 567: Line 456:
  
   * This backs up an archive to the local disk   * This backs up an archive to the local disk
-  * :!: Everything below this line may need re-factored and isn't tested with the updated notes as of 2019/02/19 
  
 ==== authserver ==== ==== authserver ====
Line 661: Line 549:
 ==== Backup Database ==== ==== Backup Database ====
  
-  mysqldump -u 'root' -p --defaults-extra-file='/var/lib/mysql/auth/authserver' --single-transaction 'authserver' -r ~/'authserver-database-manual-'$(date +%Y-%m-%d)'.sql' && sync+  sudo mysqldump --defaults-extra-file='/var/lib/mysql/auth/authserver' --single-transaction 'authserver' -r ~/'authserver-database-manual-'$(date +%Y-%m-%d)'.sql' && sync
  
-  mysqldump -u 'root' -p --defaults-extra-file='/var/lib/mysql/auth/characters' --single-transaction 'characters' -r ~/'characters-database-manual-'$(date +%Y-%m-%d)'.sql' && sync+  sudo mysqldump --defaults-extra-file='/var/lib/mysql/auth/characters' --single-transaction 'characters' -r ~/'characters-database-manual-'$(date +%Y-%m-%d)'.sql' && sync
  
 ==== Start Services ==== ==== Start Services ====
Line 713: Line 601:
 ==== Drop Previous Database ==== ==== Drop Previous Database ====
  
-  mysql -u 'root' -p+  sudo mysql
  
   DROP DATABASE authserver;   DROP DATABASE authserver;
Line 723: Line 611:
 ==== Re-create Databases ==== ==== Re-create Databases ====
  
-  mysql -u 'root' -p+  sudo mysql
  
   CREATE DATABASE authserver;   CREATE DATABASE authserver;
Line 731: Line 619:
 ==== Restore Database ==== ==== Restore Database ====
  
-  mysql -u 'root' -p 'authserver' < ~/'authserver-database-'*'.sql' && sync+  sudo mysql 'authserver' < ~/'authserver-database-'*'.sql' && sync
  
-  mysql -u 'root' -p 'characters' < ~/'characters-database-'*'.sql' && sync+  sudo mysql 'characters' < ~/'characters-database-'*'.sql' && sync
  
 ==== Reapply Permissions ==== ==== Reapply Permissions ====
  
-  mysql -u 'root' -p+  sudo mysql
  
   GRANT ALL PRIVILEGES ON authserver.* to 'authserver'@'localhost' IDENTIFIED BY 'x';   GRANT ALL PRIVILEGES ON authserver.* to 'authserver'@'localhost' IDENTIFIED BY 'x';
Line 756: Line 644:
  
   rm ~/'authserver-database-'*'.sql' ~/'characters-database-'*'.sql' && sync   rm ~/'authserver-database-'*'.sql' ~/'characters-database-'*'.sql' && sync
 +
C:/www/wiki/data/pages/servers/games/trinitycore_3.3.5.txt · Last modified: 2023/07/31 08:27 by Sean Rhone