Browse Source

Merge branch 'release/v23.7.0'

pull/4408/head v23.7.0
Daniel Gibbs 1 year ago
parent
commit
2e0d053c84
No known key found for this signature in database GPG Key ID: 2076B128385E8C55
  1. 5
      lgsm/config-default/config-lgsm/arkserver/_default.cfg
  2. 2
      lgsm/config-default/config-lgsm/arma3server/_default.cfg
  3. 6
      lgsm/config-default/config-lgsm/btlserver/_default.cfg
  4. 2
      lgsm/config-default/config-lgsm/cod2server/_default.cfg
  5. 2
      lgsm/config-default/config-lgsm/cod4server/_default.cfg
  6. 2
      lgsm/config-default/config-lgsm/codserver/_default.cfg
  7. 2
      lgsm/config-default/config-lgsm/coduoserver/_default.cfg
  8. 2
      lgsm/config-default/config-lgsm/codwawserver/_default.cfg
  9. 2
      lgsm/config-default/config-lgsm/colserver/_default.cfg
  10. 2
      lgsm/config-default/config-lgsm/ctserver/_default.cfg
  11. 2
      lgsm/config-default/config-lgsm/dayzserver/_default.cfg
  12. 4
      lgsm/config-default/config-lgsm/gmodserver/_default.cfg
  13. 4
      lgsm/config-default/config-lgsm/hcuserver/_default.cfg
  14. 8
      lgsm/config-default/config-lgsm/inssserver/_default.cfg
  15. 2
      lgsm/config-default/config-lgsm/jk2server/_default.cfg
  16. 2
      lgsm/config-default/config-lgsm/kfserver/_default.cfg
  17. 3
      lgsm/config-default/config-lgsm/mhserver/_default.cfg
  18. 2
      lgsm/config-default/config-lgsm/mohaaserver/_default.cfg
  19. 3
      lgsm/config-default/config-lgsm/momserver/_default.cfg
  20. 4
      lgsm/config-default/config-lgsm/ns2cserver/_default.cfg
  21. 11
      lgsm/config-default/config-lgsm/ns2server/_default.cfg
  22. 4
      lgsm/config-default/config-lgsm/ohdserver/_default.cfg
  23. 1
      lgsm/config-default/config-lgsm/onsetserver/_default.cfg
  24. 6
      lgsm/config-default/config-lgsm/psserver/_default.cfg
  25. 5
      lgsm/config-default/config-lgsm/pvrserver/_default.cfg
  26. 2
      lgsm/config-default/config-lgsm/q3server/_default.cfg
  27. 36
      lgsm/config-default/config-lgsm/q4server/_default.cfg
  28. 3
      lgsm/config-default/config-lgsm/rustserver/_default.cfg
  29. 4
      lgsm/config-default/config-lgsm/sampserver/_default.cfg
  30. 2
      lgsm/config-default/config-lgsm/sbotsserver/_default.cfg
  31. 7
      lgsm/config-default/config-lgsm/sfserver/_default.cfg
  32. 4
      lgsm/config-default/config-lgsm/squadserver/_default.cfg
  33. 3
      lgsm/config-default/config-lgsm/tiserver/_default.cfg
  34. 2
      lgsm/config-default/config-lgsm/tuserver/_default.cfg
  35. 2
      lgsm/config-default/config-lgsm/ut3server/_default.cfg
  36. 6
      lgsm/config-default/config-lgsm/wurmserver/_default.cfg
  37. 2
      lgsm/data/almalinux-8.csv
  38. 2
      lgsm/data/almalinux-9.csv
  39. 2
      lgsm/data/centos-7.csv
  40. 2
      lgsm/data/centos-8.csv
  41. 2
      lgsm/data/centos-9.csv
  42. 2
      lgsm/data/debian-10.csv
  43. 2
      lgsm/data/debian-11.csv
  44. 2
      lgsm/data/debian-12.csv
  45. 2
      lgsm/data/debian-9.csv
  46. BIN
      lgsm/data/gameicons/cd-icon.png
  47. BIN
      lgsm/data/gameicons/q4-icon.png
  48. 2
      lgsm/data/rhel-7.csv
  49. 2
      lgsm/data/rhel-8.csv
  50. 2
      lgsm/data/rhel-9.csv
  51. 2
      lgsm/data/rocky-8.csv
  52. 2
      lgsm/data/rocky-9.csv
  53. 2
      lgsm/data/serverlist.csv
  54. 2
      lgsm/data/ubuntu-16.04.csv
  55. 2
      lgsm/data/ubuntu-18.04.csv
  56. 2
      lgsm/data/ubuntu-20.04.csv
  57. 2
      lgsm/data/ubuntu-22.04.csv
  58. 2
      lgsm/data/ubuntu-23.04.csv
  59. 2
      lgsm/data/ubuntu-23.10.csv
  60. 11
      lgsm/modules/check_config.sh
  61. 6
      lgsm/modules/check_deps.sh
  62. 59
      lgsm/modules/check_system_requirements.sh
  63. 2
      lgsm/modules/command_backup.sh
  64. 2
      lgsm/modules/command_debug.sh
  65. 46
      lgsm/modules/command_start.sh
  66. 2
      lgsm/modules/core_getopt.sh
  67. 2
      lgsm/modules/core_modules.sh
  68. 4
      lgsm/modules/core_steamcmd.sh
  69. 4
      lgsm/modules/fix.sh
  70. 2
      lgsm/modules/fix_armar.sh
  71. 129
      lgsm/modules/fix_kf.sh
  72. 28
      lgsm/modules/fix_nmrih.sh
  73. 18
      lgsm/modules/fix_rust.sh
  74. 6
      lgsm/modules/fix_vh.sh
  75. 184
      lgsm/modules/info_distro.sh
  76. 51
      lgsm/modules/info_game.sh
  77. 31
      lgsm/modules/info_messages.sh
  78. 18
      lgsm/modules/info_stats.sh
  79. 16
      lgsm/modules/install_config.sh
  80. 9
      lgsm/modules/install_server_files.sh
  81. 2
      lgsm/modules/mods_list.sh
  82. 2
      linuxgsm.sh

5
lgsm/config-default/config-lgsm/arkserver/_default.cfg

@ -12,14 +12,13 @@
ip="0.0.0.0"
port="7777"
queryport="27015"
rconport="27020"
# Default Map: TheIsland, Ragnarok, CrystalIsles, Aberration_P, ScorchedEarth_P, TheCenter, Extinction, Valguero_P, Genesis, Gen2
defaultmap="TheIsland"
altsavedirectoryname="${defaultmap}"
maxplayers="70"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="${defaultmap}?AltSaveDirectoryName=${altsavedirectoryname}?listen?MultiHome=${ip}?MaxPlayers=${maxplayers}?QueryPort=${queryport}?RCONPort=${rconport}?Port=${port} -automanagedmods -crossplay -PublicIPForEpic=${publicip}"
## Game Server Docs | https://ark.wiki.gg/wiki/Server_configuration
startparameters="${defaultmap}?AltSaveDirectoryName=${altsavedirectoryname} -MultiHome=${ip} -Port=${port} -QueryPort=${queryport} -AutoManagedMods -Crossplay -PublicIPForEpic=${publicip}"
#### LinuxGSM Settings ####

2
lgsm/config-default/config-lgsm/arma3server/_default.cfg

@ -32,7 +32,7 @@ servermods=""
bepath=""
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-ip=${ip} -port=${port} -cfg=${networkcfgfullpath} -config=${servercfgfullpath} -mod='${mods}' -servermod=${servermods} -bepath=${bepath} -autoinit -loadmissiontomemory"
startparameters="-ip=${ip} -port=${port} -cfg=${networkcfgfullpath} -config=${servercfgfullpath} -mod=${mods} -servermod=${servermods} -bepath=${bepath} -autoinit -loadmissiontomemory"
#### LinuxGSM Settings ####

6
lgsm/config-default/config-lgsm/btlserver/_default.cfg

@ -14,7 +14,7 @@ port="7777"
queryport="7780"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="/Game/Maps/Final_Maps/Derailed?Game=/Script/ShooterGame.WartideGameMode?listen -log -broadcastip=\"${publicip}\" -PORT=${port} -QueryPort=${queryport} -defgameini=\"${servercfgfullpath}\""
startparameters="-Port=${port} -QueryPort=${queryport} -BroadcastIp=${publicip} -log"
#### LinuxGSM Settings ####
@ -157,8 +157,8 @@ systemdir="${serverfiles}/Battalion"
executabledir="${systemdir}/Binaries/Linux"
executable="./BattalionServer-Linux-Shipping"
servercfgdir="${systemdir}/Saved/Config/LinuxServer"
servercfg="${selfname}.ini"
servercfgdefault="DefaultGame.ini"
servercfg="Game.ini"
servercfgdefault="Game.ini"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory

2
lgsm/config-default/config-lgsm/cod2server/_default.cfg

@ -15,7 +15,7 @@ defaultmap="mp_leningrad"
maxplayers="20"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +exec ${servercfg} +map ${defaultmap}"
startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +map ${defaultmap} +exec ${servercfg}"
#### LinuxGSM Settings ####

2
lgsm/config-default/config-lgsm/cod4server/_default.cfg

@ -15,7 +15,7 @@ defaultmap="mp_crossfire"
maxplayers="32"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set fs_homepath ${serverfiles} +set sv_authorizemode "-1" +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +exec ${servercfg} +map ${defaultmap}"
startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set fs_homepath ${serverfiles} +set sv_authorizemode "-1" +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +map ${defaultmap} +exec ${servercfg}"
#### LinuxGSM Settings ####

2
lgsm/config-default/config-lgsm/codserver/_default.cfg

@ -15,7 +15,7 @@ defaultmap="mp_neuville"
maxplayers="20"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +exec ${servercfg} +map ${defaultmap}"
startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +map ${defaultmap} +exec ${servercfg}"
#### LinuxGSM Settings ####

2
lgsm/config-default/config-lgsm/coduoserver/_default.cfg

@ -15,7 +15,7 @@ defaultmap="mp_cassino"
maxplayers="20"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +exec ${servercfg} +map ${defaultmap}"
startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +map ${defaultmap} +exec ${servercfg}"
#### LinuxGSM Settings ####

2
lgsm/config-default/config-lgsm/codwawserver/_default.cfg

@ -15,7 +15,7 @@ defaultmap="mp_castle"
maxplayers="20"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +exec ${servercfg} +map ${defaultmap}"
startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +set sv_maxclients ${maxplayers} +map ${defaultmap} +exec ${servercfg}"
#### LinuxGSM Settings ####

2
lgsm/config-default/config-lgsm/colserver/_default.cfg

@ -136,7 +136,7 @@ querymode="2"
querytype="protocol-valve"
## Console type
consoleverbose="no"
consoleverbose="yes"
consoleinteract="no"
## Game Server Details

2
lgsm/config-default/config-lgsm/ctserver/_default.cfg

@ -135,7 +135,7 @@ querymode="1"
querytype=""
## Console type
consoleverbose="no"
consoleverbose="yes"
consoleinteract="yes"
## Game Server Details

2
lgsm/config-default/config-lgsm/dayzserver/_default.cfg

@ -128,7 +128,7 @@ steamcmdforcewindows="no"
branch=""
betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
steammaster="true"
## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
# 1: tmux kill

4
lgsm/config-default/config-lgsm/gmodserver/_default.cfg

@ -19,8 +19,6 @@ tickrate="66"
gamemode="sandbox"
## Workshop Parameters | https://wiki.facepunch.com/gmod/Workshop_for_Dedicated_Servers
# To get an API key visit - https://steamcommunity.com/dev/apikey
wsapikey=""
wscollectionid=""
## Game Server Login Token (GSLT): Optional
@ -29,7 +27,7 @@ wscollectionid=""
gslt=""
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-game garrysmod -strictportbind -ip ${ip} -port ${port} -tickrate ${tickrate} +host_workshop_collection ${wscollectionid} -authkey ${wsapikey} +clientport ${clientport} +tv_port ${sourcetvport} +gamemode ${gamemode} +map ${defaultmap} +sv_setsteamaccount ${gslt} +servercfgfile ${servercfg} -maxplayers ${maxplayers} -disableluarefresh"
startparameters="-game garrysmod -strictportbind -ip ${ip} -port ${port} -tickrate ${tickrate} +host_workshop_collection ${wscollectionid} +clientport ${clientport} +tv_port ${sourcetvport} +gamemode ${gamemode} +map ${defaultmap} +sv_setsteamaccount ${gslt} +servercfgfile ${servercfg} -maxplayers ${maxplayers} -disableluarefresh"
#### LinuxGSM Settings ####

4
lgsm/config-default/config-lgsm/hcuserver/_default.cfg

