Kaynağa Gözat

Merge remote-tracking branch 'dgibbs64/master'

Alexander Hurd 9 yıl önce
ebeveyn
işleme
410b6619ad
100 değiştirilmiş dosya ile 600 ekleme ve 227 silme
  1. 1 0
      7DaysToDie/sdtdserver
  2. 4 3
      ARKSurvivalEvolved/arkserver
  3. 1 0
      Arma3/arma3server
  4. 1 0
      BlackMesa/bmdmserver
  5. 1 0
      BladeSymphony/bsserver
  6. 1 0
      BrainBread2/bb2server
  7. 1 0
      CodenameCURE/ccserver
  8. 3 2
      CounterStrike/csserver
  9. 1 0
      CounterStrikeConditionZero/csczserver
  10. 11 3
      CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg
  11. 6 0
      CounterStrikeGlobalOffensive/csgoserver
  12. 7 1
      CounterStrikeSource/cssserver
  13. 1 0
      DayOfDefeat/dodserver
  14. 1 0
      DayOfDefeatSource/dodsserver
  15. 1 0
      DayOfInfamy/doiserver
  16. 1 0
      DeathmatchClassic/dmcserver
  17. 0 0
      DontStarveTogether/cfg/lgsm-default.ini
  18. BIN
      DontStarveTogether/dependencies/libc.so.6
  19. BIN
      DontStarveTogether/dependencies/libpthread.so.0
  20. BIN
      DontStarveTogether/dependencies/librt.so.1
  21. 1 0
      DontStarveTogether/dstserver
  22. 1 0
      DoubleActionBoogaloo/dabserver
  23. BIN
      DoubleActionBoogaloo/dependencies/libm.so.6
  24. 161 0
      EmpiresMod/emserver
  25. 1 0
      FistfulOfFrags/fofserver
  26. 8 2
      GarrysMod/gmodserver
  27. 1 0
      GoldenEyeSource/gesserver
  28. 1 0
      HalfLife2Deathmatch/hl2dmserver
  29. 1 0
      HalfLifeDeathmatch/hldmserver
  30. 1 0
      HalfLifeDeathmatchSource/hldmsserver
  31. 3 1
      Hurtworld/hwserver
  32. BIN
      Insurgency/dependencies/libc.so.6
  33. BIN
      Insurgency/dependencies/libm.so.6
  34. BIN
      Insurgency/dependencies/librt.so.1
  35. 1 0
      Insurgency/insserver
  36. 1 0
      JustCause2/jc2server
  37. 1 0
      KillingFloor/kfserver
  38. 1 0
      Left4Dead/l4dserver
  39. 1 3
      Left4Dead2/l4d2server
  40. 21 13
      Mumble/mumbleserver
  41. 1 0
      NS2Combat/ns2cserver
  42. 6 0
      NaturalSelection2/ns2server
  43. 1 0
      NoMoreRoomInHell/nmrihserver
  44. 1 0
      OpposingForce/opforserver
  45. 1 0
      PiratesVikingandKnightsII/pvkiiserver
  46. 23 3
      ProjectZomboid/cfg/lgsm-default.ini
  47. 4 2
      ProjectZomboid/pzserver
  48. 1 0
      QuakeLive/qlserver
  49. 1 0
      RedOrchestra/roserver
  50. 1 0
      Ricochet/ricochetserver
  51. 1 0
      Rust/rustserver
  52. 1 0
      SeriousSam3BFE/ss3sserver
  53. 1 0
      Starbound/sbserver
  54. 1 0
      SvenCoop/svencoopserver
  55. 1 0
      TeamFortress2/tf2server
  56. 1 0
      TeamFortressClassic/tfcserver
  57. 4 4
      TeamSpeak3/cfg/lgsm-default.ini
  58. 5 4
      TeamSpeak3/ts3server
  59. 1 1
      Teeworlds/cfg/tdm.cfg
  60. 1 0
      Teeworlds/twserver
  61. 1 0
      Terraria/terrariaserver
  62. 1 0
      UnrealTournament2004/ut2k4server
  63. 3 2
      UnrealTournament99/ut99server
  64. BIN
      images/logo/lgsm-250x130-dark.png
  65. BIN
      images/logo/lgsm-250x143-dark.png
  66. 3 3
      lgsm/functions/alert.sh
  67. 3 3
      lgsm/functions/alert_email.sh
  68. 1 1
      lgsm/functions/alert_pushbullet.sh
  69. 2 11
      lgsm/functions/check.sh
  70. 1 1
      lgsm/functions/check_config.sh
  71. 40 17
      lgsm/functions/check_deps.sh
  72. 1 1
      lgsm/functions/check_glibc.sh
  73. 7 5
      lgsm/functions/check_ip.sh
  74. 3 3
      lgsm/functions/check_logs.sh
  75. 15 13
      lgsm/functions/check_permissions.sh
  76. 1 0
      lgsm/functions/check_root.sh
  77. 13 2
      lgsm/functions/check_status.sh
  78. 4 5
      lgsm/functions/check_steamcmd.sh
  79. 1 0
      lgsm/functions/check_system_dir.sh
  80. 10 3
      lgsm/functions/check_system_requirements.sh
  81. 0 21
      lgsm/functions/check_tmux.sh
  82. 2 2
      lgsm/functions/command_backup.sh
  83. 2 2
      lgsm/functions/command_debug.sh
  84. 19 6
      lgsm/functions/command_details.sh
  85. 1 1
      lgsm/functions/command_dev_debug.sh
  86. 48 48
      lgsm/functions/command_dev_detect_deps.sh
  87. 31 0
      lgsm/functions/command_dev_detect_glibc.sh
  88. 4 4
      lgsm/functions/command_fastdl.sh
  89. 4 3
      lgsm/functions/command_install.sh
  90. 23 3
      lgsm/functions/command_monitor.sh
  91. 2 2
      lgsm/functions/command_restart.sh
  92. 3 2
      lgsm/functions/command_start.sh
  93. 28 4
      lgsm/functions/command_stop.sh
  94. 1 1
      lgsm/functions/command_test_alert.sh
  95. 1 1
      lgsm/functions/command_ts3_server_pass.sh
  96. 4 2
      lgsm/functions/command_update.sh
  97. 2 2
      lgsm/functions/command_update_functions.sh
  98. 9 9
      lgsm/functions/command_validate.sh
  99. 1 1
      lgsm/functions/compress_unreal2_maps.sh
  100. 1 1
      lgsm/functions/compress_ut99_maps.sh

+ 1 - 0
7DaysToDie/sdtdserver

@@ -61,6 +61,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}"
 executabledir="${filesdir}"

+ 4 - 3
ARKSurvivalEvolved/arkserver

@@ -37,10 +37,10 @@ rconport="32330"
 rconpassword="" # Set to enable rcon
 maxplayers="50"
 ip="0.0.0.0"
-updateonstart="off"
-
+updateonstart="off"
+
 fn_parms(){
-    parms="TheIsland?listen?MultiHome=${ip}?SessionName=${servername}?MaxPlayers=${maxplayers}?QueryPort=${queryport}?RCONPort=${rconport}?Port=${port}?ServerAdminPassword=${rconpassword}"
+parms="\"TheIsland?listen?MultiHome=${ip}?SessionName=${servername}?MaxPlayers=${maxplayers}?QueryPort=${queryport}?RCONPort=${rconport}?Port=${port}?ServerAdminPassword=${rconpassword}\""
 }
 
 #### Advanced Variables ####
@@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/ShooterGame"
 executabledir="${systemdir}/Binaries/Linux"

+ 1 - 0
Arma3/arma3server

@@ -80,6 +80,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}"
 executabledir="${filesdir}"

+ 1 - 0
BlackMesa/bmdmserver

@@ -71,6 +71,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/bms"
 executabledir="${filesdir}"

+ 1 - 0
BladeSymphony/bsserver

@@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/berimbau"
 executabledir="${filesdir}"

+ 1 - 0
BrainBread2/bb2server

@@ -71,6 +71,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/brainbread2"
 executabledir="${filesdir}"

+ 1 - 0
CodenameCURE/ccserver

@@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/cure"
 executabledir="${filesdir}"

+ 3 - 2
CounterStrike/csserver

@@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then
 	set -x
 fi
 
-version="210516"
+version="060816"
 
 #### Variables ####
 
@@ -66,12 +66,13 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/cstrike"
 executabledir="${filesdir}"
 executable="./hlds_run"
 servercfg="${servicename}.cfg"
-servercfgdir="${systemdir}/cfg"
+servercfgdir="${systemdir}"
 servercfgfullpath="${servercfgdir}/${servercfg}"
 servercfgdefault="${servercfgdir}/lgsm-default.cfg"
 backupdir="${rootdir}/backups"

+ 1 - 0
CounterStrikeConditionZero/csczserver

@@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/czero"
 executabledir="${filesdir}"

+ 11 - 3
CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg

@@ -14,10 +14,18 @@ sv_logecho 1
 sv_logfile 1
 sv_log_onefile 0
 
+// Server Hibernation
+sv_hibernate_when_empty 1
+sv_hibernate_ms 5
+
+// Server Query
+// More info at: https://www.gametracker.com/games/csgo/forum.php?thread=91691
+host_name_store 1
+host_info_show 1
+host_players_show 2
+
+
 exec banned_user.cfg
 exec banned_ip.cfg
 writeid
 writeip
-
-
-

+ 6 - 0
CounterStrikeGlobalOffensive/csgoserver

@@ -78,6 +78,11 @@ githubbranch="master"
 # Steam
 appid="740"
 
+# Steam App Branch Select
+# Allows to opt into the various Steam app branches. Default branch is "".
+# Example: "-beta 1.35.4.4"
+branch=""
+
 # Server Details
 servicename="csgo-server"
 gamename="Counter Strike: Global Offensive"
@@ -89,6 +94,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/csgo"
 executabledir="${filesdir}"

+ 7 - 1
CounterStrikeSource/cssserver

@@ -38,9 +38,14 @@ clientport="27005"
 ip="0.0.0.0"
 updateonstart="off"
 
+# Required: Game Server Login Token
+# GSLT is required for running a public server.
+# More info: https://gameservermanagers.com/gslt
+gslt=""
+
 # https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server
 fn_parms(){
-parms="-game cstrike -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
+parms="-game cstrike -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
 }
 
 #### Advanced Variables ####
@@ -66,6 +71,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/cstrike"
 executabledir="${filesdir}"

+ 1 - 0
DayOfDefeat/dodserver

@@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/dod"
 executabledir="${filesdir}"

+ 1 - 0
DayOfDefeatSource/dodsserver

@@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/dod"
 executabledir="${filesdir}"

+ 1 - 0
DayOfInfamy/doi-server → DayOfInfamy/doiserver

@@ -68,6 +68,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/doi"
 executabledir="${filesdir}"

