Daniel Gibbs 8 лет назад
Родитель
Сommit
fd742d6044
29 измененных файлов с 512 добавлено и 153 удалено
  1. 0 3
      lgsm/config-default/config-lgsm/bb2server/_default.cfg
  2. 0 3
      lgsm/config-default/config-lgsm/bf1942server/_default.cfg
  3. 0 3
      lgsm/config-default/config-lgsm/bmdmserver/_default.cfg
  4. 0 3
      lgsm/config-default/config-lgsm/bsserver/_default.cfg
  5. 0 3
      lgsm/config-default/config-lgsm/ccserver/_default.cfg
  6. 0 3
      lgsm/config-default/config-lgsm/coserver/_default.cfg
  7. 0 3
      lgsm/config-default/config-lgsm/csczserver/_default.cfg
  8. 1 1
      lgsm/config-default/config-lgsm/csgoserver/_default.cfg
  9. 120 0
      lgsm/config-default/config-lgsm/kf2server/_default.cfg
  10. 1 1
      lgsm/config-default/config-lgsm/qlserver/_default.cfg
  11. 1 1
      lgsm/config-default/config-lgsm/roserver/_default.cfg
  12. 1 1
      lgsm/config-default/config-lgsm/ss3server/_default.cfg
  13. 1 1
      lgsm/config-default/config-lgsm/twserver/_default.cfg
  14. 4 6
      lgsm/config-default/config-lgsm/ut3server/_default.cfg
  15. 128 0
      lgsm/config-default/config-lgsm/zpsserver/_default.cfg
  16. 71 69
      lgsm/data/serverlist.csv
  17. 1 1
      lgsm/functions/check_config.sh
  18. 12 0
      lgsm/functions/check_deps.sh
  19. 6 0
      lgsm/functions/command_debug.sh
  20. 1 1
      lgsm/functions/command_mods_remove.sh
  21. 1 0
      lgsm/functions/command_start.sh
  22. 56 1
      lgsm/functions/info_config.sh
  23. 3 0
      lgsm/functions/info_distro.sh
  24. 3 0
      lgsm/functions/info_glibc.sh
  25. 90 38
      lgsm/functions/info_messages.sh
  26. 7 1
      lgsm/functions/info_parms.sh
  27. 2 8
      lgsm/functions/install_config.sh
  28. 1 1
      lgsm/functions/mods_list.sh
  29. 1 1
      linuxgsm.sh

+ 0 - 3
lgsm/config-default/config-lgsm/bb2server/_default.cfg

@@ -98,9 +98,6 @@ branch=""
 gamename="BrainBread 2"
 engine="source"
 
-## Service Name | https://github.com/GameServerManagers/LinuxGSM/wiki/Multiple-Servers
-servicename="bb2-server"
-
 #### Directories ####
 # Edit with care
 

+ 0 - 3
lgsm/config-default/config-lgsm/bf1942server/_default.cfg

@@ -77,9 +77,6 @@ logdays="7"
 gamename="Battlefield: 1942"
 engine="refractor"
 
-## Service Name | https://github.com/GameServerManagers/LinuxGSM/wiki/Multiple-Servers
-servicename="bf1942-server"
-
 #### Directories ####
 # Edit with care
 

+ 0 - 3
lgsm/config-default/config-lgsm/bmdmserver/_default.cfg

@@ -98,9 +98,6 @@ branch=""
 gamename="Black Mesa: Deathmatch"
 engine="source"
 
-## Service Name | https://github.com/GameServerManagers/LinuxGSM/wiki/Multiple-Servers
-servicename="bmdm-server"
-
 #### Directories ####
 # Edit with care
 

+ 0 - 3
lgsm/config-default/config-lgsm/bsserver/_default.cfg

@@ -97,9 +97,6 @@ branch=""
 gamename="Blade Symphony"
 engine="source"
 
-## Service Name | https://github.com/GameServerManagers/LinuxGSM/wiki/Multiple-Servers
-servicename="bs-server"
-
 #### Directories ####
 # Edit with care
 

+ 0 - 3
lgsm/config-default/config-lgsm/ccserver/_default.cfg

@@ -93,9 +93,6 @@ branch=""
 gamename="Codename CURE"
 engine="source"
 
-## Service Name | https://github.com/GameServerManagers/LinuxGSM/wiki/Multiple-Servers
-servicename="cc-server"
-
 #### Directories ####
 # Edit with care
 

+ 0 - 3
lgsm/config-default/config-lgsm/coserver/_default.cfg

@@ -121,9 +121,6 @@ steampass='password'
 gamename="Classic Offensive"
 engine="source"
 
-## Service Name | https://github.com/GameServerManagers/LinuxGSM/wiki/Multiple-Servers
-servicename="co-server"
-
 #### Directories ####
 # Edit with care
 

+ 0 - 3
lgsm/config-default/config-lgsm/csczserver/_default.cfg

@@ -93,9 +93,6 @@ branch=""
 gamename="Counter-Strike: Condition Zero"
 engine="goldsource"
 
-## Service Name | https://github.com/GameServerManagers/LinuxGSM/wiki/Multiple-Servers
-servicename="cscz-server"
-
 #### Directories ####
 # Edit with care
 

+ 1 - 1
lgsm/config-default/config-lgsm/csgoserver/_default.cfg

@@ -41,7 +41,7 @@ ws_start_map=""
 
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
 fn_parms(){
-parms="-game csgo -usercon -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} -tickrate ${tickrate} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers_override ${maxplayers} +mapgroup ${mapgroup} +game_mode ${gamemode} +game_type ${gametype} +host_workshop_collection ${ws_collection_id} +workshop_start_map ${ws_start_map} -authkey ${authkey}"
+parms="-game csgo -usercon -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} -tickrate ${tickrate} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers_override ${maxplayers} +mapgroup ${mapgroup} +game_mode ${gamemode} +game_type ${gametype} +host_workshop_collection ${ws_collection_id} +workshop_start_map ${ws_start_map} -authkey ${authkey} -nobreakpad"
 }
 
 #### LinuxGSM Settings ####

+ 120 - 0
lgsm/config-default/config-lgsm/kf2server/_default.cfg

