diff --git a/lgsm/config-default/config-lgsm/tfserver/_default.cfg b/lgsm/config-default/config-lgsm/tfserver/_default.cfg new file mode 100644 index 000000000..b605365fe --- /dev/null +++ b/lgsm/config-default/config-lgsm/tfserver/_default.cfg @@ -0,0 +1,202 @@ +################################## +######## Default Settings ######## +################################## +# DO NOT EDIT, ANY CHANGES 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. + +#### Game Server Settings #### + +## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters +ip="0.0.0.0" +port="5001" +beaconport="5002" +shutdownport="5003" +queryport="27015" +adminlabel="true" # Enable admin icon. +allowsensitivewords="true" +altsavedirectoryname="${defaultmap}" +anticheat="true" +damageself="true" +damangeallies="true" +gamemode="0" # 0 = PvP; 1 = PvE +greenhand="true" +maxplayers="40" +maxqueuesize="50" +queuevalidtime="120" +saveinterval="300" +serveradmins="" # Use 17-digit Steam IDs separated by commas to grant admin privileges to players. +servername="LinuxGSM" +serverpassword="" +servertags="LinuxGSM" +steamsocket="0" # Use Steam Socket. 0 = off; 1 = on. Use Steam Servers for network penetration. Enable this if you don't have a public IP but you want to allow players from outside your network to join your server. If disabled, only you and other players on your LAN can join. If you have a public IP, you do not need to enable this. + +## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters +startparameters="ProjectWar_Start?DedicatedServer?MaxPlayers=${maxplayers} -server -game -log -MultiHome=${ip} -Port=${port} -QueryPort=${queryport} -BeaconPort=${beaconport} -ShutDownServicePort=${shutdownport} -ConfigServerName='${selfname}' -OutIPAddress=${publicip} -ServerTags='${servertags}' -UseSteamSocket=${steamsocket} -UserDir='${serverfiles}/${selfname}' -ServerName='${servername}' -EnableParallelCharacterMovementTickFunction -EnableParallelCharacterTickFunction -UseDynamicPhysicsScene -Game.PhysicsVehicle=false -ansimalloc -Game.MaxFrameRate=35 -MaxQueueSize=${maxqueuesize} -QueueValidTime=${queuevalidtime} -QueueThreshold=${maxplayers} -ServerFightModeType=${gamemode} -IsCanSelfDamage=${damageself} -IsCanFriendDamage=${damageallies} -SaveWorldInterval=${saveinterval} -GMOverlapRatio=2 -GreenHand=${greenhand} -SensitiveWords=${allowsensitivewords} -UseACE=${anticheat} -ServerAdminAccounts='${serveradmins}' -IsShowGmTitle=${adminlabel} -ServerPassword='${serverpassword}'" + +#### LinuxGSM Settings #### + +## LinuxGSM Stats +# Send useful stats to LinuxGSM developers. +# https://docs.linuxgsm.com/configuration/linuxgsm-stats +# (on|off) +stats="off" + +## Notification Alerts +# (on|off) + +# Display IP | https://docs.linuxgsm.com/alerts#display-ip +displayip="" + +# More info | https://docs.linuxgsm.com/alerts#more-info +postalert="off" + +# Alert on Start/Stop/Restart +statusalert="off" + +# Discord Alerts | https://docs.linuxgsm.com/alerts/discord +discordalert="off" +discordwebhook="webhook" + +# Email Alerts | https://docs.linuxgsm.com/alerts/email +emailalert="off" +email="email@example.com" +emailfrom="" + +# Gotify Alerts | https://docs.linuxgsm.com/alerts/gotify +gotifyalert="off" +gotifytoken="token" +gotifywebhook="webhook" + +# IFTTT Alerts | https://docs.linuxgsm.com/alerts/ifttt +iftttalert="off" +ifttttoken="accesstoken" +iftttevent="linuxgsm_alert" + +# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet +pushbulletalert="off" +pushbullettoken="accesstoken" +channeltag="" + +# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover +pushoveralert="off" +pushovertoken="accesstoken" +pushoveruserkey="userkey" + +# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat +rocketchatalert="off" +rocketchatwebhook="webhook" + +# Slack Alerts | https://docs.linuxgsm.com/alerts/slack +slackalert="off" +slackwebhook="webhook" + +# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram +# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring". +# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help". +telegramapi="api.telegram.org" +telegramalert="off" +telegramtoken="accesstoken" +telegramchatid="" +curlcustomstring="" + +## Updating | https://docs.linuxgsm.com/commands/update +updateonstart="off" + +## Backup | https://docs.linuxgsm.com/commands/backup +maxbackups="4" +maxbackupdays="30" +stoponbackup="on" + +## Logging | https://docs.linuxgsm.com/features/logging +consolelogging="on" +logdays="7" + +## Monitor | https://docs.linuxgsm.com/commands/monitor +# Query delay time +querydelay="5" + +## ANSI Colors | https://docs.linuxgsm.com/features/ansi-colors +ansi="on" + +#### Advanced Settings #### + +## Message Display Time | https://docs.linuxgsm.com/features/message-display-time +sleeptime="0.5" + +## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd +# Server appid +appid="2334200" +steamcmdforcewindows="no" +# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch +branch="" +betapassword="" +# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server +steammaster="true" + +## Stop Mode | https://docs.linuxgsm.com/features/stop-mode +# 1: tmux kill +# 2: CTRL+c +# 3: quit +# 4: quit 120s +# 5: stop +# 6: q +# 7: exit +# 8: 7 Days to Die +# 9: GoldSrc +# 10: Avorion +# 11: end +stopmode="2" + +## Query mode +# 1: session only +# 2: gamedig (gsquery fallback) +# 3: gamedig +# 4: gsquery +# 5: tcp +querymode="2" +querytype="protocol-valve" + +## Console type +consoleverbose="yes" +consoleinteract="no" + +## Game Server Details +# Do not edit +gamename="The Front" +engine="unreal4" +glibc="2.17" + +#### Directories #### +# Edit with care + +## Game Server Directories +systemdir="${serverfiles}/ProjectWar" +executabledir="${systemdir}/Binaries/Linux" +executable="./TheFrontServer" +servercfgdir="${systemdir}/Saved/Config/LinuxServer" +servercfg="GameUserSettings.ini" +servercfgdefault="GameUserSettings.ini" +servercfgfullpath="${servercfgdir}/${servercfg}" + +## Backup Directory +backupdir="${lgsmdir}/backup" + +## Logging Directories +[ -n "${LGSM_LOGDIR}" ] && logdir="${LGSM_LOGDIR}" || logdir="${rootdir}/log" +gamelogdir="${systemdir}/Saved/Logs" +lgsmlogdir="${logdir}/script" +consolelogdir="${logdir}/console" +lgsmlog="${lgsmlogdir}/${selfname}-script.log" +consolelog="${consolelogdir}/${selfname}-console.log" +alertlog="${lgsmlogdir}/${selfname}-alert.log" +postdetailslog="${lgsmlogdir}/${selfname}-postdetails.log" + +## Logs Naming +lgsmlogdate="${lgsmlogdir}/${selfname}-script-$(date '+%Y-%m-%d-%H:%M:%S').log" +consolelogdate="${consolelogdir}/${selfname}-console-$(date '+%Y-%m-%d-%H:%M:%S').log" + +## Log Parameters +logtimestamp="off" +logtimestampformat="%Y-%m-%d %H:%M:%S" diff --git a/lgsm/data/almalinux-8.csv b/lgsm/data/almalinux-8.csv index 4142c3c82..561b3c134 100644 --- a/lgsm/data/almalinux-8.csv +++ b/lgsm/data/almalinux-8.csv @@ -111,6 +111,7 @@ st,libxml2 stn sven terraria +tf tf2,libcurl.i686 tfc ti diff --git a/lgsm/data/almalinux-9.csv b/lgsm/data/almalinux-9.csv index 0e9ff15e2..64a9e0645 100644 --- a/lgsm/data/almalinux-9.csv +++ b/lgsm/data/almalinux-9.csv @@ -111,6 +111,7 @@ st,libxml2 stn sven terraria +tf tf2,libcurl.i686 tfc ti diff --git a/lgsm/data/centos-7.csv b/lgsm/data/centos-7.csv index 111bd9afa..a1b10095e 100644 --- a/lgsm/data/centos-7.csv +++ b/lgsm/data/centos-7.csv @@ -111,6 +111,7 @@ st,libxml2 stn sven terraria +tf tf2,libcurl.i686 tfc ti diff --git a/lgsm/data/centos-8.csv b/lgsm/data/centos-8.csv index 4142c3c82..561b3c134 100644 --- a/lgsm/data/centos-8.csv +++ b/lgsm/data/centos-8.csv @@ -111,6 +111,7 @@ st,libxml2 stn sven terraria +tf tf2,libcurl.i686 tfc ti diff --git a/lgsm/data/centos-9.csv b/lgsm/data/centos-9.csv index 0e9ff15e2..64a9e0645 100644 --- a/lgsm/data/centos-9.csv +++ b/lgsm/data/centos-9.csv @@ -111,6 +111,7 @@ st,libxml2 stn sven terraria +tf tf2,libcurl.i686 tfc ti diff --git a/lgsm/data/debian-10.csv b/lgsm/data/debian-10.csv index 0e9d67d03..c890739c5 100644 --- a/lgsm/data/debian-10.csv +++ b/lgsm/data/debian-10.csv @@ -111,6 +111,7 @@ st,libxml2-utils stn sven,libssl1.1:i386,zlib1g:i386 terraria +tf tf2,libcurl4-gnutls-dev:i386 tfc ti diff --git a/lgsm/data/debian-11.csv b/lgsm/data/debian-11.csv index 9a458349e..c265a1f4b 100644 --- a/lgsm/data/debian-11.csv +++ b/lgsm/data/debian-11.csv @@ -111,6 +111,7 @@ st,libxml2-utils stn sven,libssl1.1:i386,zlib1g:i386 terraria +tf tf2,libcurl4-gnutls-dev:i386 tfc ti diff --git a/lgsm/data/debian-12.csv b/lgsm/data/debian-12.csv index d0e56cf46..00351bde8 100644 --- a/lgsm/data/debian-12.csv +++ b/lgsm/data/debian-12.csv @@ -111,6 +111,7 @@ st,libxml2-utils stn sven,libssl3:i386,zlib1g:i386 terraria +tf tf2,libcurl4-gnutls-dev:i386 tfc ti diff --git a/lgsm/data/debian-9.csv b/lgsm/data/debian-9.csv index c8aceef1b..6fd3c21ee 100644 --- a/lgsm/data/debian-9.csv +++ b/lgsm/data/debian-9.csv @@ -111,6 +111,7 @@ st,libxml2-utils stn sven,libssl1.1:i386,zlib1g:i386 terraria +tf tf2,libcurl4-gnutls-dev:i386 tfc ti diff --git a/lgsm/data/gameicons/tf-icon.png b/lgsm/data/gameicons/tf-icon.png new file mode 100644 index 000000000..ace42ff5b Binary files /dev/null and b/lgsm/data/gameicons/tf-icon.png differ diff --git a/lgsm/data/rhel-7.csv b/lgsm/data/rhel-7.csv index 9125bd093..8a748cda7 100644 --- a/lgsm/data/rhel-7.csv +++ b/lgsm/data/rhel-7.csv @@ -111,6 +111,7 @@ st,libxml2 stn sven terraria +tf tf2,libcurl.i686 tfc ti diff --git a/lgsm/data/rhel-8.csv b/lgsm/data/rhel-8.csv index 4142c3c82..561b3c134 100644 --- a/lgsm/data/rhel-8.csv +++ b/lgsm/data/rhel-8.csv @@ -111,6 +111,7 @@ st,libxml2 stn sven terraria +tf tf2,libcurl.i686 tfc ti diff --git a/lgsm/data/rhel-9.csv b/lgsm/data/rhel-9.csv index 0e9ff15e2..64a9e0645 100644 --- a/lgsm/data/rhel-9.csv +++ b/lgsm/data/rhel-9.csv @@ -111,6 +111,7 @@ st,libxml2 stn sven terraria +tf tf2,libcurl.i686 tfc ti diff --git a/lgsm/data/rocky-8.csv b/lgsm/data/rocky-8.csv index 4142c3c82..561b3c134 100644 --- a/lgsm/data/rocky-8.csv +++ b/lgsm/data/rocky-8.csv @@ -111,6 +111,7 @@ st,libxml2 stn sven terraria +tf tf2,libcurl.i686 tfc ti diff --git a/lgsm/data/rocky-9.csv b/lgsm/data/rocky-9.csv index 0e9ff15e2..64a9e0645 100644 --- a/lgsm/data/rocky-9.csv +++ b/lgsm/data/rocky-9.csv @@ -111,6 +111,7 @@ st,libxml2 stn sven terraria +tf tf2,libcurl.i686 tfc ti diff --git a/lgsm/data/serverlist.csv b/lgsm/data/serverlist.csv index 094731373..1dd6dda2c 100644 --- a/lgsm/data/serverlist.csv +++ b/lgsm/data/serverlist.csv @@ -110,6 +110,7 @@ st,stserver,Stationeers,ubuntu-22.04 stn,stnserver,Survive the Nights,ubuntu-22.04 sven,svenserver,Sven Co-op,ubuntu-20.04 terraria,terrariaserver,Terraria,ubuntu-22.04 +tf,tfserver,The Front,ubuntu-22.04 tf2,tf2server,Team Fortress 2,ubuntu-22.04 tfc,tfcserver,Team Fortress Classic,ubuntu-22.04 ti,tiserver,The Isle,ubuntu-22.04 diff --git a/lgsm/data/ubuntu-16.04.csv b/lgsm/data/ubuntu-16.04.csv index 37fc3114b..e91bec26d 100644 --- a/lgsm/data/ubuntu-16.04.csv +++ b/lgsm/data/ubuntu-16.04.csv @@ -111,6 +111,7 @@ st,libxml2-utils stn sven,libssl1.1:i386,zlib1g:i386 terraria +tf tf2,libcurl4-gnutls-dev:i386 tfc ti diff --git a/lgsm/data/ubuntu-18.04.csv b/lgsm/data/ubuntu-18.04.csv index 0e9d67d03..c890739c5 100644 --- a/lgsm/data/ubuntu-18.04.csv +++ b/lgsm/data/ubuntu-18.04.csv @@ -111,6 +111,7 @@ st,libxml2-utils stn sven,libssl1.1:i386,zlib1g:i386 terraria +tf tf2,libcurl4-gnutls-dev:i386 tfc ti diff --git a/lgsm/data/ubuntu-20.04.csv b/lgsm/data/ubuntu-20.04.csv index 35d284786..e66eb7dc6 100644 --- a/lgsm/data/ubuntu-20.04.csv +++ b/lgsm/data/ubuntu-20.04.csv @@ -111,6 +111,7 @@ st,libxml2-utils stn sven,libssl1.1:i386,zlib1g:i386 terraria +tf tf2,libcurl4-gnutls-dev:i386 tfc ti diff --git a/lgsm/data/ubuntu-22.04.csv b/lgsm/data/ubuntu-22.04.csv index 1f57e9613..ffc637ab7 100644 --- a/lgsm/data/ubuntu-22.04.csv +++ b/lgsm/data/ubuntu-22.04.csv @@ -111,6 +111,7 @@ st,libxml2-utils stn sven,libssl1.1:i386,zlib1g:i386 terraria +tf tf2,libcurl4-gnutls-dev:i386 tfc ti diff --git a/lgsm/data/ubuntu-23.04.csv b/lgsm/data/ubuntu-23.04.csv index dbfe82f9e..65e17bf1b 100644 --- a/lgsm/data/ubuntu-23.04.csv +++ b/lgsm/data/ubuntu-23.04.csv @@ -111,6 +111,7 @@ st,libxml2-utils stn sven,libssl1.1:i386,zlib1g:i386 terraria +tf tf2,libcurl4-gnutls-dev:i386 tfc ti diff --git a/lgsm/data/ubuntu-23.10.csv b/lgsm/data/ubuntu-23.10.csv index dbfe82f9e..65e17bf1b 100644 --- a/lgsm/data/ubuntu-23.10.csv +++ b/lgsm/data/ubuntu-23.10.csv @@ -111,6 +111,7 @@ st,libxml2-utils stn sven,libssl1.1:i386,zlib1g:i386 terraria +tf tf2,libcurl4-gnutls-dev:i386 tfc ti diff --git a/lgsm/modules/command_dev_query_raw.sh b/lgsm/modules/command_dev_query_raw.sh index 50c07fd7b..2314d75b4 100644 --- a/lgsm/modules/command_dev_query_raw.sh +++ b/lgsm/modules/command_dev_query_raw.sh @@ -15,6 +15,16 @@ info_game.sh info_distro.sh info_messages.sh +echo -e "" +echo -e "${lightgreen}IP Addresses Variables${default}" +fn_messages_separator +echo -e "" +echo -e "IP: ${ip}" +echo -e "HTTP IP: ${httpip}" +echo -e "Public IP: ${publicip}" +echo -e "Telnet IP: ${telnetip}" +echo -e "Display IP: ${displayip}" + echo -e "" echo -e "${lightgreen}Query IP Addresses${default}" fn_messages_separator diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh index fd4598166..c75f1c239 100644 --- a/lgsm/modules/info_game.sh +++ b/lgsm/modules/info_game.sh @@ -681,6 +681,24 @@ fn_info_game_stn() { serverpassword="${serverpassword:-"NOT SET"}" } +# Config Type: parameters +# Parameters: true +# Comment: +# Example: -ServerName="SERVERNAME" +# Filetype: parameters +fn_info_game_tf() { + beaconport="${beaconport:-"0"}" + gamemode="${gamemode:-"NOT SET"}" + maxplayers="${maxplayers:-"0"}" + port="${port:-"0"}" + queryport="${queryport:-"0"}" + saveinterval="${saveinterval:-"0"}" + servername="${servername:-"NOT SET"}" + serverpassword="${serverpassword:-"NOT SET"}" + shutdownport="${shutdownport:-"0"}" + +} + # Config Type: ini # Parameters: true # Comment: ; or # @@ -2372,6 +2390,8 @@ elif [ "${shortname}" == "stn" ]; then fn_info_game_stn elif [ "${shortname}" == "terraria" ]; then fn_info_game_terraria +elif [ "${shortname}" == "tf" ]; then + fn_info_game_tf elif [ "${shortname}" == "ti" ]; then fn_info_game_ti elif [ "${shortname}" == "ts3" ]; then diff --git a/lgsm/modules/info_messages.sh b/lgsm/modules/info_messages.sh index 0e57690bf..0b928aa55 100644 --- a/lgsm/modules/info_messages.sh +++ b/lgsm/modules/info_messages.sh @@ -1542,6 +1542,16 @@ fn_info_messages_tu() { } | column -s $'\t' -t } +fn_info_messages_tf() { + { + fn_port "header" + fn_port "Game" port udp + fn_port "Query" queryport tcp + fn_port "Beacon" beaconport udp + fn_port "Shutdown" shutdownport tcp + } | column -s $'\t' -t +} + fn_info_messages_ut2k4() { { fn_port "header" @@ -1813,6 +1823,8 @@ fn_info_messages_select_engine() { fn_info_messages_stn elif [ "${shortname}" == "terraria" ]; then fn_info_messages_terraria + elif [ "${shortname}" == "tf" ]; then + fn_info_messages_tf elif [ "${shortname}" == "ti" ]; then fn_info_messages_ti elif [ "${shortname}" == "ts3" ]; then