@ -17,7 +17,7 @@ queryport="27015"
servername="LinuxGSM"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="${defaultmap}?Difficulty=1?Game=DM?MapList=KidsBedroom,Playground,Garden,Hallway_Simple,Bathroom,Hallway_Hard,Attic_Daytime,Shed,ToyPalace,Kitchen,Garage?MaxPlayers=${maxplayers}?WeaponTypes=7?TimeLimit=600?ScoreLimit=30?Teamplay -ServerName='${servername}' -Port=${port} -QueryPort=${queryport} -NOCONSOLE -unattended"
startparameters="${defaultmap}?MaxPlayers=${maxplayers} -ServerName='${servername}' -Port=${port} -QueryPort=${queryport}"
## Server Parameters for Plague mode
#startparameters="${defaultmap}?Game=PL?MapList=KidsBedroom,Garden,Hallway_Simple,Attic_Daytime,Garage,Shed,Kitchen,Hallway_Hard,ToyPalace,Bathroom?MaxPlayers=${maxplayers}?WeaponTypes=7?TimeLimit=600 -ServerName='${servername}' -Port=${port} -QueryPort=${queryport} -NOCONSOLE -unattended"
@ -150,7 +150,7 @@ querymode="1"
querytype=""
## Console type
consoleverbose="no"
consoleverbose="yes"
consoleinteract="no"
## Game Server Details

8
lgsm/config-default/config-lgsm/inssserver/_default.cfg

@ -13,10 +13,10 @@ ip="0.0.0.0"
port="27102"
queryport="27131"
rconport="27015"
rconpassword=""
rconpassword="CHANGE_ME"
servername="LinuxGSM"
defaultmap="Canyon"
defaultscenario="Scenario_Crossing_Push_Security"
defaultmap="Oilfield"
defaultscenario="Scenario_Refinery_Push_Security"
maxplayers="28"
## Game Server Login Token (GSLT): Optional
@ -25,7 +25,7 @@ maxplayers="28"
gslt=""
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
## Parameter Docs | https://mod.io/g/insurgencysandstorm/r/server-admin-guide
## Game Server Docs | https://mod.io/g/insurgencysandstorm/r/server-admin-guide
startparameters="${defaultmap}?Scenario=${defaultscenario}?MaxPlayers=${maxplayers} -Port=${port} -QueryPort=${queryport} -hostname='${servername}' -Rcon -RconPassword=${rconpassword} -RconListenPort=${rconport} -GSLTToken=${gslt} -log"
#### LinuxGSM Settings ####

2
lgsm/config-default/config-lgsm/jk2server/_default.cfg

@ -18,7 +18,7 @@ port="27960"
defaultmap="ffa_bespin"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set net_ip ${ip} +set net_port ${port} +exec ${servercfg} +map ${defaultmap}"
startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set net_ip ${ip} +set net_port ${port} +map ${defaultmap} +exec ${servercfg}"
#### LinuxGSM Settings ####

2
lgsm/config-default/config-lgsm/kfserver/_default.cfg

@ -121,7 +121,7 @@ steamcmdforcewindows="no"
branch=""
betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
steammaster="true"
## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
# 1: tmux kill

3
lgsm/config-default/config-lgsm/mhserver/_default.cfg

@ -17,7 +17,8 @@ queryport="27015"
defaultmap="FFA_ThePit"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="Mordhau ${defaultmap} -log -MultiHome=${ip} -Port=${port} -BeaconPort=${beaconport} -QueryPort=${queryport} -GameIni=${servercfgfullpath}"
## Game Server Docs | https://mordhau.fandom.com/wiki/Dedicated_Server_Hosting_Guide
startparameters="Mordhau ${defaultmap} -MultiHome=${ip} -Port=${port} -BeaconPort=${beaconport} -QueryPort=${queryport} -GameIni=${servercfgfullpath} -log"
#### LinuxGSM Settings ####

2
lgsm/config-default/config-lgsm/mohaaserver/_default.cfg

@ -14,7 +14,7 @@ port="12203"
defaultmap="dm/mohdm1"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set fs_outputpath ${gamelogdir} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +exec ${servercfg} +map ${defaultmap}"
startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set fs_outputpath ${gamelogdir} +set dedicated 2 +set net_ip ${ip} +set net_port ${port} +map ${defaultmap} +exec ${servercfg} "
#### LinuxGSM Settings ####

3
lgsm/config-default/config-lgsm/momserver/_default.cfg

@ -14,7 +14,8 @@ port="7777"
beaconport="15000"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-port="${port}" -beaconport="${beaconport}" -MULTIHOME="${ip}""
## Game Server Docs | https://memoriesofmars.fandom.com/wiki/Dedicated_Servers
startparameters="-MultiHome=${ip} -Port=${port} -BeaconPort=${beaconport} -log"
#### LinuxGSM Settings ####

4
lgsm/config-default/config-lgsm/ns2cserver/_default.cfg

@ -15,7 +15,7 @@ defaultmap="co_core"
maxplayers="24"
servername="LinuxGSM"
httpuser="admin"
httppassword="admin"
httppassword="CHANGE_ME"
httpport="8080"
mods=""
serverpassword=""
@ -24,7 +24,7 @@ serverpassword=""
# -password \"${serverpassword}\"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-name \"${servername}\" -port ${port} -webadmin -webdomain ${ip} -webuser ${httpuser} -webpassword \"${httppassword}\" -webport ${httpport} -map ${defaultmap} -limit ${maxplayers} -config_path \"${servercfgdir}\" -modstorage \"${modstoragedir}\" -mods \"${mods}\""
startparameters="-name '${servername}' -port ${port} -webadmin -webdomain ${ip} -webuser ${httpuser} -webpassword '${httppassword}' -webport ${httpport} -map ${defaultmap} -limit ${maxplayers} -config_path '${servercfgdir}' -modstorage '${modstoragedir}' -mods '${mods}'"
#### LinuxGSM Settings ####

11
lgsm/config-default/config-lgsm/ns2server/_default.cfg

@ -12,19 +12,20 @@
ip="0.0.0.0"
port="27015"
defaultmap="ns2_summit"
maxplayers="24"
maxplayers="20"
maxspectators="5"
servername="LinuxGSM"
httpuser="admin"
httppassword="admin"
httppassword="CHANGE_ME"
httpport="8080"
mods=""
modserverport="27031"
serverpassword=""
# Add the following line to the parms if you want a private server. Ensuring
# that the password variable above is not left empty.
# -password \"${serverpassword}\"
# -password '${serverpassword}'
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-name \"${servername}\" -port ${port} -webadmin -webdomain ${ip} -webuser ${httpuser} -webpassword \"${httppassword}\" -webport ${httpport} -map ${defaultmap} -limit ${maxplayers} -config_path \"${servercfgdir}\" -logdir \"${gamelogdir}\" -modstorage \"${modstoragedir}\" -mods2 \"${mods}\""
startparameters="-name '${servername}' -port ${port} -webadmin -webdomain ${ip} -webuser ${httpuser} -webpassword '${httppassword}' -webport ${httpport} -startmodserver -modserverport ${modserverport} -map ${defaultmap} -limit ${maxplayers} -speclimit ${maxspectators} -config_path '${servercfgdir}' -logdir '${gamelogdir}' -modstorage '${modstoragedir}'"
#### LinuxGSM Settings ####

4
lgsm/config-default/config-lgsm/ohdserver/_default.cfg

@ -12,14 +12,14 @@
ip="0.0.0.0"
port="7777"
queryport="27005"
rconport="7778"
servername="LinuxGSM"
serverpassword=""
# Maps: risala, khafji_p, lamdong, montecassino, argonne
defaultmap="AAS-TestMap"
maxplayers="16"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="${defaultmap}?MaxPlayers=${maxplayers}?Password=${serverpassword} -Port=${port} -QueryPort=${queryport} -SteamServerName='${servername}' -log"
startparameters="${defaultmap}?MaxPlayers=${maxplayers} -MultiHome=${ip} -Port=${port} -QueryPort=${queryport} -RconPort=${rconport} -SteamServerName='${servername}' -log"
#### LinuxGSM Settings ####

1
lgsm/config-default/config-lgsm/onsetserver/_default.cfg

@ -9,6 +9,7 @@
#### Game Server Settings ####
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
## Game Server Docs | https://dev.playonset.com/wiki/DedicatedServer
startparameters="--config ${servercfgfullpath}"
#### LinuxGSM Settings ####

6
lgsm/config-default/config-lgsm/psserver/_default.cfg

@ -10,15 +10,11 @@
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
maxplayers="40"
port="10027"
queryport="10037"
randommap="NONE"
reservedslots="0"
tickrate="50"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="MULTIHOME=${ip} RANDOM=${randommap} Port=${port} QueryPort=${queryport} FIXEDMAXPLAYERS=${maxplayers} FIXEDMAXTICKRATE=${tickrate} NumReservedSlots=${reservedslots}"
startparameters="-MultiHome=${ip} -Port=${port} -QueryPort=${queryport} -log"
#### LinuxGSM Settings ####

5
lgsm/config-default/config-lgsm/pvrserver/_default.cfg

@ -17,7 +17,8 @@ defaultmap="datacenter"
apikey=""
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="Pavlov ${defaultmap} -log -MultiHome=${ip} -Port=${port} ApiKey=${apikey}"
## Game Server Docs | http://pavlovwiki.com/index.php/Setting_up_a_dedicated_server
startparameters="Pavlov ${defaultmap} -MultiHome=${ip} -Port=${port} ApiKey=${apikey} -log"
#### LinuxGSM Settings ####
@ -149,7 +150,7 @@ consoleinteract="no"
## Game Server Details
# Do not edit
gamename="Pavlov VR"
engine="unreal4"
engine="unreal5"
glibc="2.17"
#### Directories ####

2
lgsm/config-default/config-lgsm/q3server/_default.cfg

@ -14,7 +14,7 @@ port="27960"
defaultmap="q3dm17"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set com_hunkMegs 32 +set net_ip ${ip} +set net_port ${port} +exec ${servercfg} +map ${defaultmap}"
startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set dedicated 2 +set com_hunkMegs 32 +set net_ip ${ip} +set net_port ${port} +map ${defaultmap} +exec ${servercfg}"
#### LinuxGSM Settings ####

36
lgsm/config-default/config-lgsm/cdserver/_default.cfg → lgsm/config-default/config-lgsm/q4server/_default.cfg

@ -8,8 +8,15 @@
#### Game Server Settings ####
## SteamCMD Login | https://docs.linuxgsm.com/steamcmd#steamcmd-login
steamuser="username"
steampass='password'
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
port="28004"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-batchmode -nographics"
startparameters="+set sv_punkbuster 0 +set fs_basepath ${serverfiles} +set net_port ${port} +exec ${servercfg}"
#### LinuxGSM Settings ####
@ -103,8 +110,8 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="685100"
steamcmdforcewindows="no"
appid="2210"
steamcmdforcewindows="yes"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
betapassword=""
@ -123,7 +130,7 @@ steammaster="false"
# 9: GoldSrc
# 10: Avorion
# 11: end
stopmode="2"
stopmode="3"
## Query mode
# 1: session only
@ -131,17 +138,17 @@ stopmode="2"
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="1"
querytype=""
querymode="2"
querytype="quake4"
## Console type
consoleverbose="yes"
consoleinteract="no"
consoleinteract="yes"
## Game Server Details
# Do not edit
gamename="Crafting Dead"
engine="unity3d"
gamename="Quake 4"
engine="idtech3_ql"
glibc="2.15"
#### Directories ####
@ -150,10 +157,10 @@ glibc="2.15"
## Game Server Directories
systemdir="${serverfiles}"
executabledir="${serverfiles}"
executable="./crafting_dead.x86_64"
servercfgdir="${systemdir}"
servercfg="properties.json"
servercfgdefault="properties.json"
executable="./quake4-dedicated"
servercfgdir="${systemdir}/q4base"
servercfg="${selfname}.cfg"
servercfgdefault="server.cfg"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
@ -161,9 +168,10 @@ backupdir="${lgsmdir}/backup"
## Logging Directories
[ -n "${LGSM_LOGDIR}" ] && logdir="${LGSM_LOGDIR}" || logdir="${rootdir}/log"
gamelogdir="${systemdir}/logs"
gamelogdir="${logdir}/server"
lgsmlogdir="${logdir}/script"
consolelogdir="${logdir}/console"
gamelog="${gamelogdir}/${selfname}-game.log"
lgsmlog="${lgsmlogdir}/${selfname}-script.log"
consolelog="${consolelogdir}/${selfname}-console.log"
alertlog="${lgsmlogdir}/${selfname}-alert.log"

3
lgsm/config-default/config-lgsm/rustserver/_default.cfg

@ -28,7 +28,7 @@ saveinterval="300" # Auto-save in seconds.
tickrate="30" # default: 30, range: 15-100.
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-batchmode +app.listenip ${ip} +app.port ${appport} +server.ip ${ip} +server.port ${port} +server.queryport ${queryport} +server.tickrate ${tickrate} +server.hostname \"${servername}\" +server.identity \"${selfname}\" +server.gamemode ${gamemode} +server.level \"${serverlevel}\" +server.seed ${seed} +server.salt ${salt} +server.maxplayers ${maxplayers} +server.worldsize ${worldsize} +server.saveinterval ${saveinterval} +rcon.web ${rconweb} +rcon.ip ${ip} +rcon.port ${rconport} +rcon.password \"${rconpassword}\" -logfile"
startparameters="-batchmode +app.listenip ${ip} +app.port ${appport} +server.ip ${ip} +server.port ${port} +server.queryport ${queryport} +server.tickrate ${tickrate} +server.hostname \"${servername}\" +server.identity \"${selfname}\" +server.gamemode ${gamemode} +server.level \"${serverlevel}\" +server.seed ${seed} +server.salt ${salt} +server.maxplayers ${maxplayers} +server.worldsize ${worldsize} +server.saveinterval ${saveinterval} +rcon.web ${rconweb} +rcon.ip ${ip} +rcon.port ${rconport} +rcon.password \"${rconpassword}\" -logfile ${gamelog}"
#### LinuxGSM Settings ####
@ -184,6 +184,7 @@ backupdir="${lgsmdir}/backup"
gamelogdir="${logdir}/server"
lgsmlogdir="${logdir}/script"
consolelogdir="${logdir}/console"
gamelog="${gamelogdir}/${selfname}-game.log"
lgsmlog="${lgsmlogdir}/${selfname}-script.log"
consolelog="${consolelogdir}/${selfname}-console.log"
alertlog="${lgsmlogdir}/${selfname}-alert.log"