@@ -0,0 +1,120 @@
+##################################
+######## Default Settings ########
+##################################
+# DO NOT EDIT WILL BE OVERWRITTEN!
+# Copy settings from here and use them in either
+# common.cfg - applies settings to every instance
+# [instance].cfg - applies settings to a specific instance
+
+#### Server Settings ####
+
+## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters
+ip="0.0.0.0"
+queryport="27015"
+defaultmap="KF-BioticsLab"
+
+## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
+fn_parms(){
+parms="\"${defaultmap}?Game=KFGameContent.KFGameInfo_VersusSurvival?ConfigSubDir=${servicename} -QueryPort=${queryport}\""
+}
+
+#### LinuxGSM Settings ####
+
+## Notification Alerts
+# (on|off)
+
+# More info | https://github.com/GameServerManagers/LinuxGSM/wiki/Alerts#more-info
+postalert="off"
+postdays="7"
+posttarget="https://hastebin.com"
+
+# Discord Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Discord
+discordalert="off"
+discordwebhook="webhook"
+
+# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email
+emailalert="off"
+email="email@example.com"
+emailfrom=""
+
+# IFTTT Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/IFTTT
+iftttalert="off"
+ifttttoken="accesstoken"
+iftttevent="linuxgsm_alert"
+
+# Mailgun Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/mailgun
+mailgunalert="off"
+mailguntoken="accesstoken"
+mailgundomain="example.com"
+mailgunemailfrom="alert@example.com"
+mailgunemail="email@myemail.com"
+
+# Pushbullet Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushbullet
+pushbulletalert="off"
+pushbullettoken="accesstoken"
+channeltag=""
+
+# Pushover Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushover
+pushoveralert="off"
+pushovertoken="accesstoken"
+
+# Telegram Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Telegram
+telegramalert="off"
+telegramtoken="accesstoken"
+telegramchatid=""
+
+## Updating | https://github.com/GameServerManagers/LinuxGSM/wiki/Update
+updateonstart="off"
+
+## Backup | https://github.com/GameServerManagers/LinuxGSM/wiki/Backup
+maxbackups="4"
+maxbackupdays="30"
+stoponbackup="on"
+
+## Logging | https://github.com/GameServerManagers/LinuxGSM/wiki/Logging
+consolelogging="on"
+logdays="7"
+
+#### LinuxGSM Advanced Settings ####
+
+## SteamCMD Settings
+# Server appid
+appid="232130"
+# Steam App Branch Select
+# Allows to opt into the various Steam app branches. Default branch is "".
+# Example: "-beta latest_experimental"
+branch=""
+
+## LinuxGSM Server Details
+# Do not edit
+gamename="Killing Floor 2"
+engine="unreal3"
+
+#### Directories ####
+# Edit with care
+## Server Specific Directories
+systemdir="${serverfiles}"
+executabledir="${systemdir}/Binaries/Win64"
+executable="./KFGameSteamServer.bin.x86_64"
+servercfgdir="${systemdir}/KFGame/Config/${servicename}"
+servercfg="LinuxServer-KFGame.ini"
+servercfgdefault="LinuxServer-KFGame.ini"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+
+## Backup Directory
+backupdir="${lgsmdir}/backup"
+
+## Logging Directories
+logdir="${rootdir}/log"
+gamelogdir="${systemdir}/Saved/Logs"
+lgsmlogdir="${logdir}/script"
+consolelogdir="${logdir}/console"
+lgsmlog="${lgsmlogdir}/${servicename}-script.log"
+consolelog="${consolelogdir}/${servicename}-console.log"
+alertlog="${lgsmlogdir}/${servicename}-alert.log"
+postdetailslog="${lgsmlogdir}/${servicename}-postdetails.log"
+
+## Logs Naming
+lgsmlogdate="${lgsmlogdir}/${servicename}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
+consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"
+

+ 1 - 1
lgsm/config-default/config-lgsm/qlserver/_default.cfg

@@ -110,8 +110,8 @@ logdir="${rootdir}/log"
 gamelogdir="${logdir}/server"
 lgsmlogdir="${logdir}/script"
 consolelogdir="${logdir}/console"
-lgsmlog="${lgsmlogdir}/${servicename}-script.log"
 gamelog="${gamelogdir}/${servicename}-game.log"
+lgsmlog="${lgsmlogdir}/${servicename}-script.log"
 consolelog="${consolelogdir}/${servicename}-console.log"
 alertlog="${lgsmlogdir}/${servicename}-alert.log"
 postdetailslog="${lgsmlogdir}/${servicename}-postdetails.log"

+ 1 - 1
lgsm/config-default/config-lgsm/roserver/_default.cfg

@@ -115,8 +115,8 @@ logdir="${rootdir}/log"
 gamelogdir="${logdir}/server"
 lgsmlogdir="${logdir}/script"
 consolelogdir="${logdir}/console"
-lgsmlog="${lgsmlogdir}/${servicename}-script.log"
 gamelog="${gamelogdir}/${servicename}-game.log"
+lgsmlog="${lgsmlogdir}/${servicename}-script.log"
 consolelog="${consolelogdir}/${servicename}-console.log"
 alertlog="${lgsmlogdir}/${servicename}-alert.log"
 postdetailslog="${lgsmlogdir}/${servicename}-postdetails.log"

+ 1 - 1
lgsm/config-default/config-lgsm/ss3server/_default.cfg

@@ -109,8 +109,8 @@ logdir="${rootdir}/log"
 gamelogdir="${logdir}/server"
 lgsmlogdir="${logdir}/script"
 consolelogdir="${logdir}/console"
-lgsmlog="${lgsmlogdir}/${servicename}-script.log"
 gamelog="${gamelogdir}/${servicename}-game.log"
+lgsmlog="${lgsmlogdir}/${servicename}-script.log"
 consolelog="${consolelogdir}/${servicename}-console.log"
 alertlog="${lgsmlogdir}/${servicename}-alert.log"
 postdetailslog="${lgsmlogdir}/${servicename}-postdetails.log"

+ 1 - 1
lgsm/config-default/config-lgsm/twserver/_default.cfg

@@ -112,8 +112,8 @@ logdir="${rootdir}/log"
 gamelogdir="${logdir}/server"
 lgsmlogdir="${logdir}/script"
 consolelogdir="${logdir}/console"
-lgsmlog="${lgsmlogdir}/${servicename}-script.log"
 gamelog="${gamelogdir}/${servicename}-game.log"
+lgsmlog="${lgsmlogdir}/${servicename}-script.log"
 consolelog="${consolelogdir}/${servicename}-console.log"
 alertlog="${lgsmlogdir}/${servicename}-alert.log"
 postdetailslog="${lgsmlogdir}/${servicename}-postdetails.log"

+ 4 - 6
lgsm/config-default/config-lgsm/ut3server/_default.cfg

