diff --git a/lgsm/config-default/config-lgsm/rsdwserver/_default.cfg b/lgsm/config-default/config-lgsm/rsdwserver/_default.cfg new file mode 100644 index 0000000000..d9ad58b4d9 --- /dev/null +++ b/lgsm/config-default/config-lgsm/rsdwserver/_default.cfg @@ -0,0 +1,198 @@ +################################## +######## 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 +# Most server settings (servername, passwords, owner id, world name) are read +# by the server from DedicatedServer.ini, NOT command-line arguments. +# Edit them in: serverfiles/RSDragonwilds/Saved/Config/LinuxServer/DedicatedServer.ini +servername="LinuxGSM" +port="7777" + +## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters +## Game Server Docs | https://dragonwilds.runescape.wiki/w/Dedicated_Servers +startparameters="-Port=${port} -log" + +#### 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" + +# ntfy Alerts | https://docs.linuxgsm.com/alerts/ntfy +ntfyalert="off" +ntfytopic="LinuxGSM" +ntfyserver="https://ntfy.sh" +ntfytoken="" +ntfyusername="" +ntfypassword="" +ntfypriority="" +ntfytags="" + +# 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 all". +telegramapi="api.telegram.org" +telegramalert="off" +telegramtoken="accesstoken" +telegramchatid="" +telegramthreadid="" +telegramsilentnotification="false" +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="4019830" +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="" + +## Console type +consoleverbose="yes" +consoleinteract="no" + +## Game Server Details +# Do not edit +gamename="RuneScape: Dragonwilds" +engine="unreal5" +glibc="2.17" + +#### Directories #### +# Edit with care + +## Game Server Directories +systemdir="${serverfiles}/RSDragonwilds" +executabledir="${systemdir}/Binaries/Linux" +executable="./RSDragonwildsServer-Linux-Shipping" +servercfgdir="${systemdir}/Saved/Config/LinuxServer" +servercfg="DedicatedServer.ini" +servercfgdefault="DedicatedServer.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/serverlist.csv b/lgsm/data/serverlist.csv index 3ddc013c31..ca3dd46720 100644 --- a/lgsm/data/serverlist.csv +++ b/lgsm/data/serverlist.csv @@ -94,6 +94,7 @@ ql,qlserver,Quake Live,ubuntu-24.04 qw,qwserver,Quake World,ubuntu-24.04 ricochet,ricochetserver,Ricochet,ubuntu-24.04 ro,roserver,Red Orchestra: Ostfront 41-45,ubuntu-24.04 +rsdw,rsdwserver,RuneScape: Dragonwilds,ubuntu-24.04 rtcw,rtcwserver,Return to Castle Wolfenstein,ubuntu-24.04 rust,rustserver,Rust,ubuntu-24.04 rw,rwserver,Rising World,ubuntu-24.04 diff --git a/lgsm/modules/check_system_requirements.sh b/lgsm/modules/check_system_requirements.sh index f34190fecf..69897bb1d6 100755 --- a/lgsm/modules/check_system_requirements.sh +++ b/lgsm/modules/check_system_requirements.sh @@ -45,6 +45,8 @@ elif [ "${shortname}" == "pvr" ]; then ramrequirementgb="1" elif [ "${shortname}" == "pz" ]; then ramrequirementgb="3" +elif [ "${shortname}" == "rsdw" ]; then + ramrequirementgb="2" elif [ "${shortname}" == "rust" ]; then ramrequirementgb="9" elif [ "${shortname}" == "sdtd" ]; then diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh index d39e2d143d..af40574d21 100755 --- a/lgsm/modules/info_game.sh +++ b/lgsm/modules/info_game.sh @@ -1799,6 +1799,28 @@ fn_info_game_ro() { unreal2queryport="$((port + 1))" # Unreal2 Query Port } +# Config Type: ini +# Parameters: true +# Comment: ; or # +# Example: ServerName=SERVERNAME +# Filetype: ini +fn_info_game_rsdw() { + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_ini "adminpassword" "AdminPassword" + fn_info_game_ini "ownerid" "OwnerId" + fn_info_game_ini "servername" "ServerName" + fn_info_game_ini "serverpassword" "WorldPassword" + fn_info_game_ini "worldname" "DefaultWorldName" + fi + adminpassword="${adminpassword:-"NOT SET"}" + ownerid="${ownerid:-"NOT SET"}" + port="${port:-"0"}" + queryport="${port:-"0"}" + servername="${servername:-"NOT SET"}" + serverpassword="${serverpassword:-"NOT SET"}" + worldname="${worldname:-"NOT SET"}" +} + # Config Type: QuakeC # Comment: // or /* */ # Example: set sv_hostname "SERVERNAME" @@ -2427,6 +2449,8 @@ elif [ "${shortname}" == "qw" ]; then fn_info_game_qw elif [ "${shortname}" == "ro" ]; then fn_info_game_ro +elif [ "${shortname}" == "rsdw" ]; then + fn_info_game_rsdw elif [ "${shortname}" == "rtcw" ]; then fn_info_game_rtcw elif [ "${shortname}" == "rust" ]; then diff --git a/lgsm/modules/info_messages.sh b/lgsm/modules/info_messages.sh index 1ef9508303..8940bfa21c 100755 --- a/lgsm/modules/info_messages.sh +++ b/lgsm/modules/info_messages.sh @@ -719,7 +719,7 @@ fn_info_messages_ports_edit() { startparameterslocation="${red}UNKNOWN${default}" # engines/games that require editing in the config file. - local ports_edit_array=("ac" "arma3" "armar" "bo" "bt" "ct" "dst" "eco" "idtech2" "idtech3" "idtech3_ql" "jc2" "jc3" "lwjgl2" "mcb" "nec" "pc" "pc2" "prism3d" "pz" "qw" "refractor" "renderware" "rw" "sb" "sdtd" "st" "stn" "ts3" "tw" "terraria" "unreal" "unreal2" "unreal3" "vints" "xnt" "wurm") + local ports_edit_array=("ac" "arma3" "armar" "bo" "bt" "ct" "dst" "eco" "idtech2" "idtech3" "idtech3_ql" "jc2" "jc3" "lwjgl2" "mcb" "nec" "pc" "pc2" "prism3d" "pz" "qw" "refractor" "renderware" "rsdw" "rw" "sb" "sdtd" "st" "stn" "ts3" "tw" "terraria" "unreal" "unreal2" "unreal3" "vints" "xnt" "wurm") for port_edit in "${ports_edit_array[@]}"; do if [ "${shortname}" == "ut3" ]; then startparameterslocation="${servercfgdir}/UTWeb.ini" @@ -1412,6 +1412,20 @@ fn_info_messages_ro() { } | column -s $'\t' -t } +fn_info_messages_rsdw() { + { + fn_port "header" + fn_port "Game" port udp + } | column -s $'\t' -t + echo -e "" + echo -e "${bold}${lightgreen}${gamename} Game Settings${default}" + fn_messages_separator + { + echo -e "${lightblue}World name:\t${default}${worldname}" + echo -e "${lightblue}Owner ID:\t${default}${ownerid}" + } | column -s $'\t' -t +} + fn_info_messages_rtcw() { { fn_port "header" @@ -1914,6 +1928,8 @@ fn_info_messages_select_engine() { fn_info_messages_qw elif [ "${shortname}" == "ro" ]; then fn_info_messages_ro + elif [ "${shortname}" == "rsdw" ]; then + fn_info_messages_rsdw elif [ "${shortname}" == "rtcw" ]; then fn_info_messages_rtcw elif [ "${shortname}" == "samp" ]; then