4
lgsm/config-default/config-lgsm/sampserver/_default.cfg

@ -126,8 +126,8 @@ querymode="3"
querytype="samp"
## Console type
consoleverbose=""
consoleinteract=""
consoleverbose="no"
consoleinteract="no"
## Game Server Details
# Do not edit

2
lgsm/config-default/config-lgsm/sbotsserver/_default.cfg

@ -15,7 +15,7 @@ defaultmap="StationKappa"
servername="LinuxGSM"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="Port=${port}?QueryPort=${queryport} -startup_map ${defaultmap} -server_name \"${servername}\""
startparameters="-MultiHome=${ip} -Port=${port} -QueryPort=${queryport} -startup_map ${defaultmap} -server_name '${servername}'"
#### LinuxGSM Settings ####

7
lgsm/config-default/config-lgsm/sfserver/_default.cfg

@ -15,7 +15,8 @@ beaconport="15000"
port="7777"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="FactoryGame -multihome=${ip} -ServerQueryPort=${queryport} -BeaconPort=${beaconport} -Port=${port} -log -unattended"
## Game Server Docs | https://satisfactory.fandom.com/wiki/Dedicated_servers
startparameters="FactoryGame -MultiHome=${ip} -Port=${port} -ServerQueryPort=${queryport} -BeaconPort=${beaconport} -log"
#### LinuxGSM Settings ####
@ -147,7 +148,7 @@ consoleinteract="no"
## Game Server Details
# Do not edit
gamename="Satisfactory"
engine="unreal4"
engine="unreal5"
glibc="2.17"
#### Directories ####
@ -156,7 +157,7 @@ glibc="2.17"
## Game Server Directories
systemdir="${serverfiles}/FactoryGame"
executabledir="${serverfiles}/Engine/Binaries/Linux"
executable="./UE4Server-Linux-Shipping"
executable="./UnrealServer-Linux-Shipping"
servercfgdir="${systemdir}/Saved/Config/LinuxServer"
servercfg="GameUserSettings.ini"
servercfgdefault="GameUserSettings.ini"

4
lgsm/config-default/config-lgsm/squadserver/_default.cfg

@ -11,10 +11,10 @@
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
port="7787"
queryport="27165"
randommap="ALWAYS"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="MULTIHOME=${ip} RANDOM=${randommap} Port=${port} QueryPort=${queryport}"
## Game Server Docs | https://squad.fandom.com/wiki/Dedicated_server
startparameters="-MultiHome=${ip} -Port=${port} -QueryPort=${queryport}"
#### LinuxGSM Settings ####

3
lgsm/config-default/config-lgsm/tiserver/_default.cfg

@ -14,6 +14,7 @@ port="7777"
defaultmap="/Game/TheIsle/Maps/Game/Isla_Spiro/Isla_Spiro"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
## Game Server Docs | https://isle.fandom.com/wiki/The_Isle_Server_Settings_and_Configuration
startparameters="${defaultmap} -Port=${port} -log"
#### LinuxGSM Settings ####
@ -146,7 +147,7 @@ consoleinteract="no"
## Game Server Details
# Do not edit
gamename="The Isle"
engine="unreal4"
engine="unreal5"
glibc="2.17"
#### Directories ####

2
lgsm/config-default/config-lgsm/tuserver/_default.cfg

@ -19,7 +19,7 @@ queryport="27015"
gslt=""
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-log -MultiHome=${ip} -Port=${port} -QueryPort=${queryport} -TowerServerINI=${selfname}.ini"
startparameters="-MultiHome=${ip} -Port=${port} -QueryPort=${queryport} -TowerServerINI=${selfname}.ini -log"
#### LinuxGSM Settings ####

2
lgsm/config-default/config-lgsm/ut3server/_default.cfg

@ -29,7 +29,7 @@ gspassword=""
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
# List of game types and mutators: https://docs.linuxgsm.com/game-servers/unreal-tournament-3
startparameters="server ${defaultmap}?Game=${game}?bIsDedicated=${isdedicated}?bIsLanMatch=${islanmatch}?bUsesStats=${usesstats}?bShouldAdvertise=${shouldadvertise}?PureServer=${pureserver}?bAllowJoinInProgress=${allowjoininprogress}?Mutator=${mutators}?ConfigSubDir=${selfname} -login=${gsusername} -password=${gspassword} -port=${port} -queryport=${queryport} -multihome=${ip} -nohomedir -unattended -log=${gamelog}"
startparameters="server ${defaultmap}?Game=${game}?bIsDedicated=${isdedicated}?bIsLanMatch=${islanmatch}?bUsesStats=${usesstats}?bShouldAdvertise=${shouldadvertise}?PureServer=${pureserver}?bAllowJoinInProgress=${allowjoininprogress}?Mutator=${mutators}?ConfigSubDir=${selfname} -login=${gsusername} -password=${gspassword} -multihome=${ip} -port=${port} -queryport=${queryport} -nohomedir -unattended -log=${gamelog}"
#### LinuxGSM Settings ####

6
lgsm/config-default/config-lgsm/wurmserver/_default.cfg

@ -27,7 +27,7 @@ homekingdom="4"
# Unlocks the admin commands from within the game, that can be used to change
# the gameplay settings of the server, such as skill gain rate and field growth time.
adminpassword="ADMINPASSWORD"
adminpassword="CHANGE_ME"
# If true the server will follow the rules from the Epic servers in Wurm Online.
# For instance it will use the skill curve.
@ -179,8 +179,8 @@ querymode="2"
querytype="protocol-valve"
## Console type
consoleverbose=""
consoleinteract=""
consoleverbose="yes"
consoleinteract="no"
## Game Server Details
# Do not edit

2
lgsm/data/almalinux-8.csv

@ -19,7 +19,6 @@ bs
bt,libicu,dos2unix,libxml2
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
@ -89,6 +88,7 @@ pvr,libcxx
pz,java-11-openjdk rng-tools
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/almalinux-9.csv

@ -19,7 +19,6 @@ bs
bt,libicu,dos2unix,libxml2
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
@ -89,6 +88,7 @@ pvr,libcxx
pz,java-11-openjdk rng-tools
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/centos-7.csv

@ -19,7 +19,6 @@ bs
bt,libicu,dos2unix,libxml2
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
@ -89,6 +88,7 @@ pvr,libcxx
pz,java-11-openjdk rng-tools
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/centos-8.csv

@ -19,7 +19,6 @@ bs
bt,libicu,dos2unix,libxml2
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
@ -89,6 +88,7 @@ pvr,libcxx
pz,java-11-openjdk rng-tools
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/centos-9.csv

@ -19,7 +19,6 @@ bs
bt,libicu,dos2unix,libxml2
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
@ -89,6 +88,7 @@ pvr,libcxx
pz,java-11-openjdk rng-tools
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/debian-10.csv

@ -19,7 +19,6 @@ bs
bt,libicu-dev,dos2unix,libxml2-utils
btl
cc
cd
ck,xvfb,libxi6
cmw
cod,libstdc++5:i386
@ -89,6 +88,7 @@ pvr,libc++1
pz,openjdk-11-jre,rng-tools
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/debian-11.csv

@ -19,7 +19,6 @@ bs
bt,libicu-dev,dos2unix,libxml2-utils
btl
cc
cd
ck,xvfb,libxi6
cmw
cod,libstdc++5:i386
@ -89,6 +88,7 @@ pvr,libc++1
pz,openjdk-17-jre,rng-tools
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/debian-12.csv

@ -19,7 +19,6 @@ bs
bt,libicu-dev,dos2unix,libxml2-utils
btl
cc
cd
ck,xvfb,libxi6
cmw
cod,libstdc++5:i386
@ -89,6 +88,7 @@ pvr,libc++1
pz,openjdk-17-jre,rng-tools5
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/debian-9.csv

@ -19,7 +19,6 @@ bs
bt,libicu-dev,dos2unix,libxml2-utils
btl
cc
cd
ck,xvfb,libxi6
cmw
cod,libstdc++5:i386
@ -89,6 +88,7 @@ pvr,libc++1
pz,openjdk-8-jre,rng-tools
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

BIN
lgsm/data/gameicons/cd-icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

BIN
lgsm/data/gameicons/q4-icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 786 B

2
lgsm/data/rhel-7.csv

@ -19,7 +19,6 @@ bs
bt,libicu,dos2unix,libxml2
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
@ -89,6 +88,7 @@ pvr,libcxx
pz,java-11-openjdk rng-tools
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/rhel-8.csv

@ -19,7 +19,6 @@ bs
bt,libicu,dos2unix,libxml2
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
@ -89,6 +88,7 @@ pvr,libcxx
pz,java-11-openjdk rng-tools
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/rhel-9.csv

@ -19,7 +19,6 @@ bs
bt,libicu,dos2unix,libxml2
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
@ -89,6 +88,7 @@ pvr,libcxx
pz,java-11-openjdk rng-tools
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/rocky-8.csv

@ -19,7 +19,6 @@ bs
bt,libicu,dos2unix,libxml2
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
@ -89,6 +88,7 @@ pvr,libcxx
pz,java-11-openjdk rng-tools
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/rocky-9.csv

@ -19,7 +19,6 @@ bs
bt,libicu,dos2unix,libxml2
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
@ -89,6 +88,7 @@ pvr,libcxx
pz,java-11-openjdk rng-tools
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/serverlist.csv

@ -18,7 +18,6 @@ bs,bsserver,Blade Symphony,ubuntu-22.04
bt,btserver,Barotrauma,ubuntu-22.04
btl,btlserver,BATTALION: Legacy,ubuntu-20.04
cc,ccserver,Codename CURE,ubuntu-22.04
cd,cdserver,Crafting Dead,ubuntu-22.04
ck,ckserver,Core Keeper,ubuntu-22.04
cmw,cmwserver,Chivalry: Medieval Warfare,ubuntu-22.04
cod,codserver,Call of Duty,ubuntu-22.04
@ -88,6 +87,7 @@ pvr,pvrserver,Pavlov VR,ubuntu-22.04
pz,pzserver,Project Zomboid,ubuntu-22.04
q2,q2server,Quake 2,ubuntu-22.04
q3,q3server,Quake 3: Arena,ubuntu-22.04
q4,q4server,Quake 4,ubuntu-22.04
ql,qlserver,Quake Live,ubuntu-22.04
qw,qwserver,Quake World,ubuntu-22.04
ricochet,ricochetserver,Ricochet,ubuntu-22.04

Can't render this file because it has a wrong number of fields in line 47.

2
lgsm/data/ubuntu-16.04.csv

@ -19,7 +19,6 @@ bs
bt,libicu-dev,dos2unix,libxml2-utils
btl
cc
cd
ck,xvfb,libxi6
cmw
cod,libstdc++5:i386
@ -89,6 +88,7 @@ pvr,libc++1
pz,openjdk-8-jre,rng-tools
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/ubuntu-18.04.csv

@ -19,7 +19,6 @@ bs
bt,libicu-dev,dos2unix,libxml2-utils
btl
cc
cd
ck,xvfb,libxi6
cmw
cod,libstdc++5:i386
@ -89,6 +88,7 @@ pvr,libc++1
pz,openjdk-11-jre,rng-tools
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/ubuntu-20.04.csv

@ -19,7 +19,6 @@ bs
bt,libicu-dev,dos2unix,libxml2-utils
btl
cc
cd
ck,xvfb,libxi6
cmw
cod,libstdc++5:i386
@ -89,6 +88,7 @@ pvr,libc++1
pz,openjdk-17-jre,rng-tools
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/ubuntu-22.04.csv

@ -19,7 +19,6 @@ bs
bt,libicu-dev,dos2unix,libxml2-utils
btl
cc
cd
ck,xvfb,libxi6
cmw
cod,libstdc++5:i386
@ -89,6 +88,7 @@ pvr,libc++1
pz,openjdk-17-jre,rng-tools5
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/ubuntu-23.04.csv

@ -19,7 +19,6 @@ bs
bt,libicu-dev,dos2unix,libxml2-utils
btl
cc
cd
ck,xvfb,libxi6
cmw
cod,libstdc++5:i386
@ -89,6 +88,7 @@ pvr,libc++1
pz,openjdk-17-jre,rng-tools5
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/ubuntu-23.10.csv

@ -19,7 +19,6 @@ bs
bt,libicu-dev,dos2unix,libxml2-utils
btl
cc
cd
ck,xvfb,libxi6
cmw
cod,libstdc++5:i386
@ -89,6 +88,7 @@ pvr,libc++1
pz,openjdk-17-jre,rng-tools5
q2
q3
q4
ql
qw
ricochet