@@ -13,7 +13,6 @@ ip="0.0.0.0"
 port="7777"
 queryport="25300"
 defaultmap="VCTF-Suspense"
-maxplayers="32"
 game="UTGameContent.UTVehicleCTFGame_Content"
 mutators="" #"UTGame.UTMutator_Instagib,UTGame.UTMutator_LowGrav"
 isdedicated="true"
@@ -26,7 +25,7 @@ allowjoininprogress="true"
 ## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
 # Edit with care | List of game types and mutators : http://wiki.unrealadmin.org/FAQ:UT3
 fn_parms(){
-parms="server ${defaultmap}?Game=${game}?bIsDedicated=${isdedicated}?bIsLanMatch=${islanmatch}?bUsesStats=${usesstats}?bShouldAdvertise=${shouldadvertise}?PureServer=${pureserver}?bAllowJoinInProgress=${allowjoininprogress}?MaxPlayers=${maxplayers}?Mutator=${mutators} -port=${port} -queryport=${queryport} -multihome=${ip} -nohomedir -unattended -log=${gamelog} -ini=${servercfgfullpath}"
+parms="server ${defaultmap}?Game=${game}?bIsDedicated=${isdedicated}?bIsLanMatch=${islanmatch}?bUsesStats=${usesstats}?bShouldAdvertise=${shouldadvertise}?PureServer=${pureserver}?bAllowJoinInProgress=${allowjoininprogress}?Mutator=${mutators}?ConfigSubDir=${servicename} -port=${port} -queryport=${queryport} -multihome=${ip} -nohomedir -unattended -log=${gamelog}"
 }
 
 #### LinuxGSM Settings ####
@@ -97,9 +96,9 @@ engine="unreal3"
 systemdir="${serverfiles}"
 executabledir="${systemdir}/Binaries"
 executable="./ut3"
-servercfg="${servicename}.ini"
+servercfg="UTGame.ini"
 servercfgdefault="UTGame.ini"
-servercfgdir="${systemdir}/UTGame/Config"
+servercfgdir="${systemdir}/UTGame/Config/${servicename}"
 servercfgfullpath="${servercfgdir}/${servercfg}"
 
 ## Backup Directory
@@ -110,14 +109,13 @@ logdir="${rootdir}/log"
 gamelogdir="${logdir}/server"
 lgsmlogdir="${logdir}/script"
 consolelogdir="${logdir}/console"
-lgsmlog="${lgsmlogdir}/${servicename}-script.log"
 gamelog="${gamelogdir}/${servicename}-game.log"
+lgsmlog="${lgsmlogdir}/${servicename}-script.log"
 consolelog="${consolelogdir}/${servicename}-console.log"
 alertlog="${lgsmlogdir}/${servicename}-alert.log"
 postdetailslog="${lgsmlogdir}/${servicename}-postdetails.log"
 
 ## Logs Naming
-
 lgsmlogdate="${lgsmlogdir}/${servicename}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
 consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"
 gamelogdate="${gamelogdir}/${servicename}-game-$(date '+%Y-%m-%d-%H:%M:%S').log"

+ 128 - 0
lgsm/config-default/config-lgsm/zpsserver/_default.cfg

@@ -0,0 +1,128 @@
+##################################
+######## Default Settings ########
+##################################
+# DO NOT EDIT WILL BE OVERWRITTEN!
+# Copy settings from here and use them in either
+# common.cfg - applies settings to every instance
+# [instance].cfg - applies settings to a specific instance
+
+#### Server Settings ####
+
+## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters
+ip="0.0.0.0"
+port="27015"
+clientport="27005"
+sourcetvport="27020"
+defaultmap="zps_deadend"
+maxplayers="20"
+
+## Optional: Game Server Login Token
+# GSLT can be used for running a public server.
+# More info: https://gameservermanagers.com/gslt
+gslt=""
+
+## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
+fn_parms(){
+parms="-game zps -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
+}
+
+#### LinuxGSM Settings ####
+
+## Notification Alerts
+# (on|off)
+
+# More info | https://github.com/GameServerManagers/LinuxGSM/wiki/Alerts#more-info
+postalert="off"
+postdays="7"
+posttarget="https://hastebin.com"
+
+# Discord Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Discord
+discordalert="off"
+discordwebhook="webhook"
+
+# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email
+emailalert="off"
+email="email@example.com"
+emailfrom=""
+
+# IFTTT Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/IFTTT
+iftttalert="off"
+ifttttoken="accesstoken"
+iftttevent="linuxgsm_alert"
+
+# Mailgun Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/mailgun
+mailgunalert="off"
+mailguntoken="accesstoken"
+mailgundomain="example.com"
+mailgunemailfrom="alert@example.com"
+mailgunemail="email@myemail.com"
+
+# Pushbullet Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushbullet
+pushbulletalert="off"
+pushbullettoken="accesstoken"
+channeltag=""
+
+# Pushover Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushover
+pushoveralert="off"
+pushovertoken="accesstoken"
+
+# Telegram Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Telegram
+telegramalert="off"
+telegramtoken="accesstoken"
+telegramchatid=""
+
+## Updating | https://github.com/GameServerManagers/LinuxGSM/wiki/Update
+updateonstart="off"
+
+## Backup | https://github.com/GameServerManagers/LinuxGSM/wiki/Backup
+maxbackups="4"
+maxbackupdays="30"
+stoponbackup="on"
+
+## Logging | https://github.com/GameServerManagers/LinuxGSM/wiki/Logging
+consolelogging="on"
+logdays="7"
+
+#### LinuxGSM Advanced Settings ####
+
+## SteamCMD Settings
+# Server appid
+appid="17505"
+# Steam App Branch Select
+# Allows to opt into the various Steam app branches. Default branch is "".
+# Example: "-beta latest_experimental"
+branch=""
+
+## LinuxGSM Server Details
+# Do not edit
+gamename="Zombie Panic! Source"
+engine="source"
+
+#### Directories ####
+# Edit with care
+
+## Server Specific Directories
+systemdir="${serverfiles}/zps"
+executabledir="${serverfiles}"
+executable="./srcds_run"
+servercfg="${servicename}.cfg"
+servercfgdefault="server.cfg"
+servercfgdir="${systemdir}/cfg"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+
+## Backup Directory
+backupdir="${rootdir}/backups"
+
+## Logging Directories
+logdir="${rootdir}/log"
+gamelogdir="${systemdir}/logs"
+lgsmlogdir="${logdir}/script"
+consolelogdir="${logdir}/console"
+lgsmlog="${lgsmlogdir}/${servicename}-script.log"
+consolelog="${consolelogdir}/${servicename}-console.log"
+alertlog="${lgsmlogdir}/${servicename}-alert.log"
+postdetailslog="${lgsmlogdir}/${servicename}-postdetails.log"
+
+## Logs Naming
+lgsmlogdate="${lgsmlogdir}/${servicename}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
+consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"