+ 1 - 0
DeathmatchClassic/dmcserver

@@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/dmc"
 executabledir="${filesdir}"

+ 0 - 0
DontStarveTogether/lgsm-default.ini → DontStarveTogether/cfg/lgsm-default.ini


BIN
DontStarveTogether/dependencies/libc.so.6


BIN
DontStarveTogether/dependencies/libpthread.so.0


BIN
DontStarveTogether/dependencies/librt.so.1


+ 1 - 0
DontStarveTogether/dstserver

@@ -64,6 +64,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}"
 executabledir="${filesdir}/bin"

+ 1 - 0
DoubleActionBoogaloo/dabserver

@@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/dab"
 executabledir="${filesdir}"

BIN
DoubleActionBoogaloo/dependencies/libm.so.6


+ 161 - 0
EmpiresMod/emserver

@@ -0,0 +1,161 @@
+#!/bin/bash
+# Empires Mod
+# Server Management Script
+# Author: Daniel Gibbs
+# Website: https://gameservermanagers.com
+if [ -f ".dev-debug" ]; then
+	exec 5>dev-debug.log
+	BASH_XTRACEFD="5"
+	set -x
+fi
+
+version="210516"
+
+#### Variables ####
+
+# Notification Alerts
+# (on|off)
+
+# Email
+emailalert="off"
+email="email@example.com"
+
+# Pushbullet
+# https://www.pushbullet.com/#settings
+pushbulletalert="off"
+pushbullettoken="accesstoken"
+
+# Steam login
+steamuser="anonymous"
+steampass=""
+
+# Start Variables
+defaultmap="emp_district"
+maxplayers="62"
+port="27015"
+sourcetvport="27020"
+clientport="27005"
+ip="0.0.0.0"
+updateonstart="off"
+
+# Optional: Game Server Login Token
+# GSLT can be used for running a public server.
+# More info: https://gameservermanagers.com/gslt
+gslt=""
+
+# https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server
+fn_parms(){
+parms="-game empires -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
+}
+
+#### Advanced Variables ####
+
+# Github Branch Select
+# Allows for the use of different function files
+# from a different repo and/or branch.
+githubuser="dgibbs64"
+githubrepo="linuxgsm"
+githubbranch="master"
+
+# Steam
+appid="460040"
+
+# Server Details
+servicename="em-server"
+gamename="Empires Mod"
+engine="source"
+
+# Directories
+rootdir="$(dirname $(readlink -f "${BASH_SOURCE[0]}"))"
+selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
+lockselfname=".${servicename}.lock"
+lgsmdir="${rootdir}/lgsm"
+functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
+filesdir="${rootdir}/serverfiles"
+systemdir="${filesdir}/empires"
+executabledir="${filesdir}"
+executable="./srcds_run"
+servercfg="${servicename}.cfg"
+servercfgdir="${systemdir}/cfg"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+servercfgdefault="${servercfgdir}/server.cfg"
+backupdir="${rootdir}/backups"
+
+# Logging
+logdays="7"
+gamelogdir="${systemdir}/logs"
+scriptlogdir="${rootdir}/log/script"
+consolelogdir="${rootdir}/log/console"
+consolelogging="on"
+
+scriptlog="${scriptlogdir}/${servicename}-script.log"
+consolelog="${consolelogdir}/${servicename}-console.log"
+emaillog="${scriptlogdir}/${servicename}-email.log"
+
+scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log"
+consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log"
+
+##### Script #####
+# Do not edit
+
+# Fetches core_dl for file downloads
+fn_fetch_core_dl(){
+github_file_url_dir="lgsm/functions"
+github_file_url_name="${functionfile}"
+filedir="${functionsdir}"
+filename="${github_file_url_name}"
+githuburl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${github_file_url_name}"
+# If the file is missing, then download
+if [ ! -f "${filedir}/${filename}" ]; then
+	if [ ! -d "${filedir}" ]; then
+		mkdir -p "${filedir}"
+	fi
+	echo -e "    fetching ${filename}...\c"
+	# Check curl exists and use available path
+	curlpaths="$(command -v curl 2>/dev/null) $(which curl >/dev/null 2>&1) /usr/bin/curl /bin/curl /usr/sbin/curl /sbin/curl)"
+	for curlcmd in ${curlpaths}
+	do
+		if [ -x "${curlcmd}" ]; then
+			break
+		fi
+	done
+	# If curl exists download file
+	if [ "$(basename ${curlcmd})" == "curl" ]; then
+		curlfetch=$(${curlcmd} -s --fail -o "${filedir}/${filename}" "${githuburl}" 2>&1)
+		if [ $? -ne 0 ]; then
+			echo -e "\e[0;31mFAIL\e[0m\n"
+			echo "${curlfetch}"
+			echo -e "${githuburl}\n"
+			exit 1
+		else
+			echo -e "\e[0;32mOK\e[0m"
+		fi
+	else
+		echo -e "\e[0;31mFAIL\e[0m\n"
+		echo "Curl is not installed!"
+		echo -e ""
+		exit 1
+	fi
+	chmod +x "${filedir}/${filename}"
+fi
+source "${filedir}/${filename}"
+}
+
+core_dl.sh(){
+# Functions are defined in core_functions.sh.
+functionfile="${FUNCNAME}"
+fn_fetch_core_dl
+}
+
+core_functions.sh(){
+# Functions are defined in core_functions.sh.
+functionfile="${FUNCNAME}"
+fn_fetch_core_dl
+}
+
+core_dl.sh
+core_functions.sh
+
+getopt=$1
+core_getopt.sh

+ 1 - 0
FistfulOfFrags/fofserver

@@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/fof"
 executabledir="${filesdir}"

+ 8 - 2
GarrysMod/gmodserver

@@ -29,6 +29,11 @@ pushbullettoken="accesstoken"
 steamuser="anonymous"
 steampass=""
 
+# Steam App Branch Select
+# Allows to opt into the various Steam app branches. Default branch is "".
+# Example: "-beta prerelease "
+branch=""
+
 # Workshop Variables
 # http://wiki.garrysmod.com/page/Workshop_for_Dedicated_Servers
 workshopauth=""
@@ -41,8 +46,8 @@ maxplayers="16"
 port="27015"
 sourcetvport="27020"
 clientport="27005"
-ip="0.0.0.0"
 tickrate="66"
+ip="0.0.0.0"
 updateonstart="off"
 
 # Custom Start Parameters
@@ -56,7 +61,7 @@ gslt=""
 
 # https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server
 fn_parms(){
-parms="-game garrysmod -strictportbind -ip ${ip} -port ${port} -tickrate {tickrate} +host_workshop_collection ${workshopcollectionid} -authkey ${workshopauth} +clientport ${clientport} +tv_port ${sourcetvport} +gamemode ${gamemode} +map ${defaultmap} +sv_setsteamaccount ${gslt} +servercfgfile ${servercfg} -maxplayers ${maxplayers} ${customparms}"
+parms="-game garrysmod -strictportbind -ip ${ip} -port ${port} -tickrate ${tickrate} +host_workshop_collection ${workshopcollectionid} -authkey ${workshopauth} +clientport ${clientport} +tv_port ${sourcetvport} +gamemode ${gamemode} +map ${defaultmap} +sv_setsteamaccount ${gslt} +servercfgfile ${servercfg} -maxplayers ${maxplayers} ${customparms}"
 }
 
 #### Advanced Variables ####
@@ -82,6 +87,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/garrysmod"
 addonsdir="${systemdir}/addons"

+ 1 - 0
GoldenEyeSource/gesserver

@@ -67,6 +67,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/gesource"
 executabledir="${filesdir}"

+ 1 - 0
HalfLife2Deathmatch/hl2dmserver

@@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/hl2mp"
 executabledir="${filesdir}"

+ 1 - 0
HalfLifeDeathmatch/hldmserver

@@ -65,6 +65,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/valve"
 executabledir="${filesdir}"

+ 1 - 0
HalfLifeDeathmatchSource/hldmsserver

@@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/hl1mp"
 executabledir="${filesdir}"

+ 3 - 1
Hurtworld/hwserver

@@ -31,8 +31,9 @@ steamuser="anonymous"
 steampass=""
 
 # Server settings
-servername="Hurtworld LGSM Server"
 ip="0.0.0.0"
+updateonstart="off"
+servername="Hurtworld LGSM Server"
 port="12871"
 queryport="12881"
 maxplayers="20"
@@ -79,6 +80,7 @@ selfname=$(basename $(readlink -f "${BASH_SOURCE[0]}"))
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}"
 executabledir="${filesdir}"

BIN
Insurgency/dependencies/libc.so.6


BIN
Insurgency/dependencies/libm.so.6


BIN
Insurgency/dependencies/librt.so.1


+ 1 - 0
Insurgency/insserver

@@ -68,6 +68,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/insurgency"
 executabledir="${filesdir}"

+ 1 - 0
JustCause2/jc2server

@@ -30,6 +30,7 @@ steamuser="anonymous"
 steampass=""
 
 # Start Variables
+ip="0.0.0.0"
 updateonstart="off"
 
 fn_parms(){

+ 1 - 0
KillingFloor/kfserver

@@ -65,6 +65,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/System"
 executabledir="${systemdir}"

+ 1 - 0
Left4Dead/l4dserver

@@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/left4dead"
 executabledir="${filesdir}"

+ 1 - 3
Left4Dead2/l4d2server

@@ -25,9 +25,6 @@ email="email@example.com"
 pushbulletalert="off"
 pushbullettoken="accesstoken"
 
-# Pushover
-#Push alot
-
 # Steam login
 steamuser="anonymous"
 steampass=""
@@ -68,6 +65,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/left4dead2"
 executabledir="${filesdir}"

+ 21 - 13
Mumble/mumbleserver

@@ -2,6 +2,7 @@
 # Mumble
 # Server Management Script
 # Author: Daniel Gibbs
+# Contributor: UltimateByte
 # Website: https://gameservermanagers.com
 if [ -f ".dev-debug" ]; then
 	exec 5>dev-debug.log
@@ -9,7 +10,7 @@ if [ -f ".dev-debug" ]; then
 	set -x
 fi
 
-version="210516"
+version="290716"
 
 #### Variables ####
 
@@ -25,6 +26,23 @@ email="email@example.com"
 pushbulletalert="off"
 pushbullettoken="accesstoken"
 
+# Start Variables
+updateonstart="off"
+
+fn_parms(){
+parms="-fg -ini ${servercfgfullpath}"
+}
+
+#### Advanced Variables ####
+
+# Github Branch Select
+# Allows for the use of different function files
+# from a different repo and/or branch.
+githubuser="dgibbs64"
+githubrepo="linuxgsm"
+githubbranch="master"
+
+
 # Server Details
 gamename="Mumble"
 servicename="mumble-server"
@@ -35,6 +53,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}"
 executabledir="${filesdir}"
