From 2b279014f335d17d944d3f8bdb728a5d35529001 Mon Sep 17 00:00:00 2001 From: Attackwave Date: Fri, 13 Jan 2023 12:49:38 +0100 Subject: [PATCH 01/14] Core Keeper --- .../steamcmd_servers/core_keeper/README.md | 26 +++ .../core_keeper/egg-core-keeper.json | 162 ++++++++++++++++++ 2 files changed, 188 insertions(+) create mode 100644 game_eggs/steamcmd_servers/core_keeper/README.md create mode 100644 game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json diff --git a/game_eggs/steamcmd_servers/core_keeper/README.md b/game_eggs/steamcmd_servers/core_keeper/README.md new file mode 100644 index 00000000..3ca75455 --- /dev/null +++ b/game_eggs/steamcmd_servers/core_keeper/README.md @@ -0,0 +1,26 @@ +# Core Keeper + +## Game Info + +[Core Keeper] (https://store.steampowered.com/app/1621690/Core_Keeper/)is a sandbox survival game. + +Explore an endless cavern of creatures, relics and resources in a mining sandbox adventure for 1-8 players. Mine, build, fight, craft and farm to unravel the mystery of the ancient Core. + +## Dedicated Server + +[Steam DB] (https://steamdb.info/app/1963720/info/) + +## Parameters + +| Parameter | default | Description | +|---------|--------------------------|---------------------------------------------------| +| World Index | 0 | Which world index to use. Default: 0. | +| World Name | Core Keeper Server | The name to use for the server. Defaul: Core Keeper Server. | +| World Seed | 0 | The seed to use for a new world. Set to 0 to generate random seed. Default: 0. | +| Game ID | EMPTY | Game ID to use for the server. Needs to be at least 28 characters and alphanumeric, excluding Y,y,x,0,O. Empty or not valid means a new ID will be generated at start. Default: EMPTY. | +| Game Path | Dedicated Server | Save file location. Defaul: DedicatedServer. | +| Max Players | 100 | Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100, | +| World Mode | 0 | Whether to use normal (0) or hard (1) mode for world. Default: 0. | +| Auto Update | 1 | Enable automatic updates on boot: Default: true | + + diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json new file mode 100644 index 00000000..e127346a --- /dev/null +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -0,0 +1,162 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-01-13T12:30:55+01:00", + "name": "Core Keeper", + "author": "karsten@fiedleronline.net", + "description": "Core Keeper is a survival sandbox game.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---\r\n\r\nInfo: Query port ist server port + 1.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest" + }, + "file_denylist": [], + "startup": "DISPLAY=:0; rm .\/GameID.txt CoreKeeperServerLog.txt; touch CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} -gameid \"{{GAME_ID}}\" -datapath \"{{DATA_PATH}}\" -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Started server process with pid\"\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 '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\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq wget;\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\r\n\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 1007 ${INSTALL_FLAGS} validate +quit\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", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "World Index", + "description": "Which world index to use. Default: 0.", + "env_variable": "WORLD_INDEX", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:0", + "field_type": "text" + }, + { + "name": "World Name", + "description": "The name to use for the server. Defaul: Core Keeper Server.", + "env_variable": "WORLD_NAME", + "default_value": "Core Keeper Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:100|min:3", + "field_type": "text" + }, + { + "name": "World Seed", + "description": "The seed to use for a new world. Set to 0 to generate random seed. Default: 0.", + "env_variable": "WORLD_SEED", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:0", + "field_type": "text" + }, + { + "name": "Game ID", + "description": "Game ID to use for the server. Needs to be at least 28 characters and alphanumeric, excluding Y,y,x,0,O. Empty or not valid means a new ID will be generated at start. Default: EMPTY.", + "env_variable": "GAME_ID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|min:28", + "field_type": "text" + }, + { + "name": "Data Path", + "description": "Save file location. Defaul: DedicatedServer.", + "env_variable": "DATA_PATH", + "default_value": "DedicatedServer", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:100", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100,", + "env_variable": "MAX_PLAYERS", + "default_value": "100", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:1|max:100", + "field_type": "text" + }, + { + "name": "World Mode", + "description": "Whether to use normal (0) or hard (1) mode for world. Default: 0.", + "env_variable": "WORLD_MODE", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:0|max:1", + "field_type": "text" + }, + { + "name": "Steam App ID", + "description": "Steam App ID of Core Keeper Dedicated Server. Found here: https:\/\/steamdb.info\/search\/?a=app&q=core+keeper&type=5&category=0", + "env_variable": "SRCDS_APPID", + "default_value": "1963720", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer|min:1", + "field_type": "text" + }, + { + "name": "Auto Update", + "description": "Enable automatic updates on boot: Default: true", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "XVFB", + "description": "Enable virtual framebuffer. Fix: 1", + "env_variable": "XVFB", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "DISPLAY_WIDTH", + "description": "Virtual display width. Fix:1.", + "env_variable": "DISPLAY_WIDTH", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "DISPLAY_HEIGHT", + "description": "Virtual display height. Fix:1.", + "env_variable": "DISPLAY_HEIGHT", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "DISPLAY_DEPTH", + "description": "Virtual display color depth. Fix: 1.", + "env_variable": "DISPLAY_DEPTH", + "default_value": "24", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer", + "field_type": "text" + } + ] +} \ No newline at end of file From f1a02247d2a56c64e5d1c89d5f6be04298dfeda6 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 12:56:29 +0100 Subject: [PATCH 02/14] Update README.md --- game_eggs/steamcmd_servers/core_keeper/README.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/README.md b/game_eggs/steamcmd_servers/core_keeper/README.md index 3ca75455..cbd6e867 100644 --- a/game_eggs/steamcmd_servers/core_keeper/README.md +++ b/game_eggs/steamcmd_servers/core_keeper/README.md @@ -2,18 +2,18 @@ ## Game Info -[Core Keeper] (https://store.steampowered.com/app/1621690/Core_Keeper/)is a sandbox survival game. +[Core Keeper](https://store.steampowered.com/app/1621690/Core_Keeper/) is a sandbox survival game. Explore an endless cavern of creatures, relics and resources in a mining sandbox adventure for 1-8 players. Mine, build, fight, craft and farm to unravel the mystery of the ancient Core. ## Dedicated Server -[Steam DB] (https://steamdb.info/app/1963720/info/) +[Steam DB](https://steamdb.info/app/1963720/info/) ## Parameters -| Parameter | default | Description | -|---------|--------------------------|---------------------------------------------------| +| Parameter | default | Description | +|----------------------|--------------------------|---------------------------------------------------| | World Index | 0 | Which world index to use. Default: 0. | | World Name | Core Keeper Server | The name to use for the server. Defaul: Core Keeper Server. | | World Seed | 0 | The seed to use for a new world. Set to 0 to generate random seed. Default: 0. | @@ -22,5 +22,3 @@ Explore an endless cavern of creatures, relics and resources in a mining sandbox | Max Players | 100 | Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100, | | World Mode | 0 | Whether to use normal (0) or hard (1) mode for world. Default: 0. | | Auto Update | 1 | Enable automatic updates on boot: Default: true | - - From 24a82aff2152a75d07227a7223e2d702a0285e0e Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 13:01:45 +0100 Subject: [PATCH 03/14] Update README.md Add Core Keeper --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bddab372..f82b1bb9 100644 --- a/README.md +++ b/README.md @@ -219,6 +219,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Black Mesa](game_eggs/steamcmd_servers/black_mesa) * [Citadel: Forged with Fire](game_eggs/steamcmd_servers/citadel) * [Conan Exiles](game_eggs/steamcmd_servers/conan_exiles) +* [Core Keeper](game_eggs/steamcmd_servers/core_keeper) * [Craftopia](game_eggs/steamcmd_servers/craftopia) * [Cryofall](game_eggs/steamcmd_servers/cryofall) * [DayZ (Experimental)](game_eggs/steamcmd_servers/dayz-experimental) From 6c33f45b57e3c16963628bdbe854d7425848434e Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 13:03:08 +0100 Subject: [PATCH 04/14] Update README.md Added Core Keeper --- game_eggs/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/game_eggs/README.md b/game_eggs/README.md index ddbf3123..9defcc26 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -119,6 +119,7 @@ * [Black Mesa](steamcmd_servers/black_mesa) * [Citadel: Forged with Fire](steamcmd_servers/citadel) * [Conan Exiles](steamcmd_servers/conan_exiles) +* [Core Keeper](steamcmd_servers/core_keeper) * [CryoFall](steamcmd_servers/cryofall) * [DayZ (Experimental)](steamcmd_servers/dayz-experimental) * [Don't Starve Together](steamcmd_servers/dont_starve) From 7d04da75868c4f02fd41e303399d0b3bbad7942c Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 13:04:06 +0100 Subject: [PATCH 05/14] Update README.md Added Core Keeper --- game_eggs/steamcmd_servers/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index ba85b43a..ad088cb2 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -40,6 +40,10 @@ This is a collection of servers that use SteamCMD to install. [Conan Exiles](conan_exiles) +## Core Keeper + +[Core Keeper](core_keeper) + ## Craftopia [Craftopia](craftopia) From a267a858d8ba1ca27711e579caf5c06cd7e8a93e Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 13:17:26 +0100 Subject: [PATCH 06/14] Update README.md Added server port info --- game_eggs/steamcmd_servers/core_keeper/README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/game_eggs/steamcmd_servers/core_keeper/README.md b/game_eggs/steamcmd_servers/core_keeper/README.md index cbd6e867..9dd78d49 100644 --- a/game_eggs/steamcmd_servers/core_keeper/README.md +++ b/game_eggs/steamcmd_servers/core_keeper/README.md @@ -22,3 +22,13 @@ Explore an endless cavern of creatures, relics and resources in a mining sandbox | Max Players | 100 | Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100, | | World Mode | 0 | Whether to use normal (0) or hard (1) mode for world. Default: 0. | | Auto Update | 1 | Enable automatic updates on boot: Default: true | + +## Game Ports + +The dedicated server uses two UDP Ports.\ +Game Port: Server Port\ +Query Port: Server Port + 1 + +Example:\ +Server Port = 4711\ +Make sure you open UDP ports 4711-4712 in your firewall and bind the allocations to the Core Keeper Server. From e3294ff7a65d583c7116154f9294fd9a957e41ef Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 21:39:02 +0100 Subject: [PATCH 07/14] Update egg-core-keeper.json - steamcmd default script - game port - xvfb display depth text fix - fixed startup script --- .../core_keeper/egg-core-keeper.json | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index e127346a..82fb9ae3 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -4,16 +4,18 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-13T12:30:55+01:00", + "exported_at": "2023-01-13T21:33:24+01:00", "name": "Core Keeper", "author": "karsten@fiedleronline.net", - "description": "Core Keeper is a survival sandbox game.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---\r\n\r\nInfo: Query port ist server port + 1.", - "features": null, + "description": "Core Keeper is a survival sandbox game for single or multiplayers.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---", + "features": [ + "steam_disk_space" + ], "docker_images": { - "ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest" + "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" }, "file_denylist": [], - "startup": "DISPLAY=:0; rm .\/GameID.txt CoreKeeperServerLog.txt; touch CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} -gameid \"{{GAME_ID}}\" -datapath \"{{DATA_PATH}}\" -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", + "startup": "DISPLAY=:0; rm .\/GameID.txt CoreKeeperServerLog.txt; touch CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} -gameid \"{{GAME_ID}}\" -datapath \"{{DATA_PATH}}\" -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{GAME_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", @@ -22,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 '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\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq wget;\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\r\n\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 1007 ${INSTALL_FLAGS} validate +quit\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", + "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\r\n## install end\r\n#echo \"-----------------------------------------\"\r\n#echo \"Installation completed...\"\r\n#echo \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -150,13 +152,23 @@ }, { "name": "DISPLAY_DEPTH", - "description": "Virtual display color depth. Fix: 1.", + "description": "Virtual display color depth. Fix: 24.", "env_variable": "DISPLAY_DEPTH", "default_value": "24", "user_viewable": false, "user_editable": false, "rules": "required|integer", "field_type": "text" + }, + { + "name": "Game Port", + "description": "What UDP game port to bind to. Note that the UDP Query Port is automaticaly game port + 1. The clients will connect to the server directly and the ports needs to be open. Default: 27015 (27016).", + "env_variable": "GAME_PORT", + "default_value": "27015", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer", + "field_type": "text" } ] -} \ No newline at end of file +} From 66ec53f5594104b272119878d22b57603845f895 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 21:46:13 +0100 Subject: [PATCH 08/14] Update game port and added game port table --- game_eggs/steamcmd_servers/core_keeper/README.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/README.md b/game_eggs/steamcmd_servers/core_keeper/README.md index 9dd78d49..1bd75bd9 100644 --- a/game_eggs/steamcmd_servers/core_keeper/README.md +++ b/game_eggs/steamcmd_servers/core_keeper/README.md @@ -12,23 +12,25 @@ Explore an endless cavern of creatures, relics and resources in a mining sandbox ## Parameters -| Parameter | default | Description | +| Parameter | Default | Description | |----------------------|--------------------------|---------------------------------------------------| | World Index | 0 | Which world index to use. Default: 0. | | World Name | Core Keeper Server | The name to use for the server. Defaul: Core Keeper Server. | | World Seed | 0 | The seed to use for a new world. Set to 0 to generate random seed. Default: 0. | | Game ID | EMPTY | Game ID to use for the server. Needs to be at least 28 characters and alphanumeric, excluding Y,y,x,0,O. Empty or not valid means a new ID will be generated at start. Default: EMPTY. | | Game Path | Dedicated Server | Save file location. Defaul: DedicatedServer. | +| Game Port | 27015 | What UDP game port to bind to. Note that the UDP Query Port is automaticaly game port + 1. The clients will connect to the server directly and the ports needs to be open. Default: 27015 (27016). | | Max Players | 100 | Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100, | | World Mode | 0 | Whether to use normal (0) or hard (1) mode for world. Default: 0. | | Auto Update | 1 | Enable automatic updates on boot: Default: true | ## Game Ports -The dedicated server uses two UDP Ports.\ -Game Port: Server Port\ -Query Port: Server Port + 1 +| Port | Default | Protocol | Description | +|---------|---------|----------|---------------------------------------------| +| Game | 27015 | UDP | | +| Query | 27016 | UDP | Automaticaly bind by the game server (Game port + 1) | Example:\ -Server Port = 4711\ +Game Port = 4711\ Make sure you open UDP ports 4711-4712 in your firewall and bind the allocations to the Core Keeper Server. From c326efd20923dd9e5aceaba3dd8c1a749184fa31 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Sat, 14 Jan 2023 20:55:36 +0100 Subject: [PATCH 09/14] Updated Core Keeper README --- .../steamcmd_servers/core_keeper/README.md | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/README.md b/game_eggs/steamcmd_servers/core_keeper/README.md index 1bd75bd9..83d28fb2 100644 --- a/game_eggs/steamcmd_servers/core_keeper/README.md +++ b/game_eggs/steamcmd_servers/core_keeper/README.md @@ -17,9 +17,7 @@ Explore an endless cavern of creatures, relics and resources in a mining sandbox | World Index | 0 | Which world index to use. Default: 0. | | World Name | Core Keeper Server | The name to use for the server. Defaul: Core Keeper Server. | | World Seed | 0 | The seed to use for a new world. Set to 0 to generate random seed. Default: 0. | -| Game ID | EMPTY | Game ID to use for the server. Needs to be at least 28 characters and alphanumeric, excluding Y,y,x,0,O. Empty or not valid means a new ID will be generated at start. Default: EMPTY. | -| Game Path | Dedicated Server | Save file location. Defaul: DedicatedServer. | -| Game Port | 27015 | What UDP game port to bind to. Note that the UDP Query Port is automaticaly game port + 1. The clients will connect to the server directly and the ports needs to be open. Default: 27015 (27016). | +| Game ID | | Game ID to use for the server. Needs to be at least 28 characters and alphanumeric, excluding Y,y,x,0,O. Empty or not valid means a new ID will be generated at start. Default: EMPTY. | | Max Players | 100 | Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100, | | World Mode | 0 | Whether to use normal (0) or hard (1) mode for world. Default: 0. | | Auto Update | 1 | Enable automatic updates on boot: Default: true | @@ -28,9 +26,26 @@ Explore an endless cavern of creatures, relics and resources in a mining sandbox | Port | Default | Protocol | Description | |---------|---------|----------|---------------------------------------------| -| Game | 27015 | UDP | | +| Server | 27015 | UDP | | | Query | 27016 | UDP | Automaticaly bind by the game server (Game port + 1) | Example:\ -Game Port = 4711\ +Server Port = 4711\ Make sure you open UDP ports 4711-4712 in your firewall and bind the allocations to the Core Keeper Server. + +## Requirements of RAM and storage + +| Req | Minimum | Recommend | +|---------|---------|---------| +| RAM | 1.0GB | 1.5GB | +| Storage | 1.0GB | 1.5GB | + +## Important directories + +| Directory | Description | +|---------|---------| +| World Saves | /home/container/.config/unity3d/Pugstorm/Core Keeper/DedicatedServer/worlds | +| Server Settings | /home/container/.config/unity3d/Pugstorm/Core Keeper/DedicatedServer | + + + From c7528d4d017faac82825546dc86cafcaba03a934 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Sat, 14 Jan 2023 22:19:21 +0100 Subject: [PATCH 10/14] Update egg-core-keeper.json - Variable DATA_PATH (there is no need to set a different directory name) - Small fixes in startup script --- .../core_keeper/egg-core-keeper.json | 24 ++----------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index 82fb9ae3..1038261c 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-13T21:33:24+01:00", + "exported_at": "2023-01-14T22:17:05+01:00", "name": "Core Keeper", "author": "karsten@fiedleronline.net", "description": "Core Keeper is a survival sandbox game for single or multiplayers.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" }, "file_denylist": [], - "startup": "DISPLAY=:0; rm .\/GameID.txt CoreKeeperServerLog.txt; touch CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} -gameid \"{{GAME_ID}}\" -datapath \"{{DATA_PATH}}\" -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{GAME_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", + "startup": "DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", @@ -70,16 +70,6 @@ "rules": "nullable|string|min:28", "field_type": "text" }, - { - "name": "Data Path", - "description": "Save file location. Defaul: DedicatedServer.", - "env_variable": "DATA_PATH", - "default_value": "DedicatedServer", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|max:100", - "field_type": "text" - }, { "name": "Max Players", "description": "Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100,", @@ -159,16 +149,6 @@ "user_editable": false, "rules": "required|integer", "field_type": "text" - }, - { - "name": "Game Port", - "description": "What UDP game port to bind to. Note that the UDP Query Port is automaticaly game port + 1. The clients will connect to the server directly and the ports needs to be open. Default: 27015 (27016).", - "env_variable": "GAME_PORT", - "default_value": "27015", - "user_viewable": true, - "user_editable": true, - "rules": "required|integer", - "field_type": "text" } ] } From 7c4436e97b69928fa6f0d17fb4b4742451e4a771 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Mon, 13 Mar 2023 17:47:20 +0100 Subject: [PATCH 11/14] Xfvb and steamcmd image update --- .../core_keeper/egg-core-keeper.json | 50 ++++++++----------- 1 file changed, 20 insertions(+), 30 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index 1038261c..62c9f95d 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-14T22:17:05+01:00", + "exported_at": "2023-03-13T17:15:33+01:00", "name": "Core Keeper", "author": "karsten@fiedleronline.net", "description": "Core Keeper is a survival sandbox game for single or multiplayers.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---", @@ -12,10 +12,10 @@ "steam_disk_space" ], "docker_images": { - "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], - "startup": "DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", + "startup": "Xvfb :0 -screen 0 ${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}x${DISPLAY_DEPTH}; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started server process with pid\"\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 '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\r\n## install end\r\n#echo \"-----------------------------------------\"\r\n#echo \"Installation completed...\"\r\n#echo \"-----------------------------------------\"", + "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} validate +quit\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\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -82,42 +82,32 @@ }, { "name": "World Mode", - "description": "Whether to use normal (0) or hard (1) mode for world. Default: 0.", + "description": "Whether to use normal (0) or hard (1) mode for world.", "env_variable": "WORLD_MODE", "default_value": "0", "user_viewable": true, "user_editable": true, - "rules": "required|integer|min:0|max:1", - "field_type": "text" - }, - { - "name": "Steam App ID", - "description": "Steam App ID of Core Keeper Dedicated Server. Found here: https:\/\/steamdb.info\/search\/?a=app&q=core+keeper&type=5&category=0", - "env_variable": "SRCDS_APPID", - "default_value": "1963720", - "user_viewable": false, - "user_editable": false, - "rules": "required|integer|min:1", - "field_type": "text" - }, - { - "name": "Auto Update", - "description": "Enable automatic updates on boot: Default: true", - "env_variable": "AUTO_UPDATE", - "default_value": "1", - "user_viewable": true, - "user_editable": true, "rules": "required|boolean", "field_type": "text" }, { - "name": "XVFB", - "description": "Enable virtual framebuffer. Fix: 1", - "env_variable": "XVFB", - "default_value": "1", + "name": "Steam App ID", + "description": "Steam App ID of Core Keeper Dedicated Server", + "env_variable": "SRCDS_APPID", + "default_value": "1963720", "user_viewable": false, "user_editable": false, - "rules": "required|integer", + "rules": "required|string|in:1963720", + "field_type": "text" + }, + { + "name": "Auto Update", + "description": "Enable automatic updates on boot", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", "field_type": "text" }, { From 500e04a6777aa47d059639f76554a86c1c4f14fe Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Mon, 13 Mar 2023 17:52:47 +0100 Subject: [PATCH 12/14] Updated startup cmd because auf Xvfb --- game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index 62c9f95d..e1bc2c2c 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], - "startup": "Xvfb :0 -screen 0 ${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}x${DISPLAY_DEPTH}; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", + "startup": "Xvfb :99 -screen 0 ${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}x${DISPLAY_DEPTH} -nolisten tcp &; DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", From 60311fba32c980ba464d4f117f305410c0b5cf2e Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Mon, 13 Mar 2023 19:05:08 +0100 Subject: [PATCH 13/14] Startcmd changed --- game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index e1bc2c2c..19bcbf68 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-13T17:15:33+01:00", + "exported_at": "2023-03-13T19:04:07+01:00", "name": "Core Keeper", "author": "karsten@fiedleronline.net", "description": "Core Keeper is a survival sandbox game for single or multiplayers.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], - "startup": "Xvfb :99 -screen 0 ${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}x${DISPLAY_DEPTH} -nolisten tcp &; DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", + "startup": "export DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; xvfb-run -s \"-screen 0 {{DISPLAY_WIDTH}}x{{DISPLAY_HEIGHT}}x{{DISPLAY_DEPTH}} -ac -nolisten tcp -nolisten unix\" .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill ${CKPID}; wait ${CKPID}; kill ${LOGPID}; wait ${LOGPID}\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", From 48cbcd53da1b1e85f9bb74e628a17d42b02dd382 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Mon, 13 Mar 2023 19:21:12 +0100 Subject: [PATCH 14/14] Startup command updated --- game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index 19bcbf68..97cdf1fa 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-13T19:04:07+01:00", + "exported_at": "2023-03-13T19:20:35+01:00", "name": "Core Keeper", "author": "karsten@fiedleronline.net", "description": "Core Keeper is a survival sandbox game for single or multiplayers.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], - "startup": "export DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; xvfb-run -s \"-screen 0 {{DISPLAY_WIDTH}}x{{DISPLAY_HEIGHT}}x{{DISPLAY_DEPTH}} -ac -nolisten tcp -nolisten unix\" .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill ${CKPID}; wait ${CKPID}; kill ${LOGPID}; wait ${LOGPID}\" 15; wait $!", + "startup": "export DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; xvfb-run -s \"-screen 0 {{DISPLAY_WIDTH}}x{{DISPLAY_HEIGHT}}x{{DISPLAY_DEPTH}} -ac -nolisten tcp -nolisten unix\" .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid {{GAME_ID}}\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill ${CKPID}; wait ${CKPID}; kill ${LOGPID}; wait ${LOGPID}\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}",