+ 71 - 69
lgsm/data/serverlist.csv

@@ -1,69 +1,71 @@
-arma3,arma3server,ARMA 3
-sdtd,sdtdserver,7 Days to Die
-ark,arkserver,ARK: Survival Evolved
-bo,boserver,Ballistic Overkill
-bf1942,bf1942server,Battlefield 1942
-bmdm,bmdmserver,Black Mesa: Deathmatch
-bs,bsserver,Blade Symphony
-bb2,bb2server,BrainBread 2
-cod,codserver,Call of Duty
-cod2,cod2server,Call of Duty 2
-cod4,cod4server,Call of Duty 4
-coduo,coduoserver,Call of Duty: United Offensive
-codwaw,codwawserver,Call of Duty: World at War
-cc,ccserver,Codename CURE
-cs,csserver,Counter-Strike 1.6
-cscz,csczserver,Counter-Strike: Condition Zero
-csgo,csgoserver,Counter-Strike: Global Offensive
-css,cssserver,Counter-Strike: Source
-dod,dodserver,Day of Defeat
-dods,dodsserver,Day of Defeat: Source
-doi,doiserver,Day of Infamy
-dmc,dmcserver,Deathmatch Classic
-dst,dstserver,Don't Starve Together
-dab,dabserver,Double Action: Boogaloo
-em,emserver,Empires Mod
-fctr,fctrserver,Factorio
-fof,fofserver,Fistful of Frags
-gmod,gmodserver,Garrys Mod
-ges,gesserver,GoldenEye: Source
-hl2dm,hl2dmserver,Half-Life 2: Deathmatch
-hldms,hldmsserver,Half-Life Deathmatch: Source
-hldm,hldmserver,Half-Life: Deathmatch
-hw,hwserver,Hurtworld
-ins,insserver,Insurgency
-jc2,jc2server,Just Cause 2
-kf,kfserver,Killing Floor
-l4d,l4dserver,Left 4 Dead
-l4d2,l4d2server,Left 4 Dead 2
-mc,mcserver,Minecraft
-mta,mtaserver,Multi Theft Auto
-mumble,mumbleserver,Mumble
-ns2,ns2server,Natural Selection 2
-nmrih,nmrihserver,No More Room in Hell
-ns2c,ns2cserver,NS2: Combat
-opfor,opforserver,Opposing Force
-pvkii,pvkiiserver,Pirates Vikings & Knights II
-pc,pcserver,Project Cars
-pz,pzserver,Project Zomboid
-q2,q2server,Quake 2
-q3,q3server,Quake 3: Arena
-ql,qlserver,Quake Live
-qw,qwserver,Quake World
-ro,roserver,Red Orchestra: Ostfront 41-45
-ricochet,ricochetserver,Ricochet
-rust,rustserver,Rust
-ss3,ss3server,Serious Sam 3: BFE
-sb,sbserver,Starbound
-squad,squadserver,Squad
-sven,svenserver,Sven Co-op
-tf2,tf2server,Team Fortress 2
-tfc,tfcserver,Team Fortress Classic
-ts3,ts3server,Teamspeak 3
-tw,twserver,Teeworlds
-terraria,terrariaserver,Terraria
-tu,tuserver,Tower Unite
-ut2k4,ut2k4server,Unreal Tournament 2004
-ut3,ut3server,Unreal Tournament 3
-ut99,ut99server,Unreal Tournament 99
-wet,wetserver,Wolfenstein: Enemy Territory
+arma3	arma3server	ARMA 3
+sdtd	sdtdserver	7 Days to Die
+ark	arkserver	ARK: Survival Evolved
+bo	boserver	Ballistic Overkill
+bf1942	bf1942server	Battlefield 1942
+bmdm	bmdmserver	Black Mesa: Deathmatch
+bs	bsserver	Blade Symphony
+bb2	bb2server	BrainBread 2
+cod	codserver	Call of Duty
+cod2	cod2server	Call of Duty 2
+cod4	cod4server	Call of Duty 4
+coduo	coduoserver	Call of Duty: United Offensive
+codwaw	codwawserver	Call of Duty: World at War
+cc	ccserver	Codename CURE
+cs	csserver	Counter-Strike 1.6
+cscz	csczserver	Counter-Strike: Condition Zero
+csgo	csgoserver	Counter-Strike: Global Offensive
+css	cssserver	Counter-Strike: Source
+dod	dodserver	Day of Defeat
+dods	dodsserver	Day of Defeat: Source
+doi	doiserver	Day of Infamy
+dmc	dmcserver	Deathmatch Classic
+dst	dstserver	Don't Starve Together
+dab	dabserver	Double Action: Boogaloo
+em	emserver	Empires Mod
+fctr	fctrserver	Factorio
+fof	fofserver	Fistful of Frags
+gmod	gmodserver	Garrys Mod
+ges	gesserver	GoldenEye: Source
+hl2dm	hl2dmserver	Half-Life 2: Deathmatch
+hldms	hldmsserver	Half-Life Deathmatch: Source
+hldm	hldmserver	Half-Life: Deathmatch
+hw	hwserver	Hurtworld
+ins	insserver	Insurgency
+jc2	jc2server	Just Cause 2
+kf	kfserver	Killing Floor
+kf2	kf2server	Killing Floor 2
+l4d	l4dserver	Left 4 Dead
+l4d2	l4d2server	Left 4 Dead 2
+mc	mcserver	Minecraft
+mta	mtaserver	Multi Theft Auto
+mumble	mumbleserver	Mumble
+ns2	ns2server	Natural Selection 2
+nmrih	nmrihserver	No More Room in Hell
+ns2c	ns2cserver	NS2: Combat
+opfor	opforserver	Opposing Force
+pvkii	pvkiiserver	Pirates Vikings & Knights II
+pc	pcserver	Project Cars
+pz	pzserver	Project Zomboid
+q2	q2server	Quake 2
+q3	q3server	Quake 3: Arena
+ql	qlserver	Quake Live
+qw	qwserver	Quake World
+ro	roserver	Red Orchestra: Ostfront 41-45
+ricochet	ricochetserver	Ricochet
+rust	rustserver	Rust
+ss3	ss3server	Serious Sam 3: BFE
+sb	sbserver	Starbound
+squad	squadserver	Squad
+sven	svenserver	Sven Co-op
+tf2	tf2server	Team Fortress 2
+tfc	tfcserver	Team Fortress Classic
+ts3	ts3server	Teamspeak 3
+tw	twserver	Teeworlds
+terraria	terrariaserver	Terraria
+tu	tuserver	Tower Unite
+ut2k4	ut2k4server	Unreal Tournament 2004
+ut3	ut3server	Unreal Tournament 3
+ut99	ut99server	Unreal Tournament 99
+wet	wetserver	Wolfenstein: Enemy Territory
+zps	zpsserver	Zombie Panic! Source