Can't render this file because it has a wrong number of fields in line 2.

11
lgsm/modules/check_config.sh

@ -19,8 +19,15 @@ if [ "${shortname}" == "rust" ] && [ -v rconpassword ] && [ -z "${rconpassword}"
fn_print_fail_nl "RCON password is not set"
fn_script_log_warn "RCON password is not set"
elif [ -v rconpassword ] && [ "${rconpassword}" == "CHANGE_ME" ]; then
fn_print_warn_nl "Default RCON Password detected"
fn_script_log_warn "Default RCON Password detected"
fn_print_warn_nl "Default RCON password detected"
fn_script_log_warn "Default RCON password detected"
elif [ -v httppassword ] && [ "${httppassword}" == "CHANGE_ME" ]; then
fn_print_warn_nl "Default Web password detected"
fn_script_log_warn "Default Web password detected"
elif [ -v adminpassword ] && [ "${adminpassword}" == "CHANGE_ME" ]; then
fn_print_warn_nl "Default Admin password detected"
fn_script_log_warn "Default Admin password detected"
fi
if [ "${shortname}" == "vh" ] && [ -z "${serverpassword}" ]; then

6
lgsm/modules/check_deps.sh

@ -252,7 +252,7 @@ fn_deps_detector() {
elif [ "${deptocheck}" == "steamcmd" ] && [ -z "${appid}" ]; then
array_deps_required=("${array_deps_required[@]/steamcmd/}")
steamcmdstatus=1
elif [ "${deptocheck}" == "steamcmd" ] && [ "${distroid}" == "debian" ] && ! grep -qE "^deb .*non-free" /etc/apt/sources.list; then
elif [ "${deptocheck}" == "steamcmd" ] && [ "${distroid}" == "debian" ] && ! grep -qE '[^deb]+non-free([^-]|$)' /etc/apt/sources.list; then
array_deps_required=("${array_deps_required[@]/steamcmd/}")
steamcmdstatus=1
# Java: Added for users using Oracle JRE to bypass check.
@ -349,8 +349,8 @@ fi
# Will warn user if their distro is no longer supported by the vendor.
if [ -n "${distrosupport}" ]; then
if [ "${distrosupport}" == "unsupported" ]; then
fn_print_warning_nl "${distroname} is no longer supported by the vendor. Upgrading is recommended."
fn_script_log_warn "${distroname} is no longer supported by the vendor. Upgrading is recommended."
fn_print_warning_nl "${distroname} is no longer supported by the vendor or LinuxGSM. Upgrading is recommended."
fn_script_log_warn "${distroname} is no longer supported by the vendor or LinuxGSM. Upgrading is recommended."
fi
fi

59
lgsm/modules/check_system_requirements.sh

@ -12,42 +12,59 @@ info_distro.sh
# RAM requirements in megabytes for each game or engine.
if [ "${shortname}" == "ark" ]; then
ramrequirementmb="4000"
ramrequirementgb="4"
ramrequirementgb="7"
elif [ "${shortname}" == "arma3" ]; then
ramrequirementgb="2"
elif [ "${shortname}" == "armar" ]; then
ramrequirementgb="3"
elif [ "${shortname}" == "bt" ]; then
ramrequirementmb="1000"
ramrequirementgb="1"
elif [ "${shortname}" == "mh" ]; then
ramrequirementmb="4000"
ramrequirementgb="4"
elif [ "${shortname}" == "arma3" ]; then
ramrequirementmb="1000"
elif [ "${shortname}" == "cc" ]; then
ramrequirementgb="1"
elif [ "${shortname}" == "rust" ]; then
ramrequirementmb="4000"
elif [ "${shortname}" == "dayz" ]; then
ramrequirementgb="5"
elif [ "${shortname}" == "dodr" ]; then
ramrequirementgb="2"
elif [ "${shortname}" == "hw" ]; then
ramrequirementgb="3"
elif [ "${shortname}" == "mc" ]; then
ramrequirementgb="1"
elif [ "${shortname}" == "pmc" ]; then
ramrequirementgb="2"
elif [ "${shortname}" == "mh" ]; then
ramrequirementgb="4"
elif [ "${shortname}" == "mc" ] || [ "${shortname}" == "pmc" ] || [ "${shortname}" == "wmc" ]; then
ramrequirementmb="1000"
elif [ "${shortname}" == "ns2" ] || [ "${shortname}" == "ns2c" ]; then
ramrequirementgb="1"
elif [ "${shortname}" == "ps" ]; then
ramrequirementmb="2000"
ramrequirementgb="2"
elif [ "${shortname}" == "ns2" ] || [ "${shortname}" == "ns2c" ]; then
ramrequirementmb="1000"
elif [ "${shortname}" == "pvr" ]; then
ramrequirementgb="1"
elif [ "${shortname}" == "pz" ]; then
ramrequirementgb="3"
elif [ "${shortname}" == "rust" ]; then
ramrequirementgb="9"
elif [ "${shortname}" == "sdtd" ]; then
ramrequirementgb="4"
elif [ "${shortname}" == "sf" ]; then
ramrequirementgb="12"
elif [ "${shortname}" == "squad" ]; then
ramrequirementgb="2"
elif [ "${shortname}" == "st" ]; then
ramrequirementmb="1000"
ramrequirementgb="1"
elif [ "${shortname}" == "pvr" ]; then
ramrequirementmb="2000"
elif [ "${shortname}" == "stn" ]; then
ramrequirementgb="3"
elif [ "${shortname}" == "tu" ]; then
ramrequirementgb="2"
elif [ "${shortname}" == "vh" ]; then
ramrequirementgb="2"
else
ramrequirementgb="0.5"
fi
# If the game or engine has a minimum RAM Requirement, compare it to system's available RAM.
if [ "${ramrequirementmb}" ]; then
if [ "${physmemtotalmb}" -lt "${ramrequirementmb}" ]; then
if [ "${ramrequirementgb}" ]; then
if [ "${physmemtotalgb}" -lt "${ramrequirementgb}" ]; then
fn_print_dots "Checking RAM"
# Warn the user.
fn_print_warn_nl "Checking RAM: ${ramrequirementgb}G required, ${physmemtotal} available"
echo "* ${gamename} server may fail to run or experience poor performance."
fn_sleep_time_5

2
lgsm/modules/command_backup.sh

@ -126,7 +126,7 @@ fn_backup_compression() {
core_exit.sh
fi
tar -czf "${backupdir}/${backupname}.tar.gz" -C "${rootdir}" --exclude "${excludedir}" --exclude "${lockdir}" ./.
tar -czf "${backupdir}/${backupname}.tar.gz" -C "${rootdir}" --exclude "${excludedir}" --exclude "${lockdir}" --exclude "${tmpdir}" ./.
local exitcode=$?
if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol

2
lgsm/modules/command_debug.sh

@ -34,7 +34,7 @@ fn_print_header
echo -e "${lightblue}Architecture:\t\t${default}${arch}"
echo -e "${lightblue}Kernel:\t\t${default}${kernel}"
echo -e "${lightblue}Hostname:\t\t${default}${HOSTNAME}"
echo -e "${lightblue}tmux:\t\t${default}${tmuxv}"
echo -e "${lightblue}tmux:\t\t${default}${tmuxversion}"
echo -e "${lightblue}Avg Load:\t\t${default}${load}"
echo -e "${lightblue}Free Memory:\t\t${default}${physmemfree}"
echo -e "${lightblue}Free Disk:\t\t${default}${availspace}"

46
lgsm/modules/command_start.sh

@ -73,47 +73,23 @@ fn_start_tmux() {
touch "${consolelog}"
# tmux compiled from source will return "master", therefore ignore it.
if [ "${tmuxv}" == "master" ]; then
if [ "${tmuxversion}" == "master" ]; then
fn_script_log "tmux version: master (user compiled)"
echo -e "tmux version: master (user compiled)" >> "${consolelog}"
if [ "${consolelogging}" == "on" ] || [ -z "${consolelogging}" ]; then
if [ "${logtimestamp}" == "on" ]; then
tmux -L "${socketname}" pipe-pane -o -t "${sessionname}" "exec bash -c \"cat | $addtimestamp\" >> '${consolelog}'"
else
tmux -L "${socketname}" pipe-pane -o -t "${sessionname}" "exec cat >> '${consolelog}'"
fi
fi
fi
elif [ -n "${tmuxv}" ]; then
# tmux pipe-pane not supported in tmux versions < 1.6.
if [ "${tmuxvdigit}" -lt "16" ]; then
echo -e "Console logging disabled: tmux => 1.6 required
https://linuxgsm.com/tmux-upgrade
Currently installed: $(tmux -V)" > "${consolelog}"
# Console logging disabled: Bug in tmux 1.8 breaks logging.
elif [ "${tmuxvdigit}" -eq "18" ]; then
echo -e "Console logging disabled: Bug in tmux 1.8 breaks logging
https://linuxgsm.com/tmux-upgrade
Currently installed: $(tmux -V)" > "${consolelog}"
# Console logging enable or not set.
elif [ "${consolelogging}" == "on" ] || [ -z "${consolelogging}" ]; then
if [ "${logtimestamp}" == "on" ]; then
tmux -L "${socketname}" pipe-pane -o -t "${sessionname}" "exec bash -c \"cat | $addtimestamp\" >> '${consolelog}'"
else
tmux -L "${socketname}" pipe-pane -o -t "${sessionname}" "exec cat >> '${consolelog}'"
fi
# Enable console logging.
if [ "${consolelogging}" == "on" ] || [ -z "${consolelogging}" ]; then
if [ "${logtimestamp}" == "on" ]; then
tmux -L "${socketname}" pipe-pane -o -t "${sessionname}" "exec bash -c \"cat | $addtimestamp\" >> '${consolelog}'"
else
tmux -L "${socketname}" pipe-pane -o -t "${sessionname}" "exec cat >> '${consolelog}'"
fi
else
echo -e "Unable to detect tmux version" >> "${consolelog}"
fn_script_log_warn "Unable to detect tmux version"
fi
# Console logging disabled.
if [ "${consolelogging}" == "off" ]; then
echo -e "Console logging disabled in settings" >> "${consolelog}"
fn_script_log_info "Console logging disabled by user"
fn_script_log_info "Console logging disabled in settings"
fi
fn_sleep_time_1
# If the server fails to start.
@ -123,7 +99,7 @@ fn_start_tmux() {
fn_script_log_fail "Unable to start ${servername}"
if [ -s "${lgsmlogdir}/.${selfname}-tmux-error.tmp" ]; then
fn_print_fail_nl "Unable to start ${servername}: tmux error:"
fn_script_log_fail "Unable to start ${servername}: tmux error:"
fn_script_log_fail "Unable to start ${servername}: tmux error"
echo -e ""
echo -e "Command"
fn_messages_separator

2
lgsm/modules/core_getopt.sh

@ -22,7 +22,7 @@ cmd_update_linuxgsm=("ul;update-lgsm;uf;update-modules" "command_update_linuxgsm
cmd_test_alert=("ta;test-alert" "command_test_alert.sh" "Send a test alert.")
cmd_monitor=("m;monitor" "command_monitor.sh" "Check server status and restart if crashed.")
cmd_skeleton=("sk;skeleton" "command_skeleton.sh" "Create a skeleton directory.")
cmd_sponsor=("s;sponsor" "command_sponsor.sh" "Donation options.")
cmd_sponsor=("s;sponsor" "command_sponsor.sh" "Sponsorship options.")
cmd_send=("sd;send" "command_send.sh" "Send command to game server console.")
# Console servers only.
cmd_console=("c;console" "command_console.sh" "Access server console.")

2
lgsm/modules/core_modules.sh

@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
modulesversion="v23.6.2"
modulesversion="v23.7.0"
# Core

4
lgsm/modules/core_steamcmd.sh

@ -179,7 +179,9 @@ fn_update_steamcmd_remotebuild() {
fi
# added as was failing GitHub Actions test. Running SteamCMD twice seems to fix it.
${steamcmdcommand} +login "${steamuser}" "${steampass}" +app_info_update 1 +quit > /dev/null 2>&1
if [ "${CI}" ]; then
${steamcmdcommand} +login "${steamuser}" "${steampass}" +app_info_update 1 +quit > /dev/null 2>&1
fi
# password for branch not needed to check the buildid
remotebuildversion=$(${steamcmdcommand} +login "${steamuser}" "${steampass}" +app_info_update 1 +app_info_print "${appid}" +quit | sed -e '/"branches"/,/^}/!d' | sed -n "/\"${branch}\"/,/}/p" | grep -m 1 buildid | tr -cd '[:digit:]')

4
lgsm/modules/fix.sh

@ -52,8 +52,8 @@ fn_apply_fix() {
fi
}
apply_pre_start_fix=(arma3 armar ark av bt bo csgo cmw dst hw ins nmrih onset pvr rust rw sdtd sfc sof2 squad st tf2 terraria ts3 mcb mta unt vh wurm zmr)
apply_post_install_fix=(av kf kf2 ro samp ut2k4 ut ut3)
apply_pre_start_fix=(arma3 armar ark av bt bo csgo cmw dst hw ins kf nmrih onset pvr rust rw samp sdtd sfc sof2 squad st tf2 terraria ts3 mcb mta unt vh wurm zmr)
apply_post_install_fix=(av kf kf2 ro ut2k4 ut ut3)
# validate registered fixes for safe development
for fix in "${apply_pre_start_fix[@]}" "${apply_post_install_fix[@]}"; do

2
lgsm/modules/fix_armar.sh

@ -5,7 +5,7 @@
# Website: https://linuxgsm.com
# Description: Resolves issues with Arma Reforger.
module_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
# Fixes: Profile directory doesn't exist.
# Issue Link: https://feedback.bistudio.com/T164845

129
lgsm/modules/fix_kf.sh

@ -7,30 +7,111 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
echo -e "applying WebAdmin ROOst.css fix."
echo -e "http://forums.tripwireinteractive.com/showpost.php?p=585435&postcount=13"
# echo -e "applying WebAdmin ROOst.css fix."
# echo -e "http://forums.tripwireinteractive.com/showpost.php?p=585435&postcount=13"
sed -i 's/none}/none;/g' "${serverfiles}/Web/ServerAdmin/ROOst.css"
sed -i 's/underline}/underline;/g' "${serverfiles}/Web/ServerAdmin/ROOst.css"
fn_sleep_time
echo -e "applying WebAdmin CharSet fix."
echo -e "http://forums.tripwireinteractive.com/showpost.php?p=442340&postcount=1"
# echo -e "applying WebAdmin CharSet fix."
# echo -e "http://forums.tripwireinteractive.com/showpost.php?p=442340&postcount=1"
sed -i 's/CharSet="iso-8859-1"/CharSet="utf-8"/g' "${systemdir}/UWeb.int"
fn_sleep_time
echo -e "applying server name fix."
fn_sleep_time
echo -e "forcing server restart..."
fn_sleep_time
exitbypass=1
command_start.sh
fn_firstcommand_reset
fn_sleep_time_5
exitbypass=1
command_stop.sh
fn_firstcommand_reset
exitbypass=1
command_start.sh
fn_firstcommand_reset
fn_sleep_time_5
exitbypass=1
command_stop.sh
fn_firstcommand_reset
# get md5sum of steamclient.so
if [ -f "${serverfiles}/System/steamclient.so" ]; then
steamclientmd5=$(md5sum "${serverfiles}/System/steamclient.so" | awk '{print $1;}')
fi
#get md5sum of libtier0_s.so
if [ -f "${serverfiles}/System/libtier0_s.so" ]; then
libtier0_smd5=$(md5sum "${serverfiles}/System/libtier0_s.so" | awk '{print $1;}')
fi
#get md5sum of libvstdlib_s.so
if [ -f "${serverfiles}/System/libvstdlib_s.so" ]; then
libvstdlib_smd5=$(md5sum "${serverfiles}/System/libvstdlib_s.so" | awk '{print $1;}')
fi
# get md5sum of steamclient.so from steamcmd
if [ -f "${HOME}/.steam/steamcmd/linux32/steamclient.so" ]; then
steamcmdsteamclientmd5=$(md5sum "${HOME}/.steam/steamcmd/linux32/steamclient.so" | awk '{print $1;}')
elif [ -f "${steamcmddir}/linux32/steamclient.so" ]; then
steamcmdsteamclientmd5=$(md5sum "${steamcmddir}/linux32/steamclient.so" | awk '{print $1;}')
elif [ -f "${HOME}/.local/share/Steam/steamcmd/linux32/steamclient.so" ]; then
steamcmdsteamclientmd5=$(md5sum "${HOME}/.local/share/Steam/steamcmd/linux32/steamclient.so" | awk '{print $1;}')
fi
# get md5sum of libtier0_s.so from steamcmd
if [ -f "${HOME}/.steam/steamcmd/linux32/libtier0_s.so" ]; then
steamcmdlibtier0_smd5=$(md5sum "${HOME}/.steam/steamcmd/linux32/libtier0_s.so" | awk '{print $1;}')
elif [ -f "${steamcmddir}/linux32/libtier0_s.so" ]; then
steamcmdlibtier0_smd5=$(md5sum "${steamcmddir}/linux32/libtier0_s.so" | awk '{print $1;}')
elif [ -f "${HOME}/.local/share/Steam/steamcmd/linux32/libtier0_s.so" ]; then
steamcmdlibtier0_smd5=$(md5sum "${HOME}/.local/share/Steam/steamcmd/linux32/libtier0_s.so" | awk '{print $1;}')
fi
# get md5sum of libvstdlib_s.so from steamcmd
if [ -f "${HOME}/.steam/steamcmd/linux32/libvstdlib_s.so" ]; then
steamcmdlibvstdlib_smd5=$(md5sum "${HOME}/.steam/steamcmd/linux32/libvstdlib_s.so" | awk '{print $1;}')
elif [ -f "${steamcmddir}/linux32/libvstdlib_s.so" ]; then
steamcmdlibvstdlib_smd5=$(md5sum "${steamcmddir}/linux32/libvstdlib_s.so" | awk '{print $1;}')
elif [ -f "${HOME}/.local/share/Steam/steamcmd/linux32/libvstdlib_s.so" ]; then
steamcmdlibvstdlib_smd5=$(md5sum "${HOME}/.local/share/Steam/steamcmd/linux32/libvstdlib_s.so" | awk '{print $1;}')
fi
if [ ! -f "${serverfiles}/System/steamclient.so" ] || [ "${steamcmdsteamclientmd5}" != "${steamclientmd5}" ]; then
fixname="steamclient.so x86"
fn_fix_msg_start
if [ -f "${HOME}/.steam/steamcmd/linux32/steamclient.so" ]; then
cp "${HOME}/.steam/steamcmd/linux32/steamclient.so" "${serverfiles}/System/steamclient.so"
elif [ -f "${steamcmddir}/linux32/steamclient.so" ]; then
cp "${steamcmddir}/linux32/steamclient.so" "${serverfiles}/System/steamclient.so"
elif [ -f "${HOME}/.local/share/Steam/steamcmd/linux32/steamclient.so" ]; then
cp "${HOME}/.local/share/Steam/steamcmd/linux32/steamclient.so" "${serverfiles}/System/steamclient.so"
fi
fn_fix_msg_end
fi
if [ ! -f "${serverfiles}/System/libtier0_s.so" ] || [ "${steamcmdlibtier0_smd5}" != "${libtier0_smd5}" ]; then
fixname="libtier0_s.so"
fn_fix_msg_start
if [ -f "${HOME}/.steam/steamcmd/linux32/libtier0_s.so" ]; then
cp "${HOME}/.steam/steamcmd/linux32/libtier0_s.so" "${serverfiles}/System/libtier0_s.so"
elif [ -f "${steamcmddir}/linux32/libtier0_s.so" ]; then
cp "${steamcmddir}/linux32/libtier0_s.so" "${serverfiles}/System/libtier0_s.so"
elif [ -f "${HOME}/.local/share/Steam/steamcmd/linux32/libtier0_s.so" ]; then
cp "${HOME}/.local/share/Steam/steamcmd/linux32/libtier0_s.so" "${serverfiles}/System/libtier0_s.so"
fi
fn_fix_msg_end
fi
if [ ! -f "${serverfiles}/System/libvstdlib_s.so" ] || [ "${steamcmdlibvstdlib_smd5}" != "${libvstdlib_smd5}" ]; then
fixname="libvstdlib_s.so"
fn_fix_msg_start
if [ -f "${HOME}/.steam/steamcmd/linux32/libvstdlib_s.so" ]; then
cp "${HOME}/.steam/steamcmd/linux32/libvstdlib_s.so" "${serverfiles}/System/libvstdlib_s.so"
elif [ -f "${steamcmddir}/linux32/libvstdlib_s.so" ]; then
cp "${steamcmddir}/linux32/libvstdlib_s.so" "${serverfiles}/System/libvstdlib_s.so"
elif [ -f "${HOME}/.local/share/Steam/steamcmd/linux32/libvstdlib_s.so" ]; then
cp "${HOME}/.local/share/Steam/steamcmd/linux32/libvstdlib_s.so" "${serverfiles}/System/libvstdlib_s.so"
fi
fn_fix_msg_end
fi
# if running install command
if [ "${commandname}" == "INSTALL" ]; then
echo -e "applying server name fix."
fn_sleep_time
echo -e "forcing server restart..."
fn_sleep_time
exitbypass=1
command_start.sh
fn_firstcommand_reset
fn_sleep_time_5
exitbypass=1
command_stop.sh
fn_firstcommand_reset
exitbypass=1
command_start.sh
fn_firstcommand_reset
fn_sleep_time_5
exitbypass=1
command_stop.sh
fn_firstcommand_reset
fi

28
lgsm/modules/fix_nmrih.sh

@ -8,10 +8,24 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
ln -s "${serverfiles}/bin/vphysics_srv.so" "${serverfiles}/bin/vphysics.so"
ln -s "${serverfiles}/bin/studiorender_srv.so" "${serverfiles}/bin/studiorender.so"
ln -s "${serverfiles}/bin/soundemittersystem_srv.so" "${serverfiles}/bin/soundemittersystem.so"
ln -s "${serverfiles}/bin/shaderapiempty_srv.so" "${serverfiles}/bin/shaderapiempty.so"
ln -s "${serverfiles}/bin/scenefilecache_srv.so" "${serverfiles}/bin/scenefilecache.so"
ln -s "${serverfiles}/bin/replay_srv.so" "${serverfiles}/bin/replay.so"
ln -s "${serverfiles}/bin/materialsystem_srv.so" "${serverfiles}/bin/materialsystem.so"
if [ ! -f "${serverfiles}/bin/vphysics.so" ]; then
ln -s "${serverfiles}/bin/vphysics_srv.so" "${serverfiles}/bin/vphysics.so"
fi
if [ ! -f "${serverfiles}/bin/studiorender.so" ]; then
ln -s "${serverfiles}/bin/studiorender_srv.so" "${serverfiles}/bin/studiorender.so"
fi
if [ ! -f "${serverfiles}/bin/soundemittersystem.so" ]; then
ln -s "${serverfiles}/bin/soundemittersystem_srv.so" "${serverfiles}/bin/soundemittersystem.so"
fi
if [ ! -f "${serverfiles}/bin/shaderapiempty.so" ]; then
ln -s "${serverfiles}/bin/shaderapiempty_srv.so" "${serverfiles}/bin/shaderapiempty.so"
fi
if [ ! -f "${serverfiles}/bin/scenefilecache.so" ]; then
ln -s "${serverfiles}/bin/scenefilecache_srv.so" "${serverfiles}/bin/scenefilecache.so"
fi
if [ ! -f "${serverfiles}/bin/replay.so" ]; then
ln -s "${serverfiles}/bin/replay_srv.so" "${serverfiles}/bin/replay.so"
fi
if [ ! -f "${serverfiles}/bin/materialsystem.so" ]; then
ln -s "${serverfiles}/bin/materialsystem_srv.so" "${serverfiles}/bin/materialsystem.so"
fi

18
lgsm/modules/fix_rust.sh

@ -30,3 +30,21 @@ if [ -f "${serverfiles}/carbon/tools/environment.sh" ]; then
# shellcheck source=/dev/null
source "${serverfiles}/carbon/tools/environment.sh"
fi
# fix for #4268
# insert set -g default-terminal "screen-256color" into ~/.tmux.conf
if [ -f "${serverfiles}/RustDedicated_Data/Managed/Oxide.Rust.dll" ]; then
# tmux version is 3.3 or higher
tmuxvdigit="$(tmux -V | sed "s/tmux //" | sed -n '1 p' | tr -cd '[:digit:]')"
if [ "${tmuxvdigit}" -ge "33" ]; then
if [ ! -f "${HOME}/.tmux.conf" ]; then
touch "${HOME}/.tmux.conf"
fi
if ! grep -q "set -g default-terminal \"screen-256color\"" "${HOME}/.tmux.conf"; then
fixname="tmux screen-256color"
fn_fix_msg_start
echo "set -g default-terminal \"screen-256color\"" >> "${HOME}/.tmux.conf"
fn_fix_msg_end
fi
fi
fi

6
lgsm/modules/fix_vh.sh

@ -17,6 +17,12 @@ if [ -f "${modsinstalledlistfullpath}" ]; then
echo 'executable="./start_server_bepinex.sh"' >> "${configdirserver}/${selfname}.cfg"
executable="./start_server_bepinex.sh"
fi
if [ -d "${serverfiles}/unstripped_corlib" ]; then
rm -rf "${serverfiles}/unstripped_corlib"
fi
sed -i "s/^dllSearchPathOverride=unstripped_corlib/# &/" "${serverfiles}/doorstop_config.ini"
sed -i "s/^export DOORSTOP_CORLIB_OVERRIDE_PATH="$BASEDIR\/unstripped_corlib"/# &/" "${serverfiles}/start_game_bepinex.sh"
sed -i "s/^export DOORSTOP_CORLIB_OVERRIDE_PATH="${VALHEIM_PLUS_PATH}\/unstripped_corlib"/# &/" "${serverfiles}/start_server_bepinex.sh"
fi
# special exports for BepInEx if installed
if grep -qE "^bepinexvh" "${modsinstalledlistfullpath}"; then

184
lgsm/modules/info_distro.sh

@ -21,114 +21,107 @@ fi
## Distro
# Returns architecture, kernel and distro/os.
arch="$(uname -m)"
kernel="$(uname -r)"
# Distro Name - Ubuntu 16.04 LTS
# Distro Version - 16.04
# Distro ID - ubuntu
# Distro Codename - xenial
arch="$(uname -m)" # Architecture e.g. x86_64
kernel="$(uname -r)" # Kernel e.g. 2.6.32-042stab120.16
# Gathers distro info from various sources filling in missing gaps.
distro_info_array=(os-release lsb_release hostnamectl debian_version redhat-release)
for distro_info in "${distro_info_array[@]}"; do
if [ -f "/etc/os-release" ] && [ "${distro_info}" == "os-release" ]; then
distroname="$(grep "PRETTY_NAME" /etc/os-release | awk -F\= '{gsub(/"/,"",$2);print $2}')"
distroversion="$(grep "VERSION_ID" /etc/os-release | awk -F\= '{gsub(/"/,"",$2);print $2}')"
# Special var for rhel like distros to removed point in number e.g 8.4 to just 8.
distroversionrh="$(sed -nr 's/^VERSION_ID="([0-9]*).+?"/\1/p' /etc/os-release)"
distroid="$(grep "ID=" /etc/os-release | grep -v _ID | awk -F\= '{gsub(/"/,"",$2);print $2}')"
distroidlike="$(grep "ID_LIKE=" /etc/os-release | grep -v _ID | awk -F\= '{gsub(/"/,"",$2);print $2}')"
distrocodename="$(grep "VERSION_CODENAME" /etc/os-release | awk -F\= '{gsub(/"/,"",$2);print $2}')"
distroname="$(grep "PRETTY_NAME" /etc/os-release | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. Ubuntu 22.04.3 LTS
distroversion="$(grep "VERSION_ID" /etc/os-release | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. 22.04
# Special var for rhel like distros to remove point in number e.g 8.4 to just 8.
if [[ "${distroidlike}" == *"rhel"* ]] || [ "${distroid}" == "rhel" ]; then
distroversionrh="$(sed -nr 's/^VERSION_ID="([0-9]*).+?"/\1/p' /etc/os-release)" # e.g. 8
fi
distroid="$(grep "ID=" /etc/os-release | grep -v _ID | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. ubuntu
distroidlike="$(grep "ID_LIKE=" /etc/os-release | grep -v _ID | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. debian
distrocodename="$(grep "VERSION_CODENAME" /etc/os-release | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. jammy
elif [ "$(command -v lsb_release 2> /dev/null)" ] && [ "${distro_info}" == "lsb_release" ]; then
if [ -z "${distroname}" ]; then
distroname="$(lsb_release -sd)"
distroname="$(lsb_release -sd)" # e.g. Ubuntu 22.04.3 LTS
elif [ -z "${distroversion}" ]; then
distroversion="$(lsb_release -sr)"
distroversion="$(lsb_release -sr)" # e.g. 22.04
elif [ -z "${distroid}" ]; then
distroid="$(lsb_release -si)"
distroid="$(lsb_release -si)" # e.g. Ubuntu
elif [ -z "${distrocodename}" ]; then
distrocodename="$(lsb_release -sc)"
distrocodename="$(lsb_release -sc)" # e.g. jammy
fi
elif [ "$(command -v hostnamectl 2> /dev/null)" ] && [ "${distro_info}" == "hostnamectl" ]; then
if [ -z "${distroname}" ]; then
distroname="$(hostnamectl | grep "Operating System" | sed 's/Operating System: //g')"
distroname="$(hostnamectl | grep "Operating System" | sed 's/Operating System: //g')" # e.g. Ubuntu 22.04.3 LTS
fi
elif [ -f "/etc/debian_version" ] && [ "${distro_info}" == "debian_version" ]; then
if [ -z "${distroname}" ]; then
distroname="Debian $(cat /etc/debian_version)"
distroname="Debian $(cat /etc/debian_version)" # e.g. Debian bookworm/sid
elif [ -z "${distroversion}" ]; then
distroversion="$(cat /etc/debian_version)"
distroversion="$(cat /etc/debian_version)" # e.g. bookworm/sid
elif [ -z "${distroid}" ]; then
distroid="debian"
fi
elif [ -f "/etc/redhat-release" ] && [ "${distro_info}" == "redhat-release" ]; then
if [ -z "${distroname}" ]; then
distroname="$(cat /etc/redhat-release)"
distroname="$(cat /etc/redhat-release)" # e.g. Rocky Linux release 9.2 (Blue Onyx)
elif [ -z "${distroversion}" ]; then
distroversion="$(rpm -qa \*-release | grep -Ei "oracle|redhat|centos|fedora" | cut -d"-" -f3)"
distroversion="$(rpm -qa \*-release | grep -Ei "oracle|redhat|centos|fedora|rocky|alma" | cut -d"-" -f3)" # e.g. 9.2
elif [ -z "${distroid}" ]; then
distroid="$(awk '{print $1}' /etc/redhat-release)"
distroid="$(awk '{print $1}' /etc/redhat-release)" # e.g. Rocky
fi
fi
done
# Get virtual environment type.
if [ "$(command -v systemd-detect-virt 2> /dev/null)" ]; then
virtualenvironment="$(systemd-detect-virt)"
virtualenvironment="$(systemd-detect-virt)" # e.g. kvm
fi
# Some RHEL based distros use 8.4 instead of just 8.
if [[ "${distroidlike}" == *"rhel"* ]] || [ "${distroid}" == "rhel" ]; then
distroversioncsv="${distroversionrh}"
# distroversioncsv is used for selecting the correct distro csv in data directory
if [ -n "${distroversionrh}" ]; then
distroversioncsv="${distroversionrh}" # e.g. 8
else
distroversioncsv="${distroversion}"
distroversioncsv="${distroversion}" # e.g. 22.04
fi
# Check if distro supported by distro vendor.
# distro-info available in debian based distros.
if [ "$(command -v distro-info 2> /dev/null)" ]; then
distrosunsupported="$(distro-info --unsupported)"
distrosunsupported_array=("${distrosunsupported}")
for distrounsupported in "${distrosunsupported_array[@]}"; do
if [ "${distrounsupported}" == "${distrocodename}" ]; then
distrosupport=unsupported
distrosupport="unsupported"
break
else
distrosupport=supported
distrosupport="supported"
fi
done
else
distrosupport=unknown
elif [[ "${distroidlike}" == *"rhel"* ]] || [ "${distroid}" == "rhel" ]; then
# RHEL/CentOS 7 EOL 2024-06-30. Will be unsupported after this date.
if [ "${distroversionrh}" -lt "8" ] && [ "$(date +%s)" -lt "1719705600" ]; then
distrosupport="unsupported"
else
distrosupport="supported"
fi
fi
## Glibc version
# e.g: 1.17
glibcversion="$(ldd --version | sed -n '1s/.* //p')"
glibcversion="$(ldd --version | sed -n '1s/.* //p')" # e.g: 2.17
## tmux version
# e.g: tmux 1.6
if [ ! "$(command -V tmux 2> /dev/null)" ]; then
tmuxv="${red}NOT INSTALLED!${default}"
tmuxvdigit="0"
else
tmuxvdigit="$(tmux -V | sed "s/tmux //" | sed -n '1 p' | tr -cd '[:digit:]')"
if [ "${tmuxvdigit}" -lt "16" ]; then
tmuxv="$(tmux -V) (>= 1.6 required for console log)"
else
tmuxv="$(tmux -V)"
fi
if [ "$(command -V tmux 2> /dev/null)" ]; then
tmuxversion="$(tmux -V | awk '{print $2}')" # e.g: tmux 3.3
fi
if [ "$(command -V java 2> /dev/null)" ]; then
javaversion="$(java -version 2>&1 | grep "version")"
javaversion="$(java -version 2>&1 | grep "version")" # e.g: openjdk version "17.0.8.1" 2023-08-24
fi
if [ "$(command -v mono 2> /dev/null)" ]; then
monoversion="$(mono --version 2>&1 | grep -Po '(?<=version )\d')"
monoversion="$(mono --version 2>&1 | grep -Po '(?<=version )\d')" # e.g: 6
fi
if [ "$(command -v dotnet 2> /dev/null)" ]; then
dotnetversion="$(dotnet --list-runtimes | grep -E 'Microsoft\.NETCore\.App' | awk '{print $2}')"
dotnetversion="$(dotnet --list-runtimes | grep -E 'Microsoft\.NETCore\.App' | awk '{print $2}')" # e.g: 6.0.0
fi
## Uptime
@ -141,16 +134,16 @@ days="$((uptime / 60 / 60 / 24))"
### Performance information
## Average server load
load="$(uptime | awk -F 'load average: ' '{ print $2 }')"
load="$(uptime | awk -F 'load average: ' '{ print $2 }')" # e.g 0.01, 0.05, 0.11
## CPU information
cpumodel="$(awk -F: '/model name/ {name=$2} END {print name}' /proc/cpuinfo | sed 's/^[ \t]*//;s/[ \t]*$//')"
cpumodel="$(awk -F: '/model name/ {name=$2} END {print name}' /proc/cpuinfo | sed 's/^[ \t]*//;s/[ \t]*$//')" # e.g Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz
cpucores="$(awk -F: '/model name/ {core++} END {print core}' /proc/cpuinfo)"
cpufreqency="$(awk -F: '/cpu MHz/ {freq=$2} END {print freq}' /proc/cpuinfo | sed 's/^[ \t]*//;s/[ \t]*$//')"
cpufreqency="$(awk -F: '/cpu MHz/ {freq=$2} END {print freq}' /proc/cpuinfo | sed 's/^[ \t]*//;s/[ \t]*$//')" # e.g 2394.503
# CPU usage of the game server pid
if [ -n "${gameserverpid}" ]; then
cpuused="$(ps --forest -o pcpu -g "${gameserverpid}" | awk '{s+=$1} END {print s}')"
cpuusedmhz="$(echo "${cpufreqency} * ${cpuused} / 100" | bc)"
cpuused="$(ps --forest -o pcpu -g "${gameserverpid}" | awk '{s+=$1} END {print s}')" # integer
cpuusedmhz="$(echo "${cpufreqency} * ${cpuused} / 100" | bc)" # integer
fi
## Memory information
@ -161,36 +154,35 @@ if [ "$(command -v numfmt 2> /dev/null)" ]; then
# Issue #2005 - Kernel 3.14+ contains MemAvailable which should be used. All others will be calculated.
# get the raw KB values of these fields.
physmemtotalkb="$(grep MemTotal /proc/meminfo | awk '{print $2}')"
physmemfreekb="$(grep ^MemFree /proc/meminfo | awk '{print $2}')"
physmembufferskb="$(grep ^Buffers /proc/meminfo | awk '{print $2}')"
physmemcachedkb="$(grep ^Cached /proc/meminfo | awk '{print $2}')"
physmemreclaimablekb="$(grep ^SReclaimable /proc/meminfo | awk '{print $2}')"
physmemtotalkb="$(grep MemTotal /proc/meminfo | awk '{print $2}')" # integer
physmemfreekb="$(grep ^MemFree /proc/meminfo | awk '{print $2}')" # integer
physmembufferskb="$(grep ^Buffers /proc/meminfo | awk '{print $2}')" # integer
physmemcachedkb="$(grep ^Cached /proc/meminfo | awk '{print $2}')" # integer
physmemreclaimablekb="$(grep ^SReclaimable /proc/meminfo | awk '{print $2}')" # integer
# check if MemAvailable Exists.
if grep -q ^MemAvailable /proc/meminfo; then
physmemactualfreekb="$(grep ^MemAvailable /proc/meminfo | awk '{print $2}')"
physmemactualfreekb="$(grep ^MemAvailable /proc/meminfo | awk '{print $2}')" # integer
else
physmemactualfreekb="$((physmemfreekb + physmembufferskb + physmemcachedkb))"
physmemactualfreekb="$((physmemfreekb + physmembufferskb + physmemcachedkb))" # integer
fi
# Available RAM and swap.
physmemtotalmb="$((physmemtotalkb / 1024))"
physmemtotal="$(numfmt --to=iec --from=iec --suffix=B "${physmemtotalkb}K")"
physmemfree="$(numfmt --to=iec --from=iec --suffix=B "${physmemactualfreekb}K")"
physmemused="$(numfmt --to=iec --from=iec --suffix=B "$((physmemtotalkb - physmemfreekb - physmembufferskb - physmemcachedkb - physmemreclaimablekb))K")"
physmemavailable="$(numfmt --to=iec --from=iec --suffix=B "${physmemactualfreekb}K")"
physmemcached="$(numfmt --to=iec --from=iec --suffix=B "$((physmemcachedkb + physmemreclaimablekb))K")"
swaptotal="$(numfmt --to=iec --from=iec --suffix=B "$(grep ^SwapTotal /proc/meminfo | awk '{print $2}')K")"
swapfree="$(numfmt --to=iec --from=iec --suffix=B "$(grep ^SwapFree /proc/meminfo | awk '{print $2}')K")"
swapused="$(numfmt --to=iec --from=iec --suffix=B "$(($(grep ^SwapTotal /proc/meminfo | awk '{print $2}') - $(grep ^SwapFree /proc/meminfo | awk '{print $2}')))K")"
physmemtotalmb="$(((physmemtotalkb + 512) / 1024))" # integer # integer
physmemtotalgb="$(((physmemtotalmb + 512) / 1024))" # integer # integer
physmemtotal="$(numfmt --to=iec --from=iec --suffix=B "${physmemtotalkb}K")" # string
physmemfree="$(numfmt --to=iec --from=iec --suffix=B "${physmemactualfreekb}K")" # string
physmemused="$(numfmt --to=iec --from=iec --suffix=B "$((physmemtotalkb - physmemfreekb - physmembufferskb - physmemcachedkb - physmemreclaimablekb))K")" # string
physmemavailable="$(numfmt --to=iec --from=iec --suffix=B "${physmemactualfreekb}K")" # string
physmemcached="$(numfmt --to=iec --from=iec --suffix=B "$((physmemcachedkb + physmemreclaimablekb))K")" # string
swaptotal="$(numfmt --to=iec --from=iec --suffix=B "$(grep ^SwapTotal /proc/meminfo | awk '{print $2}')K")" # string
swapfree="$(numfmt --to=iec --from=iec --suffix=B "$(grep ^SwapFree /proc/meminfo | awk '{print $2}')K")" # string
swapused="$(numfmt --to=iec --from=iec --suffix=B "$(($(grep ^SwapTotal /proc/meminfo | awk '{print $2}') - $(grep ^SwapFree /proc/meminfo | awk '{print $2}')))K")" # string
# RAM usage of the game server pid
# MB
if [ "${gameserverpid}" ]; then
memused="$(ps --forest -o rss -g "${gameserverpid}" | awk '{s+=$1} END {print s}' | awk '{$1/=1024;printf "%.0f",$1}{print $2}')"
# %
pmemused="$(ps --forest -o %mem -g "${gameserverpid}" | awk '{s+=$1} END {print s}')"
memusedmb="$(ps --forest -o rss -g "${gameserverpid}" | awk '{s+=$1} END {print s}' | awk '{$1/=1024;printf "%.0f",$1}{print $2}')" # integer
memusedpct="$(ps --forest -o %mem -g "${gameserverpid}" | awk '{s+=$1} END {print s}')" # integer
fi
else
# Older distros will need to use free.
@ -203,32 +195,32 @@ else
else
humanreadable="-h"
fi
physmemtotalmb="$(free -m | awk '/Mem:/ {print $2}')"
physmemtotal="$(free ${humanreadable} | awk '/Mem:/ {print $2}')"
physmemfree="$(free ${humanreadable} | awk '/Mem:/ {print $4}')"
physmemused="$(free ${humanreadable} | awk '/Mem:/ {print $3}')"
physmemtotalmb="$(free -m | awk '/Mem:/ {print $2}')" # string
physmemtotal="$(free ${humanreadable} | awk '/Mem:/ {print $2}')" # string
physmemfree="$(free ${humanreadable} | awk '/Mem:/ {print $4}')" # string
physmemused="$(free ${humanreadable} | awk '/Mem:/ {print $3}')" # string
oldfree="$(free ${humanreadable} | awk '/cache:/')"
if [ "${oldfree}" ]; then
physmemavailable="n/a"
physmemcached="n/a"
else
physmemavailable="$(free ${humanreadable} | awk '/Mem:/ {print $7}')"
physmemcached="$(free ${humanreadable} | awk '/Mem:/ {print $6}')"
physmemavailable="$(free ${humanreadable} | awk '/Mem:/ {print $7}')" # string
physmemcached="$(free ${humanreadable} | awk '/Mem:/ {print $6}')" # string
fi
swaptotal="$(free ${humanreadable} | awk '/Swap:/ {print $2}')"
swapused="$(free ${humanreadable} | awk '/Swap:/ {print $3}')"
swapfree="$(free ${humanreadable} | awk '/Swap:/ {print $4}')"
swaptotal="$(free ${humanreadable} | awk '/Swap:/ {print $2}')" # string
swapused="$(free ${humanreadable} | awk '/Swap:/ {print $3}')" # string
swapfree="$(free ${humanreadable} | awk '/Swap:/ {print $4}')" # string
fi
### Disk information
## Available disk space on the partition.
filesystem="$(LC_ALL=C df -hP "${rootdir}" | tail -n 1 | awk '{print $1}')"
totalspace="$(LC_ALL=C df -hP "${rootdir}" | tail -n 1 | awk '{print $2}')"
usedspace="$(LC_ALL=C df -hP "${rootdir}" | tail -n 1 | awk '{print $3}')"
availspace="$(LC_ALL=C df -hP "${rootdir}" | tail -n 1 | awk '{print $4}')"
filesystem="$(LC_ALL=C df -hP "${rootdir}" | tail -n 1 | awk '{print $1}')" # string e.g /dev/sda
totalspace="$(LC_ALL=C df -hP "${rootdir}" | tail -n 1 | awk '{print $2}')" # string e.g 20G
usedspace="$(LC_ALL=C df -hP "${rootdir}" | tail -n 1 | awk '{print $3}')" # string e.g 15G
availspace="$(LC_ALL=C df -hP "${rootdir}" | tail -n 1 | awk '{print $4}')" # string e.g 5G
## LinuxGSM used space total.
rootdirdu="$(du -sh "${rootdir}" 2> /dev/null | awk '{print $1}')"
@ -263,21 +255,21 @@ if [ -d "${backupdir}" ]; then
# If there are backups in backup dir.
if [ "$(find "${backupdir}" -name "*.tar.gz" | wc -l)" -ne "0" ]; then
# number of backups.
backupcount="$(find "${backupdir}"/*.tar.gz | wc -l)"
backupcount="$(find "${backupdir}"/*.tar.gz | wc -l)" # integer
# most recent backup.
lastbackup="$(ls -1t "${backupdir}"/*.tar.gz | head -1)"
lastbackup="$(ls -1t "${backupdir}"/*.tar.gz | head -1)" # string
# date of most recent backup.
lastbackupdate="$(date -r "${lastbackup}")"
lastbackupdate="$(date -r "${lastbackup}")" # string
# no of days since last backup.
lastbackupdaysago="$((($(date +'%s') - $(date -r "${lastbackup}" +'%s')) / 60 / 60 / 24))"
lastbackupdaysago="$((($(date +'%s') - $(date -r "${lastbackup}" +'%s')) / 60 / 60 / 24))" # integer
# size of most recent backup.
lastbackupsize="$(du -h "${lastbackup}" | awk '{print $1}')"
lastbackupsize="$(du -h "${lastbackup}" | awk '{print $1}')" # string
fi
fi
# Network Interface name
netint=$(${ipcommand} -o addr | grep "${ip}" | awk '{print $2}')
netlink=$(${ethtoolcommand} "${netint}" 2> /dev/null | grep Speed | awk '{print $2}')
netint=$(${ipcommand} -o addr | grep "${ip}" | awk '{print $2}') # e.g eth0
netlink=$(${ethtoolcommand} "${netint}" 2> /dev/null | grep Speed | awk '{print $2}') # e.g 1000Mb/s
# Sets the SteamCMD glibc requirement if the game server requirement is less or not required.
if [ "${appid}" ]; then
@ -286,5 +278,5 @@ if [ "${appid}" ]; then
fi
fi
# Gather Port Info using ss
# Gather Port Info using ss.
ssinfo="$(ss -tuplwn)"

