diff --git a/.github/labeler.yml b/.github/labeler.yml index 3da0d47ee0..34ffd66f13 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -74,6 +74,8 @@ - "/(Barotrauma)/i" "game: Counter-Strike: Global Offensive": - "/(Counter-Strike: Global Offensive|CS:GO|csgo)/i" +"game: Counter-Strike 2": + - "/(Counter-Strike 2|CS2)/i" "game: Counter-Strike: Source": - "/(Counter-Strike: Source|CS:S)/i" "game: Counter-Strike 1.6": @@ -95,13 +97,13 @@ "game: Left 4 Dead 2": - "/(Left 4 Dead 2|L4D2)/i" "game: Minecraft": - - "/(minecraft)((?!bedrock).)*$/i" + - "/(Minecraft)((?!bedrock).)*$/i" "game: Minecraft Bedrock": - "/(Bedrock)/i" "game: Mumble": - "/(Mumble)/i" "game: Project Zomboid": - - "/(Project Zomboid)/i" + - "/(Project Zomboid|PZ)/i" "game: Quake 3": - "/(Quake 3|Q3A|q3)/i" "game: Rising World": diff --git a/.github/workflows/add-to-project.yml b/.github/workflows/add-to-project.yml index e429645bfe..0ddccb5729 100644 --- a/.github/workflows/add-to-project.yml +++ b/.github/workflows/add-to-project.yml @@ -7,6 +7,7 @@ on: jobs: add-to-project: + if: github.repository_owner == 'GameServerManagers' runs-on: ubuntu-latest steps: - name: Add to Project diff --git a/.github/workflows/details-check.yml b/.github/workflows/details-check.yml index ce9b459967..d940cfbc84 100644 --- a/.github/workflows/details-check.yml +++ b/.github/workflows/details-check.yml @@ -10,6 +10,7 @@ concurrency: jobs: create-matrix: + if: github.repository_owner == 'GameServerManagers' runs-on: ubuntu-latest outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} @@ -28,6 +29,7 @@ jobs: echo -n "matrix=${shortnamearray}" >> $GITHUB_OUTPUT details-check: + if: github.repository_owner == 'GameServerManagers' needs: create-matrix continue-on-error: true runs-on: ubuntu-latest diff --git a/.github/workflows/git-sync.yml b/.github/workflows/git-sync.yml index 42ddd42e56..2f223f3705 100644 --- a/.github/workflows/git-sync.yml +++ b/.github/workflows/git-sync.yml @@ -9,6 +9,7 @@ on: jobs: gitHub-to-bitbucket: + if: github.repository_owner == 'GameServerManagers' runs-on: ubuntu-latest steps: - name: SSH Agent diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index 24174fb229..b8bf630847 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -11,6 +11,7 @@ permissions: jobs: issue-labeler: + if: github.repository_owner == 'GameServerManagers' runs-on: ubuntu-latest steps: - name: Issue Labeler @@ -22,6 +23,7 @@ jobs: include-title: 1 is-sponsor-label: + if: github.repository_owner == 'GameServerManagers' runs-on: ubuntu-latest steps: - name: Is Sponsor Label diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml index a4fdbf547c..ce00b840b3 100644 --- a/.github/workflows/lock.yml +++ b/.github/workflows/lock.yml @@ -9,6 +9,7 @@ permissions: jobs: lock: + if: github.repository_owner == 'GameServerManagers' runs-on: ubuntu-latest steps: - name: Lock Threads diff --git a/.github/workflows/potential-duplicates.yml b/.github/workflows/potential-duplicates.yml index 3c7f4334c4..ea0ba23fdd 100644 --- a/.github/workflows/potential-duplicates.yml +++ b/.github/workflows/potential-duplicates.yml @@ -5,6 +5,7 @@ on: - opened jobs: potential-duplicates: + if: github.repository_owner == 'GameServerManagers' runs-on: ubuntu-latest steps: - name: Potential Duplicates diff --git a/.github/workflows/serverlist-validate.yml b/.github/workflows/serverlist-validate.yml index 931329571c..f4a95a039d 100644 --- a/.github/workflows/serverlist-validate.yml +++ b/.github/workflows/serverlist-validate.yml @@ -5,6 +5,7 @@ on: jobs: serverlist-validate: + if: github.repository_owner == 'GameServerManagers' runs-on: ubuntu-latest steps: - name: Checkout diff --git a/.github/workflows/trigger-docker-build.yml b/.github/workflows/trigger-docker-build.yml index 61ec91d397..ae66542de9 100644 --- a/.github/workflows/trigger-docker-build.yml +++ b/.github/workflows/trigger-docker-build.yml @@ -6,6 +6,7 @@ on: jobs: trigger_build_docker-linuxgsm: + if: github.repository_owner == 'GameServerManagers' name: Trigger Build Docker LinuxGSM runs-on: ubuntu-latest steps: @@ -18,6 +19,7 @@ jobs: workflow_file_name: docker-publish.yml trigger_build_docker-gameserver: + if: github.repository_owner == 'GameServerManagers' name: Trigger Build Docker GameServer needs: trigger_build_docker-linuxgsm runs-on: ubuntu-latest diff --git a/.github/workflows/update-check.yml b/.github/workflows/update-check.yml index dfbc7dd580..b93fb2c471 100644 --- a/.github/workflows/update-check.yml +++ b/.github/workflows/update-check.yml @@ -10,6 +10,7 @@ concurrency: jobs: update-check: + if: github.repository_owner == 'GameServerManagers' continue-on-error: true runs-on: ubuntu-latest diff --git a/.github/workflows/update-copyright-years-in-license-file.yml b/.github/workflows/update-copyright-years-in-license-file.yml index 2d6d3eeeb2..3301c9cb73 100644 --- a/.github/workflows/update-copyright-years-in-license-file.yml +++ b/.github/workflows/update-copyright-years-in-license-file.yml @@ -6,6 +6,7 @@ on: jobs: update-license-year: + if: github.repository_owner == 'GameServerManagers' runs-on: ubuntu-latest steps: - name: Checkout diff --git a/.github/workflows/version-check.yml b/.github/workflows/version-check.yml index a66eaca144..cfa7615bd7 100644 --- a/.github/workflows/version-check.yml +++ b/.github/workflows/version-check.yml @@ -7,6 +7,7 @@ permissions: jobs: version-Check: + if: github.repository_owner == 'GameServerManagers' runs-on: ubuntu-latest steps: - name: Checkout diff --git a/LICENSE.md b/LICENSE.md index 12352eafac..344a8fb489 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ # The MIT License (MIT) -Copyright (c) 2012-2023 Daniel Gibbs +Copyright (c) 2012-2024 Daniel Gibbs Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/lgsm/config-default/config-lgsm/cs2server/_default.cfg b/lgsm/config-default/config-lgsm/cs2server/_default.cfg index 4eca78e357..84679da015 100644 --- a/lgsm/config-default/config-lgsm/cs2server/_default.cfg +++ b/lgsm/config-default/config-lgsm/cs2server/_default.cfg @@ -10,41 +10,13 @@ ## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters # https://docs.linuxgsm.com/game-servers/counter-strike-2 -# [Game Modes] gametype gamemode gamemodeflags skirmishid mapgroup (you can mix these across all Game Modes except Danger Zone, but use only one) -# Arms Race 1 0 0 0 mg_armsrace -# Boom! Headshot! 1 2 0 6 mg_skirmish_headshots -# Classic Casual 0 0 0 0 mg_casualsigma, mg_casualdelta -# Classic Competitive (Default) 0 1 0 0 mg_active, mg_reserves, mg_hostage, mg_de_dust2, ... -# Classic Competitive (Short Match) 0 1 32 0 mg_active, mg_reserves, mg_hostage, mg_de_dust2, ... -# Danger Zone 6 0 0 0 mg_dz_blacksite (map: dz_blacksite), mg_dz_sirocco (map: dz_sirocco) -# Deathmatch (Default) 1 2 0 0 mg_deathmatch -# Deathmatch (Free For All) 1 2 32 0 mg_deathmatch -# Deathmatch (Team vs Team) 1 2 4 0 mg_deathmatch -# Demolition 1 1 0 0 mg_demolition -# Flying Scoutsman 0 0 0 3 mg_skirmish_flyingscoutsman -# Hunter-Gatherers 1 2 0 7 mg_skirmish_huntergatherers -# Retakes 0 0 0 12 mg_skirmish_retakes -# Stab Stab Zap 0 0 0 1 mg_skirmish_stabstabzap -# Trigger Discipline 0 0 0 4 mg_skirmish_triggerdiscipline -# Wingman 0 2 0 0 mg_de_prime, mg_de_blagai, mg_de_vertigo, mg_de_inferno, mg_de_overpass, mg_de_cbble, mg_de_train, mg_de_shortnuke, mg_de_shortdust, mg_de_lake -gametype="0" -gamemode="1" -gamemodeflags="0" -skirmishid="0" -mapgroup="mg_active" ip="0.0.0.0" port="27015" -defaultmap="de_dust2" maxplayers="16" -tickrate="64" - -## Game Server Login Token (GSLT): Required -# GSLT is required for running a public server. -# More info: https://docs.linuxgsm.com/steamcmd/gslt -gslt="" +wsapikey="" ## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters -startparameters="-dedicated -ip ${ip} -port ${port} -maxplayers ${maxplayers} -tickrate ${tickrate} -serverlogging +sv_setsteamaccount ${gslt} +map ${defaultmap} +game_type ${gametype} +game_mode ${gamemode} +sv_game_mode_flags ${gamemodeflags} +sv_skirmish_id ${skirmishid} +sv_logfile 1 +exec ${selfname}.cfg" +startparameters="-dedicated -ip ${ip} -port ${port} -maxplayers ${maxplayers} -authkey ${wsapikey} +exec ${selfname}.cfg" #### LinuxGSM Settings #### diff --git a/lgsm/config-default/config-lgsm/pwserver/_default.cfg b/lgsm/config-default/config-lgsm/pwserver/_default.cfg new file mode 100644 index 0000000000..dffa99a0a5 --- /dev/null +++ b/lgsm/config-default/config-lgsm/pwserver/_default.cfg @@ -0,0 +1,185 @@ +################################## +######## 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 +servername="LinuxGSM" + +# Use game server config file to edit, used for port check script (workaround) +port="8211" + +## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters +## Game Server Docs | https://tech.palworldgame.com/dedicated-server-guide#linux +startparameters="EpicApp=PalServer -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -servername='${servername}'" + +#### 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="1" + +## 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="2394010" +steamcmdforcewindows="no" +# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch +branch="" +betapassword="" +# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server +steammaster="false" + +## 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="1" +querytype="1" + +## Console type +consoleverbose="yes" +consoleinteract="no" + +## Game Server Details +# Do not edit +gamename="Palworld" +engine="unreal5" +glibc="2.17" + +#### Directories #### +# Edit with care + +## Game Server Directories +systemdir="${serverfiles}/Pal" +executabledir="${systemdir}/Engine/Binaries/Linux" +executable="./PalServer-Linux" +servercfgdir="${serverfiles}/Pal/Saved/Config/LinuxServer" +servercfg="PalWorldSettings.ini" +servercfgdefault="PalWorldSettings.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/config-default/config-lgsm/rustserver/_default.cfg b/lgsm/config-default/config-lgsm/rustserver/_default.cfg index 2652bc5970..071d9d0087 100644 --- a/lgsm/config-default/config-lgsm/rustserver/_default.cfg +++ b/lgsm/config-default/config-lgsm/rustserver/_default.cfg @@ -26,9 +26,10 @@ maxplayers="50" worldsize="3000" # default: 3000, range: 1000-6000, map size in meters. saveinterval="300" # Auto-save in seconds. tickrate="30" # default: 30, range: 15-100. +tags="" # values: monthly, biweekly, weekly, vanilla, hardcore, softcore, pve, roleplay, creative, minigame, training, battlefield, broyale, builds, NA, SA, EU, WA, EA, OC, AF ( Doc: https://wiki.facepunch.com/rust/server-browser-tags ) ## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters -startparameters="-batchmode +app.listenip ${ip} +app.port ${appport} +server.ip ${ip} +server.port ${port} +server.queryport ${queryport} +server.tickrate ${tickrate} +server.hostname \"${servername}\" +server.identity \"${selfname}\" +server.gamemode ${gamemode} +server.level \"${serverlevel}\" +server.seed ${seed} +server.salt ${salt} +server.maxplayers ${maxplayers} +server.worldsize ${worldsize} +server.saveinterval ${saveinterval} +rcon.web ${rconweb} +rcon.ip ${ip} +rcon.port ${rconport} +rcon.password \"${rconpassword}\" -logfile ${gamelog}" +startparameters="-batchmode +app.listenip ${ip} +app.port ${appport} +server.ip ${ip} +server.port ${port} +server.queryport ${queryport} +server.tickrate ${tickrate} +server.hostname \"${servername}\" +server.identity \"${selfname}\" +server.gamemode ${gamemode} +server.level \"${serverlevel}\" +server.seed ${seed} +server.salt ${salt} +server.maxplayers ${maxplayers} +server.worldsize ${worldsize} +server.saveinterval ${saveinterval} +rcon.web ${rconweb} +rcon.ip ${ip} +rcon.port ${rconport} +rcon.password \"${rconpassword}\" +server.tags ${tags} -logfile ${gamelog}" #### LinuxGSM Settings #### diff --git a/lgsm/data/almalinux-8.csv b/lgsm/data/almalinux-8.csv index dcfb145286..53021ec303 100644 --- a/lgsm/data/almalinux-8.csv +++ b/lgsm/data/almalinux-8.csv @@ -85,6 +85,7 @@ pmc,java-17-openjdk ps,GConf2 pvkii pvr,libcxx +pw pz,java-11-openjdk rng-tools q2 q3 diff --git a/lgsm/data/almalinux-9.csv b/lgsm/data/almalinux-9.csv index bcd93857b8..8f643487c6 100644 --- a/lgsm/data/almalinux-9.csv +++ b/lgsm/data/almalinux-9.csv @@ -85,6 +85,7 @@ pmc,java-17-openjdk ps,GConf2 pvkii pvr,libcxx +pw pz,java-11-openjdk rng-tools q2 q3 diff --git a/lgsm/data/centos-7.csv b/lgsm/data/centos-7.csv index 10500627ea..5315d8de0d 100644 --- a/lgsm/data/centos-7.csv +++ b/lgsm/data/centos-7.csv @@ -85,6 +85,7 @@ pmc,java-11-openjdk ps,GConf2 pvkii pvr,libcxx +pw pz,java-11-openjdk rng-tools q2 q3 diff --git a/lgsm/data/centos-8.csv b/lgsm/data/centos-8.csv index dcfb145286..53021ec303 100644 --- a/lgsm/data/centos-8.csv +++ b/lgsm/data/centos-8.csv @@ -85,6 +85,7 @@ pmc,java-17-openjdk ps,GConf2 pvkii pvr,libcxx +pw pz,java-11-openjdk rng-tools q2 q3 diff --git a/lgsm/data/centos-9.csv b/lgsm/data/centos-9.csv index bcd93857b8..8f643487c6 100644 --- a/lgsm/data/centos-9.csv +++ b/lgsm/data/centos-9.csv @@ -85,6 +85,7 @@ pmc,java-17-openjdk ps,GConf2 pvkii pvr,libcxx +pw pz,java-11-openjdk rng-tools q2 q3 diff --git a/lgsm/data/debian-10.csv b/lgsm/data/debian-10.csv index b2c646f9ff..a2d1ee6659 100644 --- a/lgsm/data/debian-10.csv +++ b/lgsm/data/debian-10.csv @@ -1,8 +1,7 @@ -all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc1,lib32stdc++6,netcat,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils -steamcmd,lib32gcc1,lib32stdc++6,libsdl2-2.0-0:i386,steamcmd ac ahl ahl2 +all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc1,lib32stdc++6,netcat,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils ark arma3 armar,libcurl4 @@ -85,6 +84,7 @@ pmc,openjdk-11-jre ps,libgconf-2-4 pvkii pvr,libc++1 +pw pz,openjdk-11-jre,rng-tools q2 q3 @@ -108,6 +108,7 @@ sof2 sol squad st,libxml2-utils +steamcmd,lib32gcc1,lib32stdc++6,libsdl2-2.0-0:i386,steamcmd stn sven,libssl1.1:i386,zlib1g:i386 terraria diff --git a/lgsm/data/debian-11.csv b/lgsm/data/debian-11.csv index 70f0a3fbe4..bdf03879ee 100644 --- a/lgsm/data/debian-11.csv +++ b/lgsm/data/debian-11.csv @@ -85,6 +85,7 @@ pmc,openjdk-17-jre ps,libgconf-2-4 pvkii pvr,libc++1 +pw pz,openjdk-17-jre,rng-tools q2 q3 diff --git a/lgsm/data/debian-12.csv b/lgsm/data/debian-12.csv index e3466158d0..cc884a6f8a 100644 --- a/lgsm/data/debian-12.csv +++ b/lgsm/data/debian-12.csv @@ -85,6 +85,7 @@ pmc,openjdk-17-jre ps,libgconf-2-4 pvkii pvr,libc++1 +pw pz,openjdk-17-jre,rng-tools5 q2 q3 diff --git a/lgsm/data/debian-9.csv b/lgsm/data/debian-9.csv index 303bd51dcf..ccefafcc2a 100644 --- a/lgsm/data/debian-9.csv +++ b/lgsm/data/debian-9.csv @@ -85,6 +85,7 @@ pmc,openjdk-8-jre ps,libgconf-2-4 pvkii pvr,libc++1 +pw pz,openjdk-8-jre,rng-tools q2 q3 diff --git a/lgsm/data/gameicons/pw-icon.png b/lgsm/data/gameicons/pw-icon.png new file mode 100644 index 0000000000..1772c3bd92 Binary files /dev/null and b/lgsm/data/gameicons/pw-icon.png differ diff --git a/lgsm/data/rhel-7.csv b/lgsm/data/rhel-7.csv index f0a068399d..14cc292ac3 100644 --- a/lgsm/data/rhel-7.csv +++ b/lgsm/data/rhel-7.csv @@ -9,6 +9,7 @@ armar,libcurl,openssl11-libs ats av bb +pw bb2,libcurl.i686 bd bf1942,ncurses-libs.i686 diff --git a/lgsm/data/rhel-8.csv b/lgsm/data/rhel-8.csv index dcfb145286..53021ec303 100644 --- a/lgsm/data/rhel-8.csv +++ b/lgsm/data/rhel-8.csv @@ -85,6 +85,7 @@ pmc,java-17-openjdk ps,GConf2 pvkii pvr,libcxx +pw pz,java-11-openjdk rng-tools q2 q3 diff --git a/lgsm/data/rhel-9.csv b/lgsm/data/rhel-9.csv index bcd93857b8..8f643487c6 100644 --- a/lgsm/data/rhel-9.csv +++ b/lgsm/data/rhel-9.csv @@ -85,6 +85,7 @@ pmc,java-17-openjdk ps,GConf2 pvkii pvr,libcxx +pw pz,java-11-openjdk rng-tools q2 q3 diff --git a/lgsm/data/rocky-8.csv b/lgsm/data/rocky-8.csv index dcfb145286..53021ec303 100644 --- a/lgsm/data/rocky-8.csv +++ b/lgsm/data/rocky-8.csv @@ -85,6 +85,7 @@ pmc,java-17-openjdk ps,GConf2 pvkii pvr,libcxx +pw pz,java-11-openjdk rng-tools q2 q3 diff --git a/lgsm/data/rocky-9.csv b/lgsm/data/rocky-9.csv index bcd93857b8..8f643487c6 100644 --- a/lgsm/data/rocky-9.csv +++ b/lgsm/data/rocky-9.csv @@ -85,6 +85,7 @@ pmc,java-17-openjdk ps,GConf2 pvkii pvr,libcxx +pw pz,java-11-openjdk rng-tools q2 q3 diff --git a/lgsm/data/serverlist.csv b/lgsm/data/serverlist.csv index 16c1e812ff..841dcbf429 100644 --- a/lgsm/data/serverlist.csv +++ b/lgsm/data/serverlist.csv @@ -84,6 +84,7 @@ pmc,pmcserver,PaperMC,ubuntu-22.04 ps,psserver,Post Scriptum,ubuntu-22.04 pvkii,pvkiiserver,Pirates Vikings & Knights II,ubuntu-22.04 pvr,pvrserver,Pavlov VR,ubuntu-22.04 +pw,pwserver,Palworld,ubuntu-22.04 pz,pzserver,Project Zomboid,ubuntu-22.04 q2,q2server,Quake 2,ubuntu-22.04 q3,q3server,Quake 3: Arena,ubuntu-22.04 diff --git a/lgsm/data/ubuntu-16.04.csv b/lgsm/data/ubuntu-16.04.csv index c8e10e48e2..e50ea48c0f 100644 --- a/lgsm/data/ubuntu-16.04.csv +++ b/lgsm/data/ubuntu-16.04.csv @@ -9,6 +9,7 @@ armar,libcurl4 ats av bb +pw bb2,libcurl4-gnutls-dev:i386 bd bf1942,libncurses5:i386,libtinfo5:i386 diff --git a/lgsm/data/ubuntu-18.04.csv b/lgsm/data/ubuntu-18.04.csv index b2c646f9ff..5294e67571 100644 --- a/lgsm/data/ubuntu-18.04.csv +++ b/lgsm/data/ubuntu-18.04.csv @@ -8,6 +8,7 @@ arma3 armar,libcurl4 ats av +pw bb bb2,libcurl4-gnutls-dev:i386 bd diff --git a/lgsm/data/ubuntu-20.04.csv b/lgsm/data/ubuntu-20.04.csv index 853b98f33d..f864b0d0a6 100644 --- a/lgsm/data/ubuntu-20.04.csv +++ b/lgsm/data/ubuntu-20.04.csv @@ -85,6 +85,7 @@ pmc,openjdk-17-jre ps,libgconf-2-4 pvkii pvr,libc++1 +pw pz,openjdk-17-jre,rng-tools q2 q3 diff --git a/lgsm/data/ubuntu-22.04.csv b/lgsm/data/ubuntu-22.04.csv index d42afde49c..c010ac60a6 100644 --- a/lgsm/data/ubuntu-22.04.csv +++ b/lgsm/data/ubuntu-22.04.csv @@ -85,6 +85,7 @@ pmc,openjdk-17-jre ps,libgconf-2-4 pvkii pvr,libc++1 +pw pz,openjdk-17-jre,rng-tools5 q2 q3 diff --git a/lgsm/data/ubuntu-23.04.csv b/lgsm/data/ubuntu-23.04.csv index ac4f05945c..1a52e301ec 100644 --- a/lgsm/data/ubuntu-23.04.csv +++ b/lgsm/data/ubuntu-23.04.csv @@ -85,6 +85,7 @@ pmc,openjdk-17-jre ps,libgconf-2-4 pvkii pvr,libc++1 +pw pz,openjdk-17-jre,rng-tools5 q2 q3 diff --git a/lgsm/data/ubuntu-23.10.csv b/lgsm/data/ubuntu-23.10.csv index ac4f05945c..1a52e301ec 100644 --- a/lgsm/data/ubuntu-23.10.csv +++ b/lgsm/data/ubuntu-23.10.csv @@ -85,6 +85,7 @@ pmc,openjdk-17-jre ps,libgconf-2-4 pvkii pvr,libc++1 +pw pz,openjdk-17-jre,rng-tools5 q2 q3 diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh index 5a0543b9cb..b557986f95 100644 --- a/lgsm/modules/core_modules.sh +++ b/lgsm/modules/core_modules.sh @@ -8,7 +8,7 @@ moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")" -modulesversion="v23.7.1" +modulesversion="v24.1.0" # Core diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh index 4189496786..f456fb0bfd 100644 --- a/lgsm/modules/info_game.sh +++ b/lgsm/modules/info_game.sh @@ -613,6 +613,18 @@ fn_info_game_pvr() { servername="${servername:-"NOT SET"}" } +# Config Type: ini +# Parameters: false +# Comment: ; or # +# Example: ServerName=SERVERNAME +# Filetype: cfg +fn_info_game_pw() { + servername="${servername:-"NOT SET"}" + port="${port:-"0"}" + steamport="27015" + unknownport="1985" +} + # Config Type: ini # Parameters: true # Comment: ; or # @@ -1159,14 +1171,12 @@ fn_info_game_col() { fn_info_game_cs2() { if [ -f "${servercfgfullpath}" ]; then fn_info_game_valve_keyvalues "servername" "hostname" - fi - # Steamport can be between 26901-26910 and is normally automatically set. - # Some servers might support -steamport parameter to set - if [ "${steamport}" == "0" ] || [ -v "${steamport}" ]; then - steamport="$(echo "${ssinfo}" | grep "${srcdslinuxpid}" | awk '{print $5}' | grep ":269" | cut -d ":" -f2)" + fn_info_game_valve_keyvalues "defaultmap" "map" + fn_info_game_valve_keyvalues "password" "sv_password" fi defaultmap="${defaultmap:-"NOT SET"}" maxplayers="${maxplayers:-"0"}" + password="${password:-"NOT SET"}" port="${port:-"0"}" queryport="${port:-"0"}" servername="${servername:-"NOT SET"}" @@ -2359,6 +2369,8 @@ elif [ "${shortname}" == "ps" ]; then fn_info_game_ps elif [ "${shortname}" == "pvr" ]; then fn_info_game_pvr +elif [ "${shortname}" == "pw" ]; then + fn_info_game_pw elif [ "${shortname}" == "pz" ]; then fn_info_game_pz elif [ "${shortname}" == "q2" ]; then diff --git a/lgsm/modules/info_messages.sh b/lgsm/modules/info_messages.sh index 1e3bfad4b3..f619c964ed 100644 --- a/lgsm/modules/info_messages.sh +++ b/lgsm/modules/info_messages.sh @@ -674,7 +674,7 @@ fn_info_messages_ports_edit() { fi done # engines/games that require editing the start parameters. - local ports_edit_array=("av" "ck" "col" "cs2" "fctr" "goldsrc" "hcu" "hw" "iw3.0" "ioquake3" "qfusion" "rust" "scpsl" "scpslsm" "sf" "sol" "spark" "source" "unreal4" "arma3" "dayz" "unt" "vh") + local ports_edit_array=("av" "ck" "col" "cs2" "fctr" "goldsrc" "hcu" "hw" "iw3.0" "ioquake3" "pw" "qfusion" "rust" "scpsl" "scpslsm" "sf" "sol" "spark" "source" "unreal4" "arma3" "dayz" "unt" "vh") for port_edit in "${ports_edit_array[@]}"; do if [ "${engine}" == "${port_edit}" ] || [ "${gamename}" == "${port_edit}" ] || [ "${shortname}" == "${port_edit}" ]; then startparameterslocation="${configdirserver}" @@ -1269,6 +1269,15 @@ fn_info_messages_pvr() { } | column -s $'\t' -t } +fn_info_messages_pw() { + { + fn_port "header" + fn_port "Game" port udp + fn_port "Steam" steamport udp + fn_port "Unknown" unknownport tcp + } | column -s $'\t' -t +} + fn_info_messages_pz() { { fn_port "header" @@ -1798,6 +1807,8 @@ fn_info_messages_select_engine() { fn_info_messages_ps elif [ "${shortname}" == "pvr" ]; then fn_info_messages_pvr + elif [ "${shortname}" == "pw" ]; then + fn_info_messages_pw elif [ "${shortname}" == "pz" ]; then fn_info_messages_pz elif [ "${shortname}" == "q2" ]; then diff --git a/lgsm/modules/install_config.sh b/lgsm/modules/install_config.sh index a163243dc7..a5a049913a 100644 --- a/lgsm/modules/install_config.sh +++ b/lgsm/modules/install_config.sh @@ -604,6 +604,12 @@ elif [ "${shortname}" == "pvkii" ]; then fn_default_config_remote fn_set_config_vars fn_list_config_locations +elif [ "${shortname}" == "pw" ]; then + array_configs+=(PalWorldSettings.ini) + fn_fetch_default_config + fn_default_config_remote + fn_set_config_vars + fn_list_config_locations elif [ "${shortname}" == "pz" ]; then fn_check_cfgdir array_configs+=(server.ini) diff --git a/lgsm/modules/mods_list.sh b/lgsm/modules/mods_list.sh index 95ab63d993..bd6eaff24b 100644 --- a/lgsm/modules/mods_list.sh +++ b/lgsm/modules/mods_list.sh @@ -97,7 +97,7 @@ oxiderustlatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos oxidehurtworldlatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/OxideMod/Oxide.Hurtworld/releases/latest | jq -r '.assets[].browser_download_url') oxidesdtdlatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/OxideMod/Oxide.SevenDaysToDie/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("linux")) | .browser_download_url') # Valheim Plus -valeimpluslatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/valheimPlus/ValheimPlus/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("UnixServer.tar.gz")) | .browser_download_url') +valheimpluslatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/Grantapher/ValheimPlus/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("UnixServer.tar.gz")) | .browser_download_url') # Valheim BepInEx bepinexvhlatestlink=$(curl --connect-timeout 10 -sL "https://valheim.thunderstore.io/api/experimental/package/denikson/BepInExPack_Valheim/" -H "accept: application/json" | jq -r '.latest.download_url') @@ -200,7 +200,7 @@ mod_info_hwoxide=(MOD "hwoxide" "Oxide for Hurtworld" "${oxidehurtworldlatestlin mod_info_sdtdoxide=(MOD "sdtdoxide" "Oxide for 7 Days To Die" "${oxidesdtdlatestlink}" "Oxide.SevenDaysToDie.zip" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "7 Days To Die;" "NOTGAMES" "https://umod.org/games/7-days-to-die" "Allows for the use of plugins") # ValheimPlus -mod_info_valheimplus=(MOD "valheimplus" "Valheim PLUS" "${valeimpluslatestlink}" "ValheimPlus.tar.gz" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Valheim;" "NOTGAMES" "https://github.com/Grantapher/ValheimPlus.git" "Mod to improve Valheim gameplay") +mod_info_valheimplus=(MOD "valheimplus" "Valheim PLUS" "${valheimpluslatestlink}" "ValheimPlus.tar.gz" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Valheim;" "NOTGAMES" "https://github.com/Grantapher/ValheimPlus.git" "Mod to improve Valheim gameplay") # BepInEx Valheim mod_info_bepinexvh=(MOD "bepinexvh" "BepInEx Valheim" "${bepinexvhlatestlink}" "denikson-BepInExPack_Valheim.zip" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Valheim;" "NOTGAMES" "https://valheim.thunderstore.io/package/denikson/BepInExPack_Valheim/" "Unity / XNA game patcher and plugin framework") diff --git a/lgsm/modules/query_gsquery.py b/lgsm/modules/query_gsquery.py index 9fbb6a2541..8da93ada4e 100644 --- a/lgsm/modules/query_gsquery.py +++ b/lgsm/modules/query_gsquery.py @@ -10,13 +10,13 @@ import socket import sys -engine_types=('protocol-valve','protocol-quake3','protocol-quake3','protocol-gamespy1','protocol-unreal2','ut3','minecraft','minecraftbe','jc2mp','mumbleping','soldat','teeworlds') +engine_types=('protocol-valve','protocol-quake2','protocol-quake3','protocol-gamespy1','protocol-unreal2','ut3','minecraft','minecraftbe','jc2mp','mumbleping','soldat','teeworlds') class gsquery: server_response_timeout = 2 default_buffer_length = 1024 sourcequery=('protocol-valve','avalanche3.0','barotrauma','madness','quakelive','realvirtuality','refractor','source','goldsrc','spark','starbound','unity3d','unreal4','wurm') - idtech2query=('protocol-quake3','idtech2','quake','iw2.0') + idtech2query=('protocol-quake2','idtech2','quake','iw2.0') idtech3query=('protocol-quake3','iw3.0','ioquake3','qfusion') minecraftquery=('minecraft','lwjgl2') minecraftbequery=('minecraftbe',) diff --git a/linuxgsm.sh b/linuxgsm.sh index e3286d4f22..5cffc1fcb5 100755 --- a/linuxgsm.sh +++ b/linuxgsm.sh @@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then set -x fi -version="v23.7.1" +version="v24.1.0" shortname="core" gameservername="core" commandname="CORE"