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 0000000000..b605365fea --- /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 4142c3c82f..561b3c134c 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 0e9ff15e2f..64a9e06456 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 111bd9afa8..a1b10095e9 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 4142c3c82f..561b3c134c 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 0e9ff15e2f..64a9e06456 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 0e9d67d030..c890739c51 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 9a458349e9..c265a1f4b1 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 d0e56cf466..00351bde8d 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 c8aceef1b2..6fd3c21eec 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 0000000000..ace42ff5b9 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 9125bd0936..8a748cda70 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 4142c3c82f..561b3c134c 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 0e9ff15e2f..64a9e06456 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 4142c3c82f..561b3c134c 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 0e9ff15e2f..64a9e06456 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 094731373a..1dd6dda2cd 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 37fc3114b1..e91bec26d2 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 0e9d67d030..c890739c51 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 35d2847862..e66eb7dc62 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 1f57e9613a..ffc637ab73 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 dbfe82f9e2..65e17bf1be 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 dbfe82f9e2..65e17bf1be 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 50c07fd7b6..2314d75b4a 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 fd45981669..c75f1c2390 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 0e57690bff..0b928aa55e 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