+ 1 - 1
lgsm/functions/check_config.sh

@@ -8,7 +8,7 @@ local commandname="CHECK"
 local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
 
 if [ ! -e "${servercfgfullpath}" ]; then
-	if [ "${gamename}" != "Hurtworld" ]; then
+	if [ "${gamename}" != "Hurtworld" ]||[ "${shortname}" != "ut3" ]||[ "${shortname}" != "kf2" ]; then
 		fn_print_dots ""
 		sleep 0.5
 		fn_print_warn_nl "Configuration file missing!"

+ 12 - 0
lgsm/functions/check_deps.sh

@@ -183,12 +183,18 @@ if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
 	# Brainbread 2 ,Don't Starve Together & Team Fortress 2
 	elif [ "${gamename}" == "Brainbread 2" ]||[ "${gamename}" == "Don't Starve Together" ]||[ "${gamename}" == "Team Fortress 2" ]; then
 		array_deps_required+=( libcurl4-gnutls-dev:i386 )
+		if [ "${gamename}" == "Team Fortress 2" ]; then
+			array_deps_required+=( libtcmalloc-minimal4:i386 )
+		fi
 	# Battlefield: 1942
 	elif [ "${gamename}" == "Battlefield: 1942" ]; then
 		array_deps_required+=( libncurses5:i386 )
 	# Call of Duty
 	elif [ "${gamename}" == "Call of Duty" ]||[ "${gamename}" == "Call of Duty 2" ]; then
 		array_deps_required+=( libstdc++5:i386 )
+	# Factorio
+	elif [ "${gamename}" == "Factorio" ]; then
+		array_deps_required+=( xz-utils )
 	# Project Zomboid and Minecraft
 	elif [ "${engine}" ==  "projectzomboid" ]||[ "${engine}" == "lwjgl2" ]; then
 		javaversion=$(java -version 2>&1 | grep "version")
@@ -258,12 +264,18 @@ elif [ -n "$(command -v yum 2>/dev/null)" ]; then
 	# Brainbread 2, Don't Starve Together & Team Fortress 2
 	elif [ "${gamename}" == "Brainbread 2" ]||[ "${gamename}" == "Don't Starve Together" ]||[ "${gamename}" == "Team Fortress 2" ]; then
 		array_deps_required+=( libcurl.i686 )
+		if [ "${gamename}" == "Team Fortress 2" ]; then
+			array_deps_required+=( gperftools-libs.i686 )
+		fi
 	# Battlefield: 1942
 	elif [ "${gamename}" == "Battlefield: 1942" ]; then
 		array_deps_required+=( ncurses-libs.i686 )
 	# Call of Duty
 	elif [ "${gamename}" == "Call of Duty" ]||[ "${gamename}" == "Call of Duty 2" ]; then
 		array_deps_required+=( compat-libstdc++-33.i686 )
+	# Factorio
+	elif [ "${gamename}" == "Factorio" ]; then
+		array_deps_required+=( xz )
 	# Project Zomboid and Minecraft
 	elif [ "${engine}" ==  "projectzomboid" ]||[ "${engine}" == "lwjgl2" ]; then
 		javaversion=$(java -version 2>&1 | grep "version")

+ 6 - 0
lgsm/functions/command_debug.sh

@@ -52,6 +52,12 @@ if [ -n "${glibcrequired}" ]; then
 fi
 # Server ip
 echo -e "${blue}Server IP:\t${default}${ip}:${port}"
+# External server ip
+if [ -n "${extip}" ]; then
+	if [ "${ip}" != "${extip}" ]; then
+		echo -e "${blue}Internet IP:\t${default}${extip}:${port}"
+	fi
+fi
 # Server password
 if [ -n "${serverpassword}" ]; then
 	echo -e "${blue}Server password:\t${default}${serverpassword}"

+ 1 - 1
lgsm/functions/command_mods_remove.sh

@@ -32,7 +32,7 @@ done
 echo ""
 # Keep prompting as long as the user input doesn't correspond to an available mod
 while [[ ! " ${installedmodslist[@]} " =~ " ${usermodselect} " ]]; do
-	echo -en "Enter an ${cyan}addon/mod${default} to ${green}install${default} (or exit to abort): "
+	echo -en "Enter an ${cyan}addon/mod${default} to ${red}remove${default} (or exit to abort): "
 	read -r usermodselect
 	# Exit if user says exit or abort
 	if [ "${usermodselect}" == "exit" ]||[ "${usermodselect}" == "abort" ]; then

+ 1 - 0
lgsm/functions/command_start.sh

@@ -191,6 +191,7 @@ logs.sh
 if [ "${status}" == "0" ]; then
 	if [ "${updateonstart}" == "yes" ]||[ "${updateonstart}" == "1" ]||[ "${updateonstart}" == "on" ]; then
 		exitbypass=1
+		unset updateonstart
 		command_update.sh
 	fi
 fi

+ 56 - 1
lgsm/functions/info_config.sh

