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/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/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/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-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/info_game.sh b/lgsm/modules/info_game.sh index 200e5fdadd..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 # @@ -2357,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)