@@ -46,7 +65,7 @@ backupdir="${rootdir}/backups"
 
 # Logging
 logdays="7"
-logdir="${rootdir}/log"
+gamelogdir="${rootdir}/log"
 scriptlogdir="${rootdir}/log/script"
 consolelogdir="${rootdir}/log/console"
 consolelogging="on"
@@ -58,17 +77,6 @@ emaillog="${scriptlogdir}/${servicename}-email.log"
 scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log"
 consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log"
 
-fn_parms(){
-parms="-fg -ini ${servercfgfullpath}"
-}
-
-# Github Branch Select
-# Allows for the use of different function files
-# from a different repo and/or branch.
-githubuser="dgibbs64"
-githubrepo="linuxgsm"
-githubbranch="master"
-
 ##### Script #####
 # Do not edit
 

+ 1 - 0
NS2Combat/ns2cserver

@@ -73,6 +73,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}"
 executabledir="${filesdir}/ia32"

+ 6 - 0
NaturalSelection2/ns2server

@@ -62,6 +62,11 @@ githubbranch="master"
 # Steam
 appid="4940"
 
+# Steam App Branch Select
+# Allows to opt into the various Steam app branches. Default branch is "".
+# Example: "-beta beta"
+branch=""
+
 # Server Details
 servicename="ns2-server"
 gamename="Natural Selection 2"
@@ -73,6 +78,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}"
 executabledir="${filesdir}"

+ 1 - 0
NoMoreRoomInHell/nmrihserver

@@ -71,6 +71,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/nmrih"
 executabledir="${filesdir}"

+ 1 - 0
OpposingForce/opforserver

@@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/gearbox"
 executabledir="${filesdir}"

+ 1 - 0
PiratesVikingandKnightsII/pvkiiserver

@@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/pvkii"
 executabledir="${filesdir}"

+ 23 - 3
ProjectZomboid/cfg/lgsm-default.ini

@@ -14,10 +14,8 @@ SafetyToggleTimer=100
 SafetyCooldownTimer=120
 SpawnItems=
 DefaultPort=16261
-ResetID=834499345
 Mods=
 Map=Muldraugh, KY
-SpawnRegions=servertest_spawnregions.lua
 DoLuaChecksum=true
 Public=false
 PublicName=pzserver
@@ -33,7 +31,7 @@ NoFireSpread=false
 NoFire=false
 AnnounceDeath=false
 MinutesPerPage=1.0
-HoursForCorpseRemoval=0
+HoursForCorpseRemoval=0.0
 SaveWorldEveryMinutes=0
 PlayerSafehouse=false
 AdminSafehouse=false
@@ -44,3 +42,25 @@ SafehouseAllowRespawn=false
 SafehouseDaySurvivedToClaim=0
 SafeHouseRemovalTime=144
 AllowDestructionBySledgehammer=true
+KickFastPlayers=false
+RCONPort=27015
+RCONPassword=
+Password=
+MaxAccountsPerUser=0
+SleepAllowed=false
+SleepNeeded=false
+SteamPort1=8766
+SteamPort2=8767
+WorkshopItems=
+SteamScoreboard=true
+SteamVAC=true
+UPnP=true
+UPnPLeaseTime=86400
+UPnPZeroLeaseTimeFallback=true
+UPnPForce=true
+CoopServerLaunchTimeout=20
+CoopMasterPingTimeout=60
+server_browser_announced_ip=
+UseTCPForMapDownloads=false
+PlayerRespawnWithSelf=false
+PlayerRespawnWithOther=false

+ 4 - 2
ProjectZomboid/pzserver

@@ -10,7 +10,7 @@ if [ -f ".dev-debug" ]; then
 	set -x
 fi
 
-version="210516"
+version="290716"
 
 #### Variables ####
 
@@ -31,11 +31,12 @@ steamuser="anonymous"
 steampass=""
 
 # Start Variables
+adminpassword="CHANGE_ME"
 ip="0.0.0.0"
 updateonstart="off"
 
 fn_parms(){
-parms=""
+parms="-ip ${ip} -adminpassword \"${adminpassword}\""
 }
 
 #### Advanced Variables ####
@@ -64,6 +65,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}"
 executabledir="${filesdir}"

+ 1 - 0
QuakeLive/qlserver

@@ -69,6 +69,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}"
 executabledir="${filesdir}"

+ 1 - 0
RedOrchestra/roserver

@@ -61,6 +61,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/system"
 executabledir="${systemdir}"

+ 1 - 0
Ricochet/ricochetserver

@@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/ricochet"
 executabledir="${filesdir}"

+ 1 - 0
Rust/rustserver

@@ -83,6 +83,7 @@ selfname=$(basename $(readlink -f "${BASH_SOURCE[0]}"))
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}"
 executabledir="${filesdir}"

+ 1 - 0
SeriousSam3BFE/ss3sserver

@@ -61,6 +61,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/Bin"
 executable="./runSam3_DedicatedServer.sh"

+ 1 - 0
Starbound/sbserver

@@ -60,6 +60,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}"
 executabledir="${filesdir}/linux"

+ 1 - 0
SvenCoop/svencoopserver

@@ -65,6 +65,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/svencoop"
 executabledir="${filesdir}"

+ 1 - 0
TeamFortress2/tf2server

@@ -71,6 +71,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/tf"
 executabledir="${filesdir}"

+ 1 - 0
TeamFortressClassic/tfcserver

@@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/tfc"
 executabledir="${filesdir}"

+ 4 - 4
TeamSpeak3/cfg/lgsm-default.ini

@@ -1,11 +1,11 @@
 machine_id=
 default_voice_port=9987
-voice_ip=0.0.0.0
+voice_ip=0.0.0.0, ::
 licensepath=
 filetransfer_port=30033
-filetransfer_ip=0.0.0.0
+filetransfer_ip=0.0.0.0, ::
 query_port=10011
-query_ip=0.0.0.0
+query_ip=0.0.0.0, ::
 query_ip_whitelist=query_ip_whitelist.txt
 query_ip_blacklist=query_ip_blacklist.txt
 dbplugin=ts3db_sqlite3
@@ -17,4 +17,4 @@ logpath=logs
 logquerycommands=0
 dbclientkeepdays=30
 logappend=0
-query_skipbruteforcecheck=0
+query_skipbruteforcecheck=0

+ 5 - 4
TeamSpeak3/ts3server

@@ -1,5 +1,5 @@
 #!/bin/bash
-# Teamspeak 3
+# TeamSpeak 3
 # Server Management Script
 # Author: Daniel Gibbs
 # Website: https://gameservermanagers.com
@@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then
 	set -x
 fi
 
-version="210516"
+version="290716"
 
 #### Variables ####
 
@@ -29,8 +29,8 @@ pushbullettoken="accesstoken"
 updateonstart="off"
 
 # Server Details
-gamename="Teamspeak 3"
-servername="Teamspeak 3 Server"
+gamename="TeamSpeak 3"
+servername="TeamSpeak 3 Server"
 servicename="ts3-server"
 
 # Directories
@@ -39,6 +39,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}"
 executabledir="${filesdir}"

+ 1 - 1
Teeworlds/cfg/tdm.cfg

@@ -1,6 +1,6 @@
 // ****************************************************************************
 //                                                                            *
-//     TeeWorlds - tdm.cfg                                                    *
+//     Teeworlds - tdm.cfg                                                    *
 //     Version 281015                                                         *
 //                                                                            *
 // ****************************************************************************

+ 1 - 0
Teeworlds/twserver

@@ -61,6 +61,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}"
 executabledir="${filesdir}"

+ 1 - 0
Terraria/terrariaserver

@@ -61,6 +61,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}"
 executabledir="${filesdir}"

+ 1 - 0
UnrealTournament2004/ut2k4server

@@ -44,6 +44,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/System"
 executabledir="${systemdir}"

+ 3 - 2
UnrealTournament99/ut99server

@@ -20,7 +20,7 @@ version="210516"
 emailalert="off"
 email="email@example.com"
 
-# Pushbullet 
+# Pushbullet
 # https://www.pushbullet.com/#settings
 pushbulletalert="off"
 pushbullettoken="accesstoken"
@@ -53,6 +53,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 lockselfname=".${servicename}.lock"
 lgsmdir="${rootdir}/lgsm"
 functionsdir="${lgsmdir}/functions"
+libdir="${lgsmdir}/lib"
 filesdir="${rootdir}/serverfiles"
 systemdir="${filesdir}/System"
 executabledir="${systemdir}"
@@ -112,7 +113,7 @@ if [ ! -f "${filedir}/${filename}" ]; then
 			exit 1
 		else
 			echo -e "\e[0;32mOK\e[0m"
-		fi		
+		fi
 	else
 		echo -e "\e[0;31mFAIL\e[0m\n"
 		echo "Curl is not installed!"

BIN
images/logo/lgsm-250x130-dark.png


BIN
images/logo/lgsm-250x143-dark.png


+ 3 - 3
lgsm/functions/alert.sh