@@ -624,17 +624,69 @@ fn_info_config_unreal(){
 fn_info_config_unreal3(){
 	if [ ! -f "${servercfgfullpath}" ]; then
 		servername="${unavailable}"
+		serverpassword="${unavailable}"
+		adminpassword="${unavailable}"
+		port="${unavailable}"
+		webadminenabled="${unavailable}"
+		webadminport="${zero}"
+		webadminuser="${unavailable}"
 		webadminpass="${unavailable}"
 	else
 		servername=$(grep "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
-		webadminpass=$(grep grep "AdminPassword" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+		adminpassword=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+		port=$(grep "Port" "${servercfgdir}/UTEngine.ini" | sed -e 's/^[ \t]*//g' | grep "^Port" | grep -v "#" | tr -cd '[:digit:]')
+		webadminenabled=$(grep "bEnabled" "${servercfgdir}/UTWeb.ini" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/bEnabled//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+		webadminport=$(grep "ListenPort" "${servercfgdir}/UTWeb.ini" | grep -v "#" | tr -cd '[:digit:]')
+		webadminuser="Admin"
+		webadminpass=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
 
 		# Not Set
 		servername=${servername:-"NOT SET"}
+		serverpassword=${serverpassword:-"NOT SET"}
+		adminpassword=${adminpassword:-"NOT SET"}
+		port=${port:-"0"}
+		webadminenabled=${webadminenabled:-"NOT SET"}
+		webadminport=${webadminport:-"0"}
+		webadminuser=${webadminuser:-"NOT SET"}
 		webadminpass=${webadminpass:-"NOT SET"}
 	fi
 }
 
+fn_info_config_kf2(){
+	if [ ! -f "${servercfgfullpath}" ]; then
+		servername="${unavailable}"
+		serverpassword="${unavailable}"
+		adminpassword="${unavailable}"
+		port="${unavailable}"
+		webadminenabled="${unavailable}"
+		webadminport="${zero}"
+		webadminuser="${unavailable}"
+		webadminpass="${unavailable}"
+	else
+		servername=$(grep "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+		# Not in UT3
+		serverpassword=$(grep "GamePassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/GamePassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+		adminpassword=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+		port=$(grep "Port" "${servercfgdir}/LinuxServer-KFEngine.ini" | sed -e 's/^[ \t]*//g' | grep "^Port" | grep -v "#" | tr -cd '[:digit:]')
+		webadminenabled=$(grep "bEnabled" "${servercfgdir}/KFWeb.ini" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/bEnabled//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+		webadminport=$(grep "ListenPort" "${servercfgdir}/KFWeb.ini" | grep -v "#" | tr -cd '[:digit:]')
+		webadminuser="Admin"
+		webadminpass=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
+
+		# Not Set
+		servername=${servername:-"NOT SET"}
+		serverpassword=${serverpassword:-"NOT SET"}
+		adminpassword=${adminpassword:-"NOT SET"}
+		port=${port:-"0"}
+		webadminenabled=${webadminenabled:-"NOT SET"}
+		webadminport=${webadminport:-"0"}
+		webadminuser=${webadminuser:-"NOT SET"}
+		webadminpass=${webadminpass:-"NOT SET"}
+
+
+	fi
+}
+
 fn_info_config_sdtd(){
 	if [ ! -f "${servercfgfullpath}" ]; then
 		servername="${unavailable}"
@@ -804,6 +856,9 @@ elif [ "${engine}" == "dontstarve" ]; then
 # Factorio
 elif [ "${gamename}" == "Factorio" ]; then
 	fn_info_config_factorio
+# Killing Floor 2
+elif [ "${shortname}" == "kf2" ]; then
+	fn_info_config_kf2
 # QuakeWorld
 elif [ "${gamename}" == "QuakeWorld" ]; then
 	fn_info_config_quakeworld

+ 3 - 0
lgsm/functions/info_distro.sh

@@ -133,3 +133,6 @@ if [ -d "${backupdir}" ]; then
 		lastbackupsize=$(du -h "${lastbackup}" | awk '{print $1}')
 	fi
 fi
+
+# External IP address
+extip=$(curl -m 3 ifconfig.co 2>/dev/null)

+ 3 - 0
lgsm/functions/info_glibc.sh

@@ -65,6 +65,9 @@ elif [ "${gamename}" == "GoldenEye: Source" ]; then
 elif [ "${gamename}" == "Insurgency" ]; then
 	glibcrequired="2.15"
 	glibcfix="yes"
+elif [ "${shortname}" == "kf2" ]; then
+	glibcrequired="2.17"
+	glibcfix="no"
 elif [ "${gamename}" == "Mumble" ]; then
 	glibcrequired="NOT REQUIRED"
 	glibcfix="no"

+ 90 - 38
lgsm/functions/info_messages.sh

@@ -134,6 +134,13 @@ fn_info_message_gameserver(){
 		# Server ip
 		echo -e "${blue}Server IP:\t${default}${ip}:${port}"
 
+		# External server ip
+		if [ -n "${extip}" ]; then
+			if [ "${ip}" != "${extip}" ]; then
+				echo -e "${blue}Internet IP:\t${default}${extip}:${port}"
+			fi
+		fi
+
 		# Server password
 		if [ -n "${serverpassword}" ]; then
 			echo -e "${blue}Server password:\t${default}${serverpassword}"
@@ -282,12 +289,20 @@ fn_info_message_script(){
 			fi
 		fi
 
+		# Discord alert
+		echo -e "${blue}Discord alert:\t${default}${discordalert}"
 		# Email alert
 		echo -e "${blue}Email alert:\t${default}${emailalert}"
-
 		# Pushbullet alert
 		echo -e "${blue}Pushbullet alert:\t${default}${pushbulletalert}"
-
+		# IFTTT alert
+		echo -e "${blue}IFTTT alert:\t${default}${iftttalert}"
+		# Mailgun alert
+		echo -e "${blue}Mailgun (email) alert:\t${default}${mailgunalert}"
+		# Pushover alert
+		echo -e "${blue}Pushover alert:\t${default}${pushoveralert}"
+		# Telegram alert
+		echo -e "${blue}Telegram alert:\t${default}${telegramalert}"
 		# Update on start
 		if [ -n "${updateonstart}" ]; then
 			echo -e "${blue}Update on start:\t${default}${updateonstart}"
@@ -375,12 +390,16 @@ fn_info_message_ports(){
 	local ports_edit_array=( "avalanche" "Ballistic Overkill" "dontstarve" "idtech2" "idtech3" "idtech3_ql" "lwjgl2" "Project Cars" "projectzomboid" "quake" "refractor" "realvirtuality" "renderware" "seriousengine35" "teeworlds" "terraria" "unreal" "unreal2" "unreal3" "TeamSpeak 3" "Mumble" "7 Days To Die" )
 	for port_edit in "${ports_edit_array[@]}"
 	do
-		if [ "${engine}" == "${port_edit}" ]||[ "${gamename}" == "${port_edit}" ]; then
+		if [ "${shortname}" == "ut3" ]; then
+			parmslocation="${servercfgdir}/UTEngine.ini\n${servercfgdir}/UTWeb.ini"
+		elif [ "${shortname}" == "kf2" ]; then
+			parmslocation="${servercfgdir}/LinuxServer-KFEngine.ini\n${servercfgdir}/KFWeb.ini"
+		elif [ "${engine}" == "${port_edit}" ]||[ "${gamename}" == "${port_edit}" ]; then
 			parmslocation="${servercfgfullpath}"
 		fi
 	done
 	# engines/games that require editing in the script file
-	local ports_edit_array=( "goldsource" "Factorio" "Hurtworld" "iw3.0"  "Rust" "spark" "source" "starbound" "unreal4" "realvirtuality")
+	local ports_edit_array=( "goldsource" "Factorio" "Hurtworld" "iw3.0" "Rust" "spark" "source" "starbound" "unreal4" "realvirtuality")
 	for port_edit in "${ports_edit_array[@]}"
 	do
 		if [ "${engine}" == "${port_edit}" ]||[ "${gamename}" == "${port_edit}" ]; then
@@ -844,9 +863,9 @@ fn_info_message_unreal(){
 		fi
 		if [ "${appid}" ]; then
 			if [ "${appid}" == "223250" ]; then
-				echo -e "< Steam\tOUTBOUND\t20610\tudp"
+				echo -e "< Steam\tINBOUND\t20610\tudp"
 			else
-				echo -e "< Steam\tOUTBOUND\t20660\tudp"
+				echo -e "< Steam\tINBOUND\t20660\tudp"
 			fi
 		fi
 		echo -e "> WebAdmin\tINBOUND\t${webadminport}\ttcp\tListenPort=${webadminport}"
@@ -862,12 +881,43 @@ fn_info_message_unreal(){
 	} | column -s $'\t' -t
 }
 
-fn_info_message_ut3(){
+fn_info_message_unreal3(){
 	echo -e "netstat -atunp | grep ut3-bin"
 	echo -e ""
 	{
 		echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL"
 		echo -e "> Game/Query\tINBOUND\t${port}\ttcp/udp"
+		echo -e "> WebAdmin\tINBOUND\t${webadminport}\ttcp\tListenPort=${webadminport}"
+	} | column -s $'\t' -t
+	echo -e ""
+	echo -e "${lightgreen}${servername} WebAdmin${default}"
+	fn_messages_separator
+	{
+		echo -e "${blue}WebAdmin enabled:\t${default}${webadminenabled}"
+		echo -e "${blue}WebAdmin url:\t${default}http://${ip}:${webadminport}"
+		echo -e "${blue}WebAdmin username:\t${default}${webadminuser}"
+		echo -e "${blue}WebAdmin password:\t${default}${webadminpass}"
+	} | column -s $'\t' -t
+}
+
+fn_info_message_kf2(){
+	echo -e "netstat -atunp | grep KFGame"
+	echo -e ""
+	{
+		echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL"
+		echo -e "> Game\tINBOUND\t${port}\ttcp"
+		echo -e "> Query\tINBOUND\t${queryport}\ttcp/udp"
+		echo -e "> Steam\tINBOUND\t20560\tudp"
+		echo -e "> WebAdmin\tINBOUND\t${webadminport}\ttcp\tListenPort=${webadminport}"
+	} | column -s $'\t' -t
+	echo -e ""
+	echo -e "${lightgreen}${servername} WebAdmin${default}"
+	fn_messages_separator
+	{
+		echo -e "${blue}WebAdmin enabled:\t${default}${webadminenabled}"
+		echo -e "${blue}WebAdmin url:\t${default}http://${ip}:${webadminport}"
+		echo -e "${blue}WebAdmin username:\t${default}${webadminuser}"
+		echo -e "${blue}WebAdmin password:\t${default}${webadminpass}"
 	} | column -s $'\t' -t
 }
 
@@ -895,37 +945,7 @@ fn_info_message_mta(){
 
 fn_info_message_select_engine(){
 	# Display details depending on game or engine.
-	if [ "${engine}" == "avalanche" ]; then
-		fn_info_message_avalanche
-	elif [ "${engine}" == "refractor" ]; then
-		fn_info_message_refractor
-	elif [ "${engine}" == "dontstarve" ]; then
-		fn_info_message_dontstarve
-	elif [ "${engine}" == "goldsource" ]; then
-		fn_info_message_goldsource
-	elif [ "${engine}" == "lwjgl2" ]; then
-		fn_info_message_minecraft
-	elif [ "${engine}" == "projectzomboid" ]; then
-		fn_info_message_projectzomboid
-	elif [ "${engine}" == "realvirtuality" ]; then
-		fn_info_message_realvirtuality
-	elif [ "${engine}" == "seriousengine35" ]; then
-		fn_info_message_seriousengine35
-	elif [ "${engine}" == "source" ]; then
-		fn_info_message_source
-	elif [ "${engine}" == "spark" ]; then
-		fn_info_message_spark
-	elif [ "${engine}" == "starbound" ]; then
-		fn_info_message_starbound
-	elif [ "${engine}" == "teeworlds" ]; then
-		fn_info_message_teeworlds
-	elif [ "${engine}" == "terraria" ]; then
-		fn_info_message_terraria
-	elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
-		fn_info_message_unreal
-	elif [ "${engine}" == "unreal3" ]; then
-		fn_info_message_ut3
-	elif [ "${gamename}" == "7 Days To Die" ]; then
+	if [ "${gamename}" == "7 Days To Die" ]; then
 		fn_info_message_sdtd
 	elif [ "${gamename}" == "ARK: Survival Evolved" ]; then
 		fn_info_message_ark
@@ -945,6 +965,8 @@ fn_info_message_select_engine(){
 		fn_info_message_factorio
 	elif [ "${gamename}" == "Hurtworld" ]; then
 		fn_info_message_hurtworld
+	elif [ "${shortname}" == "kf2" ]; then
+		fn_info_message_kf2
 	elif [ "${gamename}" == "Project Cars" ]; then
 		fn_info_message_projectcars
 	elif [ "${gamename}" == "QuakeWorld" ]; then
@@ -969,6 +991,36 @@ fn_info_message_select_engine(){
 		fn_info_message_rust
 	elif [ "${gamename}" == "Wolfenstein: Enemy Territory" ]; then
 		fn_info_message_wolfensteinenemyterritory
+	elif [ "${engine}" == "avalanche" ]; then
+		fn_info_message_avalanche
+	elif [ "${engine}" == "refractor" ]; then
+		fn_info_message_refractor
+	elif [ "${engine}" == "dontstarve" ]; then
+		fn_info_message_dontstarve
+	elif [ "${engine}" == "goldsource" ]; then
+		fn_info_message_goldsource
+	elif [ "${engine}" == "lwjgl2" ]; then
+		fn_info_message_minecraft
+	elif [ "${engine}" == "projectzomboid" ]; then
+		fn_info_message_projectzomboid
+	elif [ "${engine}" == "realvirtuality" ]; then
+		fn_info_message_realvirtuality
+	elif [ "${engine}" == "seriousengine35" ]; then
+		fn_info_message_seriousengine35
+	elif [ "${engine}" == "source" ]; then
+		fn_info_message_source
+	elif [ "${engine}" == "spark" ]; then
+		fn_info_message_spark
+	elif [ "${engine}" == "starbound" ]; then
+		fn_info_message_starbound
+	elif [ "${engine}" == "teeworlds" ]; then
+		fn_info_message_teeworlds
+	elif [ "${engine}" == "terraria" ]; then
+		fn_info_message_terraria
+	elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
+		fn_info_message_unreal
+	elif [ "${engine}" == "unreal3" ]; then
+		fn_info_message_unreal3
 	else
 		fn_print_error_nl "Unable to detect server engine."
 	fi

+ 7 - 1
lgsm/functions/info_parms.sh

@@ -112,11 +112,15 @@ fn_info_parms_unreal3(){
 	port=${port:-"0"}
 	queryport=${queryport:-"0"}
 	defaultmap=${defaultmap:-"NOT SET"}
-	maxplayers=${maxplayers:-"0"}
 	serverpassword=${serverpassword:-"NOT SET"}
 	adminpassword=${adminpassword:-"NOT SET"}
 }
 
+fn_info_parms_kf2(){
+	queryport=${queryport:-"0"}
+	defaultmap=${defaultmap:-"NOT SET"}
+}
+
 # ARK: Survival Evolved
 if [ "${gamename}" == "ARK: Survival Evolved" ]; then
 	fn_info_parms_ark
@@ -129,6 +133,8 @@ elif [ "${gamename}" == "Call of Duty" ]||[ "${gamename}" == "Call of Duty: Unit
 # Factorio
 elif [ "${gamename}" == "Factorio" ]; then
 	fn_info_parms_factorio
+elif [ "${shortname}" == "kf2" ]; then
+	fn_info_parms_kf2
 # Project Zomboid
 elif [ "${engine}" == "projectzomboid" ]; then
 	fn_info_parms_projectzomboid

+ 2 - 8
lgsm/functions/install_config.sh

@@ -50,7 +50,7 @@ fn_default_config_remote(){
 # PASSWORD to random password
 fn_set_config_vars(){
 	if [ -f "${servercfgfullpath}" ]; then
-		random=$(strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 8 | tr -d '\n'; echo)
+		random=$(tr -dc A-Za-z0-9_ < /dev/urandom | head -c 8 | xargs)
 		servername="LinuxGSM"
 		rconpass="admin$random"
 		echo "changing hostname."
@@ -82,7 +82,7 @@ fn_set_dst_config_vars(){
 		sleep 1
 		echo "randomizing cluster key."
 		fn_script_log_info "randomizing cluster key."
-		randomkey=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
+		randomkey=$(tr -dc A-Za-z0-9_ < /dev/urandom | head -c 8 | xargs)
 		sed -i "s/CLUSTERKEY/${randomkey}/g" "${clustercfgfullpath}"
 		sleep 1
 	else
@@ -516,12 +516,6 @@ elif [ "${gamename}" == "Unreal Tournament 2004" ]; then
 	fn_fetch_default_config
 	fn_default_config_remote
 	fn_set_config_vars
-elif [ "${gamename}" == "Unreal Tournament 3" ]; then
-	gamedirname="UnrealTournament3"
-	array_configs+=( UTGame.ini )
-	fn_fetch_default_config
-	fn_default_config_remote
-	fn_set_config_vars
 elif [ "${gamename}" == "Unreal Tournament 99" ]; then
 	gamedirname="UnrealTournament99"
 	array_configs+=( Default.ini )

+ 1 - 1
lgsm/functions/mods_list.sh

@@ -63,7 +63,7 @@ mod_info_uclip=( MOD "uclip" "UClip" "https://github.com/TeamUlysses/uclip/archi
 mod_info_acf=( MOD "acf" "Armoured Combat Framework" "https://github.com/nrlulz/ACF/archive/master.zip" "acf-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "acf-master/lua/acf/shared/guns;" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/nrlulz/ACF" "Realistic Wepons & Engines" )
 mod_info_acf_missiles=( MOD "acfmissiles" "ACF Missiles" "https://github.com/Bubbus/ACF-Missiles/archive/master.zip" "acf-missiles-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/Bubbus/ACF-Missiles" "More missiles for ACF" )
 mod_info_advdupe2=( MOD "advdupe2" "Advanced Duplicator 2" "https://github.com/wiremod/advdupe2/archive/master.zip" "advdupe2-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "http://www.wiremod.com" "Save your constructions" )
-mod_info_darkrp=( MOD "darkrp" "DarkRP" "https://github.com/FPtje/DarkRP/archive/master.zip" "darkrp-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "http://darkrp.com" "Most popular gamemode" )
+mod_info_darkrp=( MOD "darkrp" "DarkRP" "https://github.com/FPtje/DarkRP/archive/master.zip" "darkrp-master.zip" "0" "LowercaseOn" "${systemdir}/gamemodes" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "http://darkrp.com" "Most popular gamemode" )
 mod_info_darkrpmodification=( MOD "darkrpmodification" "DarkRP Modification" "https://github.com/FPtje/darkrpmodification/archive/master.zip" "darkrpmodification-master.zip" "0" "LowercaseOff" "${systemdir}/addons" "NOUPDATE" "ENGINES" "Garry's Mod;" "NOTGAMES" "http://darkrp.com" "Customize DarkRP settings" )
 # Oxidemod
 mod_info_rustoxide=( MOD "rustoxide" "Oxide for Rust" "https://dl.bintray.com/oxidemod/builds/Oxide-Rust.zip" "Oxide-Rust.zip" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Rust;" "NOTGAMES" "http://oxidemod.org/downloads/oxide-for-rust.1659/" "Allows for the use of plugins" )

+ 1 - 1
linuxgsm.sh

@@ -20,7 +20,7 @@ if [ -f ".dev-debug" ]; then
 	set -x
 fi
 
-version="170803"
+version="170926"
 shortname="core"
 gameservername="core"
 rootdir="$(dirname $(readlink -f "${BASH_SOURCE[0]}"))"