51
lgsm/modules/info_game.sh

@ -287,6 +287,8 @@ fn_info_game_ac() {
fn_info_game_ark() {
if [ -f "${servercfgfullpath}" ]; then
fn_info_game_ini "adminpassword" "ServerAdminPassword"
fn_info_game_ini "maxplayers" "MaxPlayers"
fn_info_game_ini "rconport" "RCONPort"
fn_info_game_ini "servername" "SessionName"
fn_info_game_ini "serverpassword" "ServerPassword"
fi
@ -487,7 +489,7 @@ fn_info_game_kf() {
if [ -f "${servercfgfullpath}" ]; then
fn_info_game_ini "adminpassword" "AdminPassword"
fn_info_game_ini "httpenabled" "bEnabled"
fn_info_game_ini "httppassword" "httppasswordword"
fn_info_game_ini "httppassword" "AdminPassword"
fn_info_game_ini "httpport" "ListenPort"
fn_info_game_ini "httpuser" "AdminName"
fn_info_game_ini "lanport" "LANServerPort"
@ -523,11 +525,11 @@ fn_info_game_kf2() {
if [ -f "${servercfgfullpath}" ]; then
fn_info_game_ini "adminpassword" "AdminPassword"
fn_info_game_ini "httpport" "ListenPort" "${servercfgdir}/KFWeb.ini"
fn_info_game_ini "port" "Port"
fn_info_game_ini "port" "Port" "${servercfgdir}/LinuxServer-KFEngine.ini"
fn_info_game_ini "servername" "ServerName"
fn_info_game_ini "serverpassword" "GamePassword"
fn_info_game_ini "httpenabled" "bEnabled"
fn_info_game_ini "httppassword" "httppasswordword"
fn_info_game_ini "httpenabled" "bEnabled" "${servercfgdir}/KFWeb.ini"
fn_info_game_ini "httppassword" "AdminPassword"
fi
adminpassword="${adminpassword:-"NOT SET"}"
defaultmap="${defaultmap:-"NOT SET"}"
@ -1683,6 +1685,25 @@ fn_info_game_q3() {
defaultmap="${defaultmap:-"NOT SET"}"
}
# Config Type: QuakeC
# Comment: // or /* */
# fn_info_game_quakec "SERVERNAME"
# Filetype: cfg
fn_info_game_q4() {
if [ -f "${servercfgfullpath}" ]; then
fn_info_game_quakec "maxplayers" "sv_maxclients"
fn_info_game_quakec "rconpassword" "net_serverRemoteConsolePassword"
fn_info_game_quakec "servername" "si_name"
fn_info_game_quakec "serverpassword" "g_password"
fi
maxplayers="${maxplayers:-"0"}"
rconpassword="${rconpassword:-"NOT SET"}"
servername="${servername:-"NOT SET"}"
port="${port:-"0"}"
queryport="${port}"
defaultmap="${defaultmap:-"NOT SET"}"
}
# Config Type: QuakeC
# Comment: // or /* */
# Example: set sv_hostname "SERVERNAME"
@ -1730,7 +1751,7 @@ fn_info_game_ro() {
if [ -f "${servercfgfullpath}" ]; then
fn_info_game_ini "adminpassword" "AdminPassword"
fn_info_game_ini "httpenabled" "bEnabled"
fn_info_game_ini "httppassword" "httppasswordword"
fn_info_game_ini "httppassword" "AdminPassword"
fn_info_game_ini "httpport" "ListenPort"
fn_info_game_ini "httpuser" "AdminName"
fn_info_game_ini "lanport" "LANServerPort"
@ -1830,14 +1851,7 @@ fn_info_game_rw() {
# example: hostname "SERVERNAME"
# filetypes: cfg
fn_info_game_samp() {
# Config
if [ ! -f "${servercfgfullpath}" ]; then
servername="unnamed server"
rconpassword="${unavailable}"
port="7777"
rconport="${port}"
maxplayers="50"
else
if [ -f "${servercfgfullpath}" ]; then
servername=$(grep "hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/^rcon_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
port=$(grep "port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
@ -2031,14 +2045,15 @@ fn_info_game_source() {
fn_info_game_spark() {
defaultmap="${defaultmap:-"NOT SET"}"
httppassword="${httppassword:-"NOT SET"}"
httpport="${httpport:-"0"}"
httpuser="${httpuser:-"NOT SET"}"
maxplayers="${maxplayers:-"0"}"
modserverport=${modserverport:-"0"}
port="${port:-"0"}"
queryport="$((port + 1))"
servername="${servername:-"NOT SET"}"
serverpassword="${serverpassword:-"NOT SET"}"
httpuser="${httpuser:-"NOT SET"}"
httppassword="${httppassword:-"NOT SET"}"
httpport="${httpport:-"0"}"
}
# Config Type: Custom (key-value pairs)
@ -2272,8 +2287,6 @@ elif [ "${shortname}" == "bt" ]; then
fn_info_game_bt
elif [ "${shortname}" == "btl" ]; then
fn_info_game_btl
elif [ "${shortname}" == "cd" ]; then
fn_info_game_cd
elif [ "${shortname}" == "ck" ]; then
fn_info_game_ck
elif [ "${shortname}" == "cmw" ]; then
@ -2352,6 +2365,8 @@ elif [ "${shortname}" == "q2" ]; then
fn_info_game_q2
elif [ "${shortname}" == "q3" ]; then
fn_info_game_q3
elif [ "${shortname}" == "q4" ]; then
fn_info_game_q4
elif [ "${shortname}" == "ql" ]; then
fn_info_game_ql
elif [ "${shortname}" == "qw" ]; then

31
lgsm/modules/info_messages.sh

@ -95,7 +95,7 @@ fn_info_messages_distro() {
echo -e "${lightblue}Hostname:\t${default}${HOSTNAME}"
echo -e "${lightblue}Environment:\t${default}${virtualenvironment}"
echo -e "${lightblue}Uptime:\t${default}${days}d, ${hours}h, ${minutes}m"
echo -e "${lightblue}tmux:\t${default}${tmuxv}"
echo -e "${lightblue}tmux:\t${default}${tmuxversion}"
echo -e "${lightblue}glibc:\t${default}${glibcversion}"
if [ -n "${javaram}" ]; then
echo -e "${lightblue}Java:\t${default}${javaversion}"
@ -191,10 +191,10 @@ fn_info_messages_gameserver_resource() {
else
echo -e "${lightblue}CPU Used:\t${red}unknown${default}"
fi
if [ -n "${memused}" ]; then
echo -e "${lightblue}Mem Used:\t${default}${pmemused}%\t${memused}MB${default}"
if [ -n "${memusedmb}" ]; then
echo -e "${lightblue}Mem Used:\t${default}${memusedpct}%\t${memusedmb}MB${default}"
else
echo -e "${lightblue}Mem Used:\t${default}${pmemused}\t${red}unknown${default}"
echo -e "${lightblue}Mem Used:\t${default}${memusedpct}\t${red}unknown${default}"
fi
else
echo -e "${lightblue}CPU Used:\t${default}0%${default}"
@ -663,7 +663,7 @@ fn_info_messages_ports_edit() {
startparameterslocation="${red}UNKNOWN${default}"
# engines/games that require editing in the config file.
local ports_edit_array=("ac" "arma3" "armar" "bo" "bt" "cd" "ct" "dst" "eco" "idtech2" "idtech3" "idtech3_ql" "jc2" "jc3" "lwjgl2" "mcb" "nec" "pc" "pc2" "prism3d" "pz" "qw" "refractor" "renderware" "rw" "sb" "sdtd" "st" "stn" "ts3" "tw" "terraria" "unreal" "unreal2" "unreal3" "vints" "wurm")
local ports_edit_array=("ac" "arma3" "armar" "bo" "bt" "ct" "dst" "eco" "idtech2" "idtech3" "idtech3_ql" "jc2" "jc3" "lwjgl2" "mcb" "nec" "pc" "pc2" "prism3d" "pz" "qw" "refractor" "renderware" "rw" "sb" "sdtd" "st" "stn" "ts3" "tw" "terraria" "unreal" "unreal2" "unreal3" "vints" "wurm")
for port_edit in "${ports_edit_array[@]}"; do
if [ "${shortname}" == "ut3" ]; then
startparameterslocation="${servercfgdir}/UTWeb.ini"
@ -674,7 +674,7 @@ fn_info_messages_ports_edit() {
fi
done
# engines/games that require editing the start parameters.
local ports_edit_array=("av" "ck" "col" "cs2" "fctr" "goldsrc" "hcu" "hw" "iw3.0" "ioquake3" "qfusion" "rust" "scpsl" "scpslsm" "sol" "spark" "source" "unreal4" "arma3" "dayz" "unt" "vh")
local ports_edit_array=("av" "ck" "col" "cs2" "fctr" "goldsrc" "hcu" "hw" "iw3.0" "ioquake3" "qfusion" "rust" "scpsl" "scpslsm" "sf" "sol" "spark" "source" "unreal4" "arma3" "dayz" "unt" "vh")
for port_edit in "${ports_edit_array[@]}"; do
if [ "${engine}" == "${port_edit}" ] || [ "${gamename}" == "${port_edit}" ] || [ "${shortname}" == "${port_edit}" ]; then
startparameterslocation="${configdirserver}"
@ -692,6 +692,10 @@ fn_info_messages_ports() {
portcommand="ss -tuplwn | grep AvorionServer"
elif [ "${shortname}" == "bf1942" ]; then
portcommand="ss -tuplwn | grep bf1942_lnxded"
elif [ "${shortname}" == "dayz" ]; then
portcommand="ss -tuplwn | grep enfMain"
elif [ "${shortname}" == "q4" ]; then
portcommand="ss -tuplwn | grep q4ded.x86"
elif [ "${shortname}" == "mc" ] || [ "${shortname}" == "nec" ] || [ "${shortname}" == "pmc" ] || [ "${shortname}" == "vpmc" ] || [ "${shortname}" == "wmc" ]; then
portcommand="ss -tuplwn | grep java"
elif [ "${shortname}" == "terraria" ]; then
@ -1284,6 +1288,7 @@ fn_info_messages_q2() {
{
fn_port "header"
fn_port "Game" port udp
fn_port "Query" queryport udp
} | column -s $'\t' -t
}
@ -1291,6 +1296,15 @@ fn_info_messages_q3() {
{
fn_port "header"
fn_port "Game" port udp
fn_port "Query" queryport udp
} | column -s $'\t' -t
}
fn_info_messages_q4() {
{
fn_port "header"
fn_port "Game" port udp
fn_port "Query" queryport udp
} | column -s $'\t' -t
}
@ -1466,6 +1480,7 @@ fn_info_messages_spark() {
fn_port "header"
fn_port "Game" port udp
fn_port "Query" queryport udp
fn_port "Mod Server" modserverport tcp
fn_port "Web Interface" httpport tcp
} | column -s $'\t' -t
echo -e ""
@ -1705,8 +1720,6 @@ fn_info_messages_select_engine() {
fn_info_messages_bt
elif [ "${shortname}" == "btl" ]; then
fn_info_messages_btl
elif [ "${shortname}" == "cd" ]; then
fn_info_messages_cd
elif [ "${shortname}" == "ck" ]; then
fn_info_messages_ck
elif [ "${shortname}" == "cs2" ]; then
@ -1791,6 +1804,8 @@ fn_info_messages_select_engine() {
fn_info_messages_q2
elif [ "${shortname}" == "q3" ]; then
fn_info_messages_q3
elif [ "${shortname}" == "q4" ]; then
fn_info_messages_q3
elif [ "${shortname}" == "ql" ]; then
fn_info_messages_ql
elif [ "${shortname}" == "qw" ]; then

18
lgsm/modules/info_stats.sh

@ -54,7 +54,10 @@ uuidhardware=$(cat "/etc/machine-id")
# nearest 100Mhz.
cpuusedmhzroundup="$(((cpuusedmhz + 99) / 100 * 100))"
# nearest 100MB
memusedroundup="$(((memused + 99) / 100 * 100))"
memusedmbroundup="$(((memusedmb + 99) / 100 * 100))"
# Convert any commas to dots.
physmemtotal="${physmemtotal//,/.}"
apisecret="A-OzP02TSMWt4_vHi6ZpUw"
measurementid="G-0CR8V7EMT5"
@ -66,22 +69,25 @@ payload="{
{
\"name\": \"LinuxGSM\",
\"params\": {
\"cpuusedmhzroundup\": \"${cpuusedmhzroundup}MHz\",
\"cpuusedmhzroundup\": \"${cpuusedmhzroundup}\",
\"diskused\": \"${serverfilesdu}\",
\"distro\": \"${distroname}\",
\"game\": \"${gamename}\",
\"memusedroundup\": \"${memusedroundup}MB\",
\"ramused\": \"${memusedroundup}MB\",
\"memusedmbroundup\": \"${memusedmbroundup}\",
\"ramused\": \"${memusedmbroundup}\",
\"servercpu\": \"${cpumodel} ${cpucores} cores\",
\"servercpufreq\": \"${cpufreqency} x${cpucores}\",
\"serverdisk\": \"${totalspace}\",
\"serverfilesdu\": \"${serverfilesdu}\",
\"serverram\": \"${physmemtotal}\",
\"serverramgb\": \"${physmemtotalgb}\",
\"uuidhardware\": \"${uuidhardware}\",
\"uuidinstall\": \"${uuidinstall}\",
\"uuidinstance\": \"${uuidinstance}\",
\"version\": \"${version}\",
\"virtualenvironment\": \"${virtualenvironment}\"
\"virtualenvironment\": \"${virtualenvironment}\",
\"tmuxversion\": \"${tmuxversion}\",
\"java\": \"${javaversion}\"
}
}
]
@ -156,7 +162,7 @@ fn_script_log_info "* uuid-hardware: ${uuidhardware}"
fn_script_log_info "* Game Name: ${gamename}"
fn_script_log_info "* Distro Name: ${distroname}"
fn_script_log_info "* Game Server CPU Used: ${cpuusedmhzroundup}MHz"
fn_script_log_info "* Game Server RAM Used: ${memusedroundup}MB"
fn_script_log_info "* Game Server RAM Used: ${memusedmbroundup}MB"
fn_script_log_info "* Game Server Disk Used: ${serverfilesdu}"
fn_script_log_info "* Server CPU Model: ${cpumodel}"
fn_script_log_info "* Server CPU Frequency: ${cpufreqency}"

16
lgsm/modules/install_config.sh

@ -245,7 +245,7 @@ elif [ "${shortname}" == "bt" ]; then
fn_list_config_locations
elif [ "${shortname}" == "btl" ]; then
fn_check_cfgdir
array_configs+=(DefaultGame.ini)
array_configs+=(Game.ini)
fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
@ -286,12 +286,6 @@ elif [ "${shortname}" == "bmdm" ]; then
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "cd" ]; then
array_configs+=(properties.json)
fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "ck" ]; then
array_configs+=(ServerConfig.json)
fn_fetch_default_config
@ -484,7 +478,7 @@ elif [ "${shortname}" == "hldms" ]; then
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "ohd" ]; then
array_configs+=(Game.ini)
array_configs+=(Admins.cfg Engine.ini Game.ini MapCycle.cfg)
fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
@ -640,6 +634,12 @@ elif [ "${shortname}" == "q2" ]; then
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "q3" ]; then
array_configs+=(server.cfg)
fn_fetch_default_configs
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "q4" ]; then
array_configs+=(server.cfg)
fn_fetch_default_config
fn_default_config_remote

9
lgsm/modules/install_server_files.sh

@ -106,6 +106,13 @@ fn_install_server_files() {
chmodx="nochmodx" run="norun"
force="noforce"
md5="b0e26d8919fe9313fb9d8ded2360f3db"
elif [ "${shortname}" == "q4" ]; then
remote_fileurl="http://linuxgsm.download/Quake4/quake4-1.4.2-x86-linuxded.tar.xz"
local_filedir="${tmpdir}"
local_filename="quake4-1.4.2-x86-linuxded.tar.xz"
chmodx="nochmodx" run="norun"
force="noforce"
md5="afe30b44f23c8ae2ce6f0f464473d8ba"
elif [ "${shortname}" == "qw" ]; then
remote_fileurl="http://linuxgsm.download/QuakeWorld/nquake.server.linux.190506.full.tar.xz"
local_filedir="${tmpdir}"
@ -240,7 +247,7 @@ elif [ "${shortname}" == "vints" ]; then
elif [ "${shortname}" == "ut99" ]; then
fn_install_server_files
update_ut99.sh
elif [ -z "${appid}" ] || [ "${shortname}" == "ahl" ] || [ "${shortname}" == "bb" ] || [ "${shortname}" == "ns" ] || [ "${shortname}" == "sfc" ] || [ "${shortname}" == "ts" ] || [ "${shortname}" == "vs" ] || [ "${shortname}" == "zmr" ]; then
elif [ -z "${appid}" ] || [ "${shortname}" == "ahl" ] || [ "${shortname}" == "bb" ] || [ "${shortname}" == "q4" ] || [ "${shortname}" == "ns" ] || [ "${shortname}" == "sfc" ] || [ "${shortname}" == "ts" ] || [ "${shortname}" == "vs" ] || [ "${shortname}" == "zmr" ]; then
if [ "${shortname}" == "ut" ]; then
install_eula.sh
fi

2
lgsm/modules/mods_list.sh

@ -200,7 +200,7 @@ mod_info_hwoxide=(MOD "hwoxide" "Oxide for Hurtworld" "${oxidehurtworldlatestlin
mod_info_sdtdoxide=(MOD "sdtdoxide" "Oxide for 7 Days To Die" "${oxidesdtdlatestlink}" "Oxide.SevenDaysToDie.zip" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "7 Days To Die;" "NOTGAMES" "https://umod.org/games/7-days-to-die" "Allows for the use of plugins")
# ValheimPlus
mod_info_valheimplus=(MOD "valheimplus" "Valheim PLUS" "${valeimpluslatestlink}" "ValheimPlus.tar.gz" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Valheim;" "NOTGAMES" "https://github.com/valheimPlus/ValheimPlus" "Mod to improve Valheim gameplay")
mod_info_valheimplus=(MOD "valheimplus" "Valheim PLUS" "${valeimpluslatestlink}" "ValheimPlus.tar.gz" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Valheim;" "NOTGAMES" "https://github.com/Grantapher/ValheimPlus.git" "Mod to improve Valheim gameplay")
# BepInEx Valheim
mod_info_bepinexvh=(MOD "bepinexvh" "BepInEx Valheim" "${bepinexvhlatestlink}" "denikson-BepInExPack_Valheim.zip" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Valheim;" "NOTGAMES" "https://valheim.thunderstore.io/package/denikson/BepInExPack_Valheim/" "Unity / XNA game patcher and plugin framework")

2
linuxgsm.sh

@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
version="v23.6.2"
version="v23.7.0"
shortname="core"
gameservername="core"
commandname="CORE"

Loading…
Cancel
Save