@@ -28,7 +28,7 @@ fn_alert_restart_query(){
 fn_alert_update(){
 	fn_script_log_info "Sending update alert"
 	alertsubject="LGSM - Updated - ${servername}"
-	alertbody="${servicename} recieved update"
+	alertbody="${servicename} received update"
 }
 
 if [ "${alert}" == "restart" ]; then
@@ -41,9 +41,9 @@ elif [ "${alert}" == "test" ]; then
 	fn_alert_test
 fi
 
-if [ "${emailnotification}" == "on" ]||[ "${emailalert}" == "on" ]&&[ -n "${email}" ]; then
+if [ "${emailalert}" == "on" ]&&[ -n "${email}" ]; then
 	alert_email.sh
-elif [ "${emailnotification}" != "on" ]||[ "${emailalert}" != "on" ]&&[ "${function_selfname}" == "command_test_alert.sh" ]; then
+elif [ "${emailalert}" != "on" ]&&[ "${function_selfname}" == "command_test_alert.sh" ]; then
 	fn_print_warn_nl "Email alerts not enabled"
 	fn_script_log_warn "Email alerts not enabled"
 elif [ -z "${email}" ]&&[ "${function_selfname}" == "command_test_alert.sh" ]; then

+ 3 - 3
lgsm/functions/alert_email.sh

@@ -2,7 +2,7 @@
 # LGSM alert_email.sh function
 # Author: Daniel Gibbs
 # Website: https://gameservermanagers.com
-# Description: Sends email alert if monitor picks up a failure.
+# Description: Sends email alert including server details and logs.
 
 local commandname="ALERT"
 local commandaction="Alert"
@@ -32,7 +32,7 @@ fn_details_os(){
 		echo -e ""
 		echo -e "Distro Details"
 		echo -e "================================="
-		echo -e "Distro: ${os}"
+		echo -e "Distro: ${distroname}"
 		echo -e "Arch: ${arch}"
 		echo -e "Kernel: ${kernel}"
 		echo -e "Hostname: $HOSTNAME"
@@ -153,7 +153,7 @@ fn_details_gameserver(){
 			echo -e "Tick rate: ${tickrate}"
 		fi
 
-		# Teamspeak dbplugin
+		# TeamSpeak dbplugin
 		if [ -n "${dbplugin}" ]; then
 			echo -e "dbplugin: ${dbplugin}"
 		fi

+ 1 - 1
lgsm/functions/alert_pushbullet.sh

@@ -2,7 +2,7 @@
 # LGSM alert_pushbullet.sh function
 # Author: Daniel Gibbs
 # Website: https://gameservermanagers.com
-# Description: alerts using pushbullet.
+# Description: Sends Pushbullet alert including the server status.
 
 local commandname="ALERT"
 local commandaction="Alert"

+ 2 - 11
lgsm/functions/check.sh

@@ -2,7 +2,6 @@
 # LGSM check.sh function
 # Author: Daniel Gibbs
 # Website: https://gameservermanagers.com
-
 # Description: Overall function for managing checks.
 # Runs checks that will either halt on or fix an issue.
 
@@ -14,7 +13,7 @@ local commandname="CHECK"
 check_root.sh
 check_permissions.sh
 
-if [ "${function_selfname}" != "command_install.sh" ] && [ "${function_selfname}" != "command_update_functions.sh" ]; then
+if [ "${function_selfname}" != "command_install.sh" ]&&[ "${function_selfname}" != "command_update_functions.sh" ]; then
 	check_system_dir.sh
 fi
 
@@ -60,14 +59,6 @@ do
 	fi
 done
 
-local allowed_commands_array=( command_console.sh command_start.sh )
-for allowed_command in "${allowed_commands_array[@]}"
-do
-	if [ "${allowed_command}" == "${function_selfname}" ]||[ "${gamename}" != "Teamspeak 3" ]; then
-		check_tmux.sh
-	fi
-done
-
 local allowed_commands_array=( command_console.sh command_debug.sh command_details.sh command_monitor.sh command_start.sh command_stop.sh )
 for allowed_command in "${allowed_commands_array[@]}"
 do
@@ -84,7 +75,7 @@ do
 	fi
 done
 
-local allowed_commands_array=( command_install.sh command_start.sh command_debug.sh )
+local allowed_commands_array=( command_debug.sh command_start.sh command_install.sh )
 for allowed_command in "${allowed_commands_array[@]}"
 do
 	if [ "${allowed_command}" == "${function_selfname}" ]; then

+ 1 - 1
lgsm/functions/check_config.sh

@@ -2,7 +2,7 @@
 # LGSM check_config.sh function
 # Author: Daniel Gibbs
 # Website: https://gameservermanagers.com
-# Description: If server config missing warn user.
+# Description: Checks if the server config is missing and warns the user if needed.
 
 local commandname="CHECK"
 local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"

+ 40 - 17
lgsm/functions/check_deps.sh

@@ -2,14 +2,14 @@
 # LGSM check_deps.sh function
 # Author: Daniel Gibbs
 # Website: https://gameservermanagers.com
-# Description: Checks that the requires dependencies are installed for LGSM.
+# Description: Checks if required dependencies are installed for LGSM.
 
 local commandname="CHECK"
 
 fn_deps_detector(){
 	# Checks if dependency is missing
 	if [ -n "$(command -v dpkg-query)" ]; then
-		dpkg-query -W -f='${Status}' ${deptocheck} 2>/dev/null| grep -q -P '^install ok installed$'
+		dpkg-query -W -f='${Status}' ${deptocheck} 2>/dev/null | grep -q -P '^install ok installed$'
 		depstatus=$?
 	elif [ -n "$(command -v yum)" ]; then
 		yum -q list installed ${deptocheck} > /dev/null 2>&1
@@ -18,6 +18,11 @@ fn_deps_detector(){
 	if [ "${depstatus}" == "0" ]; then
 		missingdep=0
 		if [ "${function_selfname}" == "command_install.sh" ]; then
+			if [ "${tmuxcheck}" == "1" ]; then
+				# Added for users compiling tmux from source to bypass rpm check
+				echo -e "${green}tmux${default}"
+				unset tmuxcheck
+			fi
 			echo -e "${green}${deptocheck}${default}"
 			sleep 0.5
 		fi
@@ -63,7 +68,7 @@ fn_found_missing_deps(){
 	if [ "${#array_deps_missing[@]}" != "0" ]; then
 		fn_print_dots "Checking dependencies"
 		sleep 0.5
-		fn_print_error "Checking dependencies: missing: ${red}${array_deps_missing[@]}${default}"
+		fn_print_error_nl "Checking dependencies: missing: ${red}${array_deps_missing[@]}${default}"
 		fn_script_log_error "Checking dependencies: missing: ${red}${array_deps_missing[@]}${default}"
 		sleep 1
 		sudo -v > /dev/null 2>&1
@@ -86,7 +91,7 @@ fn_found_missing_deps(){
 			fi
 			if [ $? != 0 ]; then
 				fn_print_failure_nl "Unable to install dependencies"
-				fn_script_log_fail "Unable to install dependencies"
+				fn_script_log_fatal "Unable to install dependencies"
 			else
 				fn_print_complete_nl "Install dependencies completed"
 				fn_script_log_pass "Install dependencies completed"
@@ -133,15 +138,19 @@ if [ -n "$(command -v dpkg-query)" ]; then
 	array_deps_missing=()
 
 	# LGSM requirements
-	array_deps_required=( curl ca-certificates file bsdmainutils util-linux python )
+	array_deps_required=( curl wget ca-certificates file bsdmainutils util-linux python bzip2 gzip )
 
 	# All servers except ts3 require tmux
 	if [ "${executable}" != "./ts3server_startscript.sh" ]; then
-		array_deps_required+=( tmux )
+		if [ "$(command -v tmux)" ]||[ "$(which tmux 2>/dev/null)" ]||[ -f "/usr/bin/tmux" ]||[ -f "/bin/tmux" ]; then
+			tmuxcheck=1 # Added for users compiling tmux from source to bypass rpm check
+		else
+			array_deps_required+=( tmux )
+		fi
 	fi
 
 	# All servers except ts3 & mumble require libstdc++6, lib32gcc1
-	if [ "${executable}" != "./ts3server_startscript.sh" ]||[ "${executable}" != "./murmur.x86" ]; then
+	if [ "${gamename}" != "TeamSpeak 3" ]||[ "${gamename}" != "Mumble" ]; then
 		if [ "${arch}" == "x86_64" ]; then
 			array_deps_required+=( lib32gcc1 libstdc++6:i386 )
 		else
@@ -157,14 +166,19 @@ if [ -n "$(command -v dpkg-query)" ]; then
 	# 7 Days to Die
 	elif [ "${gamename}" ==  "7 Days To Die" ]; then
 		array_deps_required+=( telnet expect )
-	# No More Room in Hell
-	elif [ "${gamename}" == "No More Room in Hell" ]; then
-		array_deps_required+=( lib32tinfo5 )
+	# No More Room in Hell, Counter Strike: Source and Garry's Mod
+	elif [ "${gamename}" == "No More Room in Hell" ]||[ "${gamename}" == "Counter Strike: Source" ]||[ "${gamename}" == "Garry's Mod" ]; then
+		if [ "${arch}" == "x86_64" ]; then
+			array_deps_required+=( lib32tinfo5 )
+		else
+			array_deps_required+=( libtinfo5 )
+		fi
 	# Brainbread 2 and Don't Starve Together
 	elif [ "${gamename}" == "Brainbread 2" ]||[ "${gamename}" == "Don't Starve Together" ]; then
 		array_deps_required+=( libcurl4-gnutls-dev:i386 )
+	# Project Zomboid
 	elif [ "${engine}" ==  "projectzomboid" ]; then
-		array_deps_required+=( openjdk-7-jre )
+		array_deps_required+=( default-jdk )
 	# Unreal engine
 	elif [ "${executable}" ==  "./ucc-bin" ]; then
 		#UT2K4
@@ -183,11 +197,19 @@ elif [ -n "$(command -v yum)" ]; then
 	array_deps_missing=()
 
 	# LGSM requirements
-	array_deps_required=( curl util-linux python file )
+	if [ "${distroversion}" == "6" ]; then
+		array_deps_required=( curl wget util-linux-ng python file gzip bzip2 )
+	else
+		array_deps_required=( curl wget util-linux python file gzip bzip2 )
+	fi
 
 	# All servers except ts3 require tmux
 	if [ "${executable}" != "./ts3server_startscript.sh" ]; then
-		array_deps_required+=( tmux )
+		if [ "$(command -v tmux)" ]||[ "$(which tmux 2>/dev/null)" ]||[ -f "/usr/bin/tmux" ]||[ -f "/bin/tmux" ]; then
+			tmuxcheck=1 # Added for users compiling tmux from source to bypass rpm check
+		else
+			array_deps_required+=( tmux )
+		fi
 	fi
 
 	# All servers excelts ts3 & mumble require glibc.i686 libstdc++.i686
@@ -203,15 +225,16 @@ elif [ -n "$(command -v yum)" ]; then
 	# 7 Days to Die
 	elif [ "${gamename}" ==  "7 Days To Die" ]; then
 		array_deps_required+=( telnet expect )
-	# No More Room in Hell
-	elif [ "${gamename}" == "No More Room in Hell" ]; then
+	# No More Room in Hell, Counter Strike: Source and Garry's Mod
+	elif [ "${gamename}" == "No More Room in Hell" ]||[ "${gamename}" == "Counter Strike: Source" ]||[ "${gamename}" == "Garry's Mod" ]; then
 		array_deps_required+=( ncurses-libs.i686 )
 	# Brainbread 2 and Don't Starve Together
 	elif [ "${gamename}" == "Brainbread 2" ]||[ "${gamename}" == "Don't Starve Together" ]; then
 		array_deps_required+=( libcurl.i686 )
+	# Project Zomboid
 	elif [ "${engine}" ==  "projectzomboid" ]; then
-		array_deps_required+=( java-1.7.0-openjdk )
-	# Unreal engine
+		array_deps_required+=( java-1.8.0-openjdk )
+	# Unreal Engine
 	elif [ "${executable}" ==  "./ucc-bin" ]; then
 		#UT2K4
 		if [ -f "${executabledir}/ut2004-bin" ]; then

+ 1 - 1
lgsm/functions/check_glibc.sh

@@ -2,7 +2,7 @@
 # LGSM check_glibc.sh function
 # Author: Daniel Gibbs
 # Website: https://gameservermanagers.com
-# Description: Checks if server has correct glibc or has a fix available.
+# Description: Checks if the server has the correct Glibc version or a fix available.
 
 local commandname="CHECK"
 

+ 7 - 5
lgsm/functions/check_ip.sh

@@ -3,12 +3,12 @@
 # Author: Daniel Gibbs
 # Website: https://gameservermanagers.com
 # Description: Automatically identifies the server interface IP.
-# If multiple interfaces are detected the user will need to manualy set using ip="0.0.0.0".
+# If multiple interfaces are detected the user will need to manually set using ip="0.0.0.0".
 
 local commandname="CHECK"
 local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 
-if [ "${gamename}" != "Teamspeak 3" ]; then
+if [ "${gamename}" != "TeamSpeak 3" ]; then
 	if [ ! -f "/bin/ip" ]; then
 		ipcommand="/sbin/ip"
 	else
@@ -19,9 +19,11 @@ if [ "${gamename}" != "Teamspeak 3" ]; then
 
 	if [ "${ip}" == "0.0.0.0" ]||[ "${ip}" == "" ]; then
 		if [ "${getipwc}" -ge "2" ]; then
-			fn_print_dots ""
-			sleep 0.5
-			fn_print_fail "Multiple active network interfaces found.\n\n"
+			fn_print_dots "Check IP"
+			sleep 1
+			fn_print_fail "Check IP: Multiple active network interfaces found."
+			sleep 1
+			echo -en "\n"
 			fn_print_infomation "Specify the IP you want to use within the ${selfname} script.\n"
 			echo -en "Set ip=\"0.0.0.0\" to one of the following:\n"
 			echo -en "${getip}\n"

+ 3 - 3
lgsm/functions/check_logs.sh

@@ -2,13 +2,13 @@
 # LGSM check_logs.sh function
 # Author: Daniel Gibbs
 # Website: https://gameservermanagers.com
-# Description: Checks that log files exist on server start
+# Description: Checks if log files exist.
 
 local commandname="CHECK"
 local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 
-# Create dir's for the script and console logs
-if [ ! -d "${scriptlogdir}" ]||[ ! -d "${consolelogdir}" ]&&[ "${gamename}" != "Teamspeak 3" ]; then
+# Create directories for the script and console logs
+if [ ! -d "${scriptlogdir}" ]||[ ! -d "${consolelogdir}" ]&&[ "${gamename}" != "TeamSpeak 3" ]; then
 	fn_print_dots "Checking for log files"
 	sleep 0.5
 	fn_print_info_nl "Checking for log files: Creating log files"

+ 15 - 13
lgsm/functions/check_permissions.sh

@@ -3,27 +3,29 @@
 # Author: Daniel Gibbs
 # Contributor: UltimateByte
 # Website: https://gameservermanagers.com
-# Description: Checks script, files and folders ownership and permissions.
+# Description: Checks ownership & permissions of scripts, files and folders.
 
 local commandname="CHECK"
 local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 
 fn_check_ownership(){
-	if [ $(find "${filesdir}" -not -user $(whoami)|wc -l) -ne "0" ]||[ $(find "${rootdir}/${selfname}" -not -user $(whoami)|wc -l) -ne "0" ]; then
-		fn_print_fail_nl "Permissions issues found"
-		fn_script_log_fatal "Permissions issues found"
-		fn_print_infomation_nl "The current user ($(whoami)) does not have ownership of the following files:"
-		fn_script_log_info "The current user ($(whoami)) does not have ownership of the following files:"
-		{
-			echo -e "User\tGroup\tFile\n"
-			find "${filesdir}" -not -user $(whoami) -printf "%u\t\t%g\t%p\n"
-		} | column -s $'\t' -t | tee -a "${scriptlog}"
-		core_exit.sh
+	if [ -d "${filesdir}" ]; then
+		if [ $(find "${filesdir}" -not -user $(whoami)|wc -l) -ne "0" ]||[ $(find "${rootdir}/${selfname}" -not -user $(whoami)|wc -l) -ne "0" ]; then
+			fn_print_fail_nl "Permissions issues found"
+			fn_script_log_fatal "Permissions issues found"
+			fn_print_infomation_nl "The current user ($(whoami)) does not have ownership of the following files:"
+			fn_script_log_info "The current user ($(whoami)) does not have ownership of the following files:"
+			{
+				echo -e "User\tGroup\tFile\n"
+				find "${filesdir}" -not -user $(whoami) -printf "%u\t\t%g\t%p\n"
+			} | column -s $'\t' -t | tee -a "${scriptlog}"
+			core_exit.sh
+		fi
 	fi
 }
 
 fn_check_permissions(){
-	if [ -n "${functionsdir}" ]; then
+	if [ -d "${functionsdir}" ]; then
 		if [ $(find "${functionsdir}" -type f -not -executable|wc -l) -ne "0" ]; then
 			fn_print_fail_nl "Permissions issues found"
 			fn_script_log_fatal "Permissions issues found"
@@ -56,4 +58,4 @@ fn_check_permissions(){
 }
 
 fn_check_ownership
-fn_check_permissions
+fn_check_permissions

+ 1 - 0
lgsm/functions/check_root.sh

@@ -2,6 +2,7 @@
 # LGSM check_root.sh function
 # Author: Daniel Gibbs
 # Website: https://gameservermanagers.com
+# Description: Checks if the user tried to run the script as root.
 
 local commandname="CHECK"
 local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"

+ 13 - 2
lgsm/functions/check_status.sh

@@ -1,13 +1,14 @@
 #!/bin/bash
 # LGSM check_status.sh function
 # Author: Daniel Gibbs
+# Contributor: UltimateByte
 # Website: https://gameservermanagers.com
-# Description: Checks the proccess status of the server. Either online or offline.
+# Description: Checks the process status of the server. Either online or offline.
 
 local commandname="CHECK"
 local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 
-if [ "${gamename}" == "Teamspeak 3" ]; then
+if [ "${gamename}" == "TeamSpeak 3" ]; then
 	# 1: Server is running
 	# 0: Server seems to have died
 	# 0: No server running (ts3server.pid is missing)
@@ -18,6 +19,16 @@ if [ "${gamename}" == "Teamspeak 3" ]; then
 		ts3error="${status}"
 		status=0
 	fi
+	
+elif [ "${gamename}" == "Mumble" ]; then
+	# 1: Server is listening
+	# 0: Server is not listening, considered closed
+	mumblepid=$(netstat -nap  2>/dev/null | grep udp | grep 64738 | grep murmur | awk '{ print $6 }' | awk -F'/' '{ print $1 }')
+	if [ -z "${mumblepid}" ]; then
+		status=0
+	else
+		status=1
+	fi
 else
 	status=$(tmux list-sessions 2>&1 | awk '{print $1}' | grep -Ec "^${servicename}:")
 fi

+ 4 - 5
lgsm/functions/check_steamcmd.sh

@@ -2,7 +2,7 @@
 # LGSM check_steamcmd.sh function
 # Author: Daniel Gibbs
 # Website: https://gameservermanagers.com
-# Description: Checks SteamCMD is installed and correct.
+# Description: Checks if SteamCMD is installed correctly.
 
 local commandname="CHECK"
 
@@ -15,9 +15,8 @@ fn_install_steamcmd(){
 	chmod +x "${steamcmddir}/steamcmd.sh"
 }
 
-
 fn_check_steamcmd_user(){
-	# Checks steamuser is setup.
+	# Checks if steamuser is setup.
 	if [ "${steamuser}" == "username" ]; then
 		fn_print_fail_nl "Steam login not set. Update steamuser in ${selfname}."
 		echo "	* Change steamuser=\"username\" to a valid steam login."
@@ -59,7 +58,7 @@ fn_check_steamcmd_sh(){
 
 fn_check_steamcmd_guard(){
 	if [ "${function_selfname}" == "command_update.sh" ]||[ "${function_selfname}" == "command_validate.sh" ]; then
-		# Checks that steamcmd is working correctly and will prompt Steam Guard if required.
+		# Checks that SteamCMD is working correctly and will prompt Steam Guard if required.
 		"${steamcmddir}"/steamcmd.sh +login "${steamuser}" "${steampass}" +quit
 		if [ $? -ne 0 ]; then
 			fn_print_failure_nl "Error running SteamCMD"
@@ -69,5 +68,5 @@ fn_check_steamcmd_guard(){
 
 fn_check_steamcmd_user
 fn_check_steamcmd_sh
-# stdbuf has now replaced unbuffer. This shoudl no longer be required
+# stdbuf has now replaced unbuffer. This should not longer be required.
 #fn_check_steamcmd_guard

+ 1 - 0
lgsm/functions/check_system_dir.sh

@@ -2,6 +2,7 @@
 # LGSM check_system_dir.sh function
 # Author: Daniel Gibbs
 # Website: https://gameservermanagers.com
+# Description: Checks if systemdir is accessible.
 
 local commandname="CHECK"
 local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"

+ 10 - 3
lgsm/functions/check_system_requirements.sh

@@ -16,13 +16,20 @@ if [ "${gamename}" == "Rust" ]; then
 	ramrequirementgb="4"
 fi
 
+if [ "${gamename}" == "ARMA 3" ]; then
+	ramrequirementmb="1000"
+	ramrequirementgb="1"
+fi
+
 # If the game or engine has a minimum RAM Requirement, compare it to system's available RAM.
-if [ -n "${ramrequirement}" ]; then
+if [ -n "${ramrequirementmb}" ]; then
 	if [ "${physmemtotalmb}" -lt "${ramrequirementmb}" ]; then
+		fn_print_dots "Check RAM"
+		sleep 0.5
 		# Warn the user
-		fn_print_warn "Insufficient memory: ${ramrequirementgb}G required, ${physmemtotal} available"
+		fn_print_warn_nl "Check RAM: ${ramrequirementgb}G required, ${physmemtotal} available"
 		sleep 1
-		fn_print_warning "You may experiance poor performance from your server"
+		echo  "	* ${gamename} server may fail to run or experience poor performance."
 		sleep 1
 	fi
 fi

+ 0 - 21
lgsm/functions/check_tmux.sh

@@ -1,21 +0,0 @@
-#!/bin/bash
-# LGSM check_tmux.sh function
-# Author: Daniel Gibbs
-# Website: https://gameservermanagers.com
-# Description: Checks if tmux is installed as too many users do not RTFM or know how to use Google.
-
-local commandname="CHECK"
-local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
-
-if [ "$(command -v tmux)" ]||[ "$(which tmux >/dev/null 2>&1)" ]||[ -f "/usr/bin/tmux" ]||[ -f "/bin/tmux" ]; then
-	:
-else
-	fn_print_fail_nl "Tmux not installed"
-	sleep 1
-	fn_script_log_fatal "Tmux is not installed"
-	echo "	* Tmux is required to run this server."
-	# Suitable passive agressive message
-	echo "	* Please see the the following link."
-	echo "	* https://gameservermanagers.com/tmux-not-found"
-	core_exit.sh
-fi

+ 2 - 2
lgsm/functions/command_backup.sh

@@ -47,7 +47,7 @@ if [ ! -d "${backupdir}" ]; then
 	mkdir "${backupdir}"
 fi
 tar -czf "${backupdir}/${backupname}.tar.gz" -C "${rootdir}" --exclude "backups" ./*
-if [ $? != 0 ]; then
+if [ $? == 0 ]; then
 	fn_print_ok_nl "Backup created: ${backupname}.tar.gz is $(du -sh "${backupdir}/${backupname}.tar.gz" | awk '{print $1}') size"
 	fn_script_log_pass "Backup created: ${backupdir}/${backupname}.tar.gz is $(du -sh "${backupdir}/${backupname}.tar.gz" | awk '{print $1}') size"
 else
@@ -56,4 +56,4 @@ else
 fi
 sleep 1
 echo ""
-core_exit.sh
+core_exit.sh

+ 2 - 2
lgsm/functions/command_debug.sh

@@ -2,7 +2,7 @@
 # LGSM command_debug.sh function
 # Author: Daniel Gibbs
 # Website: https://gameservermanagers.com
-# Description: Runs the server without tmux. Runs direct from the terminal.
+# Description: Runs the server without tmux and directly from the terminal.
 
 local commandname="DEBUG"
 local commandaction="Debug"
@@ -28,7 +28,7 @@ echo ""
 echo "${gamename} Debug"
 echo "================================="
 echo ""
-echo -e "Distro: ${os}"
+echo -e "Distro: ${distroname}"
 echo -e "Arch: ${arch}"
 echo -e "Kernel: ${kernel}"
 echo -e "Hostname: $HOSTNAME"

+ 19 - 6
lgsm/functions/command_details.sh

@@ -1,6 +1,7 @@
 #!/bin/bash
 # LGSM command_details.sh function
 # Author: Daniel Gibbs
+# Contributor: UltimateByte
 # Website: https://gameservermanagers.com
 # Description: Displays server infomation.
 
@@ -26,7 +27,7 @@ fn_details_os(){
 	echo -e "${lightyellow}Distro Details${default}"
 	printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
 	{
-		echo -e "${blue}Distro:\t${default}${os}"
+		echo -e "${blue}Distro:\t${default}${distroname}"
 		echo -e "${blue}Arch:\t${default}${arch}"
 		echo -e "${blue}Kernel:\t${default}${kernel}"
 		echo -e "${blue}Hostname:\t${default}$HOSTNAME"
@@ -43,7 +44,7 @@ fn_details_performance(){
 	# Avg Load:  1.00, 1.01, 0.78
 	#
 	# Mem:       total   used   free  cached
-	# Physical:  741M    656M   85M   256M 
+	# Physical:  741M    656M   85M   256M
 	# Swap:      0B      0B     0B
 
 	echo -e ""
@@ -150,7 +151,7 @@ fn_details_gameserver(){
 			echo -e "${blue}Tick rate:\t${default}${tickrate}"
 		fi
 
-		# Teamspeak dbplugin
+		# TeamSpeak dbplugin
 		if [ -n "${dbplugin}" ]; then
 			echo -e "${blue}dbplugin:\t${default}${dbplugin}"
 		fi
@@ -286,7 +287,7 @@ fn_details_ports(){
 	echo -e "Change ports by editing the parameters in:"
 
 	parmslocation="${red}UNKNOWN${default}"
-	local ports_edit_array=( "avalanche" "dontstarve" "projectzomboid" "idtech3" "realvirtuality" "seriousengine35" "teeworlds" "terraria" "unreal" "unreal2" "Teamspeak 3" "7 Days To Die" )
+	local ports_edit_array=( "avalanche" "dontstarve" "projectzomboid" "idtech3" "realvirtuality" "seriousengine35" "teeworlds" "terraria" "unreal" "unreal2" "TeamSpeak 3" "Mumble" "7 Days To Die" )
 	for port_edit in "${ports_edit_array[@]}"
 	do
 		if [ "${engine}" == "${port_edit}" ]||[ "${gamename}" == "${port_edit}" ]; then
@@ -441,6 +442,16 @@ fn_details_teamspeak3(){
 	} | column -s $'\t' -t
 }
 
+fn_details_mumble(){
+	echo -e "netstat -atunp | grep murmur"
+	echo -e ""
+	{
+		echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL"
+		echo -e "> Voice\tINBOUND\t${port}\tudp"
+		echo -e "> ServerQuery\tINBOUND\t${port}\ttcp"
+	} | column -s $'\t' -t
+}
+
 fn_details_teeworlds(){
 	echo -e "netstat -atunp | grep teeworlds_srv"
 	echo -e ""
@@ -569,7 +580,7 @@ fn_details_gameserver
 fn_details_script
 fn_details_backup
 # Some game servers do not have parms.
-if [ "${gamename}" != "Teamspeak 3" ]&&[ "${engine}" != "avalanche" ]&&[ "${engine}" != "dontstarve" ]&&[ "${engine}" != "projectzomboid" ]; then
+if [ "${gamename}" != "TeamSpeak 3" ]&&[ "${engine}" != "avalanche" ]&&[ "${engine}" != "dontstarve" ]&&[ "${engine}" != "projectzomboid" ]; then
 	fn_parms
 	fn_details_commandlineparms
 fi
@@ -606,8 +617,10 @@ elif [ "${gamename}" == "Hurtworld" ]; then
 	fn_details_hurtworld
 elif [ "${gamename}" == "7 Days To Die" ]; then
 	fn_details_sdtd
-elif [ "${gamename}" == "Teamspeak 3" ]; then
+elif [ "${gamename}" == "TeamSpeak 3" ]; then
 	fn_details_teamspeak3
+elif [ "${gamename}" == "Mumble" ]; then
+	fn_details_mumble
 elif [ "${gamename}" == "Rust" ]; then
 	fn_details_rust
 else

+ 1 - 1
lgsm/functions/command_dev_debug.sh

@@ -2,7 +2,7 @@
 # LGSM command_dev_debug.sh function
 # Author: Daniel Gibbs
 # Website: https://gameservermanagers.com
-# Description: Dev only: enables debuging log to be saved to dev-debug.log.
+# Description: Dev only: Enables debugging log to be saved to dev-debug.log.
 
 local commandname="DEV-DEBUG"
 local commandaction="Dev-Debug"

+ 48 - 48
lgsm/functions/command_dev_detect_deps.sh

@@ -42,62 +42,62 @@ else
 	echo "readelf/eu-readelf not installed"
 fi
 
-${readelf} -d ${executable} |grep NEEDED|awk '{ print $5 }'|sed 's/\[//g'|sed 's/\]//g' > "${rootdir}/.depdetect_readelf"
+${readelf} -d ${executable} |grep NEEDED|awk '{ print $5 }'|sed 's/\[//g'|sed 's/\]//g' > "${lgsmdir}/tmp/.depdetect_readelf"
 
 
-echo "yum install " > "${rootdir}/.depdetect_centos_list_uniq"
-echo "apt-get install " > "${rootdir}/.depdetect_ubuntu_list_uniq"
-echo "apt-get install " > "${rootdir}/.depdetect_debian_list_uniq"
+echo "yum install " > "${lgsmdir}/tmp/.depdetect_centos_list_uniq"
+echo "apt-get install " > "${lgsmdir}/tmp/.depdetect_ubuntu_list_uniq"
+echo "apt-get install " > "${lgsmdir}/tmp/.depdetect_debian_list_uniq"
 while read lib; do
 	sharedlib=${lib}
 	if [ "${lib}" == "libm.so.6" ]||[ "${lib}" == "libc.so.6" ]||[ "${lib}" == "libpthread.so.0" ]||[ "${lib}" == "libdl.so.2" ]||[ "${lib}" == "libnsl.so.1" ]||[ "${lib}" == "libgcc_s.so.1" ]||[ "${lib}" == "librt.so.1" ]||[ "${lib}" == "ld-linux.so.2" ]; then
-		echo "glibc.i686" >> "${rootdir}/.depdetect_centos_list"
-		echo "lib32gcc1" >> "${rootdir}/.depdetect_ubuntu_list"
-		echo "lib32gcc1" >> "${rootdir}/.depdetect_debian_list"
+		echo "glibc.i686" >> "${lgsmdir}/tmp/.depdetect_centos_list"
+		echo "lib32gcc1" >> "${lgsmdir}/tmp/.depdetect_ubuntu_list"
+		echo "lib32gcc1" >> "${lgsmdir}/tmp/.depdetect_debian_list"
 
 	elif [ "${lib}" == "libstdc++.so.6" ]; then
-		echo "libstdc++.i686" >> "${rootdir}/.depdetect_centos_list"
-		echo "libstdc++6:i386" >> "${rootdir}/.depdetect_ubuntu_list"
-		echo "libstdc++6:i386" >> "${rootdir}/.depdetect_debian_list"
+		echo "libstdc++.i686" >> "${lgsmdir}/tmp/.depdetect_centos_list"
+		echo "libstdc++6:i386" >> "${lgsmdir}/tmp/.depdetect_ubuntu_list"
+		echo "libstdc++6:i386" >> "${lgsmdir}/tmp/.depdetect_debian_list"
 
 	elif [ "${lib}" == "libstdc++.so.5" ]; then
-		echo "compat-libstdc++-33.i686" >> "${rootdir}/.depdetect_centos_list"
-		echo "libstdc++5:i386" >> "${rootdir}/.depdetect_ubuntu_list"
-		echo "libstdc++5:i386" >> "${rootdir}/.depdetect_debian_list"
+		echo "compat-libstdc++-33.i686" >> "${lgsmdir}/tmp/.depdetect_centos_list"
+		echo "libstdc++5:i386" >> "${lgsmdir}/tmp/.depdetect_ubuntu_list"
+		echo "libstdc++5:i386" >> "${lgsmdir}/tmp/.depdetect_debian_list"
 
 	elif [ "${lib}" == "libspeex.so.1" ]||[ "${lib}" == "libspeexdsp.so.1" ]; then
-		echo "speex.i686" >> "${rootdir}/.depdetect_centos_list"
-		echo "speex:i386" >> "${rootdir}/.depdetect_ubuntu_list"
-		echo "speex:i386" >> "${rootdir}/.depdetect_debian_list"
+		echo "speex.i686" >> "${lgsmdir}/tmp/.depdetect_centos_list"
+		echo "speex:i386" >> "${lgsmdir}/tmp/.depdetect_ubuntu_list"
+		echo "speex:i386" >> "${lgsmdir}/tmp/.depdetect_debian_list"
 
 	elif [ "${lib}" == "./libSDL-1.2.so.0" ]||[ "${lib}" == "libSDL-1.2.so.0" ]; then
-		echo "SDL.i686" >> "${rootdir}/.depdetect_centos_list"
-		echo "libsdl1.2debian" >> "${rootdir}/.depdetect_ubuntu_list"
-		echo "libsdl1.2debian" >> "${rootdir}/.depdetect_debian_list"
+		echo "SDL.i686" >> "${lgsmdir}/tmp/.depdetect_centos_list"
+		echo "libsdl1.2debian" >> "${lgsmdir}/tmp/.depdetect_ubuntu_list"
+		echo "libsdl1.2debian" >> "${lgsmdir}/tmp/.depdetect_debian_list"
 
 	elif [ "${lib}" == "libtbb.so.2" ]; then
-		echo "tbb.i686" >> "${rootdir}/.depdetect_centos_list"
-		echo "libtbb2" >> "${rootdir}/.depdetect_ubuntu_list"
-		echo "libtbb2" >> "${rootdir}/.depdetect_debian_list"
+		echo "tbb.i686" >> "${lgsmdir}/tmp/.depdetect_centos_list"
+		echo "libtbb2" >> "${lgsmdir}/tmp/.depdetect_ubuntu_list"
+		echo "libtbb2" >> "${lgsmdir}/tmp/.depdetect_debian_list"
 
 	elif [ "${lib}" == "libtier0.so" ]||[ "${lib}" == "Core.so" ]||[ "${lib}" == "Editor.so" ]||[ "${lib}" == "Engine.so" ]||[ "${lib}" == "liblua.so" ]||[ "${lib}" == "libsteam_api.so" ]||[ "${lib}" == "ld-linux-x86-64.so.2" ]||[ "${lib}" == "libPhysX3_x86.so" ]||[ "${lib}" == "libPhysX3Common_x86.so" ]||[ "${lib}" == "libPhysX3Cooking_x86.so" ]; then
 		# Known shared libs what dont requires dependencies
 		:
 	else
 		unknownlib=1
-		echo "${lib}" >> "${rootdir}/.depdetect_unknown"
+		echo "${lib}" >> "${lgsmdir}/tmp/.depdetect_unknown"
 	fi
-done < "${rootdir}/.depdetect_readelf"
-sort "${rootdir}/.depdetect_centos_list" | uniq >> "${rootdir}/.depdetect_centos_list_uniq"
-sort "${rootdir}/.depdetect_ubuntu_list" | uniq >> "${rootdir}/.depdetect_ubuntu_list_uniq"
-sort "${rootdir}/.depdetect_debian_list" | uniq >> "${rootdir}/.depdetect_debian_list_uniq"
+done < "${lgsmdir}/tmp/.depdetect_readelf"
+sort "${lgsmdir}/tmp/.depdetect_centos_list" | uniq >> "${lgsmdir}/tmp/.depdetect_centos_list_uniq"
+sort "${lgsmdir}/tmp/.depdetect_ubuntu_list" | uniq >> "${lgsmdir}/tmp/.depdetect_ubuntu_list_uniq"
+sort "${lgsmdir}/tmp/.depdetect_debian_list" | uniq >> "${lgsmdir}/tmp/.depdetect_debian_list_uniq"
 if [ "${unknownlib}" == "1" ]; then
-	sort "${rootdir}/.depdetect_unknown" | uniq >> "${rootdir}/.depdetect_unknown_uniq"
+	sort "${lgsmdir}/tmp/.depdetect_unknown" | uniq >> "${lgsmdir}/tmp/.depdetect_unknown_uniq"
 fi
 
-awk -vORS=' ' '{ print $1, $2 }' "${rootdir}/.depdetect_centos_list_uniq" > "${rootdir}/.depdetect_centos_line"
-awk -vORS=' ' '{ print $1, $2 }' "${rootdir}/.depdetect_ubuntu_list_uniq" > "${rootdir}/.depdetect_ubuntu_line"
-awk -vORS=' ' '{ print $1, $2 }' "${rootdir}/.depdetect_debian_list_uniq" > "${rootdir}/.depdetect_debian_line"
+awk -vORS=' ' '{ print $1, $2 }' "${lgsmdir}/tmp/.depdetect_centos_list_uniq" > "${lgsmdir}/tmp/.depdetect_centos_line"
+awk -vORS=' ' '{ print $1, $2 }' "${lgsmdir}/tmp/.depdetect_ubuntu_list_uniq" > "${lgsmdir}/tmp/.depdetect_ubuntu_line"
+awk -vORS=' ' '{ print $1, $2 }' "${lgsmdir}/tmp/.depdetect_debian_list_uniq" > "${lgsmdir}/tmp/.depdetect_debian_line"
 
 echo ""
 echo "Required Dependencies"
@@ -106,46 +106,46 @@ echo "${executable}"
 echo ""
 echo "CentOS"
 echo "================================="
-cat "${rootdir}/.depdetect_centos_line"
+cat "${lgsmdir}/tmp/.depdetect_centos_line"
 echo ""
 echo ""
 echo "Ubuntu"
 echo "================================="
-cat "${rootdir}/.depdetect_ubuntu_line"
+cat "${lgsmdir}/tmp/.depdetect_ubuntu_line"
 echo ""
 echo ""
 echo "Debian"
 echo "================================="
-cat "${rootdir}/.depdetect_debian_line"
+cat "${lgsmdir}/tmp/.depdetect_debian_line"
 echo ""
 if [ "${unknownlib}" == "1" ]; then
 	echo ""
 	echo "Unknown shared Library"
 	echo "================================="
-	cat "${rootdir}/.depdetect_unknown"
+	cat "${lgsmdir}/tmp/.depdetect_unknown"
 fi
 echo ""
 echo "Required Librarys"
 echo "================================="
-sort "${rootdir}/.depdetect_readelf" |uniq
+sort "${lgsmdir}/tmp/.depdetect_readelf" |uniq
 echo ""
 echo "ldd"
 echo "================================="
 ldd ${executable}
 echo -en "\n"
-rm -f "${rootdir}/.depdetect_centos_line"
-rm -f "${rootdir}/.depdetect_centos_list"
-rm -f "${rootdir}/.depdetect_centos_list_uniq"
+rm -f "${lgsmdir}/tmp/.depdetect_centos_line"
+rm -f "${lgsmdir}/tmp/.depdetect_centos_list"
+rm -f "${lgsmdir}/tmp/.depdetect_centos_list_uniq"
 
-rm -f "${rootdir}/.depdetect_debian_line"
-rm -f "${rootdir}/.depdetect_debian_list"
-rm -f "${rootdir}/.depdetect_debian_list_uniq"
+rm -f "${lgsmdir}/tmp/.depdetect_debian_line"
+rm -f "${lgsmdir}/tmp/.depdetect_debian_list"
+rm -f "${lgsmdir}/tmp/.depdetect_debian_list_uniq"
 
-rm -f "${rootdir}/.depdetect_ubuntu_line"
-rm -f "${rootdir}/.depdetect_ubuntu_list"
-rm -f "${rootdir}/.depdetect_ubuntu_list_uniq"
+rm -f "${lgsmdir}/tmp/.depdetect_ubuntu_line"
+rm -f "${lgsmdir}/tmp/.depdetect_ubuntu_list"
+rm -f "${lgsmdir}/tmp/.depdetect_ubuntu_list_uniq"
 
-rm -f "${rootdir}/.depdetect_readelf"
+rm -f "${lgsmdir}/tmp/.depdetect_readelf"
 
-rm -f "${rootdir}/.depdetect_unknown"
-rm -f "${rootdir}/.depdetect_unknown_uniq"
+rm -f "${lgsmdir}/tmp/.depdetect_unknown"
+rm -f "${lgsmdir}/tmp/.depdetect_unknown_uniq"

+ 31 - 0
lgsm/functions/command_dev_detect_glibc.sh

@@ -0,0 +1,31 @@
+#!/bin/bash
+# command_dev_detect_glibc.sh function
+# Author: Daniel Gibbs
+# Website: https://gameservermanagers.com
+# Description: Automatically detects the version of GLIBC that is required.
+# Can check a file or directory recursively.
+
+echo "================================="
+echo "GLIBC Requirements Checker"
+echo "================================="
+
+if [ -z "${filesdir}" ]; then
+	dir="$(dirname $(readlink -f "${BASH_SOURCE[0]}"))"
+fi
+
+if [ -d "${filesdir}" ]; then
+	echo "Checking directory: "
+	echo "${filesdir}"
+elif [ -f "${filesdir}" ]; then
+	echo "Checking file: "
+	echo "${filesdir}"
+fi
+echo ""
+
+find ${filesdir} -type f -print0 |
+while IFS= read -r -d $'\0' line; do
+	objdump -T $line 2>/dev/null|grep -oP "GLIBC[^ ]+" >>"${lgsmdir}/tmp/detect_glibc.tmp"
+done
+
+cat "${lgsmdir}/tmp/detect_glibc.tmp"|sort|uniq|sort -r --version-sort
+rm "${lgsmdir}/tmp/detect_glibc.tmp"

+ 4 - 4
lgsm/functions/command_fastdl.sh

@@ -3,7 +3,7 @@
 # Author: Daniel Gibbs
 # Contributor: UltimateByte
 # Website: https://gameservermanagers.com
-# Description: Creates a FastDL folder
+# Description: Creates a FastDL folder.
 
 local commandname="FASTDL"
 local commandaction="FastDL"
@@ -305,15 +305,15 @@ fn_fastdl_bzip2(){
 fn_fastdl_completed(){
 	# Finished message
 	echo ""
-	fn_print_ok "Congratulations, it's done !"
+	fn_print_ok "Congratulations, it's done!"
 	fn_script_log "FastDL job done"
 	sleep 2
 	echo -en "\n"
 	echo ""
-	fn_print_info "Need more doc ? See https://github.com/dgibbs64/linuxgsm/wiki/FastDL"
+	fn_print_info "Need more documentation? See https://github.com/dgibbs64/linuxgsm/wiki/FastDL"
 	echo -en "\n"
 	if [ "$bzip2installed" == "0" ]; then
-	echo "By the way, you'd better install bzip2 an re-run this command !"
+	echo "By the way, you'd better install bzip2 and re-run this command!"
 	fi
 	echo "Credits : UltimateByte"
 }

+ 4 - 3
lgsm/functions/command_install.sh

@@ -1,6 +1,7 @@
 #!/bin/bash
 # LGSM command_install.sh function
 # Author: Daniel Gibbs
+# Contributor: UltimateByte
 # Website: https://gameservermanagers.com
 # Description: Overall function for the installer.
 
@@ -17,7 +18,7 @@ check_deps.sh
 if [ "${gamename}" == "Unreal Tournament 2004" ]; then
 	install_server_files.sh
 	install_ut2k4_key.sh
-elif [ "${gamename}" == "Unreal Tournament 99" ]||[ "${gamename}" == "Teamspeak 3" ]; then
+elif [ "${gamename}" == "Unreal Tournament 99" ]||[ "${gamename}" == "TeamSpeak 3" ]||[ "${gamename}" == "Mumble" ]; then
 	installer=1
 	install_server_files.sh
 elif [ -n "${appid}" ]; then
@@ -29,10 +30,10 @@ fi
 install_config.sh
 if [ "${gamename}" == "Counter Strike: Global Offensive" ]||[ "${gamename}" == "Team Fortress 2" ]||[ "${gamename}" == "BrainBread 2" ]; then
 	install_gslt.sh
-elif [ "${gamename}" == "Teamspeak 3" ]; then
+elif [ "${gamename}" == "TeamSpeak 3" ]; then
 	install_ts3db.sh
 fi
 
 fix.sh
 install_complete.sh
-core_exit.sh
+core_exit.sh

+ 23 - 3
lgsm/functions/command_monitor.sh

@@ -1,8 +1,9 @@
 #!/bin/bash
 # LGSM command_monitor.sh function
 # Author: Daniel Gibbs
+# Contributor: UltimateByte
 # Website: https://gameservermanagers.com
-# Description: Monitors server by checking for running proccesses
+# Description: Monitors server by checking for running processes.
 # then passes to monitor_gsquery.sh.
 
 local commandname="MONITOR"
@@ -54,6 +55,23 @@ fn_monitor_teamspeak3(){
 	fi
 }
 
+fn_monitor_mumble(){
+	if [ "${status}" != "0" ]; then
+		fn_print_ok "Checking session: "
+		fn_print_ok_eol_nl
+		fn_script_log_pass "Checking session: OK"
+	else
+		fn_print_error "Checking session: Not listening to port ${port}"
+		fn_print_fail_eol_nl
+		fn_script_log_error "Checking session: Not listening to port ${port}"
+		failurereason="Checking session: Not listening to port ${port}"
+		alert="restart"
+		alert.sh
+		fn_script_log_info "Monitor is starting ${servername}"
+		sleep 1
+		command_restart.sh
+	fi
+}
 fn_monitor_tmux(){
 	# checks that tmux session is running
 	if [ "${status}" != "0" ]; then
@@ -90,9 +108,11 @@ info_config.sh
 fn_monitor_check_lockfile
 fn_monitor_check_update
 fn_monitor_msg_checking
-if [ "${gamename}" == "Teamspeak 3" ]; then
+if [ "${gamename}" == "TeamSpeak 3" ]; then
 	fn_monitor_teamspeak3
+elif [ "${gamename}" == "Mumble" ]; then
+	fn_monitor_mumble
 else
 	fn_monitor_tmux
 fi
-core_exit.sh
+core_exit.sh

+ 2 - 2
lgsm/functions/command_restart.sh

@@ -1,8 +1,8 @@
 #!/bin/bash
-# LGSM command_start.sh function
+# LGSM command_restart.sh function
 # Author: Daniel Gibbs
 # Website: https://gameservermanagers.com
-# Description: Starts the server.
+# Description: Restarts the server.
 
 local commandname="RESTART"
 local commandaction="Restarting"

+ 3 - 2
lgsm/functions/command_start.sh

@@ -1,6 +1,7 @@
 #!/bin/bash
 # LGSM command_start.sh function
 # Author: Daniel Gibbs
+# Contributor: UltimateByte
 # Website: https://gameservermanagers.com
 # Description: Starts the server.
 
@@ -177,9 +178,9 @@ if [ "${status}" == "0" ]; then
 	fi
 fi
 
-if [ "${gamename}" == "Teamspeak 3" ]; then
+if [ "${gamename}" == "TeamSpeak 3" ]; then
 	fn_start_teamspeak3
 else
 	fn_start_tmux
 fi
-core_exit.sh
+core_exit.sh

+ 28 - 4
lgsm/functions/command_stop.sh

@@ -1,6 +1,7 @@
 #!/bin/bash
 # LGSM command_stop.sh function
 # Author: Daniel Gibbs
+# Contributors: UltimateByte
 # Website: https://gameservermanagers.com
 # Description: Stops the server.
 
@@ -208,7 +209,24 @@ fn_stop_teamspeak3(){
 		fn_script_log_pass "Stopped ${servername}"
 	else
 		fn_print_fail_nl "Unable to stop ${servername}"
-		fn_script_log_fail "Unable to stop ${servername}"
+		fn_script_log_error "Unable to stop ${servername}"
+	fi
+}
+
+fn_stop_mumble(){
+	fn_print_dots "Stopping ${servername}"
+	mumblepid=$(netstat -nap  2>/dev/null | grep udp | grep 64738 | grep murmur | awk '{ print $6 }' | awk -F'/' '{ print $1 }')
+	kill ${mumblepid}
+	sleep 1
+	check_status.sh
+	if [ "${status}" == "0" ]; then
+		# Remove lock file
+		rm -f "${rootdir}/${lockselfname}"
+		fn_stop_tmux
+		fn_script_log_pass "Stopped ${servername}"
+	else
+		fn_print_fail_nl "Unable to stop ${servername}"
+		fn_script_log_error "Unable to stop ${servername}"
 	fi
 }
 
@@ -239,7 +257,7 @@ fn_stop_tmux(){
 
 # checks if the server is already stopped before trying to stop.
 fn_stop_pre_check(){
-	if [ "${gamename}" == "Teamspeak 3" ]; then
+	if [ "${gamename}" == "TeamSpeak 3" ]; then
 		check_status.sh
 		if [ "${status}" == "0" ]; then
 			fn_print_info_nl "${servername} is already stopped"
@@ -247,8 +265,14 @@ fn_stop_pre_check(){
 		else
 			fn_stop_teamspeak3
 		fi
+	elif [ "${gamename}" == "Mumble" ]; then
+		if [ "${status}" == "0" ]; then
+			fn_print_info_nl "${servername} is already stopped"
+			fn_script_log_error "${servername} is already stopped"
+		else
+		fn_stop_mumble
+		fi
 	else
-		check_status.sh
 		if [ "${status}" == "0" ]; then
 			fn_print_info_nl "${servername} is already stopped"
 			fn_script_log_error "${servername} is already stopped"
@@ -263,4 +287,4 @@ sleep 1
 check.sh
 info_config.sh
 fn_stop_pre_check
-core_exit.sh
+core_exit.sh

+ 1 - 1
lgsm/functions/command_test_alert.sh

@@ -2,7 +2,7 @@
 # LGSM command_test_alert.sh function
 # Author: Daniel Gibbs
 # Website: https://gameservermanagers.com
-# Description: Sends a test email alert.
+# Description: Sends a test alert.
 
 local commandname="ALERT"
 local commandaction="Alert"

+ 1 - 1
lgsm/functions/command_ts3_server_pass.sh

@@ -3,7 +3,7 @@
 # Author: Daniel Gibbs
 # Contributor : UltimateByte
 # Website: https://gameservermanagers.com
-# Description: Changes TS3 serveradmin password
+# Description: Changes TS3 serveradmin password.
 
 local commandname="TS3-CHANGE-PASS"
 local commandaction="TS3 Change Password"

+ 4 - 2
lgsm/functions/command_update.sh

@@ -13,10 +13,12 @@ sleep 0.5
 check.sh
 
 
-if [ "${gamename}" == "Teamspeak 3" ]; then
+if [ "${gamename}" == "TeamSpeak 3" ]; then
 	update_ts3.sh
+elif [ "${gamename}" == "Mumble" ]; then
+	update_mumble.sh
 else
 	update_steamcmd.sh
 fi
 
-core_exit.sh
+core_exit.sh

+ 2 - 2
lgsm/functions/command_update_functions.sh

@@ -13,7 +13,7 @@ check.sh
 fn_script_log_info "Updating functions"
 echo -ne "\n"
 
-# Removed legecy functions dir
+# Removed legacy functions dir
 if [ -n "${rootdir}" ]; then
 	if [ -d "${rootdir}/functions/" ]; then
 		rm -rfv "${rootdir}/functions/"
@@ -26,7 +26,7 @@ if [ -n "${functionsdir}" ]; then
 		cd "${functionsdir}"
 		for functionfile in *
 		do
-			# Check curl exists and use available path
+			# Check if curl exists and use available path
 			curlpaths="$(command -v curl 2>/dev/null) $(which curl >/dev/null 2>&1) /usr/bin/curl /bin/curl /usr/sbin/curl /sbin/curl)"
 			for curlcmd in ${curlpaths}
 			do

+ 9 - 9
lgsm/functions/command_validate.sh

@@ -19,14 +19,14 @@ fn_validation(){
 
 	cd "${rootdir}/steamcmd"
 
-    if  [ $(command -v stdbuf) ]; then
+	if [ $(command -v stdbuf) ]; then
 		unbuffer="stdbuf -i0 -o0 -e0"
 	fi
 
 	if [ "${engine}" == "goldsource" ]; then
-		${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" +app_update "${appid}" validate +quit| tee -a "${scriptlog}"
+		${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" ${branch} +app_update "${appid}" ${branch} validate +quit| tee -a "${scriptlog}"
 	else
-		${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" validate +quit| tee -a "${scriptlog}"
+		${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" ${branch} validate +quit| tee -a "${scriptlog}"
 	fi
 	if [ $? != 0 ]; then
 		fn_print_fail_nl "Validating files: SteamCMD"
@@ -39,7 +39,7 @@ fn_validation(){
 
 }
 
-fn_print_dots_nl "Validating files:"
+fn_print_dots "Validating files:"
 sleep 0.5
 fn_print_dots_nl "Validating files: SteamCMD"
 sleep 1
@@ -47,11 +47,11 @@ check.sh
 check_status.sh
 if [ "${status}" != "0" ]; then
 	exitbypass=1
-    command_stop.sh
-    fn_validation
-    exitbypass=1
-    command_start.sh
+	command_stop.sh
+	fn_validation
+	exitbypass=1
+	command_start.sh
 else
-    fn_validation
+	fn_validation
 fi
 core_exit.sh

+ 1 - 1
lgsm/functions/compress_unreal2_maps.sh

@@ -2,7 +2,7 @@
 # LGSM compress_unreal2_maps.sh function
 # Author: Daniel Gibbs
 # Website: https://gameservermanagers.com
-# Description: compresses unreal maps
+# Description: Compresses unreal maps.
 
 local commandaction="Unreal Map Compressor"
 local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"

+ 1 - 1
lgsm/functions/compress_ut99_maps.sh

@@ -2,7 +2,7 @@
 # LGSM compress_ut99_maps.sh function
 # Author: Daniel Gibbs
 # Website: https://gameservermanagers.com
-# Description: compresses unreal maps
+# Description: Compresses unreal maps.
 
 local commandaction="Unreal Map Compressor"
 local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor