From b53a031dcb9173e675222e0ff653b02100c30417 Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 15:56:37 -0400 Subject: [PATCH 01/17] adds A:SA egg --- README.md | 1 + .../ark_survival_ascended/README.md | 23 +++ .../egg-ark--survival-ascended.json | 132 ++++++++++++++++++ 3 files changed, 156 insertions(+) create mode 100644 game_eggs/steamcmd_servers/ark_survival_ascended/README.md create mode 100644 game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json diff --git a/README.md b/README.md index 2992711c..f6816ec8 100644 --- a/README.md +++ b/README.md @@ -237,6 +237,7 @@ If you are reading this it looks like you are looking to add an egg to your serv [SteamCMD Servers](game_eggs/steamcmd_servers) These eggs use SteamCMD to install * [7 Days to Die](game_eggs/steamcmd_servers/7_days_to_die) +* [ARK: Survival Ascneded](game_eggs/steamcmd_servers/ark_survival_ascended) * [ARK: Survival Evolved](game_eggs/steamcmd_servers/ark_survival_evolved) * [Arma](game_eggs/steamcmd_servers/arma) * [Arma 3](game_eggs/steamcmd_servers/arma/arma3) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/README.md b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md new file mode 100644 index 00000000..936742fa --- /dev/null +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md @@ -0,0 +1,23 @@ +# Ark: Survival Ascended + +Steam Description : +ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits! + +## Recommended server settings + +### Minimum RAM + +This server requires about 8-10GB of RAM to run with no players on a default map. + +See the following - + +## Server Ports + +Note: RCON is currently not docuemnted as of 10/28/2023 + +| Port | Default | +| --------------- | ------- | +| Game | 7777 | +| Raw UDP | 7778 | +| Query | 27015 | +| RCON (optional) | 27020 | diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json new file mode 100644 index 00000000..2036f8ad --- /dev/null +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -0,0 +1,132 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-10-28T14:43:36-04:00", + "name": "Ark: Survival Ascended", + "author": "blood@darkartsgaming.com", + "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" + }, + "file_denylist": [], + "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}{{ARGS_PARAMS}}\"$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAG}} & ARK_PID=$! ; tail -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"tail: .\/ShooterGame\/Saved\/Logs\/ShooterGame.log: file truncated\"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\n\r\nmkdir -p \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## create a symbolic link for loading mods\r\ncd \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\nln -sf ..\/..\/..\/..\/..\/Steam\/steamapps steamapps\r\n\r\n## cleanup movies?\r\nmkdir -p \/mnt\/server\/ShooterGame\/Content\r\nrm -rf Movies\r\n\r\n## touch log file\r\nmkdir -p \/mnt\/server\/ShooterGame\/Saved\/Logs\r\necho \"--fresh install--\" >> \/mnt\/server\/ShooterGame\/Saved\/Logs\/ShooterGame.log\r\n\r\ncd \/mnt\/server", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Server Map", + "description": "Available Maps: TheIsland_WP", + "env_variable": "SERVER_MAP", + "default_value": "TheIsland_WP", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Server Name", + "description": "\"Unofficial\" dedicated server name", + "env_variable": "SESSION_NAME", + "default_value": "A Pterodactyl Hosted Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:128", + "field_type": "text" + }, + { + "name": "Auto-update server", + "description": "This is to enable auto-updating for servers.\r\n\r\nDefault is 1. Set to 1 to update", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Battle Eye", + "description": "Enable BattleEye\r\n\r\n0 to disable\r\n1 to enable\r\n\r\ndefault=\"1\"", + "env_variable": "BATTLE_EYE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "App ID", + "description": "ARK steam app id for auto updates. Leave blank to avoid auto update.", + "env_variable": "SRCDS_APPID", + "default_value": "2430930", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|numeric", + "field_type": "text" + }, + { + "name": "Additional Arguments (PARAMS)", + "description": "params (?ServerPassword=...) and flags (-UseBattleEye) are supported here but params need to be first and touching followed by flags without them touching. (i.e): ?ServerPassword=MyP4SsWoRd?ServerAdminPassword=sUpRp4ssW0rd -UseBattleEye -cossplay", + "env_variable": "ARGS_PARAMS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "Specifies the maximum amount of players able to join the server.", + "env_variable": "MAX_PLAYERS", + "default_value": "70", + "user_viewable": true, + "user_editable": true, + "rules": "numeric", + "field_type": "text" + }, + { + "name": "Server Admin Password", + "description": "", + "env_variable": "ARK_ADMIN_PASSWORD", + "default_value": "changeme", + "user_viewable": true, + "user_editable": true, + "rules": "required|alpha_dash|max:32", + "field_type": "text" + }, + { + "name": "Query Port", + "description": "ARK query port used by steam server browser and ark client server browser.", + "env_variable": "QUERY_PORT", + "default_value": "27015", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Additional Arguments (FLAGS)", + "description": "params (?ServerPassword=...) and flags (-UseBattleEye) are supported here but params need to be first and touching followed by flags without them touching. (i.e): ?ServerPassword=MyP4SsWoRd?ServerAdminPassword=sUpRp4ssW0rd -UseBattleEye -cossplay", + "env_variable": "ARGS_FLAGS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + } + ] +} \ No newline at end of file From 51152f9e082c88de0d44cb9bbe025730d0458261 Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 16:03:23 -0400 Subject: [PATCH 02/17] spelling --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f6816ec8..588262d6 100644 --- a/README.md +++ b/README.md @@ -237,7 +237,7 @@ If you are reading this it looks like you are looking to add an egg to your serv [SteamCMD Servers](game_eggs/steamcmd_servers) These eggs use SteamCMD to install * [7 Days to Die](game_eggs/steamcmd_servers/7_days_to_die) -* [ARK: Survival Ascneded](game_eggs/steamcmd_servers/ark_survival_ascended) +* [ARK: Survival Ascended](game_eggs/steamcmd_servers/ark_survival_ascended) * [ARK: Survival Evolved](game_eggs/steamcmd_servers/ark_survival_evolved) * [Arma](game_eggs/steamcmd_servers/arma) * [Arma 3](game_eggs/steamcmd_servers/arma/arma3) From aa8ddd68bf1a84b94a20f6af25be6ac8868054f1 Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 16:08:35 -0400 Subject: [PATCH 03/17] adds steam_disc_space as feature --- .../ark_survival_ascended/egg-ark--survival-ascended.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 2036f8ad..63ac31f0 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -8,7 +8,9 @@ "name": "Ark: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", - "features": null, + "features": [ + "steam_disk_space" + ], "docker_images": { "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, From 0e256a6ae98a074b794cad467c6dbfed54466d02 Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 16:30:34 -0400 Subject: [PATCH 04/17] fixes FLAGS not being added --- .../ark_survival_ascended/egg-ark--survival-ascended.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 63ac31f0..fd496469 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, "file_denylist": [], - "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}{{ARGS_PARAMS}}\"$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAG}} & ARK_PID=$! ; tail -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log", + "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}{{ARGS_PARAMS}}\"$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log", "config": { "files": "{}", "startup": "{\r\n \"done\": \"tail: .\/ShooterGame\/Saved\/Logs\/ShooterGame.log: file truncated\"\r\n}", From c6ac2d49d2e6d6d240f3997c5b0bfc5b8a2b50e1 Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 17:49:18 -0400 Subject: [PATCH 05/17] - properly remove Movies in script - fixes names - adds links to additional README(s) - adds ServerPVE toggle - adds ServerPassword - adds sleep 15s for log files to allow for more accurate console logging - adds troubleshooting help to README --- game_eggs/README.md | 1 + game_eggs/steamcmd_servers/README.md | 3 +- .../ark_survival_ascended/README.md | 9 ++++-- .../egg-ark--survival-ascended.json | 30 +++++++++++++++---- 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/game_eggs/README.md b/game_eggs/README.md index f504c1db..84824ac7 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -130,6 +130,7 @@ [SteamCMD Servers](steamcmd_servers) These eggs use SteamCMD to install * [7 Days to Die](steamcmd_servers/7_days_to_die) +* [ARK: Survival Ascended](steamcmd_servers/ark_survival_ascended) * [ARK: Survival Evolved](steamcmd_servers/ark_survival_evolved) * [Arma](steamcmd_servers/arma) * [Arma 3](steamcmd_servers/arma/arma3) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index 20a1ec08..6dd2034a 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -6,8 +6,9 @@ This is a collection of servers that use SteamCMD to install. [7 Days To Die](7_days_to_die) -## ARK: Survival Evolved +## ARK: Survival Ascended/Evolved +[ARK: Survival Ascended](ark_survival_asceneded) [ARK: Survival Evolved](ark_survival_evolved) ## Arma diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/README.md b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md index 936742fa..7ff69472 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/README.md +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md @@ -1,8 +1,13 @@ -# Ark: Survival Ascended +# ARK: Survival Ascended Steam Description : ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits! +## Troubleshooting + +Due to using `tail -F ...` to follow the current server log, we are unable to also detect crashing (server stopping). This is obvious when the CPU hits 0% and RAM is around 5MB. However, more details are available in the `ShooterGame/Saved/Crashes/UECC-Windows-*/CrashContext.runtime-xml` + + ## Recommended server settings ### Minimum RAM @@ -13,7 +18,7 @@ See the following - ## Server Ports -Note: RCON is currently not docuemnted as of 10/28/2023 +Note: RCON is currently not documented as of 10/28/2023 | Port | Default | | --------------- | ------- | diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index fd496469..f487ff83 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,8 +4,8 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-28T14:43:36-04:00", - "name": "Ark: Survival Ascended", + "exported_at": "2023-10-28T17:45:10-04:00", + "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", "features": [ @@ -15,16 +15,16 @@ "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, "file_denylist": [], - "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}{{ARGS_PARAMS}}\"$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log", + "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )$( [ -z \"$SERVER_PASSWORD\" ] || printf %s '?ServerPassword={{SERVER_PASSWORD}}' ){{ARGS_PARAMS}}\"$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; sleep 15 ; tail -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log", "config": { "files": "{}", - "startup": "{\r\n \"done\": \"tail: .\/ShooterGame\/Saved\/Logs\/ShooterGame.log: file truncated\"\r\n}", + "startup": "{\r\n \"done\": \"]Full Startup: \"\r\n}", "logs": "{}", "stop": "^^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\n\r\nmkdir -p \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## create a symbolic link for loading mods\r\ncd \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\nln -sf ..\/..\/..\/..\/..\/Steam\/steamapps steamapps\r\n\r\n## cleanup movies?\r\nmkdir -p \/mnt\/server\/ShooterGame\/Content\r\nrm -rf Movies\r\n\r\n## touch log file\r\nmkdir -p \/mnt\/server\/ShooterGame\/Saved\/Logs\r\necho \"--fresh install--\" >> \/mnt\/server\/ShooterGame\/Saved\/Logs\/ShooterGame.log\r\n\r\ncd \/mnt\/server", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\n\r\nmkdir -p \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## create a symbolic link for loading mods\r\ncd \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\nln -sf ..\/..\/..\/..\/..\/Steam\/steamapps steamapps\r\n\r\n## cleanup movies?\r\nrm -rf \/mnt\/server\/ShooterGame\/Content\/Movies\r\n\r\n## touch log file\r\nmkdir -p \/mnt\/server\/ShooterGame\/Saved\/Logs\r\necho \"--fresh install--\" >> \/mnt\/server\/ShooterGame\/Saved\/Logs\/ShooterGame.log\r\n\r\ncd \/mnt\/server", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -129,6 +129,26 @@ "user_editable": true, "rules": "nullable|string", "field_type": "text" + }, + { + "name": "Server PvE", + "description": "player vs environment. default is player-vs-player", + "env_variable": "SERVER_PVE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Server Password", + "description": "required password to enter the server, leave blank for public server", + "env_variable": "SERVER_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" } ] } \ No newline at end of file From 4466587549fb4c0fbd66aacc9a759d938872bb9b Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 18:42:00 -0400 Subject: [PATCH 06/17] word phrasing in variable descriptions --- .../ark_survival_ascended/egg-ark--survival-ascended.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index f487ff83..ddcf70e5 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -52,7 +52,7 @@ }, { "name": "Auto-update server", - "description": "This is to enable auto-updating for servers.\r\n\r\nDefault is 1. Set to 1 to update", + "description": "This is to enable auto-updating for servers.\r\n\r\nDefault is 1. Set to 0 to disable automatic updates", "env_variable": "AUTO_UPDATE", "default_value": "1", "user_viewable": true, @@ -82,7 +82,7 @@ }, { "name": "Additional Arguments (PARAMS)", - "description": "params (?ServerPassword=...) and flags (-UseBattleEye) are supported here but params need to be first and touching followed by flags without them touching. (i.e): ?ServerPassword=MyP4SsWoRd?ServerAdminPassword=sUpRp4ssW0rd -UseBattleEye -cossplay", + "description": "params (?ServerPassword=...) and flags (-UseBattleEye) are supported here but params need to be first and touching followed by flags without them touching. (i.e): ?ServerPassword=MyP4SsWoRd?ServerAdminPassword=sUpRp4ssW0rd -crossplay -mods=1234,1235,1236", "env_variable": "ARGS_PARAMS", "default_value": "", "user_viewable": true, @@ -122,7 +122,7 @@ }, { "name": "Additional Arguments (FLAGS)", - "description": "params (?ServerPassword=...) and flags (-UseBattleEye) are supported here but params need to be first and touching followed by flags without them touching. (i.e): ?ServerPassword=MyP4SsWoRd?ServerAdminPassword=sUpRp4ssW0rd -UseBattleEye -cossplay", + "description": "params (?ServerPassword=...) and flags (-UseBattleEye) are supported here but params need to be first and touching followed by flags without them touching. (i.e): ?ServerPassword=MyP4SsWoRd?ServerAdminPassword=sUpRp4ssW0rd -crossplay -mods=1234,1235,1236", "env_variable": "ARGS_FLAGS", "default_value": "", "user_viewable": true, @@ -132,7 +132,7 @@ }, { "name": "Server PvE", - "description": "player vs environment. default is player-vs-player", + "description": "Player-vs-Environment (PvE) or Player-vs-Player (PvP); default is PvE enabled; disabling will enable PvP", "env_variable": "SERVER_PVE", "default_value": "1", "user_viewable": true, From dbcd8b29c55542cd8f782323e87aac12aa4f91ec Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 18:59:03 -0400 Subject: [PATCH 07/17] final revision of argument descriptions --- .../ark_survival_ascended/egg-ark--survival-ascended.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index ddcf70e5..d2b062eb 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -82,7 +82,7 @@ }, { "name": "Additional Arguments (PARAMS)", - "description": "params (?ServerPassword=...) and flags (-UseBattleEye) are supported here but params need to be first and touching followed by flags without them touching. (i.e): ?ServerPassword=MyP4SsWoRd?ServerAdminPassword=sUpRp4ssW0rd -crossplay -mods=1234,1235,1236", + "description": "params (?ServerPassword=...) are supported here but params need to be touching. (i.e): ?ServerPassword=MyP4SsWoRd?ServerAdminPassword=sUpRp4ssW0rd", "env_variable": "ARGS_PARAMS", "default_value": "", "user_viewable": true, @@ -122,7 +122,7 @@ }, { "name": "Additional Arguments (FLAGS)", - "description": "params (?ServerPassword=...) and flags (-UseBattleEye) are supported here but params need to be first and touching followed by flags without them touching. (i.e): ?ServerPassword=MyP4SsWoRd?ServerAdminPassword=sUpRp4ssW0rd -crossplay -mods=1234,1235,1236", + "description": "flags (-UseBattleEye) are supported here without them touching. (i.e): -crossplay -mods=1234,1235,1236", "env_variable": "ARGS_FLAGS", "default_value": "", "user_viewable": true, From 2b17140975afdd9cc569fe763563ec1ce79bb7ae Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 19:08:49 -0400 Subject: [PATCH 08/17] remove appid user_edit permissions --- .../ark_survival_ascended/egg-ark--survival-ascended.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index d2b062eb..9b79060d 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -76,7 +76,7 @@ "env_variable": "SRCDS_APPID", "default_value": "2430930", "user_viewable": true, - "user_editable": true, + "user_editable": false, "rules": "nullable|numeric", "field_type": "text" }, From 80ba8baaf91cec0fc01d138b349e48427d2e543f Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 20:24:45 -0400 Subject: [PATCH 09/17] fixes ServerPassword issue --- .../ark_survival_ascended/egg-ark--survival-ascended.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 9b79060d..1839bd87 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-28T17:45:10-04:00", + "exported_at": "2023-10-28T20:23:14-04:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, "file_denylist": [], - "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )$( [ -z \"$SERVER_PASSWORD\" ] || printf %s '?ServerPassword={{SERVER_PASSWORD}}' ){{ARGS_PARAMS}}\"$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; sleep 15 ; tail -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log", + "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword={{SERVER_PASSWORD}}{{ARGS_PARAMS}}\"$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID", "config": { "files": "{}", "startup": "{\r\n \"done\": \"]Full Startup: \"\r\n}", From 3f71864ca9e7e1560c41eb915f287f116fc65a6e Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 23:44:39 -0400 Subject: [PATCH 10/17] fixes MaxPlayers - thanks to @Log1x --- .../ark_survival_ascended/egg-ark--survival-ascended.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 1839bd87..3551715b 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-28T20:23:14-04:00", + "exported_at": "2023-10-28T23:41:51-04:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -15,9 +15,9 @@ "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, "file_denylist": [], - "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword={{SERVER_PASSWORD}}{{ARGS_PARAMS}}\"$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID", + "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword={{SERVER_PASSWORD}}{{ARGS_PARAMS}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}}$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID", "config": { - "files": "{}", + "files": "{\r\n \"ShooterGame\/Saved\/Config\/WindowsServer\/GameUserSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"]Full Startup: \"\r\n}", "logs": "{}", "stop": "^^C" From 37105e3885d81ebccc5a39c62d1be9ba1f69a400 Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sun, 29 Oct 2023 12:01:51 -0400 Subject: [PATCH 11/17] rcon & better logging - added rcon variable - added rcon saveworld on exit - added rcon in-browser console support - added better logging for more details - updated install script to use latest steamcmd install ( @gOOvER ) Major thanks to @Log1x for a ton of troubleshooting, feedback, and suggestions! --- .../ark_survival_ascended/README.md | 6 ++--- .../egg-ark--survival-ascended.json | 24 +++++++++++++------ 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/README.md b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md index 7ff69472..fbc634b0 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/README.md +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md @@ -5,7 +5,7 @@ ARK is reimagined from the ground-up into the next-generation of video game tech ## Troubleshooting -Due to using `tail -F ...` to follow the current server log, we are unable to also detect crashing (server stopping). This is obvious when the CPU hits 0% and RAM is around 5MB. However, more details are available in the `ShooterGame/Saved/Crashes/UECC-Windows-*/CrashContext.runtime-xml` +Crash logs are available in the Files `ShooterGame/Saved/Crashes/UECC-Windows-*/CrashContext.runtime-xml` ## Recommended server settings @@ -18,11 +18,11 @@ See the following - ## Server Ports -Note: RCON is currently not documented as of 10/28/2023 +Note: RCON doesn't need to be public but is required for console commands (in ptero) | Port | Default | | --------------- | ------- | | Game | 7777 | | Raw UDP | 7778 | | Query | 27015 | -| RCON (optional) | 27020 | +| RCON | 27020 | diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 3551715b..28d4d3bc 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-28T23:41:51-04:00", + "exported_at": "2023-10-29T11:56:31-04:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, "file_denylist": [], - "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword={{SERVER_PASSWORD}}{{ARGS_PARAMS}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}}$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID", + "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} SaveWorld && rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword={{SERVER_PASSWORD}}{{ARGS_PARAMS}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}} -oldconsole -servergamelog$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID & until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done", "config": { "files": "{\r\n \"ShooterGame\/Saved\/Config\/WindowsServer\/GameUserSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"]Full Startup: \"\r\n}", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\n\r\nmkdir -p \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## create a symbolic link for loading mods\r\ncd \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\nln -sf ..\/..\/..\/..\/..\/Steam\/steamapps steamapps\r\n\r\n## cleanup movies?\r\nrm -rf \/mnt\/server\/ShooterGame\/Content\/Movies\r\n\r\n## touch log file\r\nmkdir -p \/mnt\/server\/ShooterGame\/Saved\/Logs\r\necho \"--fresh install--\" >> \/mnt\/server\/ShooterGame\/Saved\/Logs\/ShooterGame.log\r\n\r\ncd \/mnt\/server", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## add below your custom commands if needed\r\n## cleanup movies?\r\nrm -rf \/mnt\/server\/ShooterGame\/Content\/Movies\r\n\r\n## touch log file\r\nmkdir -p \/mnt\/server\/ShooterGame\/Saved\/Logs\r\necho \"--fresh install--\" >> \/mnt\/server\/ShooterGame\/Saved\/Logs\/ShooterGame.log\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -97,7 +97,7 @@ "default_value": "70", "user_viewable": true, "user_editable": true, - "rules": "numeric", + "rules": "required|numeric", "field_type": "text" }, { @@ -107,7 +107,7 @@ "default_value": "changeme", "user_viewable": true, "user_editable": true, - "rules": "required|alpha_dash|max:32", + "rules": "required|alpha_dash", "field_type": "text" }, { @@ -117,7 +117,7 @@ "default_value": "27015", "user_viewable": true, "user_editable": true, - "rules": "required|numeric", + "rules": "required|numeric|max:65535", "field_type": "text" }, { @@ -132,7 +132,7 @@ }, { "name": "Server PvE", - "description": "Player-vs-Environment (PvE) or Player-vs-Player (PvP); default is PvE enabled; disabling will enable PvP", + "description": "Player-vs-Environment (PvE) or Player-vs-Player (PvP); default is (1) PvE enabled; disabling (0) will enable PvP", "env_variable": "SERVER_PVE", "default_value": "1", "user_viewable": true, @@ -149,6 +149,16 @@ "user_editable": true, "rules": "nullable|string", "field_type": "text" + }, + { + "name": "RCON Port", + "description": "required for console commands and proper server shutdown (saveworld\/exit), doesn't have to be open to the public", + "env_variable": "RCON_PORT", + "default_value": "37015", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|max:65535", + "field_type": "text" } ] } \ No newline at end of file From e9a0c1e556940139e740ac259db1dfc1ad6d2d2a Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sun, 29 Oct 2023 12:20:09 -0400 Subject: [PATCH 12/17] gracefully shutdown server --- .../ark_survival_ascended/egg-ark--survival-ascended.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 28d4d3bc..28c74ff9 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-29T11:56:31-04:00", + "exported_at": "2023-10-29T12:19:41-04:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -20,7 +20,7 @@ "files": "{\r\n \"ShooterGame\/Saved\/Config\/WindowsServer\/GameUserSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"]Full Startup: \"\r\n}", "logs": "{}", - "stop": "^^C" + "stop": "^C" }, "scripts": { "installation": { From 5fa40b4cc39f9ea0b83fdd881ad56201adf0f72f Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sun, 29 Oct 2023 14:19:57 -0400 Subject: [PATCH 13/17] MODs & Remove Duplicate SaveWorld on Exit - adds MOD_IDS as a variable ( thanks @IxPrumxI ) - removes SaveWorld on exit since DoExit also does a SaveWorld --- .../egg-ark--survival-ascended.json | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 28c74ff9..9772a11b 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-29T12:19:41-04:00", + "exported_at": "2023-10-29T14:17:11-04:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, "file_denylist": [], - "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} SaveWorld && rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword={{SERVER_PASSWORD}}{{ARGS_PARAMS}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}} -oldconsole -servergamelog$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID & until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done", + "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword={{SERVER_PASSWORD}}{{ARGS_PARAMS}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}} -oldconsole -servergamelog$( [ -z \"$MOD_IDS\" ] || printf %s ' -mods=' $MOD_IDS )$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID & until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done", "config": { "files": "{\r\n \"ShooterGame\/Saved\/Config\/WindowsServer\/GameUserSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"]Full Startup: \"\r\n}", @@ -159,6 +159,16 @@ "user_editable": true, "rules": "required|numeric|max:65535", "field_type": "text" + }, + { + "name": "MOD IDs", + "description": "https:\/\/www.curseforge.com\/ark-survival-ascended ; ProjectID is is the MOD_ID on the right-side of the mod-view page ; leave blank to disable mods ; separate only by comma ( , ) without spaces! (i.e.) 1234,1235,1236", + "env_variable": "MOD_IDS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" } ] } \ No newline at end of file From eacb24563c4b14c1389dbc5762ad8418d9e544f6 Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sun, 29 Oct 2023 22:31:30 -0400 Subject: [PATCH 14/17] server name and rcon fixes - quoting passwords helped fix some issues ( thanks @IxPrumxI ) - migrated ServerAdminPassword to end of params - changed value to be more accurate for when server is running - removed server map max length - removed server name max length (cant guarnatee anything here) - set server password requirements, if set, to prevent crashing (and ultimatly corrupting installs) - added fix for existing servers that may be corrupted by an outdated egg (in regards to ? in ServerAdminPasswords=) --- .../egg-ark--survival-ascended.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 9772a11b..6dabbcc0 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-29T14:17:11-04:00", + "exported_at": "2023-10-29T22:24:13-04:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -15,10 +15,10 @@ "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, "file_denylist": [], - "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword={{SERVER_PASSWORD}}{{ARGS_PARAMS}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}} -oldconsole -servergamelog$( [ -z \"$MOD_IDS\" ] || printf %s ' -mods=' $MOD_IDS )$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID & until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done", + "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe {{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName=\"{{SESSION_NAME}}\"?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword=\"{{SERVER_PASSWORD}}\"{{ARGS_PARAMS}}?ServerAdminPassword=\"{{ARK_ADMIN_PASSWORD}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}} -oldconsole -servergamelog$( [ -z \"$MOD_IDS\" ] || printf %s ' -mods=' $MOD_IDS )$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID & until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done", "config": { - "files": "{\r\n \"ShooterGame\/Saved\/Config\/WindowsServer\/GameUserSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"]Full Startup: \"\r\n}", + "files": "{\r\n \"ShooterGame\/Saved\/Config\/WindowsServer\/GameUserSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\",\r\n \"ServerAdminPassword=\": \"ServerAdminPassword={{server.build.env.ARK_ADMIN_PASSWORD}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Waiting commands for 127.0.0.1:\"\r\n}", "logs": "{}", "stop": "^C" }, @@ -37,7 +37,7 @@ "default_value": "TheIsland_WP", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20", + "rules": "required|string", "field_type": "text" }, { @@ -47,7 +47,7 @@ "default_value": "A Pterodactyl Hosted Server", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:128", + "rules": "required|string", "field_type": "text" }, { @@ -147,7 +147,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string", + "rules": "nullable|alpha_dash", "field_type": "text" }, { From 679c670dd57c381b574c68f90a08a3483e3d0d4f Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Mon, 30 Oct 2023 16:47:52 +0100 Subject: [PATCH 15/17] Cleanup --- .../egg-ark--survival-ascended.json | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 6dabbcc0..11a8c1f2 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-29T22:24:13-04:00", + "exported_at": "2023-10-30T16:46:57+01:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -12,7 +12,7 @@ "steam_disk_space" ], "docker_images": { - "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" + "Proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, "file_denylist": [], "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe {{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName=\"{{SESSION_NAME}}\"?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword=\"{{SERVER_PASSWORD}}\"{{ARGS_PARAMS}}?ServerAdminPassword=\"{{ARK_ADMIN_PASSWORD}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}} -oldconsole -servergamelog$( [ -z \"$MOD_IDS\" ] || printf %s ' -mods=' $MOD_IDS )$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID & until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done", @@ -47,12 +47,12 @@ "default_value": "A Pterodactyl Hosted Server", "user_viewable": true, "user_editable": true, - "rules": "required|string", + "rules": "required|string|max:256", "field_type": "text" }, { - "name": "Auto-update server", - "description": "This is to enable auto-updating for servers.\r\n\r\nDefault is 1. Set to 0 to disable automatic updates", + "name": "Auto Update", + "description": "Auto update the servers on startup.", "env_variable": "AUTO_UPDATE", "default_value": "1", "user_viewable": true, @@ -62,7 +62,7 @@ }, { "name": "Battle Eye", - "description": "Enable BattleEye\r\n\r\n0 to disable\r\n1 to enable\r\n\r\ndefault=\"1\"", + "description": "Enable BattleEye\r\n\r\nOFF = disable\r\nON = enable\r\n\r\ndefault=\"ON\"", "env_variable": "BATTLE_EYE", "default_value": "1", "user_viewable": true, @@ -72,12 +72,12 @@ }, { "name": "App ID", - "description": "ARK steam app id for auto updates. Leave blank to avoid auto update.", + "description": "ARK steam app id for auto updates.", "env_variable": "SRCDS_APPID", "default_value": "2430930", - "user_viewable": true, + "user_viewable": false, "user_editable": false, - "rules": "nullable|numeric", + "rules": "nullable|numeric|in:2430930", "field_type": "text" }, { @@ -87,7 +87,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string", + "rules": "nullable|string|max:256", "field_type": "text" }, { @@ -97,17 +97,17 @@ "default_value": "70", "user_viewable": true, "user_editable": true, - "rules": "required|numeric", + "rules": "required|numeric|between:1,200", "field_type": "text" }, { "name": "Server Admin Password", "description": "", "env_variable": "ARK_ADMIN_PASSWORD", - "default_value": "changeme", + "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|alpha_dash", + "rules": "required|alpha_dash|min:8|max:64", "field_type": "text" }, { @@ -116,7 +116,7 @@ "env_variable": "QUERY_PORT", "default_value": "27015", "user_viewable": true, - "user_editable": true, + "user_editable": false, "rules": "required|numeric|max:65535", "field_type": "text" }, @@ -127,12 +127,12 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string", + "rules": "nullable|string|max:256", "field_type": "text" }, { "name": "Server PvE", - "description": "Player-vs-Environment (PvE) or Player-vs-Player (PvP); default is (1) PvE enabled; disabling (0) will enable PvP", + "description": "ON = Player-vs-Environment (PvE) OFF = Player-vs-Player-vs-Environment (PvPvE); By default is on.", "env_variable": "SERVER_PVE", "default_value": "1", "user_viewable": true, @@ -147,7 +147,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|alpha_dash", + "rules": "nullable|alpha_dash|max:256", "field_type": "text" }, { @@ -156,8 +156,8 @@ "env_variable": "RCON_PORT", "default_value": "37015", "user_viewable": true, - "user_editable": true, - "rules": "required|numeric|max:65535", + "user_editable": false, + "rules": "required|numeric|between:1024,65535", "field_type": "text" }, { @@ -167,7 +167,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string", + "rules": "nullable|string|max:256", "field_type": "text" } ] From bcfd7d36dc06aaa497af4853eb8f8e7b8aa390f2 Mon Sep 17 00:00:00 2001 From: Derrick A Date: Mon, 30 Oct 2023 12:51:30 -0400 Subject: [PATCH 16/17] variable rules/descriptions and readme(s) updated --- game_eggs/steamcmd_servers/README.md | 5 ++- .../ark_survival_ascended/README.md | 2 +- .../egg-ark--survival-ascended.json | 38 +++++++++---------- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index 6dd2034a..31db3d1f 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -6,9 +6,12 @@ This is a collection of servers that use SteamCMD to install. [7 Days To Die](7_days_to_die) -## ARK: Survival Ascended/Evolved +## ARK: Survival Ascended [ARK: Survival Ascended](ark_survival_asceneded) + +## ARK: Survival Evolved + [ARK: Survival Evolved](ark_survival_evolved) ## Arma diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/README.md b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md index fbc634b0..a0afcc77 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/README.md +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md @@ -25,4 +25,4 @@ Note: RCON doesn't need to be public but is required for console commands (in pt | Game | 7777 | | Raw UDP | 7778 | | Query | 27015 | -| RCON | 27020 | +| RCON | 37015 | diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 11a8c1f2..75f340bc 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-30T16:46:57+01:00", + "exported_at": "2023-10-30T12:50:45-04:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -37,7 +37,7 @@ "default_value": "TheIsland_WP", "user_viewable": true, "user_editable": true, - "rules": "required|string", + "rules": "required|string|max:64", "field_type": "text" }, { @@ -51,8 +51,8 @@ "field_type": "text" }, { - "name": "Auto Update", - "description": "Auto update the servers on startup.", + "name": "Auto-update server", + "description": "This is to enable auto-updating for servers on restart\/re-install.", "env_variable": "AUTO_UPDATE", "default_value": "1", "user_viewable": true, @@ -62,7 +62,7 @@ }, { "name": "Battle Eye", - "description": "Enable BattleEye\r\n\r\nOFF = disable\r\nON = enable\r\n\r\ndefault=\"ON\"", + "description": "Enable BattleEye \/ Anti-Cheat", "env_variable": "BATTLE_EYE", "default_value": "1", "user_viewable": true, @@ -72,12 +72,12 @@ }, { "name": "App ID", - "description": "ARK steam app id for auto updates.", + "description": "app id required for server download\/updates. end users should not see this.", "env_variable": "SRCDS_APPID", "default_value": "2430930", "user_viewable": false, "user_editable": false, - "rules": "nullable|numeric|in:2430930", + "rules": "required|integer|in:2430930", "field_type": "text" }, { @@ -87,7 +87,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:256", + "rules": "nullable|string|max:1024", "field_type": "text" }, { @@ -97,17 +97,17 @@ "default_value": "70", "user_viewable": true, "user_editable": true, - "rules": "required|numeric|between:1,200", + "rules": "required|integer|min:1|max:200", "field_type": "text" }, { "name": "Server Admin Password", - "description": "", + "description": "Used for RCON (remote and in-browser console) as well as in-game EnableCheats", "env_variable": "ARK_ADMIN_PASSWORD", "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|alpha_dash|min:8|max:64", + "rules": "required|alpha_dash|max:128", "field_type": "text" }, { @@ -116,8 +116,8 @@ "env_variable": "QUERY_PORT", "default_value": "27015", "user_viewable": true, - "user_editable": false, - "rules": "required|numeric|max:65535", + "user_editable": true, + "rules": "required|integer|min:1025|max:65535", "field_type": "text" }, { @@ -127,12 +127,12 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:256", + "rules": "nullable|string|max:1024", "field_type": "text" }, { "name": "Server PvE", - "description": "ON = Player-vs-Environment (PvE) OFF = Player-vs-Player-vs-Environment (PvPvE); By default is on.", + "description": "ON = Player-vs-Environment (PvE), OFF = Player-vs-Player (PvP); Default is ON", "env_variable": "SERVER_PVE", "default_value": "1", "user_viewable": true, @@ -147,7 +147,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|alpha_dash|max:256", + "rules": "nullable|alpha_dash|max:128", "field_type": "text" }, { @@ -156,8 +156,8 @@ "env_variable": "RCON_PORT", "default_value": "37015", "user_viewable": true, - "user_editable": false, - "rules": "required|numeric|between:1024,65535", + "user_editable": true, + "rules": "required|integer|min:1025|max:65535", "field_type": "text" }, { @@ -167,7 +167,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:256", + "rules": "nullable|string|max:512", "field_type": "text" } ] From ed7b6a3400c270e64aef674125e834558f17b6e6 Mon Sep 17 00:00:00 2001 From: Derrick A Date: Mon, 30 Oct 2023 14:12:17 -0400 Subject: [PATCH 17/17] remove port editable rules for end-users --- .../ark_survival_ascended/egg-ark--survival-ascended.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 75f340bc..fa37bebc 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-30T12:50:45-04:00", + "exported_at": "2023-10-30T13:56:57-04:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -116,7 +116,7 @@ "env_variable": "QUERY_PORT", "default_value": "27015", "user_viewable": true, - "user_editable": true, + "user_editable": false, "rules": "required|integer|min:1025|max:65535", "field_type": "text" }, @@ -156,7 +156,7 @@ "env_variable": "RCON_PORT", "default_value": "37015", "user_viewable": true, - "user_editable": true, + "user_editable": false, "rules": "required|integer|min:1025|max:65535", "field_type": "text" },