From 245d3326e4b9f36a0b015eb33247aab7d19365af Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 16 Feb 2023 16:18:02 +0100 Subject: [PATCH 01/53] rewrite minetest --- game_eggs/minetest/egg-minetest.json | 136 ++++++++++++++++++++++++--- 1 file changed, 121 insertions(+), 15 deletions(-) diff --git a/game_eggs/minetest/egg-minetest.json b/game_eggs/minetest/egg-minetest.json index 07a37fdf..d047cbbc 100644 --- a/game_eggs/minetest/egg-minetest.json +++ b/game_eggs/minetest/egg-minetest.json @@ -1,36 +1,142 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1" + "version": "PTDL_v2", + "update_url": null }, - "exported_at": "2020-11-02T22:59:26-05:00", + "exported_at": "2023-02-16T16:17:26+01:00", "name": "Minetest", "author": "support@pterodactyl.io", "description": "An open source voxel game engine. Play one of our many games, mod a game to your liking, make your own game, or play on a multiplayer server.", - "image": "quay.io\/parkervcp\/pterodactyl-images:base_ubuntu", - "startup": ".\/bin\/minetestserver --port {{SERVER_PORT}} --terminal", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/games:minetest": "ghcr.io\/parkervcp\/games:minetest" + }, + "file_denylist": [], + "startup": "minetest --server --port {{SERVER_PORT}} --world \/home\/container\/.minetest\/{{WORLD_NAME}} --terminal --config \/home\/container\/minetest.conf --logfile \/home\/container\/server.log", "config": { - "files": "{}", - "startup": "{\r\n \"done\": \" Server for gameid\",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": false,\r\n \"location\": \"debug.txt\"\r\n}", + "files": "{\r\n \"minetest.conf\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \" name = \": \" name = {{server.build.env.SERVER_ADMIN_NAME}}\",\r\n \" server_name = \": \" server_name = {{server.build.env.SERVER_NAME}}\",\r\n \" server_description = \": \" server_description = {{server.build.env.SERVER_DESC}}\",\r\n \" server_address = \": \" server_address = {{server.build.env.SERVER_DOMAIN}}\",\r\n \" server_url = \": \" server_url = {{server.build.env.SERVER_URL}}\",\r\n \" server_announce = \": \" server_announce = {{server.build.env.SERVER_ANNOUNCE}}\",\r\n \" serverlist_url = \": \" serverlist_url = {{server.build.env.SERVER_LIST_URL}}\",\r\n \" motd = \": \" motd = {{server.build.env.SERVER_MOTD}}\",\r\n \" max_users = \": \" max_users = {{server.build.env.SERVER_MAX_USERS}}\",\r\n \" bind_address = \": \" bind_address = 0.0.0.0\",\r\n \" default_password = \": \" default_password = {{server.build.env.SERVER_PASSWORD}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \" Server for gameid\"\r\n}", + "logs": "{}", "stop": "\/shutdown" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Minetest Installation Script\r\ncd \/mnt\/server &&\r\n\r\n# Install installation dependencies\r\napt update &&\r\napt -y install unzip wget build-essential libirrlicht-dev cmake libbz2-dev libjpeg-dev libxxf86vm-dev libsqlite3-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev luajit libncurses5-dev &&\r\n#touch test &&\r\n\r\n# Download, compile and prepare the engine\r\nwget -Osrc.zip https:\/\/github.com\/minetest\/minetest\/archive\/\"${MTVERSION}\".zip &&\r\nunzip .\/src.zip &&\r\nrm .\/src.zip &&\r\ncd .\/minetest-\"${MTVERSION}\" &&\r\ncmake . -DRUN_IN_PLACE=TRUE -DBUILD_CLIENT=FALSE -DBUILD_SERVER=TRUE -DENABLE_GLES=OFF -DENABLE_POSTGRESQL=OFF -DENABLE_REDIS=OFF -DENABLE_SOUND=OFF -DENABLE_LEVELDB=OFF -DENABLE_SPATIAL=OFF &&\r\nmake -j$(nproc) &&\r\nmake package &&\r\nmv .\/minetest-\"${MTVERSION}\"-linux.tar.gz ..\/ &&\r\ncd .. &&\r\nrm -rf .\/minetest-\"${MTVERSION}\" &&\r\ntar xfz .\/minetest-\"${MTVERSION}\"-linux.tar.gz &&\r\nrm minetest-\"${MTVERSION}\"-linux.tar.gz &&\r\nmv .\/minetest-\"${MTVERSION}\"-linux\/* .\/ &&\r\nrm -rf minetest-\"${MTVERSION}\"-linux &&\r\ntouch .\/minetest.conf &&\r\n\r\n# Download and prepare the game\r\ncd .\/games &&\r\nwget -Ominetest_game.zip https:\/\/github.com\/minetest\/minetest_game\/archive\/\"${MTVERSION}\".zip &&\r\nunzip minetest_game.zip &&\r\n#rm minetest_game.zip &&\r\nmv minetest_game-\"${MTVERSION}\" minetest_game &&\r\ncd .. &&\r\n\r\n# Clean up a bit\r\nrm -rf clientmods unix doc client fonts textures &&\r\n\r\n# Done!\r\necho \"Installation was successfully completed!\"", - "container": "ubuntu:18.04", + "script": "#!\/bin\/bash\r\n# Minetest Installation Script\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n\r\nLOG_FILE=\/mnt\/server\/server.log\r\nif [ -f \"$LOG_FILE\" ]; then\r\n echo \"Log file already exists.\"\r\nelse \r\n echo \"Log file does not exist. Making one...\"\r\n touch \/mnt\/server\/server.log\r\nfi\r\n\r\nCONFIG_FILE=\/mnt\/server\/minetest.conf\r\nif [ -f \"$FILE\" ]; then\r\n echo \"Config file already exists.\"\r\nelse \r\n echo \"Config file does not exist. Making one...\"\r\n curl -sSL -o \/mnt\/server\/minetest.conf https:\/\/pteropaste.com\/mwxco1\r\nfi\r\n\r\n\r\n# Done!\r\necho \"Installation was successfully completed!\"", + "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } }, "variables": [ { - "name": "Version", - "description": "The version of MT to install. Releases only", - "env_variable": "MTVERSION", - "default_value": "5.4.1", - "user_viewable": false, + "name": "Name of the admin player.", + "description": "When running a server, clients connecting with this name are admins.", + "env_variable": "SERVER_ADMIN_NAME", + "default_value": "", + "user_viewable": true, "user_editable": true, - "rules": "required|string|max:10" + "rules": "required|string|max:32", + "field_type": "text" + }, + { + "name": "Server name", + "description": "Name of the server, to be displayed when players join and in the serverlist.", + "env_variable": "SERVER_NAME", + "default_value": "Minetest server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:64", + "field_type": "text" + }, + { + "name": "Description of the server", + "description": "Description of server, to be displayed when players join and in the serverlist.", + "env_variable": "SERVER_DESC", + "default_value": "mine here", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:64", + "field_type": "text" + }, + { + "name": "Domain name of the server", + "description": "Domain name of server, to be displayed in the serverlist.", + "env_variable": "SERVER_DOMAIN", + "default_value": "game.minetest.net", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|", + "field_type": "text" + }, + { + "name": "Server url", + "description": "Homepage of server, to be displayed in the serverlist.", + "env_variable": "SERVER_URL", + "default_value": "https:\/\/minetest.net", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|", + "field_type": "text" + }, + { + "name": "Show in server list", + "description": "Automatically report to the serverlist.", + "env_variable": "SERVER_ANNOUNCE", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "string|in:true,false", + "field_type": "text" + }, + { + "name": "Announce serverlist", + "description": "Announce to this serverlist.", + "env_variable": "SERVER_LIST_URL", + "default_value": "servers.minetest.net", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|", + "field_type": "text" + }, + { + "name": "message of the day", + "description": "Message of the day displayed to players connecting.", + "env_variable": "SERVER_MOTD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "Maximum number of players that can be connected simultaneously.", + "env_variable": "SERVER_MAX_USERS", + "default_value": "15", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|min:0|max:65535", + "field_type": "text" + }, + { + "name": "Server password", + "description": "New users need to input this password.", + "env_variable": "SERVER_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:64", + "field_type": "text" + }, + { + "name": "World name", + "description": "The name of the world", + "env_variable": "WORLD_NAME", + "default_value": "world", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" } ] } From 1dfa34683983800e28b865f96efc28d4d5cab41a Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 16 Feb 2023 16:26:42 +0100 Subject: [PATCH 02/53] Update README.md --- game_eggs/minetest/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/game_eggs/minetest/README.md b/game_eggs/minetest/README.md index 591733ca..28e59989 100644 --- a/game_eggs/minetest/README.md +++ b/game_eggs/minetest/README.md @@ -1,3 +1,7 @@ # Minetest An open source voxel game engine. Play one of our many games, mod a game to your liking, make your own game, or play on a multiplayer server. + +## Console + +The console is currently bugged. It does work but the startup message is messed up From 91e5a36ca6a5a7202332d5224a2ed1407d841f70 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 23 Feb 2023 19:26:34 +0100 Subject: [PATCH 03/53] minetest: update 2 --- game_eggs/minetest/egg-minetest.json | 60 +++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 5 deletions(-) diff --git a/game_eggs/minetest/egg-minetest.json b/game_eggs/minetest/egg-minetest.json index d047cbbc..9e2a1eb8 100644 --- a/game_eggs/minetest/egg-minetest.json +++ b/game_eggs/minetest/egg-minetest.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-16T16:17:26+01:00", + "exported_at": "2023-02-23T19:25:23+01:00", "name": "Minetest", "author": "support@pterodactyl.io", "description": "An open source voxel game engine. Play one of our many games, mod a game to your liking, make your own game, or play on a multiplayer server.", @@ -13,16 +13,16 @@ "ghcr.io\/parkervcp\/games:minetest": "ghcr.io\/parkervcp\/games:minetest" }, "file_denylist": [], - "startup": "minetest --server --port {{SERVER_PORT}} --world \/home\/container\/.minetest\/{{WORLD_NAME}} --terminal --config \/home\/container\/minetest.conf --logfile \/home\/container\/server.log", + "startup": "minetest --server --port {{SERVER_PORT}} --world \/home\/container\/worlds\/{{WORLD_NAME}} --terminal --config \/home\/container\/minetest.conf --logfile \/home\/container\/server.log", "config": { - "files": "{\r\n \"minetest.conf\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \" name = \": \" name = {{server.build.env.SERVER_ADMIN_NAME}}\",\r\n \" server_name = \": \" server_name = {{server.build.env.SERVER_NAME}}\",\r\n \" server_description = \": \" server_description = {{server.build.env.SERVER_DESC}}\",\r\n \" server_address = \": \" server_address = {{server.build.env.SERVER_DOMAIN}}\",\r\n \" server_url = \": \" server_url = {{server.build.env.SERVER_URL}}\",\r\n \" server_announce = \": \" server_announce = {{server.build.env.SERVER_ANNOUNCE}}\",\r\n \" serverlist_url = \": \" serverlist_url = {{server.build.env.SERVER_LIST_URL}}\",\r\n \" motd = \": \" motd = {{server.build.env.SERVER_MOTD}}\",\r\n \" max_users = \": \" max_users = {{server.build.env.SERVER_MAX_USERS}}\",\r\n \" bind_address = \": \" bind_address = 0.0.0.0\",\r\n \" default_password = \": \" default_password = {{server.build.env.SERVER_PASSWORD}}\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"minetest.conf\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"name\": \"name = {{server.build.env.SERVER_ADMIN_NAME}}\",\r\n \"server_name\": \"server_name = {{server.build.env.SERVER_NAME}}\",\r\n \"server_description\": \"server_description = {{server.build.env.SERVER_DESC}}\",\r\n \"server_address\": \"server_address = {{server.build.env.SERVER_DOMAIN}}\",\r\n \"server_url\": \"server_url = {{server.build.env.SERVER_URL}}\",\r\n \"server_announce\": \"server_announce = {{server.build.env.SERVER_ANNOUNCE}}\",\r\n \"serverlist_url\": \"serverlist_url = {{server.build.env.SERVER_LIST_URL}}\",\r\n \"motd\": \"motd = {{server.build.env.SERVER_MOTD}}\",\r\n \"max_users\": \"max_users = {{server.build.env.SERVER_MAX_USERS}}\",\r\n \"bind_address\": \"bind_address = 0.0.0.0\",\r\n \"default_password\": \"default_password = {{server.build.env.SERVER_PASSWORD}}\",\r\n \"default_game\": \"default_game = {{server.build.env.DEFAULT_GAME}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \" Server for gameid\"\r\n}", "logs": "{}", - "stop": "\/shutdown" + "stop": "^^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Minetest Installation Script\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n\r\nLOG_FILE=\/mnt\/server\/server.log\r\nif [ -f \"$LOG_FILE\" ]; then\r\n echo \"Log file already exists.\"\r\nelse \r\n echo \"Log file does not exist. Making one...\"\r\n touch \/mnt\/server\/server.log\r\nfi\r\n\r\nCONFIG_FILE=\/mnt\/server\/minetest.conf\r\nif [ -f \"$FILE\" ]; then\r\n echo \"Config file already exists.\"\r\nelse \r\n echo \"Config file does not exist. Making one...\"\r\n curl -sSL -o \/mnt\/server\/minetest.conf https:\/\/pteropaste.com\/mwxco1\r\nfi\r\n\r\n\r\n# Done!\r\necho \"Installation was successfully completed!\"", + "script": "#!\/bin\/bash\r\n# Minetest Installation Script\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server || exit\r\n\r\nLOG_FILE=\/mnt\/server\/server.log\r\nif [ -f \"$LOG_FILE\" ]; then\r\n echo \"Log file already exists.\"\r\nelse \r\n echo \"Log file does not exist. Making one...\"\r\n touch \"$LOG_FILE\"\r\nfi\r\n\r\nCONFIG_FILE=\/mnt\/server\/minetest.conf\r\nif [ -f \"$CONFIG_FILE\" ]; then\r\n echo \"Config file already exists.\"\r\nelse \r\n echo \"Config file does not exist. Making one...\"\r\n curl -sSL -o \/mnt\/server\/minetest.conf.example https:\/\/raw.githubusercontent.com\/minetest\/minetest\/master\/minetest.conf.example\r\n echo -e \"## Server settings generated by pterodactyl\\nname\\nserver_name\\nserver_description\\nserver_address\\nserver_url\\nserver_announce\\nserverlist_url\\nmotd\\nmax_users\\nbind_address\\ndefault_password\\ndefault_game\\n\\n## Custom server settings\\n\" >> \"$CONFIG_FILE\"\r\nfi\r\n\r\nGAMES_FOLDER=\/mnt\/server\/games\r\nif [ -d \"$GAMES_FOLDER\" ]; then\r\n echo \"GAMES folder already exists.\"\r\nelse \r\n echo \"GAMES folder does not exist. Making one...\"\r\n mkdir -p $GAMES_FOLDER\r\nfi\r\n\r\nMOD_FOLDER=\/mnt\/server\/mods\r\nif [ -d \"$MOD_FOLDER\" ]; then\r\n echo \"Mods folder already exists.\"\r\nelse \r\n echo \"Mods folder does not exist. Making one...\"\r\n mkdir -p $MOD_FOLDER\r\n curl -sSL -o \"$MOD_FOLDER\"\/mods_here.txt https:\/\/raw.githubusercontent.com\/minetest\/minetest\/master\/mods\/mods_here.txt\r\nfi\r\n\r\nif [ \"$COMMUNITY_DOWNLOAD\" == \"1\" ]; then\r\n if [ -z \"$COMMUNITY_GAME_NAME\" ]\r\n then\r\n echo \"The COMMUNITY_GAME_NAME variable is required to download a community game\"\r\n exit\r\n fi\r\n if [ -z \"$COMMUNITY_GAME_AUTOR\" ]\r\n then\r\n echo \"The COMMUNITY_GAME_AUTOR variable is required to download a community game\"\r\n exit\r\n fi\r\n cd \/mnt\/server\/games\r\n D_URL=$(curl -s https:\/\/content.minetest.net\/packages\/$COMMUNITY_GAME_AUTOR\/$COMMUNITY_GAME_NAME\/ | grep -i download | grep packages | grep download | grep -o 'href=\".*\"' | cut -d \"=\" -f2- | egrep title= | awk -F' ' '{print $1}' | tr -d '\"')\r\n curl --progress-bar --verbose -sSL -o game.zip https:\/\/content.minetest.net\/$D_URL\r\n cd \/mnt\/server\/games\r\n unzip -o game.zip\r\n rm game.zip\r\nfi\r\n\r\n# Done!\r\necho \"Installation was successfully completed!\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -137,6 +137,56 @@ "user_editable": true, "rules": "required|string|max:32", "field_type": "text" + }, + { + "name": "Game name", + "description": "Default game when creating a new world. Only change if you have already uploaded the game!", + "env_variable": "DEFAULT_GAME", + "default_value": "minetest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + }, + { + "name": "Community download", + "description": "Download a community game.\r\nNeeds COMMUNITY_GAME_NAME and COMMUNITY_GAME_AUTOR", + "env_variable": "COMMUNITY_DOWNLOAD", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Community game name", + "description": "Case sensitive!\r\nExample: https:\/\/content.minetest.net\/packages\/Wuzzy\/mineclone2\/\r\nthen this should be mineclone2", + "env_variable": "COMMUNITY_GAME_NAME", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:64", + "field_type": "text" + }, + { + "name": "Community game author", + "description": "Case-sensitive!\r\nExample: https:\/\/content.minetest.net\/packages\/Wuzzy\/mineclone2\/\r\nthen this should be Wuzzy", + "env_variable": "COMMUNITY_GAME_AUTOR", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:64", + "field_type": "text" + }, + { + "name": "Game PATH", + "description": "", + "env_variable": "MINETEST_SUBGAME_PATH", + "default_value": "\/home\/container\/games", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|max:64", + "field_type": "text" } ] } From 35376d4a8666d41845783e0a913234afa36a57d6 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 25 Feb 2023 18:37:47 +0100 Subject: [PATCH 04/53] minetest: update 2 --- game_eggs/minetest/README.md | 9 ++++++++- game_eggs/minetest/egg-minetest.json | 14 +++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/game_eggs/minetest/README.md b/game_eggs/minetest/README.md index 28e59989..7a93329c 100644 --- a/game_eggs/minetest/README.md +++ b/game_eggs/minetest/README.md @@ -2,6 +2,13 @@ An open source voxel game engine. Play one of our many games, mod a game to your liking, make your own game, or play on a multiplayer server. +## Stopping the server + +For the server to be able to stop properly you have to give the admin/console user the permission `server` else you will have to kill the server and no date will be saved! + ## Console -The console is currently bugged. It does work but the startup message is messed up +The console is currently bugged. It does work but the startup message is messed up. + +## Rewrite +A special thank you to [Tealk](https://github.com/Tealk) for helping me rewrite this egg. \ No newline at end of file diff --git a/game_eggs/minetest/egg-minetest.json b/game_eggs/minetest/egg-minetest.json index 9e2a1eb8..3fe9faf4 100644 --- a/game_eggs/minetest/egg-minetest.json +++ b/game_eggs/minetest/egg-minetest.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-23T19:25:23+01:00", + "exported_at": "2023-02-25T18:33:22+01:00", "name": "Minetest", "author": "support@pterodactyl.io", "description": "An open source voxel game engine. Play one of our many games, mod a game to your liking, make your own game, or play on a multiplayer server.", @@ -13,16 +13,16 @@ "ghcr.io\/parkervcp\/games:minetest": "ghcr.io\/parkervcp\/games:minetest" }, "file_denylist": [], - "startup": "minetest --server --port {{SERVER_PORT}} --world \/home\/container\/worlds\/{{WORLD_NAME}} --terminal --config \/home\/container\/minetest.conf --logfile \/home\/container\/server.log", + "startup": "minetest --server --port {{SERVER_PORT}} --world \/home\/container\/.minetest\/worlds\/{{WORLD_NAME}} --terminal --config \/home\/container\/minetest.conf --logfile \/home\/container\/server.log", "config": { "files": "{\r\n \"minetest.conf\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"name\": \"name = {{server.build.env.SERVER_ADMIN_NAME}}\",\r\n \"server_name\": \"server_name = {{server.build.env.SERVER_NAME}}\",\r\n \"server_description\": \"server_description = {{server.build.env.SERVER_DESC}}\",\r\n \"server_address\": \"server_address = {{server.build.env.SERVER_DOMAIN}}\",\r\n \"server_url\": \"server_url = {{server.build.env.SERVER_URL}}\",\r\n \"server_announce\": \"server_announce = {{server.build.env.SERVER_ANNOUNCE}}\",\r\n \"serverlist_url\": \"serverlist_url = {{server.build.env.SERVER_LIST_URL}}\",\r\n \"motd\": \"motd = {{server.build.env.SERVER_MOTD}}\",\r\n \"max_users\": \"max_users = {{server.build.env.SERVER_MAX_USERS}}\",\r\n \"bind_address\": \"bind_address = 0.0.0.0\",\r\n \"default_password\": \"default_password = {{server.build.env.SERVER_PASSWORD}}\",\r\n \"default_game\": \"default_game = {{server.build.env.DEFAULT_GAME}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \" Server for gameid\"\r\n}", "logs": "{}", - "stop": "^^C" + "stop": "\/shutdown" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Minetest Installation Script\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server || exit\r\n\r\nLOG_FILE=\/mnt\/server\/server.log\r\nif [ -f \"$LOG_FILE\" ]; then\r\n echo \"Log file already exists.\"\r\nelse \r\n echo \"Log file does not exist. Making one...\"\r\n touch \"$LOG_FILE\"\r\nfi\r\n\r\nCONFIG_FILE=\/mnt\/server\/minetest.conf\r\nif [ -f \"$CONFIG_FILE\" ]; then\r\n echo \"Config file already exists.\"\r\nelse \r\n echo \"Config file does not exist. Making one...\"\r\n curl -sSL -o \/mnt\/server\/minetest.conf.example https:\/\/raw.githubusercontent.com\/minetest\/minetest\/master\/minetest.conf.example\r\n echo -e \"## Server settings generated by pterodactyl\\nname\\nserver_name\\nserver_description\\nserver_address\\nserver_url\\nserver_announce\\nserverlist_url\\nmotd\\nmax_users\\nbind_address\\ndefault_password\\ndefault_game\\n\\n## Custom server settings\\n\" >> \"$CONFIG_FILE\"\r\nfi\r\n\r\nGAMES_FOLDER=\/mnt\/server\/games\r\nif [ -d \"$GAMES_FOLDER\" ]; then\r\n echo \"GAMES folder already exists.\"\r\nelse \r\n echo \"GAMES folder does not exist. Making one...\"\r\n mkdir -p $GAMES_FOLDER\r\nfi\r\n\r\nMOD_FOLDER=\/mnt\/server\/mods\r\nif [ -d \"$MOD_FOLDER\" ]; then\r\n echo \"Mods folder already exists.\"\r\nelse \r\n echo \"Mods folder does not exist. Making one...\"\r\n mkdir -p $MOD_FOLDER\r\n curl -sSL -o \"$MOD_FOLDER\"\/mods_here.txt https:\/\/raw.githubusercontent.com\/minetest\/minetest\/master\/mods\/mods_here.txt\r\nfi\r\n\r\nif [ \"$COMMUNITY_DOWNLOAD\" == \"1\" ]; then\r\n if [ -z \"$COMMUNITY_GAME_NAME\" ]\r\n then\r\n echo \"The COMMUNITY_GAME_NAME variable is required to download a community game\"\r\n exit\r\n fi\r\n if [ -z \"$COMMUNITY_GAME_AUTOR\" ]\r\n then\r\n echo \"The COMMUNITY_GAME_AUTOR variable is required to download a community game\"\r\n exit\r\n fi\r\n cd \/mnt\/server\/games\r\n D_URL=$(curl -s https:\/\/content.minetest.net\/packages\/$COMMUNITY_GAME_AUTOR\/$COMMUNITY_GAME_NAME\/ | grep -i download | grep packages | grep download | grep -o 'href=\".*\"' | cut -d \"=\" -f2- | egrep title= | awk -F' ' '{print $1}' | tr -d '\"')\r\n curl --progress-bar --verbose -sSL -o game.zip https:\/\/content.minetest.net\/$D_URL\r\n cd \/mnt\/server\/games\r\n unzip -o game.zip\r\n rm game.zip\r\nfi\r\n\r\n# Done!\r\necho \"Installation was successfully completed!\"", + "script": "#!\/bin\/bash\r\n# Minetest Installation Script\r\nmkdir -p \/mnt\/server\/.minetest\r\n\r\n# Create server.log\r\nLOG_FILE=\/mnt\/server\/server.log\r\nif [ -f \"$LOG_FILE\" ]; then\r\n echo \"Log file already exists.\"\r\nelse \r\n echo \"Log file does not exist. Making one...\"\r\n touch \"$LOG_FILE\"\r\nfi\r\n\r\n# Create minetest.conf\r\nCONFIG_FILE=\/mnt\/server\/minetest.conf\r\nif [ -f \"$CONFIG_FILE\" ]; then\r\n echo \"Config file already exists.\"\r\nelse \r\n echo \"Config file does not exist. Making one...\"\r\n curl -sSL -o \/mnt\/server\/minetest.conf.example https:\/\/raw.githubusercontent.com\/minetest\/minetest\/master\/minetest.conf.example\r\n echo -e \"## Server settings generated by pterodactyl\\nname\\nserver_name\\nserver_description\\nserver_address\\nserver_url\\nserver_announce\\nserverlist_url\\nmotd\\nmax_users\\nbind_address\\ndefault_password\\ndefault_game\\n\\n## Custom server settings\\n\" >> \"$CONFIG_FILE\"\r\nfi\r\n\r\n# Create games folder\r\nGAMES_FOLDER=\/mnt\/server\/.minetest\/games\r\nif [ -d \"$GAMES_FOLDER\" ]; then\r\n echo \"GAMES folder already exists.\"\r\nelse \r\n echo \"GAMES folder does not exist. Making one...\"\r\n mkdir -p $GAMES_FOLDER\r\nfi\r\n\r\n# Create mods folder\r\nMOD_FOLDER=\/mnt\/server\/.minetest\/mods\r\nif [ -d \"$MOD_FOLDER\" ]; then\r\n echo \"Mods folder already exists.\"\r\nelse \r\n echo \"Mods folder does not exist. Making one...\"\r\n mkdir -p $MOD_FOLDER\r\n curl -sSL -o \"$MOD_FOLDER\"\/mods_here.txt https:\/\/raw.githubusercontent.com\/minetest\/minetest\/master\/mods\/mods_here.txt\r\nfi\r\n\r\n# Install Gamemode\r\nif [ \"$COMMUNITY_DOWNLOAD\" == \"1\" ]; then\r\n if ! [ -z \"$COMMUNITY_GAME_NAME\" ]; then\r\n\t\t if ! [ -z \"$COMMUNITY_GAME_AUTOR\" ]; then\r\n\t\t \techo \"Download $COMMUNITY_GAME_NAME\"\r\n\t\t\t\tD_URL=$(curl -s https:\/\/content.minetest.net\/packages\/$COMMUNITY_GAME_AUTOR\/$COMMUNITY_GAME_NAME\/ | grep -i download | grep packages | grep download | grep -o 'href=\".*\"' | cut -d \"=\" -f2- | egrep title= | awk -F' ' '{print $1}' | tr -d '\"')\r\n\t\t\t\tcurl -sSL -o \/mnt\/server\/.minetest\/games.zip https:\/\/content.minetest.net\/$D_URL >\/dev\/null 2>&1\r\n\t\t\t\tunzip -o \/mnt\/server\/.minetest\/games.zip -d \/mnt\/server\/.minetest\/games >\/dev\/null 2>&1\r\n\t\t\t\trm \/mnt\/server\/.minetest\/games.zip\r\n\t\t else\r\n\t\t echo \"The COMMUNITY_GAME_AUTOR variable is required to download a community game\"\r\n\t\t fi\r\n else\r\n echo \"The COMMUNITY_GAME_NAME variable is required to download a community game\"\r\n fi\r\nfi\r\n\r\n# Done!\r\necho \"Installation was successfully completed!\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -182,11 +182,11 @@ "name": "Game PATH", "description": "", "env_variable": "MINETEST_SUBGAME_PATH", - "default_value": "\/home\/container\/games", - "user_viewable": true, + "default_value": "\/home\/container\/.minetest\/games", + "user_viewable": false, "user_editable": false, "rules": "required|string|max:64", "field_type": "text" } ] -} +} \ No newline at end of file From 9188434fd0dfaa249f1d5770f595164ee27832d0 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 26 Feb 2023 12:01:19 +0100 Subject: [PATCH 05/53] minetest: update 3 Move everything exept the log file in to the .minetest folder + move to other installation image as this works on arm64 --- game_eggs/minetest/egg-minetest.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/game_eggs/minetest/egg-minetest.json b/game_eggs/minetest/egg-minetest.json index 3fe9faf4..6b47e682 100644 --- a/game_eggs/minetest/egg-minetest.json +++ b/game_eggs/minetest/egg-minetest.json @@ -4,26 +4,26 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-25T18:33:22+01:00", + "exported_at": "2023-02-26T11:59:47+01:00", "name": "Minetest", "author": "support@pterodactyl.io", "description": "An open source voxel game engine. Play one of our many games, mod a game to your liking, make your own game, or play on a multiplayer server.", "features": null, "docker_images": { - "ghcr.io\/parkervcp\/games:minetest": "ghcr.io\/parkervcp\/games:minetest" + "Minetest": "ghcr.io\/parkervcp\/games:minetest" }, "file_denylist": [], - "startup": "minetest --server --port {{SERVER_PORT}} --world \/home\/container\/.minetest\/worlds\/{{WORLD_NAME}} --terminal --config \/home\/container\/minetest.conf --logfile \/home\/container\/server.log", + "startup": "minetest --server --port {{SERVER_PORT}} --world \/home\/container\/.minetest\/worlds\/{{WORLD_NAME}} --terminal --config \/home\/container\/.minetest\/minetest.conf --logfile \/home\/container\/server.log", "config": { - "files": "{\r\n \"minetest.conf\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"name\": \"name = {{server.build.env.SERVER_ADMIN_NAME}}\",\r\n \"server_name\": \"server_name = {{server.build.env.SERVER_NAME}}\",\r\n \"server_description\": \"server_description = {{server.build.env.SERVER_DESC}}\",\r\n \"server_address\": \"server_address = {{server.build.env.SERVER_DOMAIN}}\",\r\n \"server_url\": \"server_url = {{server.build.env.SERVER_URL}}\",\r\n \"server_announce\": \"server_announce = {{server.build.env.SERVER_ANNOUNCE}}\",\r\n \"serverlist_url\": \"serverlist_url = {{server.build.env.SERVER_LIST_URL}}\",\r\n \"motd\": \"motd = {{server.build.env.SERVER_MOTD}}\",\r\n \"max_users\": \"max_users = {{server.build.env.SERVER_MAX_USERS}}\",\r\n \"bind_address\": \"bind_address = 0.0.0.0\",\r\n \"default_password\": \"default_password = {{server.build.env.SERVER_PASSWORD}}\",\r\n \"default_game\": \"default_game = {{server.build.env.DEFAULT_GAME}}\"\r\n }\r\n }\r\n}", + "files": "{\r\n \".minetest\/minetest.conf\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"name\": \"name = {{server.build.env.SERVER_ADMIN_NAME}}\",\r\n \"server_name\": \"server_name = {{server.build.env.SERVER_NAME}}\",\r\n \"server_description\": \"server_description = {{server.build.env.SERVER_DESC}}\",\r\n \"server_address\": \"server_address = {{server.build.env.SERVER_DOMAIN}}\",\r\n \"server_url\": \"server_url = {{server.build.env.SERVER_URL}}\",\r\n \"server_announce\": \"server_announce = {{server.build.env.SERVER_ANNOUNCE}}\",\r\n \"serverlist_url\": \"serverlist_url = {{server.build.env.SERVER_LIST_URL}}\",\r\n \"motd\": \"motd = {{server.build.env.SERVER_MOTD}}\",\r\n \"max_users\": \"max_users = {{server.build.env.SERVER_MAX_USERS}}\",\r\n \"bind_address\": \"bind_address = 0.0.0.0\",\r\n \"default_password\": \"default_password = {{server.build.env.SERVER_PASSWORD}}\",\r\n \"default_game\": \"default_game = {{server.build.env.DEFAULT_GAME}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \" Server for gameid\"\r\n}", "logs": "{}", "stop": "\/shutdown" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Minetest Installation Script\r\nmkdir -p \/mnt\/server\/.minetest\r\n\r\n# Create server.log\r\nLOG_FILE=\/mnt\/server\/server.log\r\nif [ -f \"$LOG_FILE\" ]; then\r\n echo \"Log file already exists.\"\r\nelse \r\n echo \"Log file does not exist. Making one...\"\r\n touch \"$LOG_FILE\"\r\nfi\r\n\r\n# Create minetest.conf\r\nCONFIG_FILE=\/mnt\/server\/minetest.conf\r\nif [ -f \"$CONFIG_FILE\" ]; then\r\n echo \"Config file already exists.\"\r\nelse \r\n echo \"Config file does not exist. Making one...\"\r\n curl -sSL -o \/mnt\/server\/minetest.conf.example https:\/\/raw.githubusercontent.com\/minetest\/minetest\/master\/minetest.conf.example\r\n echo -e \"## Server settings generated by pterodactyl\\nname\\nserver_name\\nserver_description\\nserver_address\\nserver_url\\nserver_announce\\nserverlist_url\\nmotd\\nmax_users\\nbind_address\\ndefault_password\\ndefault_game\\n\\n## Custom server settings\\n\" >> \"$CONFIG_FILE\"\r\nfi\r\n\r\n# Create games folder\r\nGAMES_FOLDER=\/mnt\/server\/.minetest\/games\r\nif [ -d \"$GAMES_FOLDER\" ]; then\r\n echo \"GAMES folder already exists.\"\r\nelse \r\n echo \"GAMES folder does not exist. Making one...\"\r\n mkdir -p $GAMES_FOLDER\r\nfi\r\n\r\n# Create mods folder\r\nMOD_FOLDER=\/mnt\/server\/.minetest\/mods\r\nif [ -d \"$MOD_FOLDER\" ]; then\r\n echo \"Mods folder already exists.\"\r\nelse \r\n echo \"Mods folder does not exist. Making one...\"\r\n mkdir -p $MOD_FOLDER\r\n curl -sSL -o \"$MOD_FOLDER\"\/mods_here.txt https:\/\/raw.githubusercontent.com\/minetest\/minetest\/master\/mods\/mods_here.txt\r\nfi\r\n\r\n# Install Gamemode\r\nif [ \"$COMMUNITY_DOWNLOAD\" == \"1\" ]; then\r\n if ! [ -z \"$COMMUNITY_GAME_NAME\" ]; then\r\n\t\t if ! [ -z \"$COMMUNITY_GAME_AUTOR\" ]; then\r\n\t\t \techo \"Download $COMMUNITY_GAME_NAME\"\r\n\t\t\t\tD_URL=$(curl -s https:\/\/content.minetest.net\/packages\/$COMMUNITY_GAME_AUTOR\/$COMMUNITY_GAME_NAME\/ | grep -i download | grep packages | grep download | grep -o 'href=\".*\"' | cut -d \"=\" -f2- | egrep title= | awk -F' ' '{print $1}' | tr -d '\"')\r\n\t\t\t\tcurl -sSL -o \/mnt\/server\/.minetest\/games.zip https:\/\/content.minetest.net\/$D_URL >\/dev\/null 2>&1\r\n\t\t\t\tunzip -o \/mnt\/server\/.minetest\/games.zip -d \/mnt\/server\/.minetest\/games >\/dev\/null 2>&1\r\n\t\t\t\trm \/mnt\/server\/.minetest\/games.zip\r\n\t\t else\r\n\t\t echo \"The COMMUNITY_GAME_AUTOR variable is required to download a community game\"\r\n\t\t fi\r\n else\r\n echo \"The COMMUNITY_GAME_NAME variable is required to download a community game\"\r\n fi\r\nfi\r\n\r\n# Done!\r\necho \"Installation was successfully completed!\"", - "container": "ghcr.io\/parkervcp\/installers:debian", + "script": "#!\/bin\/bash\r\n# Minetest Installation Script\r\nmkdir -p \/mnt\/server\/.minetest\r\n\r\napt update\r\napt -y install curl unzip\r\n\r\n# Create server.log\r\nLOG_FILE=\/mnt\/server\/server.log\r\nif [ -f \"$LOG_FILE\" ]; then\r\n echo \"Log file already exists.\"\r\nelse \r\n echo \"Log file does not exist. Making one...\"\r\n touch \"$LOG_FILE\"\r\nfi\r\n\r\n# Create minetest.conf\r\nCONFIG_FILE=\/mnt\/server\/.minetest\/minetest.conf\r\nif [ -f \"$CONFIG_FILE\" ]; then\r\n echo \"Config file already exists.\"\r\nelse \r\n echo \"Config file does not exist. Making one...\"\r\n curl -sSL -o \/mnt\/server\/.minetest\/minetest.conf.example https:\/\/raw.githubusercontent.com\/minetest\/minetest\/master\/minetest.conf.example\r\n echo -e \"## Server settings generated by pterodactyl\\nname\\nserver_name\\nserver_description\\nserver_address\\nserver_url\\nserver_announce\\nserverlist_url\\nmotd\\nmax_users\\nbind_address\\ndefault_password\\ndefault_game\\n\\n## Custom server settings\\n\" >> \"$CONFIG_FILE\"\r\nfi\r\n\r\n# Create games folder\r\nGAMES_FOLDER=\/mnt\/server\/.minetest\/games\r\nif [ -d \"$GAMES_FOLDER\" ]; then\r\n echo \"GAMES folder already exists.\"\r\nelse \r\n echo \"GAMES folder does not exist. Making one...\"\r\n mkdir -p $GAMES_FOLDER\r\nfi\r\n\r\n# Create mods folder\r\nMOD_FOLDER=\/mnt\/server\/.minetest\/mods\r\nif [ -d \"$MOD_FOLDER\" ]; then\r\n echo \"Mods folder already exists.\"\r\nelse \r\n echo \"Mods folder does not exist. Making one...\"\r\n mkdir -p $MOD_FOLDER\r\n curl -sSL -o \"$MOD_FOLDER\"\/mods_here.txt https:\/\/raw.githubusercontent.com\/minetest\/minetest\/master\/mods\/mods_here.txt\r\nfi\r\n\r\n# Install Gamemode\r\nif [ \"$COMMUNITY_DOWNLOAD\" == \"1\" ]; then\r\n if ! [ -z \"$COMMUNITY_GAME_NAME\" ]; then\r\n\t\t if ! [ -z \"$COMMUNITY_GAME_AUTOR\" ]; then\r\n\t\t \techo \"Download $COMMUNITY_GAME_NAME\"\r\n\t\t\t\tD_URL=$(curl -s https:\/\/content.minetest.net\/packages\/$COMMUNITY_GAME_AUTOR\/$COMMUNITY_GAME_NAME\/ | grep -i download | grep packages | grep download | grep -o 'href=\".*\"' | cut -d \"=\" -f2- | egrep title= | awk -F' ' '{print $1}' | tr -d '\"')\r\n\t\t\t\tcurl -sSL -o \/mnt\/server\/.minetest\/games.zip https:\/\/content.minetest.net\/$D_URL >\/dev\/null 2>&1\r\n\t\t\t\tunzip -o \/mnt\/server\/.minetest\/games.zip -d \/mnt\/server\/.minetest\/games >\/dev\/null 2>&1\r\n\t\t\t\trm \/mnt\/server\/.minetest\/games.zip\r\n\t\t else\r\n\t\t echo \"The COMMUNITY_GAME_AUTOR variable is required to download a community game\"\r\n\t\t fi\r\n else\r\n echo \"The COMMUNITY_GAME_NAME variable is required to download a community game\"\r\n fi\r\nfi\r\n\r\n# Done!\r\necho \"Installation was successfully completed!\"", + "container": "debian:bullseye-slim", "entrypoint": "bash" } }, @@ -189,4 +189,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 3776bcb7da2001f69986810d2bda9c2ac2409134 Mon Sep 17 00:00:00 2001 From: diedyesterday <81169193+diedyesterdaywashere@users.noreply.github.com> Date: Wed, 24 May 2023 20:08:46 +0300 Subject: [PATCH 06/53] Added the *Installation/System Requirements* part --- example/README.md | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/example/README.md b/example/README.md index 5b9852aa..4174b9b7 100644 --- a/example/README.md +++ b/example/README.md @@ -18,17 +18,16 @@ The description of the server usually provided by the game/server maker. Due to rate limiting the console on the panel, it cannot keep up with the game console and the build will complete before the panel console may show it. Reloading the console will load it to the latest part of the log. -## Minimum RAM warning - -Minimum required memory to run the server. - - -## Minumim Sorage warning - -Minimum required storage to run the server. - - - +## Installation/System Requirements + +| | Bare Minimum | Recommended | +|---------|---------|---------| +| Processor | *Main info (32/64 bit or ARM support)* | *More info about egg's preferred processor* | +| RAM | *Minimum amount of RAM* | *Recommended amount of RAM* | +| Storage | *Minimum amount of Storage* | *Recommended amount of Storage* | +| Network | *Minimum network speed* | *Recommended network speed* | +| Host OS | *What will just run it?* | *Is there a kernel or a distro that will run it better?* | +| Game Ownership | *Can the server start without it?* | *Is it needed for any other features?* | ## Server Ports From a9b5e38253ec70a8ad8506bdc4e24a02763d2f16 Mon Sep 17 00:00:00 2001 From: diedyesterday <81169193+diedyesterdaywashere@users.noreply.github.com> Date: Wed, 24 May 2023 20:22:42 +0300 Subject: [PATCH 07/53] upd --- example/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/example/README.md b/example/README.md index 4174b9b7..c988bac2 100644 --- a/example/README.md +++ b/example/README.md @@ -23,9 +23,9 @@ Due to rate limiting the console on the panel, it cannot keep up with the game c | | Bare Minimum | Recommended | |---------|---------|---------| | Processor | *Main info (32/64 bit or ARM support)* | *More info about egg's preferred processor* | -| RAM | *Minimum amount of RAM* | *Recommended amount of RAM* | -| Storage | *Minimum amount of Storage* | *Recommended amount of Storage* | -| Network | *Minimum network speed* | *Recommended network speed* | +| RAM | *Minimum amount of RAM (in MiB/GiB)* | *Recommended amount of RAM (in MiB/GiB)* | +| Storage | *Minimum amount of Storage (in MiB/GiB)* | *Recommended amount of Storage (in MiB/GiB)* | +| Network | *Minimum network speed (in Mbit/s)* | *Recommended network speed (in Mbit/s)* | | Host OS | *What will just run it?* | *Is there a kernel or a distro that will run it better?* | | Game Ownership | *Can the server start without it?* | *Is it needed for any other features?* | From 0539efcda12ce5a6ea1331246005a2038d45d74d Mon Sep 17 00:00:00 2001 From: diedyesterday <81169193+diedyesterdaywashere@users.noreply.github.com> Date: Wed, 24 May 2023 20:27:33 +0300 Subject: [PATCH 08/53] Remove Host OS --- example/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/example/README.md b/example/README.md index c988bac2..2052e637 100644 --- a/example/README.md +++ b/example/README.md @@ -26,7 +26,6 @@ Due to rate limiting the console on the panel, it cannot keep up with the game c | RAM | *Minimum amount of RAM (in MiB/GiB)* | *Recommended amount of RAM (in MiB/GiB)* | | Storage | *Minimum amount of Storage (in MiB/GiB)* | *Recommended amount of Storage (in MiB/GiB)* | | Network | *Minimum network speed (in Mbit/s)* | *Recommended network speed (in Mbit/s)* | -| Host OS | *What will just run it?* | *Is there a kernel or a distro that will run it better?* | | Game Ownership | *Can the server start without it?* | *Is it needed for any other features?* | ## Server Ports From 15e67e8fa43f5547a5a97104a40b7aaa2fbbdd94 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Wed, 24 May 2023 19:56:50 -0700 Subject: [PATCH 09/53] Add Ground Branch egg - Adds Ground Branch egg and README. - Updates all directory READMEs to include it (and even fixes some missing entries that surrounded it). --- README.md | 1 + game_eggs/README.md | 2 + game_eggs/steamcmd_servers/README.md | 8 ++ .../steamcmd_servers/ground_branch/README.md | 98 +++++++++++++ .../ground_branch/egg-ground-branch.json | 132 ++++++++++++++++++ 5 files changed, 241 insertions(+) create mode 100644 game_eggs/steamcmd_servers/ground_branch/README.md create mode 100644 game_eggs/steamcmd_servers/ground_branch/egg-ground-branch.json diff --git a/README.md b/README.md index 5e782063..b7457599 100644 --- a/README.md +++ b/README.md @@ -234,6 +234,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Empyrion - Galactic Survival](game_eggs/steamcmd_servers/empyrion) * [Fistful of Frags](game_eggs/steamcmd_servers/fof) * [Frozen Flame](game_eggs/steamcmd_servers/frozen_flame) +* [Ground Branch](game_eggs/steamcmd_servers/ground_branch) * [HLDS Server](game_eggs/steamcmd_servers/hlds_server) * [HLDS Vanilla](game_eggs/steamcmd_servers/hlds_server/vanilla) * [ReHLDS](game_eggs/steamcmd_servers/hlds_server/rehlds) diff --git a/game_eggs/README.md b/game_eggs/README.md index 978c5961..36cfbd74 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -132,6 +132,8 @@ * [ECO](steamcmd_servers/eco) * [Empyrion - Galactic Survival](steamcmd_servers/empyrion) * [Fistful of Frags](steamcmd_servers/fof) +* [Frozen Flame](steamcmd_servers/frozen_flame) +* [Ground Branch](steamcmd_servers/ground_branch) * [HLDS Server](steamcmd_servers/hlds_server) * [HLDS Vanilla](steamcmd_servers/hlds_server/vanilla) * [ReHLDS](steamcmd_servers/hlds_server/rehlds) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index b338a27c..21c91f25 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -68,10 +68,18 @@ This is a collection of servers that use SteamCMD to install. [Empyrion - Galactic Survival](empyrion) +## Fistful of Frags + +[Fistful of Frags](fof) + ## Frozen Flame [Frozen Flame](frozen_flame) +## Ground Branch + +[Ground Branch](ground_branch) + ## HLDS Server [HLDS Server](hlds_server) diff --git a/game_eggs/steamcmd_servers/ground_branch/README.md b/game_eggs/steamcmd_servers/ground_branch/README.md new file mode 100644 index 00000000..0a681074 --- /dev/null +++ b/game_eggs/steamcmd_servers/ground_branch/README.md @@ -0,0 +1,98 @@ +# Ground Branch + +***NOTE: Game and server are still Early Access. Your mileage may vary as updates are released.*** +___ + +### Authors / Contributors + + + + + + + +
+ +
Red-Thirten +
+
+ + 💻 + 🔨 +
+ + + +___ + +### Game Description + +From BlackFoot Studios' [Website](https://www.groundbranch.com/): +> From one of the developers behind the original Rainbow Six® and Ghost Recon® games, comes a thinking-man's first-person shooter featuring in-depth character and weapon customization. Take your time. Think ahead. Get the job done. + +___ + +### Egg Capabilities + +- Configuration of the Server Query port. +- Configurable to automatically check for server updates on start via SteamCMD. Forcing validation is also configurable. +- Mods have not been explored at this time (see [Modding](#modding) for more info) + +___ + +### Server Ports + +- Default server ports are listed below, but both ports can be changed freely. +- ***Both ports are required to be open/allocated for normal server behavior!*** + +| Port | Default (UDP) | +|---------|---------| +| **Game (Primary Port in Pterodactyl)** | 7777 | +| Server Query | 27015 | + +___ + +### Installation/System Requirements + +| | Bare Minimum | Recommended | +|---------|---------|---------| +| Processor | No ARM support. | Recent x86/64 (AMD/Intel) processor. | +| RAM | 550 MiB | 1024-4096 MiB | +| Storage | 5632 MiB | 7168 MiB | +| Network | 3 MiB/s | 7 MiB/s | +| Game Ownership | Not required to start. | Recommended to fully configure server (see [Server Configuration](#server-configuration) below) | + +___ + +### Server Configuration + +**NOTE: Server Name and Max Players will be overwritten by your Pterodactyl Startup settings every time the server is started.** + +#### In-Game Setup (Recommended): + +Configuring all aspects of the server (MOTD, game rules, map list, admins, etc.) is, by far, the easiest (and safest) to do in-game via the built in admin menu. Perform the following steps to do so: + +1. Start the server. +2. Navigate to `/home/container/GroundBranch/ServerConfig` within Pterodactyl's file browser and open `AdminSetupPassword.txt`. +3. Copy the code and start your personal Ground Branch game client. +4. Log into your server via the server browser by searching for it by the name you set in the Startup tab of the server. +5. Open the console by pressing `` ` `` and run the following command: `admin setup `. This will add you as a SuperAdmin. +6. Running the command `admin` will open the Admin Menu where you can configure everything about the server. + +#### Manual Setup (Advanced): + +All configuration files for the server can be found here: `/home/container/GroundBranch/ServerConfig` + +Please refer to the [Unofficial Ground Branch Wiki](https://unofficialgroundbranchwiki.com/en/dedicated-servers/getting-started) for configuration info. + +___ + +### Modding + +Modding has not been adequately explored at this time. If you have information on modding you would like to share, please submit a PR to update this README. + +What is currently known about modding: + +- The server seems to automatically look at the following directory for any available mods to load: `/home/workshop/content/16900/` +- This directory is un-accessible to Pterodactyl end-users, and I am unaware of a way to point the server to look in a different directory for mods. +- However, you may be able to set up a mount to this directory with mods in SteamCMD format. diff --git a/game_eggs/steamcmd_servers/ground_branch/egg-ground-branch.json b/game_eggs/steamcmd_servers/ground_branch/egg-ground-branch.json new file mode 100644 index 00000000..f8534e13 --- /dev/null +++ b/game_eggs/steamcmd_servers/ground_branch/egg-ground-branch.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-05-25T02:52:19+00:00", + "name": "Ground Branch", + "author": "rehlmgaming@gmail.com", + "description": "From one of the developers behind the original Rainbow Six\u00ae and Ghost Recon\u00ae games, comes a thinking-man's first-person shooter featuring in-depth character and weapon customization. Take your time. Think ahead. Get the job done.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + }, + "file_denylist": [], + "startup": "wine GroundBranch\/Binaries\/Win64\/GroundBranchServer-Win64-Shipping.exe MultiHome=0.0.0.0 Port={{SERVER_PORT}} QueryPort={{QUERY_PORT}} -log", + "config": { + "files": "{\r\n \"GroundBranch\/ServerConfig\/Server.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName=\": \"ServerName={{server.build.env.SERVER_NAME}}\",\r\n \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Bringing up level for play took\"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl Ground Branch Egg - egg-ground-branch.json\r\n## Authors: David Wolfe (Red-Thirten)\r\n## Date: 2023\/05\/24\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/pterodactyl\/installers:debian'\r\n\r\n# Download and install SteamCMD\r\nexport HOME=\/mnt\/server\r\ncd \/tmp\r\nmkdir -p $HOME\/steamcmd $HOME\/steamapps\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 $HOME\/steamcmd\r\ncd $HOME\/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\n\r\n# Install game server using SteamCMD\r\n.\/steamcmd.sh +force_install_dir $HOME +login anonymous $( [[ \"${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}\" ) validate +quit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so $HOME\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so $HOME\/.steam\/sdk64\/steamclient.so\r\n\r\n## Ground Branch setup\r\n# Make ServerConfig directory and default Server.ini file (since they are not initially present before first server start)\r\nmkdir -p $HOME\/GroundBranch\/ServerConfig\/ && cd \"$_\"\r\n\r\nif [[ ! -f Server.ini ]]; then\r\n echo -e '\\nCreating default \"Server.ini\" configuration file...'\r\n cat > Server.ini << EOF\r\n[\/Script\/RBZooKeeper.ZKServer]\r\n; Name of the server 64 characters max)\r\nServerName=Unnamed Ground Branch Server\r\n\r\n; The message of the day (512 characters max)\r\n; e.g. ServerMOTD=This text here is displayed
with the 'admin motd' command.\r\nServerMOTD=\"Welcome!\"\r\n\r\n; Set to a jpg image to act as a server banner in-game where possible.\r\n; (recommended resolution: 788 x 386)\r\nServerWebBanner=\"\"\r\n; e.g. ServerWebPage=www.images.com\/myimage.jpeg\r\n\r\n; Password required to join the server.\r\n;ServerPassword=\r\n\r\n; Password required to join the server as a permanent spectator.\r\n;SpectatorOnlyPassword=\r\n\r\n; Maximum number of players allowed on this server.\r\nMaxPlayers=16\r\nMaxSpectators=0\r\n\r\n; Set default match types for game modes and round limits:\r\n; Match types: Continuous, BestOf, FirstTo, Play, PlayUntilWin, TimeLimit.\r\n; Round limits = number of rounds, except Time Limit match type (minutes).\r\n; PVE \/ Co-op:\r\nPVEMatchType=Continuous\r\nPVERoundLimit=2\r\n; PVP:\r\nPVPMatchType=Continuous\r\nPVPRoundLimit=3\r\n; PVP FFA (Free-for-all):\r\nPVPFFAMatchType=Continuous\r\nPVPFFARoundLimit=1\r\nGameRules=((\"AllowCheats\", False),(\"AllowDeadChat\", True),(\"AllowUnrestrictedRadio\", False),(\"AllowUnrestrictedVoice\", False),(\"SpectateEnemies\", True),(\"SpectateForceFirstPerson\", False),(\"SpectateFreeCam\", True),(\"UseTeamRestrictions\", False))\r\nEOF\r\nfi\r\n\r\necho -e \"\\nGround Branch Dedicated Server successfully installed!\\n\"", + "container": "ghcr.io\/pterodactyl\/installers:debian", + "entrypoint": "\/bin\/bash" + } + }, + "variables": [ + { + "name": "[REQUIRED] Server Query Port", + "description": "This is the port that your clients will type in and use to connect to the lobby (not the game world). Ensure this port matches your externally forwarded port, and is distanced from other running Ground Branch servers in Pterodactyl (increments of 100 are recommended). This is also true for the Primary\/Game Port!", + "env_variable": "QUERY_PORT", + "default_value": "27015", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1024,65536", + "field_type": "text" + }, + { + "name": "Automatic Updates", + "description": "Quickly checks for any server updates on startup, and updates if necessary. (1 ON | 0 OFF)", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "boolean", + "field_type": "text" + }, + { + "name": "Server Name", + "description": "The name of the server that will appear in the server list.", + "env_variable": "SERVER_NAME", + "default_value": "Unnamed Ground Branch Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:255", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "Maximum number of players allowed to connect to the server.", + "env_variable": "MAX_PLAYERS", + "default_value": "16", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:1", + "field_type": "text" + }, + { + "name": "[Repair] Validate Server Files", + "description": "Leave empty (no value) for OFF or type \"true\" or \"1\" for ON. Validates all server files when Automatic Updates is enabled. Note: This will significantly increase server startup times, so it is recommended to only enable this when needed.", + "env_variable": "VALIDATE", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "string|nullable", + "field_type": "text" + }, + { + "name": "[System] Ground Branch Dedicated Server App ID", + "description": "Steam App ID used for installation and updates. Cannot be changed.", + "env_variable": "SRCDS_APPID", + "default_value": "476400", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:476400", + "field_type": "text" + }, + { + "name": "[System] Use Windows Branch", + "description": "Tells the installer\/updater to only download the Windows branch of the server (the only branch currently available) so that it can run on Wine. Cannot be changed.", + "env_variable": "WINDOWS_INSTALL", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:1", + "field_type": "text" + }, + { + "name": "[System] WINEDEBUG", + "description": "Used to suppress WINE FIXME messages. Rarely needs to be changed.", + "env_variable": "WINEDEBUG", + "default_value": "-all", + "user_viewable": false, + "user_editable": false, + "rules": "string|nullable", + "field_type": "text" + }, + { + "name": "[System] WINEARCH", + "description": "Used for compatibility. Cannot be changed.", + "env_variable": "WINEARCH", + "default_value": "win64", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:win64", + "field_type": "text" + }, + { + "name": "[System] WINEPATH", + "description": "Used for compatibility. Cannot be changed.", + "env_variable": "WINEPATH", + "default_value": "\/home\/container", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:\/home\/container", + "field_type": "text" + } + ] +} \ No newline at end of file From 21f4994082097883874c820cdfc9d52d149bb17b Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Fri, 2 Jun 2023 19:05:34 +0200 Subject: [PATCH 10/53] Update team fortress 2 classic --- .../egg-team-fortress-2-classic.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/steamcmd_servers/team_fortress_2_classic/egg-team-fortress-2-classic.json b/game_eggs/steamcmd_servers/team_fortress_2_classic/egg-team-fortress-2-classic.json index 42dd6627..f89e16f2 100644 --- a/game_eggs/steamcmd_servers/team_fortress_2_classic/egg-team-fortress-2-classic.json +++ b/game_eggs/steamcmd_servers/team_fortress_2_classic/egg-team-fortress-2-classic.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-12-24T20:50:58+10:30", + "exported_at": "2023-06-02T19:04:54+02:00", "name": "Team Fortress 2 Classic", "author": "eggs@scattergun.io", "description": "Team Fortress 2 Classic is a free mod of the 2007 game Team Fortress 2, developed by Eminoma and utilizing the Source engine.", @@ -12,7 +12,7 @@ "steam_disk_space" ], "docker_images": { - "ghcr.io\/parkervcp\/yolks:games_source": "ghcr.io\/parkervcp\/yolks:games_source" + "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], "startup": ".\/srcds_run -game {{SRCDS_GAME}} -console -port {{SERVER_PORT}} +map {{SRCDS_MAP}} +ip 0.0.0.0 -strictportbind -norestart -debug +maxplayers {{MAXPLAYERS}}", @@ -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## just in case someone removed the defaults.\r\napt install -y wget\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## 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# 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## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +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## download TF2C from website\r\ncd \/mnt\/server\r\nwhich unzip\r\n\r\necho \"Downloading tf2classic, This will take some time\" \r\ncurl -sSL -o tf2classic.zip https:\/\/tf2classic.org\/tf2c\/tf2classic-${GAMEVERSION}.zip\r\n\r\nunzip -o tf2classic.zip\r\nrm -rf tf2classic.zip\r\n## fix issue \/w symlink\r\ncd \/mnt\/server\/bin\r\nln -s vphysics_srv.so vphysics.so\r\nln -s studiorender_srv.so studiorender.so\r\nln -s soundemittersystem_srv.so soundemittersystem.so\r\nln -s shaderapiempty_srv.so shaderapiempty.so\r\nln -s scenefilecache_srv.so scenefilecache.so\r\nln -s replay_srv.so replay.so\r\nln -s materialsystem_srv.so materialsystem.so\r\n\r\ncd \/mnt\/server\/tf2classic\/bin\r\n## fix server as of 2.0.4 crashing on start\r\nrm -rf server_srv.so\r\nln -s server.so server_srv.so\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\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## download TF2C from website\r\ncd \/mnt\/server\r\nwhich unzip\r\n\r\necho \"Downloading tf2classic, This will take some time\" \r\ncurl -sSL -o tf2classic.zip https:\/\/wiki.tf2classic.com\/kachemak\/tf2classic-${GAMEVERSION}.zip\r\n\r\n\r\nunzip -o tf2classic.zip\r\nrm -rf tf2classic.zip\r\n## fix issue \/w symlink\r\ncd \/mnt\/server\/bin\r\nln -s vphysics_srv.so vphysics.so\r\nln -s studiorender_srv.so studiorender.so\r\nln -s soundemittersystem_srv.so soundemittersystem.so\r\nln -s shaderapiempty_srv.so shaderapiempty.so\r\nln -s scenefilecache_srv.so scenefilecache.so\r\nln -s replay_srv.so replay.so\r\nln -s materialsystem_srv.so materialsystem.so\r\n\r\ncd \/mnt\/server\/tf2classic\/bin\r\n## fix server as of 2.0.4 crashing on start\r\nrm -rf server_srv.so\r\nln -s server.so server_srv.so\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -81,4 +81,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From aec01117be1e09f7faa7e91ce36ab08a402ca075 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Fri, 2 Jun 2023 20:38:20 +0200 Subject: [PATCH 11/53] add No One Survived --- README.md | 1 + game_eggs/README.md | 1 + game_eggs/steamcmd_servers/README.md | 8 + .../no_one_survived/README.md | 27 +++ .../no_one_survived/egg-no-one-survived.json | 202 ++++++++++++++++++ 5 files changed, 239 insertions(+) create mode 100644 game_eggs/steamcmd_servers/no_one_survived/README.md create mode 100644 game_eggs/steamcmd_servers/no_one_survived/egg-no-one-survived.json diff --git a/README.md b/README.md index 5e782063..aaf64e81 100644 --- a/README.md +++ b/README.md @@ -248,6 +248,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Modiverse](game_eggs/steamcmd_servers/modiverse) * [Mordhau](game_eggs/steamcmd_servers/mordhau) * [No More Room in Hell](game_eggs/steamcmd_servers/nmrih) +* [No One Survived](game_eggs/steamcmd_servers/no_one_survived) * [Onset](game_eggs/steamcmd_servers/onset) * [Open Fortress](game_eggs/steamcmd_servers/open_fortress) * [Operation Harsh Doorstop](game_eggs/steamcmd_servers/operation_harsh_doorstop) diff --git a/game_eggs/README.md b/game_eggs/README.md index 978c5961..35ad1b40 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -146,6 +146,7 @@ * [Modiverse](steamcmd_servers/modiverse) * [Mordhau](steamcmd_servers/mordhau) * [No More Room in Hell](steamcmd_servers/nmrih) +* [No One Survived](steamcmd_servers/no_one_survived) * [Onset](steamcmd_servers/onset) * [Open Fortress](steamcmd_servers/open_fortress) * [Operation Harsh Doorstop](steamcmd_servers/operation_harsh_doorstop) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index b338a27c..555183c8 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -118,6 +118,14 @@ This is a collection of servers that use SteamCMD to install. [Mordhau](mordhau) +## No More Room in Hell + +[No More Room in Hell](nmrih) + +## No One Survived + +[No One Survived](no_one_survived) + ## Onset [Onset](onset) diff --git a/game_eggs/steamcmd_servers/no_one_survived/README.md b/game_eggs/steamcmd_servers/no_one_survived/README.md new file mode 100644 index 00000000..ecbe3de6 --- /dev/null +++ b/game_eggs/steamcmd_servers/no_one_survived/README.md @@ -0,0 +1,27 @@ +# No One Survived + +[STEAM](https://store.steampowered.com/app/1963370/No_One_Survived/) + +This is a multiplayer cooperative open world construction survival sandbox game, where you and your friends must find supplies and build shelters in this world. You have to keep an eye on your character's needs state at all times, a bad state is likely to lead to death. + +## Minimum RAM warning + +Minimum required memory to run the server. +2GB is recommended. 4GB+ is preferred + +## Minumim Sorage warning + +Minimum required storage to run the server. +3GB is recommended. + + +## Server Ports + +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Game | 5761 | +| Query | 27015 | + +Both TCP and UDP \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/no_one_survived/egg-no-one-survived.json b/game_eggs/steamcmd_servers/no_one_survived/egg-no-one-survived.json new file mode 100644 index 00000000..9f4f5b7a --- /dev/null +++ b/game_eggs/steamcmd_servers/no_one_survived/egg-no-one-survived.json @@ -0,0 +1,202 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-06-02T20:29:13+02:00", + "name": "No One Survived", + "author": "josdekurk@gmail.com", + "description": "This is a multiplayer cooperative open world construction survival sandbox game, where you and your friends must find supplies and build shelters in this world. You have to keep an eye on your character's needs state at all times, a bad state is likely to lead to death.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + }, + "file_denylist": [], + "startup": "wine WRSHServer.exe -server -log -Port={{SERVER_PORT}} -QueryPort={{QUERY_PORT}}", + "config": { + "files": "{\r\n \"WRSH\/Saved\/Config\/WindowsServer\/Engine.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"URL.Port\": \"{{server.build.default.port}}\",\r\n \"OnlineSubsystemSteam.bUseSteamNetworking\": \"{{server.build.env.STEAM_NETWORKING}}\",\r\n \"OnlineSubsystemSteam.GameServerQueryPort\": \"{{server.build.env.QUERY_PORT}}\"\r\n }\r\n },\r\n \"WRSH\/Saved\/Config\/WindowsServer\/Game.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"ServerSetting.SaveName\": \"{{server.build.env.SERVER_SAVE_NAME}}\",\r\n \"ServerSetting.ServerName\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"ServerSetting.NeedPassword\": \"{{server.build.env.SERVER_NEED_PASSWORD}}\",\r\n \"ServerSetting.Password\": \"{{server.build.env.SERVER_PASSWORD}}\",\r\n \"ServerSetting.MaxPlayers\": \"{{server.build.env.SERVER_PLAYERS}}\",\r\n \"ServerSetting.NumOfZombieSpawn\": \"{{server.build.env.SERVER_NUM_ZOMBIES}}\",\r\n \"ServerSetting.Region\": \"{{server.build.env.SERVER_REGION}}\",\r\n \"ServerSetting.AdminPassword\": \"{{server.build.env.SERVER_ADMIN_PASSWORD}}\"\r\n }\r\n } \r\n}", + "startup": "{\r\n \"done\": \"ServerCreate\"\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# 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\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Windows", + "description": "", + "env_variable": "WINDOWS_INSTALL", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "App id", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "2329680", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:2329680", + "field_type": "text" + }, + { + "name": "Auto update", + "description": "Auto update the server on restart", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "WINEDEBUG", + "description": "", + "env_variable": "WINEDEBUG", + "default_value": "-all", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|", + "field_type": "text" + }, + { + "name": "WINEARCH", + "description": "", + "env_variable": "WINEARCH", + "default_value": "win64", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:win64,win32", + "field_type": "text" + }, + { + "name": "WINEPATH", + "description": "", + "env_variable": "WINEPATH", + "default_value": "\/home\/container", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|", + "field_type": "text" + }, + { + "name": "WINETRICKS_RUN", + "description": "", + "env_variable": "WINETRICKS_RUN", + "default_value": "vcrun2022 corefonts", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|", + "field_type": "text" + }, + { + "name": "Query Port", + "description": "", + "env_variable": "QUERY_PORT", + "default_value": "27015", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|", + "field_type": "text" + }, + { + "name": "Steam Networking", + "description": "Enable or disable steam networking", + "env_variable": "STEAM_NETWORKING", + "default_value": "False", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:False,True", + "field_type": "text" + }, + { + "name": "Server save name", + "description": "The name of the archive, which is also the archive loaded by default.", + "env_variable": "SERVER_SAVE_NAME", + "default_value": "MySave", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + }, + { + "name": "Server name", + "description": "The name of the server", + "env_variable": "SERVER_NAME", + "default_value": "Test", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + }, + { + "name": "Toggle server password", + "description": "True indicates that the server needs a password and False indicates that it does not need a password.", + "env_variable": "SERVER_NEED_PASSWORD", + "default_value": "False", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:False,True", + "field_type": "text" + }, + { + "name": "Server password", + "description": "The password for the server. Only works if 'Toggle server password' is set to True", + "env_variable": "SERVER_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:32", + "field_type": "text" + }, + { + "name": "Server players", + "description": "The maximum amount of players the server can join", + "env_variable": "SERVER_PLAYERS", + "default_value": "50", + "user_viewable": true, + "user_editable": false, + "rules": "required|numeric|between:1,100", + "field_type": "text" + }, + { + "name": "Number of zombies", + "description": "Number of zombies generated by the wave of corpse tide (25-100).", + "env_variable": "SERVER_NUM_ZOMBIES", + "default_value": "50", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|between:25,100", + "field_type": "text" + }, + { + "name": "Server region", + "description": "All = non-registered region, AF = Africa, AS = Asia, EU = Europe, NA = North America, OC = Oceania, and SA = South America.", + "env_variable": "SERVER_REGION", + "default_value": "All", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:All,AF,AS,EU,NA,OC,SA", + "field_type": "text" + }, + { + "name": "Server admin password", + "description": "Server administrator password", + "env_variable": "SERVER_ADMIN_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + } + ] +} \ No newline at end of file From 9f0425cfe087a95722ae362454b4a85ac07a4fa9 Mon Sep 17 00:00:00 2001 From: Pete Navarra Date: Sun, 11 Jun 2023 13:58:27 -0400 Subject: [PATCH 12/53] Updating for V Rising - Secrets of Gloomrot Adjusts egg to allow proper install of updated BepInEx as well as dotnet6 in the container. --- .../v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json b/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json index c87ab7fc..ac48b0dd 100644 --- a/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json +++ b/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json @@ -17,7 +17,7 @@ "file_denylist": [], "startup": "WINEDLLOVERRIDES=\"winhttp=n,b\"; xvfb-run wine .\/VRisingServer.exe -persistentDataPath save-data -address 0.0.0.0", "config": { - "files": "{\r\n \"save-data\/Settings\/ServerHostSettings.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"Name\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"Description\": \"{{server.build.env.DESCRIPTION}}\",\r\n \"Port\": \"{{server.build.default.port}}\",\r\n \"QueryPort\": \"{{server.build.env.QUERY_PORT}}\",\r\n \"MaxConnectedUsers\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"MaxConnectedAdmins\": \"{{server.build.env.MAX_ADMINS}}\",\r\n \"ServerFps\": \"{{server.build.env.FPS}}\",\r\n \"SaveName\": \"{{server.build.env.SAVE_NAME}}\",\r\n \"Password\": \"{{server.build.env.SERVER_PASSWORD}}\",\r\n \"Secure\": \"{{server.build.env.SERVER_SECURE}}\",\r\n \"ListOnMasterServer\": \"{{server.build.env.SERVER_LIST}}\",\r\n \"AutoSaveCount\": \"{{server.build.env.SAVE_COUNT}}\",\r\n \"AutoSaveInterval\": \"{{server.build.env.SAVE_INTERVAL}}\",\r\n \"GameSettingsPreset\": \"{{server.build.env.GAME_SETTINGS_PRESET}}\",\r\n \"AdminOnlyDebugEvents\": \"{{server.build.env.ADMIN_ONLY_DEBUG_EVENTS}}\",\r\n \"DisableDebugEvents\": \"{{server.build.env.DEBUG_EVENTS}}\",\r\n \"Rcon.Enabled\": \"{{server.build.env.RCON}}\",\r\n \"Rcon.Password\": \"{{server.build.env.RCON_PASS}}\",\r\n \"Rcon.Port\": \"{{server.build.env.RCON_PORT}}\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"save-data\/Settings\/ServerHostSettings.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"Name\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"Description\": \"{{server.build.env.DESCRIPTION}}\",\r\n \"Port\": \"{{server.build.default.port}}\",\r\n \"QueryPort\": \"{{server.build.env.QUERY_PORT}}\",\r\n \"MaxConnectedUsers\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"MaxConnectedAdmins\": \"{{server.build.env.MAX_ADMINS}}\",\r\n \"ServerFps\": \"{{server.build.env.FPS}}\",\r\n \"SaveName\": \"{{server.build.env.SAVE_NAME}}\",\r\n \"Password\": \"{{server.build.env.SERVER_PASSWORD}}\",\r\n \"Secure\": \"{{server.build.env.SERVER_SECURE}}\",\r\n \"ListOnSteam\": \"{{server.build.env.SERVER_LIST}}\",\r\n \"ListOnEOS\": \"{{server.build.env.SERVER_LIST}}\",\r\n \"AutoSaveCount\": \"{{server.build.env.SAVE_COUNT}}\",\r\n \"AutoSaveInterval\": \"{{server.build.env.SAVE_INTERVAL}}\",\r\n \"GameSettingsPreset\": \"{{server.build.env.GAME_SETTINGS_PRESET}}\",\r\n \"AdminOnlyDebugEvents\": \"{{server.build.env.ADMIN_ONLY_DEBUG_EVENTS}}\",\r\n \"DisableDebugEvents\": \"{{server.build.env.DEBUG_EVENTS}}\",\r\n \"Rcon.Enabled\": \"{{server.build.env.RCON}}\",\r\n \"Rcon.Password\": \"{{server.build.env.RCON_PASS}}\",\r\n \"Rcon.Port\": \"{{server.build.env.RCON_PORT}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Loaded ServerGameSettings\"\r\n}", "logs": "{}", "stop": "^C" @@ -284,10 +284,10 @@ "name": "WINETRICKS_RUN", "description": "", "env_variable": "WINETRICKS_RUN", - "default_value": "vcrun2019 dotnet48", + "default_value": "vcrun2019 dotnet48 dotnet6", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:20", + "rules": "required|string|max:50", "field_type": "text" }, { From 2b2b8afb9d78bd415f2eb7ce958e1363b99a5fb0 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 13 Jun 2023 17:13:46 -0700 Subject: [PATCH 13/53] [Satisfactory] Update for UE5 Fixes installation and startup errors due to the server's binary name differing between it's UE4 and UE5 versions. --- .../steamcmd_servers/satisfactory/egg-satisfactory.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json b/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json index 8e09ee53..1a1c6eb3 100644 --- a/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json +++ b/game_eggs/steamcmd_servers/satisfactory/egg-satisfactory.json @@ -1,9 +1,10 @@ { - "_comment": "Pterodactyl Satisfactory Egg ~ Red-Thirten, Kubi, matthewp, Software-Noob, and Zarklord ~ 2022-10-13", + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { "version": "PTDL_v2", "update_url": null }, + "exported_at": "2023-06-13T23:59:02+00:00", "name": "Satisfactory", "author": "rehlmgaming@gmail.com", "description": "Satisfactory is a first-person open-world factory building game with a dash of exploration and combat. Play alone or with friends, explore an alien planet, create multi-story factories, and enter conveyor belt heaven!", @@ -14,7 +15,7 @@ "ghcr.io\/parkervcp\/games:source": "ghcr.io\/parkervcp\/games:source" }, "file_denylist": [], - "startup": ".\/Engine\/Binaries\/Linux\/UE4Server-Linux-Shipping FactoryGame ?listen -Port={{SERVER_PORT}} -ServerQueryPort={{QUERY_PORT}} -BeaconPort={{BEACON_PORT}} -multihome=0.0.0.0 $(if {{DISABLE_SEASONAL}}; then echo \"-DisableSeasonalEvents\"; fi)", + "startup": ".\/Engine\/Binaries\/Linux\/*-Linux-Shipping FactoryGame ?listen -Port={{SERVER_PORT}} -ServerQueryPort={{QUERY_PORT}} -BeaconPort={{BEACON_PORT}} -multihome=0.0.0.0 $(if {{DISABLE_SEASONAL}}; then echo \"-DisableSeasonalEvents\"; fi)", "config": { "files": "{\r\n \"FactoryGame\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n },\r\n \"FactoryGame\/Saved\/Config\/LinuxServer\/Engine.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"mNumRotatingAutosaves\": \"mNumRotatingAutosaves={{server.build.env.NUM_AUTOSAVES}}\",\r\n \"bImplicitSend\": \"bImplicitSend={{server.build.env.UPLOAD_CRASH_REPORT}}\",\r\n \"InitialConnectTimeout\": \"InitialConnectTimeout={{server.build.env.INIT_CONNECT_TIMEOUT}}\",\r\n \"ConnectionTimeout\": \"ConnectionTimeout={{server.build.env.CONNECT_TIMEOUT}}\"\r\n }\r\n },\r\n \"FactoryGame\/Saved\/Config\/LinuxServer\/GameUserSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"mFloatValues\": \"mFloatValues=((\\\"FG.AutosaveInterval\\\", {{server.build.env.AUTOSAVE_INTERVAL}}))\",\r\n \"mIntValues\": \"mIntValues=((\\\"FG.NetworkQuality\\\", {{server.build.env.NETWORK_QUALITY}}))\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Engine Initialization\"\r\n}", @@ -23,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\n# File: Pterodactyl Satisfactory Egg - egg-satisfactory.json\r\n# Authors: Red-Thirten, Kubi, matthewp, Software-Noob, and Zarklord\r\n# Date: 2022\/10\/13\r\n# License: MIT License\r\n\r\n## Download and install SteamCMD\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\nmkdir -p \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n# Install game server using SteamCMD\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login anonymous +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) validate +exit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so \/mnt\/server\/.steam\/sdk64\/steamclient.so\r\n\r\n## Satisfactory setup\r\n# Check for successful installation and make the core binary executable.\r\ncd \/mnt\/server\/Engine\/Binaries\/Linux\r\nif [[ ! -f UE4Server-Linux-Shipping ]]; then\r\n echo -e \"\\n\\nSteamCMD failed to install the Satisfactory Dedicated Server!\"\r\n echo -e \"\\tTry reinstalling the server again.\\n\"\r\n exit 1\r\nelse\r\n chmod +x UE4Server-Linux-Shipping\r\nfi\r\n\r\n# Make Config directory and default .ini files (since they are not initially present before first server start)\r\nmkdir -p \/mnt\/server\/FactoryGame\/Saved\/Config\/LinuxServer\/ && cd \"$_\"\r\n# Currently, this will delete & re-create certain .ini files during a re-install if they are already present.\r\n# While undesirable, this is required due to a current Pterodactyl ini config parser limitation.\r\n# When the patch to this limitation hits the production branch, this will be updated.\r\nrm -f Engine.ini Game.ini GameUserSettings.ini\r\n\r\necho -e '\\nCreating default \"Engine.ini\" configuration file...'\r\ncat > Engine.ini << EOF\r\n[\/Script\/FactoryGame.FGSaveSession]\r\nmNumRotatingAutosaves=${NUM_AUTOSAVES}\r\n\r\n[CrashReportClient]\r\nbImplicitSend=${UPLOAD_CRASH_REPORT}\r\n\r\n[\/Script\/OnlineSubsystemUtils.IpNetDriver]\r\nInitialConnectTimeout=${INIT_CONNECT_TIMEOUT}\r\nConnectionTimeout=${CONNECT_TIMEOUT}\r\nEOF\r\n\r\necho -e 'Creating default \"Game.ini\" configuration file...'\r\ncat > Game.ini << EOF\r\n[\/Script\/Engine.GameSession]\r\nMaxPlayers=${MAX_PLAYERS}\r\nEOF\r\n\r\necho -e 'Creating default \"GameUserSettings.ini\" configuration file...'\r\ncat > GameUserSettings.ini << EOF\r\n[\/Script\/FactoryGame.FGGameUserSettings]\r\nmIntValues=((\"FG.NetworkQuality\", ${NETWORK_QUALITY}))\r\nmFloatValues=((\"FG.AutosaveInterval\", ${AUTOSAVE_INTERVAL}))\r\nmAutoDetectSettingsHandled=False\r\nmPrimaryLanguage=\r\nCurrentFGGameUserSettingsVersion=0\r\nbUseVSync=False\r\nbUseDynamicResolution=False\r\nResolutionSizeX=1280\r\nResolutionSizeY=720\r\nLastUserConfirmedResolutionSizeX=1280\r\nLastUserConfirmedResolutionSizeY=720\r\nWindowPosX=-1\r\nWindowPosY=-1\r\nFullscreenMode=1\r\nLastConfirmedFullscreenMode=1\r\nPreferredFullscreenMode=1\r\nVersion=5\r\nAudioQualityLevel=0\r\nLastConfirmedAudioQualityLevel=0\r\nFrameRateLimit=0.000000\r\nDesiredScreenWidth=1280\r\nDesiredScreenHeight=720\r\nLastUserConfirmedDesiredScreenWidth=1280\r\nLastUserConfirmedDesiredScreenHeight=720\r\nLastRecommendedScreenWidth=-1.000000\r\nLastRecommendedScreenHeight=-1.000000\r\nLastCPUBenchmarkResult=-1.000000\r\nLastGPUBenchmarkResult=-1.000000\r\nLastGPUBenchmarkMultiplier=1.000000\r\nbUseHDRDisplayOutput=False\r\nHDRDisplayOutputNits=1000\r\n\r\n[ScalabilityGroups]\r\nsg.ResolutionQuality=100.000000\r\nsg.ViewDistanceQuality=3\r\nsg.AntiAliasingQuality=3\r\nsg.ShadowQuality=3\r\nsg.PostProcessQuality=3\r\nsg.TextureQuality=3\r\nsg.EffectsQuality=3\r\nsg.FoliageQuality=3\r\nsg.ShadingQuality=3\r\n\r\n[\/Script\/Engine.GameUserSettings]\r\nbUseDesiredScreenHeight=False\r\n\r\n\r\nEOF\r\n\r\necho -e \"\\nSatisfactory Dedicated Server successfully installed!\\n\"", + "script": "#!\/bin\/bash\r\n\r\n# File: Pterodactyl Satisfactory Egg - egg-satisfactory.json\r\n# Authors: Red-Thirten, Kubi, matthewp, Software-Noob, and Zarklord\r\n# Date: 2023\/06\/13\r\n# License: MIT License\r\n\r\n## Download and install SteamCMD\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\nmkdir -p \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n# Install game server using SteamCMD\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login anonymous +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) validate +exit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so \/mnt\/server\/.steam\/sdk64\/steamclient.so\r\n\r\n## Satisfactory setup\r\n# Check for successful installation and make the server binary executable.\r\n# Use `find` to see if a valid server binary exists using a wildcard, because\r\n# the binary name can differ between UE4 and UE5.\r\ncd \/mnt\/server\/Engine\/Binaries\/Linux\r\ncount=$(find . -maxdepth 1 -name '*-Linux-Shipping' -type f -executable | wc -l)\r\nif [[ $count -eq 0 ]]; then\r\n echo -e \"\\n\\nSteamCMD failed to install the Satisfactory Dedicated Server!\"\r\n echo -e \"\\tTry reinstalling the server again.\\n\"\r\n exit 1\r\nelse\r\n chmod +x *-Linux-Shipping\r\nfi\r\n\r\n# Make Config directory and default .ini files (since they are not initially present before first server start)\r\nmkdir -p \/mnt\/server\/FactoryGame\/Saved\/Config\/LinuxServer\/ && cd \"$_\"\r\n# Currently, this will delete & re-create certain .ini files during a re-install if they are already present.\r\n# While undesirable, this is required due to a current Pterodactyl ini config parser limitation.\r\n# When the patch to this limitation hits the production branch, this will be updated.\r\nrm -f Engine.ini Game.ini GameUserSettings.ini\r\n\r\necho -e '\\nCreating default \"Engine.ini\" configuration file...'\r\ncat > Engine.ini << EOF\r\n[\/Script\/FactoryGame.FGSaveSession]\r\nmNumRotatingAutosaves=${NUM_AUTOSAVES}\r\n\r\n[CrashReportClient]\r\nbImplicitSend=${UPLOAD_CRASH_REPORT}\r\n\r\n[\/Script\/OnlineSubsystemUtils.IpNetDriver]\r\nInitialConnectTimeout=${INIT_CONNECT_TIMEOUT}\r\nConnectionTimeout=${CONNECT_TIMEOUT}\r\nEOF\r\n\r\necho -e 'Creating default \"Game.ini\" configuration file...'\r\ncat > Game.ini << EOF\r\n[\/Script\/Engine.GameSession]\r\nMaxPlayers=${MAX_PLAYERS}\r\nEOF\r\n\r\necho -e 'Creating default \"GameUserSettings.ini\" configuration file...'\r\ncat > GameUserSettings.ini << EOF\r\n[\/Script\/FactoryGame.FGGameUserSettings]\r\nmIntValues=((\"FG.NetworkQuality\", ${NETWORK_QUALITY}))\r\nmFloatValues=((\"FG.AutosaveInterval\", ${AUTOSAVE_INTERVAL}))\r\nmAutoDetectSettingsHandled=False\r\nmPrimaryLanguage=\r\nCurrentFGGameUserSettingsVersion=0\r\nbUseVSync=False\r\nbUseDynamicResolution=False\r\nResolutionSizeX=1280\r\nResolutionSizeY=720\r\nLastUserConfirmedResolutionSizeX=1280\r\nLastUserConfirmedResolutionSizeY=720\r\nWindowPosX=-1\r\nWindowPosY=-1\r\nFullscreenMode=1\r\nLastConfirmedFullscreenMode=1\r\nPreferredFullscreenMode=1\r\nVersion=5\r\nAudioQualityLevel=0\r\nLastConfirmedAudioQualityLevel=0\r\nFrameRateLimit=0.000000\r\nDesiredScreenWidth=1280\r\nDesiredScreenHeight=720\r\nLastUserConfirmedDesiredScreenWidth=1280\r\nLastUserConfirmedDesiredScreenHeight=720\r\nLastRecommendedScreenWidth=-1.000000\r\nLastRecommendedScreenHeight=-1.000000\r\nLastCPUBenchmarkResult=-1.000000\r\nLastGPUBenchmarkResult=-1.000000\r\nLastGPUBenchmarkMultiplier=1.000000\r\nbUseHDRDisplayOutput=False\r\nHDRDisplayOutputNits=1000\r\n\r\n[ScalabilityGroups]\r\nsg.ResolutionQuality=100.000000\r\nsg.ViewDistanceQuality=3\r\nsg.AntiAliasingQuality=3\r\nsg.ShadowQuality=3\r\nsg.PostProcessQuality=3\r\nsg.TextureQuality=3\r\nsg.EffectsQuality=3\r\nsg.FoliageQuality=3\r\nsg.ShadingQuality=3\r\n\r\n[\/Script\/Engine.GameUserSettings]\r\nbUseDesiredScreenHeight=False\r\n\r\n\r\nEOF\r\n\r\necho -e \"\\nSatisfactory Dedicated Server successfully installed!\\n\"", "container": "ghcr.io\/pterodactyl\/installers:debian", "entrypoint": "\/bin\/bash" } @@ -170,4 +171,4 @@ "field_type": "text" } ] -} +} \ No newline at end of file From 314ca5ad1a83bb0547bd67685638940fe118ca06 Mon Sep 17 00:00:00 2001 From: Pete Navarra Date: Thu, 15 Jun 2023 17:55:47 -0400 Subject: [PATCH 14/53] Exported Egg to satisfy folks. --- .../v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json b/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json index ac48b0dd..f4665968 100644 --- a/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json +++ b/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-15T14:46:32+01:00", + "exported_at": "2023-06-15T17:53:50-04:00", "name": "V Rising BepInEx", "author": "rehlmgaming@gmail.com", "description": "Awaken as a vampire. Hunt for blood in nearby settlements to regain your strength and evade the scorching sun to survive. Raise your castle and thrive in an ever-changing open world full of mystery. Gain allies online and conquer the land of the living.", From fbbb488849b0a94fba084ac4c25f3bf0c289b8f3 Mon Sep 17 00:00:00 2001 From: Bad <87938689+yesBad@users.noreply.github.com> Date: Sat, 17 Jun 2023 16:30:00 +0300 Subject: [PATCH 15/53] Add Custom Map URL Not sure if this is exactly how it's supposed to be done, but it works I believe. --- .../rust/rust_autowipe/egg-rust-autowipe.json | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json b/game_eggs/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json index eaa55f52..46fb42a3 100644 --- a/game_eggs/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json +++ b/game_eggs/steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-03T13:00:17+08:00", + "exported_at": "2023-06-17T16:29:22+03:00", "name": "Rust Autowipe", "author": "support@pterodactyl.io", "description": "The only aim in Rust is to survive. To do this you will need to overcome struggles such as hunger, thirst and cold. Build a fire. Build a shelter. Kill animals for meat. Protect yourself from other players, and kill them for meat. Create alliances with other players and form a town. Do whatever it takes to survive.", @@ -15,7 +15,7 @@ "ghcr.io\/pterodactyl\/games:rust": "ghcr.io\/pterodactyl\/games:rust" }, "file_denylist": [], - "startup": "\".\/RustDedicated -batchmode +server.port {{SERVER_PORT}} +server.queryport {{QUERY_PORT}} +server.identity \"rust\" +rcon.ip 0.0.0.0 +rcon.port {{RCON_PORT}} +rcon.web true +server.hostname \\\"{{HOSTNAME}}\\\" +server.level \\\"{{LEVEL}}\\\" +server.description \\\"{{DESCRIPTION}}\\\" +server.url \\\"{{SERVER_URL}}\\\" +server.headerimage \\\"{{SERVER_IMG}}\\\" +server.worldsize \\\"{{WORLD_SIZE}}\\\" +server.seed \\\"$( if [ -f seed.txt ] && [[ ${WORLD_SEED} == \"0\" ]]; then printf %s $(cat seed.txt); else printf %s '${WORLD_SEED}'; fi )\\\" +server.maxplayers {{MAX_PLAYERS}} +rcon.password \\\"{{RCON_PASS}}\\\" +app.port {{APP_PORT}} +server.saveinterval {{SAVEINTERVAL}} {{ADDITIONAL_ARGS}}\"", + "startup": "\".\/RustDedicated -batchmode +server.port {{SERVER_PORT}} +server.queryport {{QUERY_PORT}} +server.identity \"rust\" +rcon.ip 0.0.0.0 +rcon.port {{RCON_PORT}} +rcon.web true +server.hostname \\\"{{HOSTNAME}}\\\" +server.level \\\"{{LEVEL}}\\\" +server.description \\\"{{DESCRIPTION}}\\\" +server.url \\\"{{SERVER_URL}}\\\" +server.headerimage \\\"{{SERVER_IMG}}\\\" +server.maxplayers {{MAX_PLAYERS}} +rcon.password \\\"{{RCON_PASS}}\\\" +app.port {{APP_PORT}} +server.saveinterval {{SAVEINTERVAL}} $( [ -z ${MAP_URL} ] && printf %s \"+server.worldsize \\\"{{WORLD_SIZE}}\\\" +server.seed \\\"$( if [ -f seed.txt ] && [[ ${WORLD_SEED} == \"0\" ]]; then printf %s $(cat seed.txt); else printf %s ${WORLD_SEED}; fi )\\\"\"|| printf %s \"+server.levelurl {{MAP_URL}}\" ) {{ADDITIONAL_ARGS}}\"", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Server startup complete\"\r\n}", @@ -209,6 +209,16 @@ "user_editable": true, "rules": "required|integer", "field_type": "text" + }, + { + "name": "Custom Map URL", + "description": "Overwrites the map with the one from the direct download URL. Invalid URLs will cause the server to crash.", + "env_variable": "MAP_URL", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|url", + "field_type": "text" } ] -} \ No newline at end of file +} From 2c07de84bd678a019b4a6393bb4b9cc2107a2c94 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 18 Jun 2023 11:34:58 +0200 Subject: [PATCH 16/53] Update ALT:V --- game_eggs/gta/altv/egg-alt--v.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/game_eggs/gta/altv/egg-alt--v.json b/game_eggs/gta/altv/egg-alt--v.json index ef127936..ba43f080 100644 --- a/game_eggs/gta/altv/egg-alt--v.json +++ b/game_eggs/gta/altv/egg-alt--v.json @@ -4,26 +4,26 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-07-20T17:34:40+02:00", + "exported_at": "2023-06-18T11:34:24+02:00", "name": "alt:V", "author": "parker@parkervcp.com", "description": "alt:V Multiplayer a third-party multiplayer modification for Grand Theft Auto: V", "features": null, "docker_images": { - "ghcr.io\/parkervcp\/games:altv": "ghcr.io\/parkervcp\/games:altv" + "ALT:V": "ghcr.io\/parkervcp\/games:altv" }, "file_denylist": [], "startup": ".\/altv-server", "config": { - "files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"host:\": \"host: 0.0.0.0\",\r\n \"port:\": \"port: {{server.build.default.port}}\",\r\n \"password:\": \"password: {{server.build.env.PASSWORD}}\",\r\n \"description:\": \"description: {{server.build.env.SERVER_DESC}}\"\r\n }\r\n },\r\n \"update.cfg\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"branch\": \"{{server.build.env.BUILD}}\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"server.toml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"host:\": \"host: 0.0.0.0\",\r\n \"port:\": \"port: {{server.build.default.port}}\",\r\n \"password:\": \"password: {{server.build.env.PASSWORD}}\",\r\n \"description:\": \"description: {{server.build.env.SERVER_DESC}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Server started\"\r\n}", "logs": "{}", "stop": "quit" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n#\r\n# Script Name: update.sh\r\n#\r\n# Author: Lhoerion\r\n#\r\n# Description: The following script compares SHA-1 hashes of remote and local alt:V files. If local file is missing or outdated, script automatically downloads it to script directory.\r\n# Old files are preserved as *.old. Script also keep track of current branch and build. Server start script gets created if missing.\r\n#\r\n# Run Information: This script is run manually.\r\n# Dependencies: coreutils, wget, >=jq_1.4, pcregrep\r\n#\r\n\r\napt update\r\napt install -y libatomic1 zip unzip jq curl wget libc-bin coreutils pcregrep\r\ncd \/mnt\/server\r\n\r\n\r\n#!\/bin\/bash\r\n#\r\n# Script Name: update.sh\r\n#\r\n# Author: Lhoerion\r\n#\r\n# Description: The following script compares SHA-1 hashes of remote and local alt:V files. If local file is missing or outdated, script automatically downloads it to script directory.\r\n# Old files are preserved as *.old. Script also keep track of current branch and build. Server start script gets created if missing.\r\n#\r\n# Run Information: This script is run manually.\r\n# Dependencies: coreutils, wget, >=jq_1.4, pcregrep\r\n#\r\n\r\nnoBackup=false\r\nnoLogFile=false\r\ndryRun=false\r\nsilent=false\r\nfor arg in \"$@\"\r\ndo\r\n if [ $arg = '--no-logfile' ]; then\r\n noLogFile=true\r\n elif [ $arg = '--no-backup' ]; then\r\n noBackup=true\r\n elif [ $arg = '--dry-run' ]; then\r\n dryRun=true\r\n elif [ $arg = '--silent' ]; then\r\n silent=true\r\n fi\r\ndone\r\nfiles=()\r\nprintAndLog() {\r\n if [[ \"$silent\" == false ]]; then\r\n outFd=1\r\n else\r\n exec {outFd}>\/dev\/null\r\n fi\r\n if [ \"$2\" = 'ERR' ]; then\r\n printf \"\\e[91m[$(date +%T)][Error] $1\\e[39m\" |& ([ $noLogFile != true ] && tee -a 'update.log' >& $outFd || cat)\r\n elif [ \"$2\" = 'WARN' ]; then\r\n printf \"\\e[93m[$(date +%T)][Warning] $1\\e[39m\" |& ([ $noLogFile != true ] && tee -a 'update.log' >& $outFd || cat)\r\n elif [ \"$2\" = 'APP' ]; then\r\n printf \"$1\" |& ([ $noLogFile != true ] && tee -a 'update.log' >& $outFd || cat)\r\n else\r\n printf \"[$(date +%T)] $1\" |& ([ $noLogFile != true ] && tee -a 'update.log' >& $outFd || cat)\r\n fi\r\n}\r\nsemVerCmp() {\r\n declare -r \"semVerRegex=^(0|[1-9]\\d*)(?:\\.(0|[1-9]\\d*))?\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$\"\r\n local matchA=(${1##v})\r\n local matchB=(${2##v})\r\n for i in {1..5}\r\n do\r\n matchA+=$(`echo ${1##v} | pcregrep \"-o$i\" $semVerRegex`)\r\n matchB+=$(`echo ${2##v} | pcregrep \"-o$i\" $semVerRegex`)\r\n done\r\n if [ ${1##v} == ${2##v} ]; then\r\n echo 0 && return 0\r\n fi\r\n if [ \\( -z $matchA[4] \\) -a \\( ! -z $matchB[4] \\) ]; then\r\n echo 1 && return 0\r\n elif [ \\( ! -z $matchA[4] \\) -a \\( -z $matchB[4] \\) ]; then\r\n echo -1 && return 0\r\n fi\r\n local i=0\r\n for a in ${matchA[@]}\r\n do\r\n local b=\"${matchB[$i]}\"\r\n if [ \\( $i -eq 2 \\) -a \\( \\( -z $a \\) -o \\( -z $b \\) \\) ]; then\r\n continue\r\n fi\r\n if [[ $a > $b ]]; then\r\n echo 1 && return 0\r\n elif [[ $a < $b ]]; then\r\n echo -1 && return 0\r\n fi\r\n i=$((i + 1))\r\n done\r\n echo 0 && return 0\r\n}\r\ngetFileHash() {\r\n local file=(${1##v})\r\n sha1sum \"$file\" | awk '{print $1}'\r\n}\r\nfetchUpdateData() {\r\n updateData=$(curl -s \"https:\/\/cdn.altv.mp\/server\/$localBranch\/x64_linux\/update.json\" -A 'AltPublicAgent')\r\n echo $updateData | jq -e '.' >\/dev\/null 2>&1\r\n if [ $? -ne 0 ]; then\r\n printAndLog \"Failed to check for update, try again later\\n\" 'ERR'\r\n exit 1\r\n fi\r\n\r\n str='. | to_entries | map(if .key==\"hashList\" then {\"key\":.key} + {\"value\":(.value | to_entries | map(. + {\"value\":[.value, \"%s\"]}) | from_entries)} else . end) | from_entries'\r\n \r\n local updateTmp=($(mktemp '\/tmp\/update.sh.XXX'))\r\n\r\n echo '{}' > ${updateTmp[0]}\r\n echo $updateData | jq -c \"$(printf \"$str\" 'server')\" > ${updateTmp[0]}\r\n\r\n updateData=$(curl -s \"https:\/\/cdn.altv.mp\/data\/$localBranch\/update.json\" -A 'AltPublicAgent')\r\n if [ $? -ne 0 ]; then\r\n printAndLog \"Failed to check for update, try again later\\n\" 'ERR'\r\n exit 1\r\n fi\r\n\r\n updateTmp+=($(mktemp '\/tmp\/update.sh.XXX'))\r\n echo '{}' > \"${updateTmp[${#updateTmp[@]} - 1]}\"\r\n echo $updateData | jq -c \"$(printf \"$str\" 'data')\" > \"${updateTmp[${#updateTmp[@]} - 1]}\"\r\n\r\n for (( i=0; i < ${#modules[@]}; i++ ))\r\n do\r\n if [[ \"${modules[$i]}\" == 'csharp-module' ]]; then\r\n modules[$i]='coreclr-module'\r\n fi\r\n local moduleName=${modules[$i]}\r\n updateData=$(curl -s \"https:\/\/cdn.altv.mp\/$moduleName\/$localBranch\/x64_linux\/update.json\" -A 'AltPublicAgent')\r\n echo $updateData | jq -e '.' >\/dev\/null 2>&1\r\n if [ $? -ne 0 ]; then\r\n printAndLog \"Failed to check for $moduleName update\\n\" 'WARN'\r\n else\r\n updateTmp+=($(mktemp '\/tmp\/update.sh.XXX'))\r\n echo '{}' > \"${updateTmp[${#updateTmp[@]} - 1]}\"\r\n echo $updateData | jq -c \"$(printf \"$str\" \"$moduleName\")\" > \"${updateTmp[${#updateTmp[@]} - 1]}\"\r\n fi\r\n done\r\n updateData=$(jq -s '.[0].latestBuildNumber as $b | .[0].version as $c | reduce .[] as $x ({}; . * $x) | .latestBuildNumber=$b | .version=$c' ${updateTmp[@]})\r\n remoteBuild=\"$(echo \"$updateData\" | jq -r '.latestBuildNumber')\"\r\n [[ $remoteBuild -eq -1 ]] && remoteBuild=$(echo \"$updateData\" | jq -r '.version')\r\n}\r\nvalidateFiles() {\r\n files=()\r\n for file in $(echo $updateData | jq -r '.hashList | keys[]')\r\n do\r\n if [[ ! -e \"$file\" || (\"$(printf \"%0.s0\" {1..40})\" != \"$(echo \"$updateData\" | jq -r \".hashList.\\\"$file\\\"[0]\")\" && $(getFileHash \"$file\") != \"$(echo \"$updateData\" | jq -r \".hashList.\\\"$file\\\"[0]\")\") ]]; then\r\n files+=(\"$file\")\r\n fi\r\n done\r\n if [ ! -e 'server.cfg' ]; then\r\n printAndLog \"Server file server.cfg not found, creating one . . . \"\r\n if [[ \"$dryRun\" == false ]]; then\r\n printf 'name: \"alt:V Server\"\\nhost: 0.0.0.0\\nport: 7788\\nplayers: 128\\n#password: ultra-password\\nannounce: false\\n#token: YOUR_TOKEN\\ngamemode: Freeroam\\nwebsite: example.com\\nlanguage: en\\ndescription: \"alt:V Sample Server\"\\nmodules: [\\n \\n]\\nresources: [\\n \\n]\\n' > 'server.cfg' && printAndLog 'done\\n' 'APP' || printAndLog 'failed\\n' 'APP'\r\n else\r\n printAndLog 'done\\n' 'APP'\r\n fi\r\n fi\r\n if [[ ! $localBuild =~ ^[0-9]+$ || $localBuild -ge 1232 ]]; then\r\n local nodeExist=$([ -e 'libnode.so.72' ] && echo true || echo false)\r\n local moduleExist=$([ -e 'modules\/libnode-module.so' ] && echo true || echo false)\r\n if [[ \"$nodeExist\" == true || \"$moduleExist\" == true ]]; then\r\n printAndLog \"Found old node-module files, removing . . . \"\r\n if [[ \"$dryRun\" == false ]]; then\r\n local result1=true\r\n local result2=true\r\n if [[ \"$nodeExist\" == true ]]; then\r\n rm -f 'libnode.so.72'\r\n result1=$([[ \"$?\" -eq 0 ]] && echo true || echo false)\r\n fi\r\n if [[ \"$moduleExist\" == true ]]; then\r\n rm -f 'modules\/libnode-module.so'\r\n result2=$([[ \"$?\" -eq 0 ]] && echo true || echo false)\r\n fi\r\n if [[ \"$result1\" == true && \"$result2\" == true ]]; then\r\n printAndLog 'done\\n' 'APP'\r\n else\r\n printAndLog 'failed\\n' 'APP'\r\n fi\r\n else\r\n printAndLog 'done\\n' 'APP'\r\n fi\r\n fi\r\n fi\r\n if [ $localBuild != $remoteBuild ]; then\r\n printAndLog \"Server files update is available\\n\"\r\n elif [ \"${#files[@]}\" -ne 0 ]; then\r\n printAndLog \"Server files are invalidated\/corrupted, ${#files[@]} in total\\n\"\r\n else\r\n printAndLog \"Server files are up-to-date, no action required\\n\"\r\n fi\r\n\r\n if [[ \"$dryRun\" == false ]]; then\r\n localBuild=$remoteBuild\r\n modulesTemp=\"\"\r\n for (( i=0; i < ${#modules[@]}; i++ ))\r\n do\r\n modulesTemp+=\"\\\"${modules[$i]}\\\"\"\r\n if [ $(($i + 1)) -ne ${#modules[@]} ]; then\r\n modulesTemp+=','\r\n fi\r\n done\r\n if [[ $localBuild =~ ^[0-9]+$ ]]; then\r\n printf '{\"branch\":\"%s\",\"build\":%d,\"modules\":[%s]}' $localBranch $localBuild $modulesTemp | jq '.' > 'update.cfg'\r\n else\r\n printf '{\"branch\":\"%s\",\"build\":\"%s\",\"modules\":[%s]}' $localBranch $localBuild $modulesTemp | jq '.' > 'update.cfg'\r\n fi\r\n fi\r\n}\r\ndownloadFiles() {\r\n if [ \"${#files[@]}\" -eq 0 ]; then\r\n return\r\n fi\r\n for file in ${files[@]}\r\n do\r\n dlType=\"$(echo \"$updateData\" | jq -r \".hashList.\\\"$file\\\"[1]\")\"\r\n platform=$([ \"$dlType\" == \"data\" ] && echo \"\" || echo \"x64_linux\/\")\r\n updateData=\"$(echo $updateData | jq -r '.hashList.\"altv-server\"[1] = \"server\"')\"\r\n outDir=\"$(dirname $file)\"\r\n printAndLog \"Downloading file $file . . . \"\r\n if [[ \"$dryRun\" == false ]]; then\r\n if [[ \"$noBackup\" == false && -e \"$file\" ]]; then\r\n mv \"$file\" \"$file.old\"\r\n fi\r\n if [[ ! -e \"$outDir\/\" ]]; then\r\n mkdir -p \"$outDir\/\"\r\n fi\r\n\r\n wget \"https:\/\/cdn.altv.mp\/$dlType\/$localBranch\/$platform${file}?build=$localBuild\" -U 'AltPublicAgent' -O \"$file\" -N -q && printAndLog 'done\\n' 'APP' || printAndLog 'failed\\n' 'APP'\r\n if [ ! -e \"$file\" ]; then\r\n continue\r\n fi\r\n if [ -e \"$file.old\" ]; then\r\n chmod --reference=\"$file.old\" \"$file\" || printAndLog \"Failed to copy chmod to file $file\\n\" 'ERR'\r\n chmod -x \"$file.old\" || printAndLog \"Failed to remove execution permissions from file $file.old\\n\" 'ERR'\r\n else\r\n chmod +x \"$file\" || printAndLog \"Failed to add execution permissions to file $file\\n\" 'ERR'\r\n fi\r\n else\r\n printAndLog 'done\\n' 'APP'\r\n fi\r\n done\r\n validateFiles\r\n}\r\n\r\nif [ $noLogFile != true ]; then\r\n truncate -s 0 'update.log'\r\nfi\r\nif [[ ( \"$dryRun\" == false ) && ( ! -e 'update.cfg' ) ]]; then\r\n printf '{\"branch\":\"release\",\"modules\":[\"js-module\"]}' | jq '.' > 'update.cfg'\r\nfi\r\nupdateCfg=$([[ -e 'update.cfg' ]] && cat 'update.cfg' || printf '{\"branch\":\"release\",\"modules\":[\"js-module\"]}' | jq '.')\r\nlocalBranch=$(echo \"$updateCfg\" | jq -r '.branch')\r\n[[ ! -n \"$localBranch\" || \"$localBranch\" != 'release' && \"$localBranch\" != 'rc' && \"$localBranch\" != 'dev' ]] && localBranch='release'\r\nmodules=($(echo \"$updateCfg\" | jq -r '.modules \/\/ \"\"' | tr -d '[],\"'))\r\n[[ ! -n \"$modules\" ]] && modules=('js-module')\r\nfetchUpdateData\r\nlocalBuild=\"$(echo \"$updateCfg\" | jq -r 'if .build == null then empty else .build end')\"\r\n[[ -z $localBuild || $localBuild == \"-1\" ]] && localBuild=$remoteBuild\r\nprintAndLog \"Current version: $localBuild\\n\"\r\nprintAndLog \"Latest version: $remoteBuild\\n\"\r\nvalidateFiles\r\ndownloadFiles\r\n\r\nchmod +x .\/altv-server\r\n\r\ncd \/mnt\/server\/data\r\n\r\nif [ -f \"vehmodels.bin\" ];\r\nthen\r\n echo \"vehmodels.bin found.\"\r\nelse\r\n echo \"vehmodels.bin has not been found, downloading it\"\r\n wget https:\/\/cdn.altv.mp\/data\/${BUILD}\/data\/vehmodels.bin\r\nfi\r\n\r\nif [ -f \"vehmods.bin\" ];\r\nthen\r\n echo \"vehmods.bin found.\"\r\nelse\r\n echo \"vehmods.bin has not been found, downloading it\"\r\n wget https:\/\/cdn.altv.mp\/data\/${BUILD}\/data\/vehmods.bin\r\nfi\r\n\r\nif [ -f \"clothes.bin\" ];\r\nthen\r\n echo \"clothes.bin found.\"\r\nelse\r\n echo \"clothes.bin has not been found, downloading it\"\r\n wget wget https:\/\/cdn.altv.mp\/data\/${BUILD}\/data\/clothes.bin\r\nfi\r\n\r\ncd \/mnt\/server\r\necho -e \"install complete\"", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\n#\r\n\r\napt update\r\napt install -y wget jq curl \r\n\r\ncd \/mnt\/server\r\nNEWVERSION=$(curl -sSL https:\/\/cdn.alt-mp.com\/server\/${BUILD}\/x64_linux\/update.json | jq -r .version)\r\n\r\n\r\nif [ -f \"\/mnt\/server\/altv-server\" ]; then\r\n CURRENTVERSION=$(cat update.json | jq -r .version)\r\n if [[ \"${CURRENTVERSION}\" == \"${NEWVERSION}\" ]]; then\r\n echo \"No update found\"\r\n exit 0\r\n fi\r\n echo \"Backing up version ${CURRENTVERSION}\"\r\n mkdir -p \/mnt\/server\/backup\/${CURRENTVERSION}\/data\r\n mv altv-server \/mnt\/server\/backup\/${CURRENTVERSION}\/\r\n cd \/mnt\/server\/data\r\n mv clothes.bin \/mnt\/server\/backup\/${CURRENTVERSION}\/data\r\n mv vehmodels.bin \/mnt\/server\/backup\/${CURRENTVERSION}\/data\r\n mv vehmods.bin \/mnt\/server\/backup\/${CURRENTVERSION}\/data\r\n mv pedmodels.bin \/mnt\/server\/backup\/${CURRENTVERSION}\/data\r\n mv weaponmodels.bin \/mnt\/server\/backup\/${CURRENTVERSION}\/data\r\n mv rpfdata.bin \/mnt\/server\/backup\/${CURRENTVERSION}\/data\r\n rm \/mnt\/server\/update.json\r\nfi\r\n\r\n\r\ncd \/mnt\/server\r\n\r\n\r\necho \"Installing version: ${NEWVERSION}\"\r\nwget -q https:\/\/cdn.alt-mp.com\/server\/${BUILD}\/x64_linux\/altv-server\r\nwget -q https:\/\/cdn.alt-mp.com\/server\/${BUILD}\/x64_linux\/update.json\r\nchmod +x .\/altv-server\r\n\r\n\r\nmkdir -p \/mnt\/server\/data\r\ncd \/mnt\/server\/data\r\n\r\nwget -q https:\/\/cdn.alt-mp.com\/data\/${BUILD}\/data\/vehmodels.bin\r\nwget -q https:\/\/cdn.alt-mp.com\/data\/${BUILD}\/data\/vehmods.bin\r\nwget -q https:\/\/cdn.alt-mp.com\/data\/${BUILD}\/data\/clothes.bin\r\nwget -q https:\/\/cdn.alt-mp.com\/data\/${BUILD}\/data\/pedmodels.bin\r\nwget -q https:\/\/cdn.alt-mp.com\/data\/${BUILD}\/data\/weaponmodels.bin\r\nwget -q https:\/\/cdn.alt-mp.com\/data\/${BUILD}\/data\/rpfdata.bin\r\n\r\n\r\n\r\n\r\ncd \/mnt\/server\r\nif [ ! -f \"\/mnt\/server\/server.toml\" ]; then\r\ncat << EOF >> server.toml\r\nname = 'alt:V Server'\r\nhost = '0.0.0.0'\r\nport = ${SERVER_PORT}\r\nplayers = 128\r\npassword = '${PASSWORD}'\r\nannounce = false\r\ntoken = 'YOUR_TOKEN'\r\ngamemode = 'Freeroam'\r\nwebsite = 'example.com'\r\nlanguage = 'en'\r\ndescription = '${SERVER_DESC}'\r\nmodules = []\r\nresources = []\r\nEOF\r\nfi\r\n\r\nmkdir -p resources\/\r\n\r\necho -e \"install complete\"", + "container": "debian:bullseye-slim", "entrypoint": "bash" } }, @@ -45,7 +45,7 @@ "default_value": "release", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20", + "rules": "required|string|in:release,rc,dev", "field_type": "text" }, { From 5a27a729cad2c1c76dd85a33897d7c6012ff5608 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 18 Jun 2023 11:47:54 +0200 Subject: [PATCH 17/53] keep allowlist.json on reinstall --- .../bedrock/egg-vanilla-bedrock-ARM64.json | 8 ++--- .../bedrock/bedrock/egg-vanilla-bedrock.json | 34 +++++++++++-------- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/game_eggs/minecraft/bedrock/bedrock/egg-vanilla-bedrock-ARM64.json b/game_eggs/minecraft/bedrock/bedrock/egg-vanilla-bedrock-ARM64.json index 30a6633f..791753b3 100644 --- a/game_eggs/minecraft/bedrock/bedrock/egg-vanilla-bedrock-ARM64.json +++ b/game_eggs/minecraft/bedrock/bedrock/egg-vanilla-bedrock-ARM64.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-07-06T17:14:36+02:00", + "exported_at": "2023-06-18T11:46:24+02:00", "name": "Vanilla Bedrock ARM64", "author": "josdekurk@gmail.com", "description": "Bedrock Edition (also known as the Bedrock Version, Bedrock Codebase, Bedrock Engine or just Bedrock) refers to the multi-platform family of editions of Minecraft developed by Mojang AB, Microsoft Studios, 4J Studios, and SkyBox Labs. Prior to this term, as the engine originated with Pocket Edition, this entire product family was referred to as \"Pocket Edition\", \"MCPE\", or \"Pocket\/Windows 10 Edition\".", @@ -24,8 +24,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y zip unzip wget curl\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\n# Minecraft CDN Akamai blocks script user-agents\r\nRANDVERSION=$(echo $((1 + $RANDOM % 4000)))\r\n\r\nif [ -z \"${BEDROCK_VERSION}\" ] || [ \"${BEDROCK_VERSION}\" == \"latest\" ]; then\r\n echo -e \"\\n Downloading latest Bedrock server\"\r\n curl -L -A \"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/90.0.$RANDVERSION.212 Safari\/537.36\" -H \"Accept-Language: en\" -H \"Accept-Encoding: gzip, deflate\" -o versions.html.gz https:\/\/www.minecraft.net\/en-us\/download\/server\/bedrock\r\n DOWNLOAD_URL=$(zgrep -o 'https:\/\/minecraft.azureedge.net\/bin-linux\/[^\"]*' versions.html.gz)\r\nelse \r\n echo -e \"\\n Downloading ${BEDROCK_VERSION} Bedrock server\"\r\n DOWNLOAD_URL=https:\/\/minecraft.azureedge.net\/bin-linux\/bedrock-server-$BEDROCK_VERSION.zip\r\nfi\r\n\r\nDOWNLOAD_FILE=$(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5) # Retrieve archive name\r\n\r\necho -e \"backing up config files\"\r\nrm *.bak versions.html.gz\r\ncp server.properties server.properties.bak\r\ncp permissions.json permissions.json.bak\r\ncp whitelist.json whitelist.json.bak\r\n\r\necho -e \"Downloading files from: $DOWNLOAD_URL\"\r\n\r\ncurl -L -A \"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/90.0.$RANDVERSION.212 Safari\/537.36\" -H \"Accept-Language: en\" -o $DOWNLOAD_FILE $DOWNLOAD_URL\r\n\r\necho -e \"Unpacking server files\"\r\nunzip -o $DOWNLOAD_FILE\r\n\r\necho -e \"Cleaning up after installing\"\r\nrm $DOWNLOAD_FILE\r\n\r\necho 'emit-server-telemetry=true' >> server.properties\r\n\r\necho -e \"restoring backup config files - on first install there will be file not found errors which you can ignore.\"\r\ncp -rf server.properties.bak server.properties\r\ncp -rf permissions.json.bak permissions.json\r\ncp -rf whitelist.json.bak whitelist.json\r\n\r\nchmod +x bedrock_server\r\n\r\necho -e \"Install Completed\"", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y zip unzip wget curl\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\n# Minecraft CDN Akamai blocks script user-agents\r\nRANDVERSION=$(echo $((1 + $RANDOM % 4000)))\r\n\r\nif [ -z \"${BEDROCK_VERSION}\" ] || [ \"${BEDROCK_VERSION}\" == \"latest\" ]; then\r\n echo -e \"\\n Downloading latest Bedrock server\"\r\n curl -L -A \"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/90.0.$RANDVERSION.212 Safari\/537.36\" -H \"Accept-Language: en\" -H \"Accept-Encoding: gzip, deflate\" -o versions.html.gz https:\/\/www.minecraft.net\/en-us\/download\/server\/bedrock\r\n DOWNLOAD_URL=$(zgrep -o 'https:\/\/minecraft.azureedge.net\/bin-linux\/[^\"]*' versions.html.gz)\r\nelse \r\n echo -e \"\\n Downloading ${BEDROCK_VERSION} Bedrock server\"\r\n DOWNLOAD_URL=https:\/\/minecraft.azureedge.net\/bin-linux\/bedrock-server-$BEDROCK_VERSION.zip\r\nfi\r\n\r\nDOWNLOAD_FILE=$(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5) # Retrieve archive name\r\n\r\necho -e \"backing up config files\"\r\nrm *.bak versions.html.gz\r\ncp server.properties server.properties.bak\r\ncp permissions.json permissions.json.bak\r\ncp allowlist.json allowlist.json.bak\r\n\r\necho -e \"Downloading files from: $DOWNLOAD_URL\"\r\n\r\ncurl -L -A \"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/90.0.$RANDVERSION.212 Safari\/537.36\" -H \"Accept-Language: en\" -o $DOWNLOAD_FILE $DOWNLOAD_URL\r\n\r\necho -e \"Unpacking server files\"\r\nunzip -o $DOWNLOAD_FILE\r\n\r\necho -e \"Cleaning up after installing\"\r\nrm $DOWNLOAD_FILE\r\n\r\necho 'emit-server-telemetry=true' >> server.properties\r\n\r\necho -e \"restoring backup config files - on first install there will be file not found errors which you can ignore.\"\r\ncp -rf server.properties.bak server.properties\r\ncp -rf permissions.json.bak permissions.json\r\ncp -rf allowlist.json.bak allowlist.json\r\n\r\nchmod +x bedrock_server\r\n\r\necho -e \"Install Completed\"", + "container": "debian:bullseye-slim", "entrypoint": "bash" } }, @@ -91,4 +91,4 @@ "field_type": "text" } ] -} +} \ No newline at end of file diff --git a/game_eggs/minecraft/bedrock/bedrock/egg-vanilla-bedrock.json b/game_eggs/minecraft/bedrock/bedrock/egg-vanilla-bedrock.json index 9bd191e3..c7f6170f 100644 --- a/game_eggs/minecraft/bedrock/bedrock/egg-vanilla-bedrock.json +++ b/game_eggs/minecraft/bedrock/bedrock/egg-vanilla-bedrock.json @@ -1,19 +1,19 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1", + "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-01-22T05:42:40-05:00", + "exported_at": "2023-06-18T11:45:33+02:00", "name": "Vanilla Bedrock", "author": "parker@parkervcp.com", "description": "Bedrock Edition (also known as the Bedrock Version, Bedrock Codebase, Bedrock Engine or just Bedrock) refers to the multi-platform family of editions of Minecraft developed by Mojang AB, Microsoft Studios, 4J Studios, and SkyBox Labs. Prior to this term, as the engine originated with Pocket Edition, this entire product family was referred to as \"Pocket Edition\", \"MCPE\", or \"Pocket\/Windows 10 Edition\".", "features": [ "pid_limit" ], - "images": [ - "ghcr.io\/parkervcp\/yolks:debian" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian" + }, "file_denylist": [], "startup": ".\/bedrock_server", "config": { @@ -24,8 +24,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y zip unzip wget curl\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\n# Minecraft CDN Akamai blocks script user-agents\r\nRANDVERSION=$(echo $((1 + $RANDOM % 4000)))\r\n\r\nif [ -z \"${BEDROCK_VERSION}\" ] || [ \"${BEDROCK_VERSION}\" == \"latest\" ]; then\r\n echo -e \"\\n Downloading latest Bedrock server\"\r\n curl -L -A \"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/90.0.$RANDVERSION.212 Safari\/537.36\" -H \"Accept-Language: en\" -H \"Accept-Encoding: gzip, deflate\" -o versions.html.gz https:\/\/www.minecraft.net\/en-us\/download\/server\/bedrock\r\n DOWNLOAD_URL=$(zgrep -o 'https:\/\/minecraft.azureedge.net\/bin-linux\/[^\"]*' versions.html.gz)\r\nelse \r\n echo -e \"\\n Downloading ${BEDROCK_VERSION} Bedrock server\"\r\n DOWNLOAD_URL=https:\/\/minecraft.azureedge.net\/bin-linux\/bedrock-server-$BEDROCK_VERSION.zip\r\nfi\r\n\r\nDOWNLOAD_FILE=$(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5) # Retrieve archive name\r\n\r\necho -e \"backing up config files\"\r\nrm *.bak versions.html.gz\r\ncp server.properties server.properties.bak\r\ncp permissions.json permissions.json.bak\r\ncp whitelist.json whitelist.json.bak\r\n\r\necho -e \"Downloading files from: $DOWNLOAD_URL\"\r\n\r\ncurl -L -A \"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/90.0.$RANDVERSION.212 Safari\/537.36\" -H \"Accept-Language: en\" -o $DOWNLOAD_FILE $DOWNLOAD_URL\r\n\r\necho -e \"Unpacking server files\"\r\nunzip -o $DOWNLOAD_FILE\r\n\r\necho -e \"Cleaning up after installing\"\r\nrm $DOWNLOAD_FILE\r\n\r\necho -e \"restoring backup config files - on first install there will be file not found errors which you can ignore.\"\r\ncp -rf server.properties.bak server.properties\r\ncp -rf permissions.json.bak permissions.json\r\ncp -rf whitelist.json.bak whitelist.json\r\n\r\nchmod +x bedrock_server\r\n\r\necho -e \"Install Completed\"", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y zip unzip wget curl\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\n# Minecraft CDN Akamai blocks script user-agents\r\nRANDVERSION=$(echo $((1 + $RANDOM % 4000)))\r\n\r\nif [ -z \"${BEDROCK_VERSION}\" ] || [ \"${BEDROCK_VERSION}\" == \"latest\" ]; then\r\n echo -e \"\\n Downloading latest Bedrock server\"\r\n curl -L -A \"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/90.0.$RANDVERSION.212 Safari\/537.36\" -H \"Accept-Language: en\" -H \"Accept-Encoding: gzip, deflate\" -o versions.html.gz https:\/\/www.minecraft.net\/en-us\/download\/server\/bedrock\r\n DOWNLOAD_URL=$(zgrep -o 'https:\/\/minecraft.azureedge.net\/bin-linux\/[^\"]*' versions.html.gz)\r\nelse \r\n echo -e \"\\n Downloading ${BEDROCK_VERSION} Bedrock server\"\r\n DOWNLOAD_URL=https:\/\/minecraft.azureedge.net\/bin-linux\/bedrock-server-$BEDROCK_VERSION.zip\r\nfi\r\n\r\nDOWNLOAD_FILE=$(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5) # Retrieve archive name\r\n\r\necho -e \"backing up config files\"\r\nrm *.bak versions.html.gz\r\ncp server.properties server.properties.bak\r\ncp permissions.json permissions.json.bak\r\ncp allowlist.json allowlist.json.bak\r\n\r\n\r\necho -e \"Downloading files from: $DOWNLOAD_URL\"\r\n\r\ncurl -L -A \"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/90.0.$RANDVERSION.212 Safari\/537.36\" -H \"Accept-Language: en\" -o $DOWNLOAD_FILE $DOWNLOAD_URL\r\n\r\necho -e \"Unpacking server files\"\r\nunzip -o $DOWNLOAD_FILE\r\n\r\necho -e \"Cleaning up after installing\"\r\nrm $DOWNLOAD_FILE\r\n\r\necho -e \"restoring backup config files - on first install there will be file not found errors which you can ignore.\"\r\ncp -rf server.properties.bak server.properties\r\ncp -rf permissions.json.bak permissions.json\r\ncp -rf allowlist.json.bak allowlist.json\r\n\r\nchmod +x bedrock_server\r\n\r\necho -e \"Install Completed\"", + "container": "debian:bullseye-slim", "entrypoint": "bash" } }, @@ -37,7 +37,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "ld lib path", @@ -46,7 +47,8 @@ "default_value": ".", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Server Name", @@ -55,7 +57,8 @@ "default_value": "Bedrock Dedicated Server", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:50" + "rules": "required|string|max:50", + "field_type": "text" }, { "name": "Gamemode", @@ -64,7 +67,8 @@ "default_value": "survival", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:survival,creative,adventure" + "rules": "required|string|in:survival,creative,adventure", + "field_type": "text" }, { "name": "Difficulty", @@ -73,7 +77,8 @@ "default_value": "easy", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:peaceful,easy,normal,hard" + "rules": "required|string|in:peaceful,easy,normal,hard", + "field_type": "text" }, { "name": "Allow cheats", @@ -82,7 +87,8 @@ "default_value": "false", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:true,false" + "rules": "required|string|in:true,false", + "field_type": "text" } ] -} +} \ No newline at end of file From f094af0b3dfcfa45425f4537c516cac0f087542b Mon Sep 17 00:00:00 2001 From: Presti Date: Tue, 20 Jun 2023 11:02:46 +0200 Subject: [PATCH 18/53] Ree6 Egg update (#2300) Update Ree6 for V3 --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- bots/discord/ree6/config.yml | 80 +++++++++--- bots/discord/ree6/egg-ree6.json | 212 ++++++++++++++++++++++++++------ 2 files changed, 234 insertions(+), 58 deletions(-) diff --git a/bots/discord/ree6/config.yml b/bots/discord/ree6/config.yml index 03a01b3e..c0b68c1e 100644 --- a/bots/discord/ree6/config.yml +++ b/bots/discord/ree6/config.yml @@ -8,8 +8,8 @@ # Do not change this! config: - version: 2.4.3 - creation: 1681169485237 + version: 3.0.0 + creation: 1686731674683 # HikariCP Configuration hikari: @@ -24,21 +24,79 @@ hikari: # Misc Configuration misc: - storage: sqlite + storage: sqlite # Possible entries: sqlite, mariadb, postgresql, h2, h2-server storageFile: storage/Ree6.db + createEmbeddedServer: false # Should an instance of an embedded Server be created? Only used for H2-Server. poolSize: 10 +# Discord Application and overall Bot Configuration, used for OAuth, Bot Authentication and customization. +bot: + tokens: + release: ReleaseTokenhere # Token used when set to release build. + beta: BetaTokenhere # Token used when set to beta build. + dev: DevTokenhere # Token used when set to dev build. + + # Configuration for the Bot itself. + misc: + status: ree6.de | %guilds% Servers. (%shard%) # The Status of the Bot. + feedbackChannelId: 0 # The Channel used for Feedback. + ownerId: 321580743488831490 # The ID of the Bot Owner. Change this to yours! + predefineInformation: | # Predefined Information for the AI. + You are Ree6 a Discord bot. + invite: https://invite.ree6.de # The Invite Link of the Bot. + support: https://support.ree6.de # The Support Server Link of the Bot. + github: https://github.ree6.de # The GitHub Link of the Bot. + website: https://ree6.de # The Website Link of the Bot. + webinterface: https://cp.ree6.de # The Webinterface Link of the Bot. + recording: https://cp.ree6.de/external/recording # The Recording Link of the Bot. + twitchAuth: https://cp.ree6.de/external/twitch # The Twitch Authentication Link of the Bot. + advertisement: powered by Tube-hosting # The Advertisement in Embed Footers and the rest. + name: Ree6 # The Name of the Bot. + shards: 1 # The shard amount of the Bot. Check out https://anidiots.guide/understanding/sharding/#sharding for more information. + + # Customize the active modules in Ree6. + modules: + moderation: true # Enable the moderation module. + music: true # Enable the music module. + fun: true # Enable the fun commands. + community: true # Enable the community commands. + economy: true # Enable the economy commands. + level: true # Enable the level module. + nsfw: true # Enable the nsfw module. + info: true # Enable the info commands. + hidden: true # Enable the hidden commands. + logging: true # Enable the logging module. + notifier: true # Enable the notifier module. + streamtools: true # Enable the Stream-tools module. + temporalvoice: true # Enable the Temporal-voice module. + tickets: true # Enable the Tickets module. + suggestions: true # Enable the suggestions module. + customcommands: true # Enable the custom Commands module. + customevents: true # Enable the custom Events module. + ai: true # Enable the AI module. + addons: false # Enable the Addons module. + news: true # Enable the news command/module. + games: true # Enable the Games module. + reactionroles: true # Enable the reaction-roles module. + slashcommands: true # Enable the slash-commands support. + messagecommands: true # Enable the message-commands support. + # Heartbeat Configuration, for status reporting heartbeat: url: none # The URL to the Heartbeat-Server interval: 60 dagpi: - apitoken: yourdagpixyztokenhere # Your Dagpi.xyz API-Token, for tweet image generation! + apitoken: DAGPI.xyz API-Token # Your Dagpi.xyz API-Token, for tweet image generation! amari: apitoken: Amari API-Token # Your Amari API-Token, for Amari Level imports! +openai: + apiToken: OpenAI API-Token # Your OpenAI API-Token, for ChatGPT! + apiUrl: https://api.openai.com/v1/chat/completions # The URL to the OpenAI API. + model: gpt-3.5-turbo-0301 # The Model used for the OpenAI API. + sentry: dsn: yourSentryDSNHere # Your Sentry DSN, for error reporting! @@ -56,12 +114,7 @@ twitch: # Twitter Application Configuration, used for the Twitter Notifications. twitter: - consumer: - key: yourTwitterConsumerKey - secret: yourTwitterConsumerSecret - access: - key: yourTwitterAccessKey - secret: yourTwitterAccessSecret + bearer: yourTwitterBearerToken # Reddit Application Configuration, used for the Reddit Notification. reddit: @@ -73,10 +126,3 @@ reddit: instagram: username: yourInstagramUsername password: yourInstagramPassword - -# Discord Application Configuration, used for OAuth and Bot Authentication. -bot: - tokens: - release: ReleaseTokenhere # Token used when set to release build. - beta: BetaTokenhere # Token used when set to beta build. - dev: DevTokenhere # Token used when set to dev build. diff --git a/bots/discord/ree6/egg-ree6.json b/bots/discord/ree6/egg-ree6.json index 0f8791d6..4f713d01 100644 --- a/bots/discord/ree6/egg-ree6.json +++ b/bots/discord/ree6/egg-ree6.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-04-22T20:23:22+02:00", + "exported_at": "2023-06-14T13:03:27+02:00", "name": "Ree6", "author": "presti@presti.me", "description": "All-in-one, open source and 100% free Discord Bot!", @@ -15,7 +15,7 @@ "file_denylist": [], "startup": "java -Dnogui=true -jar Ree6.jar", "config": { - "files": "{\r\n \"config.yml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"hikari.sql.user\": \"{{server.build.env.DATABASE_USER}}\",\r\n \"hikari.sql.db\": \"{{server.build.env.DATABASE_DB}}\",\r\n \"hikari.sql.pw\": \"{{server.build.env.DATABASE_PW}}\",\r\n \"hikari.sql.host\": \"{{server.build.env.DATABASE_HOST}}\",\r\n \"hikari.sql.port\": \"{{server.build.env.DATABASE_PORT}}\",\r\n \"hikari.misc.storage\": \"{{server.build.env.DATABASE_TYP}}\",\r\n \"hikari.misc.storageFile\": \"{{server.build.env.DATABASE_FILE}}\",\r\n \"hikari.misc.poolSize\": \"{{server.build.env.DATABASE_POOL}}\",\r\n \"heartbeat.url\": \"{{server.build.env.HEARTBEAT_URL}}\",\r\n \"heartbeat.interval\": \"{{server.build.env.HEARTBEAT_INTERVAL}}\",\r\n \"dagpi.apitoken\": \"{{server.build.env.DAGPI_TOKEN}}\",\r\n \"amari.apitoken\": \"{{server.build.env.AMARI_TOKEN}}\",\r\n \"sentry.dsn\": \"{{server.build.env.SENTRY_DSN}}\",\r\n \"spotify.client.id\": \"{{server.build.env.SPOTIFY_CLIENT_ID}}\",\r\n \"spotify.client.secret\": \"{{server.build.env.SPOTIFY_CLIENT_SECRET}}\",\r\n \"twitch.client.id\": \"{{server.build.env.TWITCH_CLIENT_ID}}\",\r\n \"twitch.client.secret\": \"{{server.build.env.TWITCH_CLIENT_SECRET}}\",\r\n \"twitter.consumer.key\": \"{{server.build.env.TWITTER_CONSUMER_ID}}\",\r\n \"twitter.consumer.secret\": \"{{server.build.env.TWITTER_CONSUMER_SECRET}}\",\r\n \"twitter.access.key\": \"{{server.build.env.TWITTER_ACCESS_ID}}\",\r\n \"twitter.access.secret\": \"{{server.build.env.TWITTER_ACCESS_SECRET}}\",\r\n \"reddit.client.id\": \"{{server.build.env.REDDIT_CLIENT_ID}}\",\r\n \"reddit.client.secret\": \"{{server.build.env.REDDIT_CLIENT_SECRET}}\",\r\n \"instagram.username\": \"{{server.build.env.INSTAGRAM_USERNAME}}\",\r\n \"instagram.password\": \"{{server.build.env.INSTAGRAM_PASSWORD}}\",\r\n \"bot.tokens.release\": \"{{server.build.env.BOT_TOKEN}}\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"config.yml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"hikari.sql.user\": \"{{server.build.env.DATABASE_USER}}\",\r\n \"hikari.sql.db\": \"{{server.build.env.DATABASE_DB}}\",\r\n \"hikari.sql.pw\": \"{{server.build.env.DATABASE_PW}}\",\r\n \"hikari.sql.host\": \"{{server.build.env.DATABASE_HOST}}\",\r\n \"hikari.sql.port\": \"{{server.build.env.DATABASE_PORT}}\",\r\n \"hikari.misc.storage\": \"{{server.build.env.DATABASE_TYP}}\",\r\n \"hikari.misc.storageFile\": \"{{server.build.env.DATABASE_FILE}}\",\r\n \"hikari.misc.poolSize\": \"{{server.build.env.DATABASE_POOL}}\",\r\n \"hikari.misc.createEmbeddedServer\": \"{{server.build.env.DATABASE_EMBEDDED}}\",\r\n \"heartbeat.url\": \"{{server.build.env.HEARTBEAT_URL}}\",\r\n \"heartbeat.interval\": \"{{server.build.env.HEARTBEAT_INTERVAL}}\",\r\n \"dagpi.apitoken\": \"{{server.build.env.DAGPI_TOKEN}}\",\r\n \"amari.apitoken\": \"{{server.build.env.AMARI_TOKEN}}\",\r\n \"sentry.dsn\": \"{{server.build.env.SENTRY_DSN}}\",\r\n \"spotify.client.id\": \"{{server.build.env.SPOTIFY_CLIENT_ID}}\",\r\n \"spotify.client.secret\": \"{{server.build.env.SPOTIFY_CLIENT_SECRET}}\",\r\n \"twitch.client.id\": \"{{server.build.env.TWITCH_CLIENT_ID}}\",\r\n \"twitch.client.secret\": \"{{server.build.env.TWITCH_CLIENT_SECRET}}\",\r\n \"twitter.consumer.key\": \"{{server.build.env.TWITTER_CONSUMER_ID}}\",\r\n \"twitter.consumer.secret\": \"{{server.build.env.TWITTER_CONSUMER_SECRET}}\",\r\n \"twitter.access.key\": \"{{server.build.env.TWITTER_ACCESS_ID}}\",\r\n \"twitter.access.secret\": \"{{server.build.env.TWITTER_ACCESS_SECRET}}\",\r\n \"reddit.client.id\": \"{{server.build.env.REDDIT_CLIENT_ID}}\",\r\n \"reddit.client.secret\": \"{{server.build.env.REDDIT_CLIENT_SECRET}}\",\r\n \"instagram.username\": \"{{server.build.env.INSTAGRAM_USERNAME}}\",\r\n \"instagram.password\": \"{{server.build.env.INSTAGRAM_PASSWORD}}\",\r\n \"bot.tokens.release\": \"{{server.build.env.BOT_TOKEN}}\",\r\n \"openai.apiToken\": \"{{server.build.env.AI_TOKEN}}\",\r\n \"openai.apiUrl\": \"{{server.build.env.AI_URL}}\",\r\n \"openai.model\": \"{{server.build.env.AI_MODEL}}\",\r\n \"bot.misc.status\": \"{{server.build.env.MISC_STATUS}}\",\r\n \"bot.misc.feedbackChannelId\": \"{{server.build.env.MISC_FEEDBACK}}\",\r\n \"bot.misc.ownerId\": \"{{server.build.env.MISC_OWNER}}\",\r\n \"bot.misc.predefineInformation\": \"{{server.build.env.MISC_PREDEF}}\",\r\n \"bot.misc.invite\": \"{{server.build.env.MISC_INVITE}}\",\r\n \"bot.misc.support\": \"{{server.build.env.MISC_SUPPORT}}\",\r\n \"bot.misc.website\": \"{{server.build.env.MISC_WEB}}\",\r\n \"bot.misc.webinterface\": \"{{server.build.env.MISC_INTERFACE}}\",\r\n \"bot.misc.record\": \"{{server.build.env.MISC_RECORD}}\",\r\n \"bot.misc.twitchAuth\": \"{{server.build.env.MISC_TWITCH}}\",\r\n \"bot.misc.advertisement\": \"{{server.build.env.MISC_ADV}}\",\r\n \"bot.misc.name\": \"{{server.build.env.MISC_NAME}}\",\r\n \"bot.misc.shards\": \"{{server.build.env.MISC_SHARD}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Finished Loading\"\r\n}", "logs": "{}", "stop": "^C" @@ -129,39 +129,9 @@ "field_type": "text" }, { - "name": "Twitter Consumer Key", + "name": "Twitter Bearer Key", "description": "Twitter Application Configuration, used for the Twitter Notifications.", - "env_variable": "TWITTER_CONSUMER_KEY", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string|max:128", - "field_type": "text" - }, - { - "name": "Twitter Consumer Secret", - "description": "Twitter Application Configuration, used for the Twitter Notifications.", - "env_variable": "TWITTER_CONSUMER_SECRET", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string|max:128", - "field_type": "text" - }, - { - "name": "Twitter Access Key", - "description": "Twitter Application Configuration, used for the Twitter Notifications.", - "env_variable": "TWITTER_ACCESS_KEY", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string|max:128", - "field_type": "text" - }, - { - "name": "Twitter Access Secret", - "description": "Twitter Application Configuration, used for the Twitter Notifications.", - "env_variable": "TWITTER_ACCESS_SECRET", + "env_variable": "TWITTER_BEARER", "default_value": "", "user_viewable": true, "user_editable": true, @@ -211,7 +181,7 @@ { "name": "SQL Username", "description": "Username for the SQL connection.", - "env_variable": "SQL_USER", + "env_variable": "DATABASE_USER", "default_value": "root", "user_viewable": true, "user_editable": true, @@ -221,7 +191,7 @@ { "name": "SQL Database", "description": "Database for the SQL Connection", - "env_variable": "SQL_DB", + "env_variable": "DATABASE_DB", "default_value": "root", "user_viewable": true, "user_editable": true, @@ -231,7 +201,7 @@ { "name": "SQL Password", "description": "Password for the SQL connection.", - "env_variable": "SQL_PW", + "env_variable": "DATABASE_PW", "default_value": "", "user_viewable": true, "user_editable": true, @@ -241,7 +211,7 @@ { "name": "SQL Port", "description": "Port for the SQL connection.", - "env_variable": "SQL_PORT", + "env_variable": "DATABASE_PORT", "default_value": "3306", "user_viewable": true, "user_editable": true, @@ -250,12 +220,12 @@ }, { "name": "Database Typ", - "description": "The Typ of the Database Ree6 should use!\r\nPossible typs:\r\n- mariadb\r\n- sqlite", + "description": "The Typ of the Database Ree6 should use!\r\nPossible typs:\r\n- mariadb\r\n- sqlite\r\n- h2\r\n- postgres", "env_variable": "DATABASE_TYP", "default_value": "sqlite", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:mariadb,sqlite", + "rules": "required|string|in:mariadb,sqlite,postgres,postregsql,h2", "field_type": "text" }, { @@ -287,6 +257,166 @@ "user_editable": true, "rules": "nullable|string|max:128", "field_type": "text" + }, + { + "name": "OpenAI Token", + "description": "Your Authentication token that should be used in the AI API calls.", + "env_variable": "AI_TOKEN", + "default_value": "OpenAI API-Token", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "OpenAI Url", + "description": "The URL that should receive the API calls.", + "env_variable": "AI_URL", + "default_value": "https:\/\/api.openai.com\/v1\/chat\/completions", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "OpenAI Model", + "description": "The AI model that should be used in the API calls.", + "env_variable": "AI_MODEL", + "default_value": "gpt-3.5-turbo-0301", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:32", + "field_type": "text" + }, + { + "name": "Activity Status", + "description": "The Activity status of the Bot that will be shown.", + "env_variable": "MISC_STATUS", + "default_value": "ree6.de | %guilds% Servers. (%shard%)", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Feedback Channel", + "description": "The Channel Id of the Feedback channel.", + "env_variable": "MISC_FEEDBACK", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "integer", + "field_type": "text" + }, + { + "name": "[DEVELOPER-STUFF] Bot Owner Id", + "description": "The ID of the Bot Owner, this will be used internally on some checks.", + "env_variable": "MISC_OWNER", + "default_value": "321580743488831490", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "Invite Link", + "description": "The Invite link to invite the Bot.", + "env_variable": "MISC_INVITE", + "default_value": "https:\/\/invite.ree6.de", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Predefined Information for AI", + "description": "The Information for the AI.", + "env_variable": "MISC_PREDEF", + "default_value": "You are Ree6 a Discord bot.", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Support Link", + "description": "The Url link for users to receive support.", + "env_variable": "MISC_SUPPORT", + "default_value": "https:\/\/support.ree6.de", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Website", + "description": "The Url to the Website of the Bot.", + "env_variable": "MISC_WEB", + "default_value": "https:\/\/ree6.de", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Webinterface", + "description": "The Url to the Webinterface.", + "env_variable": "MISC_INTERFACE", + "default_value": "https:\/\/cp.ree6.de", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Record Url", + "description": "The Url that uses can access to get their recording.", + "env_variable": "MISC_RECORD", + "default_value": "https:\/\/cp.ree6.de\/external\/recording", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Twitch Url", + "description": "The Url used to connect a Twitch Account with the Ree6 System.", + "env_variable": "MISC_TWITCH", + "default_value": "https:\/\/cp.ree6.de\/external\/twitch", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Advertisment", + "description": "The Advertisement in Embed Footers and the rest.", + "env_variable": "MISC_ADV", + "default_value": "powered by Tube-hosting", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Name", + "description": "The Name of the Bot.", + "env_variable": "MISC_NAME", + "default_value": "Ree6", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Shards", + "description": "The amount of shards that should be created.", + "env_variable": "MISC_SHARD", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer", + "field_type": "text" } ] -} \ No newline at end of file +} From ff170fc9f2fc86e9562a6708075c1a06de6526b3 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Tue, 20 Jun 2023 12:18:54 +0200 Subject: [PATCH 19/53] add intital egg --- game_eggs/cs2d/README.md | 0 game_eggs/cs2d/egg-c-s2-d.json | 62 ++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 game_eggs/cs2d/README.md create mode 100644 game_eggs/cs2d/egg-c-s2-d.json diff --git a/game_eggs/cs2d/README.md b/game_eggs/cs2d/README.md new file mode 100644 index 00000000..e69de29b diff --git a/game_eggs/cs2d/egg-c-s2-d.json b/game_eggs/cs2d/egg-c-s2-d.json new file mode 100644 index 00000000..1987ba17 --- /dev/null +++ b/game_eggs/cs2d/egg-c-s2-d.json @@ -0,0 +1,62 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-06-20T12:12:15+02:00", + "name": "CS2D", + "author": "josdekurk@gmail.com", + "description": "Plant and defuse bombs, rescue hostages or accomplish new missions like capture the flag or domination! Use a huge arsenal of weapons and equipment including crazy stuff like portal guns, lasers, RPGs, turrets and much more! You can even build things!", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/games:source": "ghcr.io\/parkervcp\/games:source" + }, + "file_denylist": [], + "startup": ".\/cs2d_dedicated", + "config": { + "files": "{\r\n \"sys\/server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"sv_hostport \": \"sv_hostport {{server.build.default.port}}\",\r\n \"sv_name\": \"sv_name {{server.build.env.SERVER_NAME}}\",\r\n \"sv_password\": \"sv_password {{server.build.env.SERVER_PASSWORD}}\",\r\n \"sv_maxplayers\": \"sv_maxplayers {{server.build.env.SERVER_PLAYERS}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"----- Server started -----\"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nv=$(curl -s https:\/\/www.cs2d.com\/download.php | grep -Eo \"https?:\/\/\\S+?\\\"\" | grep -i \"get.php?get=cs2d_\" | grep -i \"linux\") # https:\/\/www.unrealsoftware.de\/get.php?get=cs2d_1013_linux.zip\"\r\nn=$(echo ${v#*=} | sed 's\/\"\/\/' ) # cs2d_1013_linux.zip\r\n\r\nc=$(curl -s https:\/\/www.unrealsoftware.de\/get.php?get=${n} | grep -o '' | cut -f2 -d \"<\" | awk '{print $3}' | grep -o '\"[^\"]*\"') # \"get.php?get=cs2d_1013_linux.zip&p=1&cid=15745\"\r\ncid=$(echo ${c\/\/\\\"\/} | cut -f4 -d '=') #15745\r\n\r\nDOWNLOAD_URL=\"https:\/\/www.unrealsoftware.de\/get.php?get=${n}&p=1&cid=${cid}\"\r\n\r\necho \"${DOWNLOAD_URL}\"\r\n\r\ncurl -sSL -o client.zip \"${DOWNLOAD_URL}\"\r\n\r\nunzip -o client.zip\r\nrm client.zip\r\n\r\ncurl -sSL -o dedicated.zip \"https:\/\/www.unrealsoftware.de\/files_pub\/cs2d_dedicated_linux.zip\"\r\nunzip -o dedicated.zip\r\nrm dedicated.zip\r\n\r\nchmod +x cs2d_dedicated\r\n\r\necho \"install finished\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Server Name", + "description": "", + "env_variable": "SERVER_NAME", + "default_value": "CS2D Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:64", + "field_type": "text" + }, + { + "name": "Server Password", + "description": "", + "env_variable": "SERVER_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:32", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "", + "env_variable": "SERVER_PLAYERS", + "default_value": "12", + "user_viewable": true, + "user_editable": false, + "rules": "required|string", + "field_type": "text" + } + ] +} \ No newline at end of file From d32aa08957e589df8eafc8b787bb47cacd211b4b Mon Sep 17 00:00:00 2001 From: Quinten Date: Tue, 20 Jun 2023 12:22:05 +0200 Subject: [PATCH 20/53] add readme --- README.md | 2 ++ game_eggs/README.md | 4 +++- game_eggs/cs2d/README.md | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5e782063..5963283f 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,8 @@ If you are reading this it looks like you are looking to add an egg to your serv [ClassiCube](game_eggs/classicube) +[CS2D](game_eggs/cs2d) + * [MCGalaxy](game_eggs/classicube/mcgalaxy) [Doom](game_eggs/doom) diff --git a/game_eggs/README.md b/game_eggs/README.md index 978c5961..d63d9981 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -12,7 +12,9 @@ [ClassiCube](classicube) -* [MCGalaxy](classicube/mcgalaxy) +[ClassiCube](classicube) + +* [CS2D](cs2d) [Doom](doom) * [Zandronum](doom/zandronum) diff --git a/game_eggs/cs2d/README.md b/game_eggs/cs2d/README.md index e69de29b..4a53fc87 100644 --- a/game_eggs/cs2d/README.md +++ b/game_eggs/cs2d/README.md @@ -0,0 +1,35 @@ +# CS2D + + +## From their [Site](https://www.cs2d.com/index.php) + + +## [Documentation](https://www.cs2d.com/serverhosting.php) + + +## Install notes + +This egg only supports downloading the latest releases + +## Minimum RAM warning + +Minimum required memory to run the server. +1GB is recommended. 2GB+ is preferred + +## Minumim Sorage warning + +Minimum required storage to run the server. +600Mib is recommended. 2GB+ is preferred + +## Server Ports + +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Game | 36963 | + +### Notes + + +36963 is the default port, but any port can be used. \ No newline at end of file From dfb1ec353805c21969fd4d7a2883c58d07313d37 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 22 Jun 2023 14:20:16 +0200 Subject: [PATCH 21/53] Generic-python: force install container to be debian 11 --- generic/python/egg-python-generic.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/generic/python/egg-python-generic.json b/generic/python/egg-python-generic.json index deb33f8d..96e126e3 100644 --- a/generic/python/egg-python-generic.json +++ b/generic/python/egg-python-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-27T23:37:50-08:00", + "exported_at": "2023-06-22T14:18:47+02:00", "name": "python generic", "author": "parker@parkervcp.com", "description": "A Generic Python Egg for Pterodactyl\r\n\r\nTested with: https:\/\/github.com\/Ispira\/pixel-bot", @@ -28,7 +28,7 @@ "scripts": { "installation": { "script": "#!\/bin\/bash\r\n# Python App Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git curl jq file unzip make gcc g++ python python-dev libtool\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n echo -e \"assuming user knows what they are doing have a good day.\"\r\n exit 0\r\nfi\r\n\r\n## add git ending if it's not on the address\r\nif [[ ${GIT_ADDRESS} != *.git ]]; then\r\n GIT_ADDRESS=${GIT_ADDRESS}.git\r\nfi\r\n\r\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git python repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"\/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \".git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"files found with no git config\"\r\n echo -e \"closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\r\n fi\r\n\r\nfi\r\n\r\nexport HOME=\/mnt\/server\r\n\r\necho \"Installing python requirements into folder\"\r\nif [[ ! -z ${PY_PACKAGES} ]]; then\r\n pip install -U --prefix .local ${PY_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/requirements.txt ]; then\r\n pip install -U --prefix .local -r ${REQUIREMENTS_FILE}\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0", - "container": "python:3.8-slim", + "container": "python:3.8-slim-bullseye", "entrypoint": "bash" } }, From ca9ab86cb2b84b4b3c9f22e5a67a08e1b20ecab3 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 22 Jun 2023 18:57:59 +0200 Subject: [PATCH 22/53] Update Game.ini --- game_eggs/steamcmd_servers/pavlov_vr/Game.ini | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/game_eggs/steamcmd_servers/pavlov_vr/Game.ini b/game_eggs/steamcmd_servers/pavlov_vr/Game.ini index 8e519c32..879dee98 100644 --- a/game_eggs/steamcmd_servers/pavlov_vr/Game.ini +++ b/game_eggs/steamcmd_servers/pavlov_vr/Game.ini @@ -1,15 +1,19 @@ [/Script/Pavlov.DedicatedServer] bEnabled=true ServerName="My dedicated server" -MaxPlayers=50 +MaxPlayers=10 #Set this to 10 for Shack. 24 is the max for PC, setting it higher will not allow players to join. +ApiKey="ABC123FALSEKEYDONTUSEME" bSecured=true bCustomServer=true +bVerboseLogging=false +bCompetitive=false #This only works for SND bWhitelist=false RefreshListTime=120 -LimitedAmmoType=2 +LimitedAmmoType=0 TickRate=90 TimeLimit=60 -Password=0000 -MapRotation=(MapId="UGC1668673188", GameMode="SND") +#Password=0000 +#BalanceTableURL="vankruptgames/BalancingTable/main" +MapRotation=(MapId="UGC1758245796", GameMode="GUN") MapRotation=(MapId="datacenter", GameMode="SND") MapRotation=(MapId="sand", GameMode="DM") \ No newline at end of file From dd48cbf6ff003679566cc721a12def791b6bda8c Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Sun, 25 Jun 2023 10:53:08 +0200 Subject: [PATCH 23/53] add Sons of the Forrest (#2320) add: Sons of the Forrest --------- Co-authored-by: gOOvER <116325+gOOvER@users.noreply.github.com> --- README.md | 1 + game_eggs/README.md | 3 +- game_eggs/steamcmd_servers/README.md | 4 + .../sonsoftheforest/README.md | 29 ++++ .../sonsoftheforest/dedicatedserver.cfg | 41 +++++ .../egg-sons-of-the-forest.json | 164 ++++++++++++++++++ .../sonsoftheforest/ownerswhitelist.txt | 6 + 7 files changed, 247 insertions(+), 1 deletion(-) create mode 100644 game_eggs/steamcmd_servers/sonsoftheforest/README.md create mode 100644 game_eggs/steamcmd_servers/sonsoftheforest/dedicatedserver.cfg create mode 100644 game_eggs/steamcmd_servers/sonsoftheforest/egg-sons-of-the-forest.json create mode 100644 game_eggs/steamcmd_servers/sonsoftheforest/ownerswhitelist.txt diff --git a/README.md b/README.md index 5963283f..831ad72d 100644 --- a/README.md +++ b/README.md @@ -271,6 +271,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [exiled](game_eggs/steamcmd_servers/scpsl/exiled) * [multiadmin](game_eggs/steamcmd_servers/scpsl/multiadmin) * [Soldat](game_eggs/steamcmd_servers/soldat) +* [Sons of the Forest](game_eggs/steamcmd_servers/sonsoftheforest) * [Space Engineers](game_eggs/steamcmd_servers/space_engineers) * [default](game_eggs/steamcmd_servers/space_engineers/default) * [torch](game_eggs/steamcmd_servers/space_engineers/torch) diff --git a/game_eggs/README.md b/game_eggs/README.md index d63d9981..dd2f7491 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -1,4 +1,4 @@ -# Game Eggs +# Game Eggs [Among Us](among_us) @@ -171,6 +171,7 @@ * [Exiled](steamcmd_servers/scpsl/exiled) * [Multiadmin](steamcmd_servers/scpsl/multiadmin) * [Soldat](steamcmd_servers/soldat) +* [Sons of the Forrest](steamcmd_servers/sonsoftheforest) * [Space Engineers](steamcmd_servers/space_engineers) * [default](steamcmd_servers/space_engineers/default) * [torch](steamcmd_servers/space_engineers/torch) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index b338a27c..a3bf6e15 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -189,6 +189,10 @@ This is a collection of servers that use SteamCMD to install. [Soldat](soldat) +## Sons of the Forrest + +[Sons of the Forest](sonsoftheforest) + ## Space Engineers [Space Engineers](space_engineers) diff --git a/game_eggs/steamcmd_servers/sonsoftheforest/README.md b/game_eggs/steamcmd_servers/sonsoftheforest/README.md new file mode 100644 index 00000000..d4f2ca3d --- /dev/null +++ b/game_eggs/steamcmd_servers/sonsoftheforest/README.md @@ -0,0 +1,29 @@ +# Sons of the Forest + +### Game Description + +Sons of the Forest is a horror survival game and sequel to The Forest by Endnight Games, Ltd.. Sent to find a missing billionaire on a remote island, you find yourself in a cannibal-infested hellscape. Craft, build, and struggle to survive, alone or with friends. + +### Useful links + +Steam: https://store.steampowered.com/app/1326470/Sons_Of_The_Forest/ + +### Author & Contributers +| Name | Github Profile | Buy me a Coffee | +| ------------- |-------------|-------------| +| gOOvER | https://github.com/gOOvER | [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/B0B351D0Q) | + + +### Server Ports + +Sons of the Forest requires up to 3 ports. You can choose every port you want. + +| Port | default | +|---------|---------------| +| Game | 8766 | +| Query | 27016 | +| BlobSyncPort | 9700 | + +## Special Note + +you need a minimum of 8GB RAM for the Server to run \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/sonsoftheforest/dedicatedserver.cfg b/game_eggs/steamcmd_servers/sonsoftheforest/dedicatedserver.cfg new file mode 100644 index 00000000..549e1d21 --- /dev/null +++ b/game_eggs/steamcmd_servers/sonsoftheforest/dedicatedserver.cfg @@ -0,0 +1,41 @@ +{ + "IpAddress": "0.0.0.0", + "GamePort": 8766, + "QueryPort": 27016, + "BlobSyncPort": 9700, + "ServerName": "Sons Of The Forest Server (dedicated)", + "MaxPlayers": 8, + "Password": "", + "LanOnly": false, + "SaveSlot": 1, + "SaveMode": "Continue", + "GameMode": "Normal", + "SaveInterval": 600, + "IdleDayCycleSpeed": 0.0, + "IdleTargetFramerate": 5, + "ActiveTargetFramerate": 60, + "LogFilesEnabled": false, + "TimestampLogFilenames": true, + "TimestampLogEntries": true, + "GameSettings": { + "Gameplay.TreeRegrowth": true, + "Structure.Damage": true + }, + "CustomGameModeSettings": { + "GameSetting.Vail.EnemySpawn": true, + "GameSetting.Vail.EnemyHealth": "Normal", + "GameSetting.Vail.EnemyDamage": "Normal", + "GameSetting.Vail.EnemyArmour": "Normal", + "GameSetting.Vail.EnemyAggression": "Normal", + "GameSetting.Vail.AnimalSpawnRate": "Normal", + "GameSetting.Environment.StartingSeason": "Summer", + "GameSetting.Environment.SeasonLength": "Default", + "GameSetting.Environment.DayLength": "Default", + "GameSetting.Environment.PrecipitationFrequency": "Default", + "GameSetting.Survival.ConsumableEffects": "Normal", + "GameSetting.Survival.PlayerStatsDamage": "Off", + "GameSetting.Survival.ColdPenalties": "Off", + "GameSetting.Survival.ReducedFoodInContainers": false, + "GameSetting.Survival.SingleUseContainers": false, + } +} \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/sonsoftheforest/egg-sons-of-the-forest.json b/game_eggs/steamcmd_servers/sonsoftheforest/egg-sons-of-the-forest.json new file mode 100644 index 00000000..c86e01d9 --- /dev/null +++ b/game_eggs/steamcmd_servers/sonsoftheforest/egg-sons-of-the-forest.json @@ -0,0 +1,164 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-06-25T10:24:55+02:00", + "name": "Sons Of The Forest", + "author": "info@goover.de", + "description": "Sons of the Forest is a horror survival game and sequel to The Forest by Endnight Games, Ltd.. Sent to find a missing billionaire on a remote island, you find yourself in a cannibal-infested hellscape. Craft, build, and struggle to survive, alone or with friends.", + "features": [ + "steam_disk_space" + ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + }, + "file_denylist": [], + "startup": "wine .\/SonsOfTheForestDS.exe -userdatapath \"\/home\/container\/serverconfig\" -dedicatedserver.IpAddress \"0.0.0.0\" -dedicatedserver.GamePort \"{{SERVER_PORT}}\" -dedicatedserver.QueryPort \"{{QUERY_PORT}}\" -dedicatedserver.BlobSyncPort \"{{BLOBSYNC_PORT}}\" -dedicatedserver.MaxPlayers \"{{MAX_PLAYERS}}\" -dedicatedserver.Password \"{{SRV_PW}}\" -dedicatedserver.GameMode \"{{GAME_MODE}}\" -dedicatedserver.LogFilesEnabled \"true\" -dedicatedserver.TimestampLogFilenames \"true\"", + "config": { + "files": "{\r\n \"serverconfig\/dedicatedserver.cfg\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"ServerName\": \"{{server.build.env.SRV_NAME}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"ServerStart Success\"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\nclear\r\nRED='\\033[0;31m'\r\nGREEN='\\033[0;32m'\r\nYELLOW='\\033[1;33m'\r\nBLUE='\\033[0;34m'\r\nNC='\\033[0m'\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}Sons of the Forrest Installscript${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}download and install steamcmd. please wait...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\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\necho -e \"${GREEN}..done..${NC}\"\r\n\r\n## install game using steamcmd\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}install game using steamcmd. please wait...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\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\necho -e \"${GREEN}..done..${NC}\"\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\nmkdir -p \/mnt\/server\/serverconfig\r\nFILE=$HOME\/serverconfig\/dedicatedserver.cfg\r\nif [ -f \"$FILE\" ]; then\r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n echo -e \"${GREEN}dedicatedserver.cfg found.${NC}\"\r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\nelse \r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n echo -e \"${RED}No dedicatedserver.cfg found. Downloading default...${NC}\"\r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n cd $HOME\/serverconfig\/\r\n curl -sSL -o dedicatedserver.cfg https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/sonsoftheforest\/dedicatedserver.cfg\r\nfi\r\necho -e \"${GREEN}..done..${NC}\"\r\n\r\nFILE=$HOME\/serverconfig\/ownerswhitelist.txt\r\nif [ -f \"$FILE\" ]; then\r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n echo -e \"${GREEN}ownerswhitelist.txt found.${NC}\"\r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\nelse \r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n echo -e \"${RED}No ownerswhitelist.txt found. Downloading default...${NC}\"\r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n cd $HOME\/serverconfig\/\r\n curl -sSL -o ownerswhitelist.txt https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/sonsoftheforest\/ownerswhitelist.txt\r\nfi\r\necho -e \"${GREEN}..done..${NC}\"\r\n\r\n## install end\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${GREEN}Installation completed...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "QueryPort", + "description": "UDP port used by Steam to list the server and enable the discovery services.", + "env_variable": "QUERY_PORT", + "default_value": "27016", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1024,65536", + "field_type": "text" + }, + { + "name": "BlobSyncPort", + "description": "BlobSyncPort UDP port used by the BlobSync system to initialize game systems and exchange data.", + "env_variable": "BLOBSYNC_PORT", + "default_value": "9700", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1024,65536", + "field_type": "text" + }, + { + "name": "Server Name", + "description": "Name of the server visible in the server list, and in the Steam contacts.", + "env_variable": "SRV_NAME", + "default_value": "Pterodactyl hosted Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:60", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "The maximum number of players allowed simultaneously on the server.", + "env_variable": "MAX_PLAYERS", + "default_value": "4", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:1", + "field_type": "text" + }, + { + "name": "Password", + "description": "", + "env_variable": "SRV_PW", + "default_value": "changeme", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Gamemode", + "description": "Sets the difficulty game mode when creating a new save. This parameter is ignored if loading a save (save mode set to \u201ccontinue\u201d with a save that exists on the slot). If the game mode is set to \u201ccustom\u201d, then the custom game mode settings will be read from CustomGameModeSettings option, described later.", + "env_variable": "GAME_MODE", + "default_value": "normal", + "user_viewable": true, + "user_editable": true, + "rules": "string|in:normal,hard,hardsurvival,peaceful,custom", + "field_type": "text" + }, + { + "name": "Auto Update", + "description": "", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "SRCDS_APPID", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "2465200", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "WINEDEBUG", + "description": "", + "env_variable": "WINEDEBUG", + "default_value": "-all", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "WINEARCH", + "description": "", + "env_variable": "WINEARCH", + "default_value": "win64", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "WINEPATH", + "description": "", + "env_variable": "WINEPATH", + "default_value": "\/home\/container", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "WINETRICKS_RUN", + "description": "", + "env_variable": "WINETRICKS_RUN", + "default_value": "mono vcrun2019", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "WINDOWS_INSTALL", + "description": "", + "env_variable": "WINDOWS_INSTALL", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + } + ] +} \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/sonsoftheforest/ownerswhitelist.txt b/game_eggs/steamcmd_servers/sonsoftheforest/ownerswhitelist.txt new file mode 100644 index 00000000..adbdab4e --- /dev/null +++ b/game_eggs/steamcmd_servers/sonsoftheforest/ownerswhitelist.txt @@ -0,0 +1,6 @@ +# In order to be able to administrate your server from in game directly, you will need to setup server ownership. +# Add below the steam ids of every server owner, one steam id per line. +# To find your SteamID, open Steam and click on your name on the top right, then go to Account Details. +# You can use # to comment out a line. That can be helpful to keep track of SteamIDs, you can include their name in the line above or below, starting with a #. + + From 84f3e91f2c6bf338960af3beb4b6d7efb24f5d11 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Mon, 26 Jun 2023 19:42:48 +0200 Subject: [PATCH 24/53] removed unknown Disord ID and change it to a placeholder. No need to use a unknown Discord ID --- bots/discord/ree6/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bots/discord/ree6/config.yml b/bots/discord/ree6/config.yml index c0b68c1e..6b25c736 100644 --- a/bots/discord/ree6/config.yml +++ b/bots/discord/ree6/config.yml @@ -40,7 +40,7 @@ bot: misc: status: ree6.de | %guilds% Servers. (%shard%) # The Status of the Bot. feedbackChannelId: 0 # The Channel used for Feedback. - ownerId: 321580743488831490 # The ID of the Bot Owner. Change this to yours! + ownerId: # The ID of the Bot Owner. Change this to yours! predefineInformation: | # Predefined Information for the AI. You are Ree6 a Discord bot. invite: https://invite.ree6.de # The Invite Link of the Bot. From 29183705e2654adf44a59cf07bc39daa8113588b Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Mon, 26 Jun 2023 19:45:21 +0200 Subject: [PATCH 25/53] typo --- bots/discord/ree6/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bots/discord/ree6/config.yml b/bots/discord/ree6/config.yml index 6b25c736..ba2240d5 100644 --- a/bots/discord/ree6/config.yml +++ b/bots/discord/ree6/config.yml @@ -40,7 +40,7 @@ bot: misc: status: ree6.de | %guilds% Servers. (%shard%) # The Status of the Bot. feedbackChannelId: 0 # The Channel used for Feedback. - ownerId: # The ID of the Bot Owner. Change this to yours! + ownerId: # The ID of the Bot Owner. Change this to yours! predefineInformation: | # Predefined Information for the AI. You are Ree6 a Discord bot. invite: https://invite.ree6.de # The Invite Link of the Bot. From e71d071c24620efcdc0316b3a54d1738f7410f3d Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Wed, 28 Jun 2023 16:20:34 +0200 Subject: [PATCH 26/53] Sons of the Forest - Limit max players to 8 (#2328) * limit max players to 8 * fix typos --- game_eggs/README.md | 2 +- game_eggs/steamcmd_servers/README.md | 2 +- .../steamcmd_servers/sonsoftheforest/dedicatedserver.cfg | 2 +- .../sonsoftheforest/egg-sons-of-the-forest.json | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/game_eggs/README.md b/game_eggs/README.md index dd2f7491..14c4f319 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -171,7 +171,7 @@ * [Exiled](steamcmd_servers/scpsl/exiled) * [Multiadmin](steamcmd_servers/scpsl/multiadmin) * [Soldat](steamcmd_servers/soldat) -* [Sons of the Forrest](steamcmd_servers/sonsoftheforest) +* [Sons of the Forest](steamcmd_servers/sonsoftheforest) * [Space Engineers](steamcmd_servers/space_engineers) * [default](steamcmd_servers/space_engineers/default) * [torch](steamcmd_servers/space_engineers/torch) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index a3bf6e15..92ff5cfc 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -189,7 +189,7 @@ This is a collection of servers that use SteamCMD to install. [Soldat](soldat) -## Sons of the Forrest +## Sons of the Forest [Sons of the Forest](sonsoftheforest) diff --git a/game_eggs/steamcmd_servers/sonsoftheforest/dedicatedserver.cfg b/game_eggs/steamcmd_servers/sonsoftheforest/dedicatedserver.cfg index 549e1d21..5686e1da 100644 --- a/game_eggs/steamcmd_servers/sonsoftheforest/dedicatedserver.cfg +++ b/game_eggs/steamcmd_servers/sonsoftheforest/dedicatedserver.cfg @@ -36,6 +36,6 @@ "GameSetting.Survival.PlayerStatsDamage": "Off", "GameSetting.Survival.ColdPenalties": "Off", "GameSetting.Survival.ReducedFoodInContainers": false, - "GameSetting.Survival.SingleUseContainers": false, + "GameSetting.Survival.SingleUseContainers": false } } \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/sonsoftheforest/egg-sons-of-the-forest.json b/game_eggs/steamcmd_servers/sonsoftheforest/egg-sons-of-the-forest.json index c86e01d9..c931aa17 100644 --- a/game_eggs/steamcmd_servers/sonsoftheforest/egg-sons-of-the-forest.json +++ b/game_eggs/steamcmd_servers/sonsoftheforest/egg-sons-of-the-forest.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-06-25T10:24:55+02:00", + "exported_at": "2023-06-28T16:10:30+02:00", "name": "Sons Of The Forest", "author": "info@goover.de", "description": "Sons of the Forest is a horror survival game and sequel to The Forest by Endnight Games, Ltd.. Sent to find a missing billionaire on a remote island, you find yourself in a cannibal-infested hellscape. Craft, build, and struggle to survive, alone or with friends.", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\nclear\r\nRED='\\033[0;31m'\r\nGREEN='\\033[0;32m'\r\nYELLOW='\\033[1;33m'\r\nBLUE='\\033[0;34m'\r\nNC='\\033[0m'\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}Sons of the Forrest Installscript${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}download and install steamcmd. please wait...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\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\necho -e \"${GREEN}..done..${NC}\"\r\n\r\n## install game using steamcmd\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}install game using steamcmd. please wait...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\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\necho -e \"${GREEN}..done..${NC}\"\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\nmkdir -p \/mnt\/server\/serverconfig\r\nFILE=$HOME\/serverconfig\/dedicatedserver.cfg\r\nif [ -f \"$FILE\" ]; then\r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n echo -e \"${GREEN}dedicatedserver.cfg found.${NC}\"\r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\nelse \r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n echo -e \"${RED}No dedicatedserver.cfg found. Downloading default...${NC}\"\r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n cd $HOME\/serverconfig\/\r\n curl -sSL -o dedicatedserver.cfg https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/sonsoftheforest\/dedicatedserver.cfg\r\nfi\r\necho -e \"${GREEN}..done..${NC}\"\r\n\r\nFILE=$HOME\/serverconfig\/ownerswhitelist.txt\r\nif [ -f \"$FILE\" ]; then\r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n echo -e \"${GREEN}ownerswhitelist.txt found.${NC}\"\r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\nelse \r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n echo -e \"${RED}No ownerswhitelist.txt found. Downloading default...${NC}\"\r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n cd $HOME\/serverconfig\/\r\n curl -sSL -o ownerswhitelist.txt https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/sonsoftheforest\/ownerswhitelist.txt\r\nfi\r\necho -e \"${GREEN}..done..${NC}\"\r\n\r\n## install end\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${GREEN}Installation completed...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\nclear\r\nRED='\\033[0;31m'\r\nGREEN='\\033[0;32m'\r\nYELLOW='\\033[1;33m'\r\nBLUE='\\033[0;34m'\r\nNC='\\033[0m'\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}Sons of the Forest Installscript${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}download and install steamcmd. please wait...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\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\necho -e \"${GREEN}..done..${NC}\"\r\n\r\n## install game using steamcmd\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}install game using steamcmd. please wait...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\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\necho -e \"${GREEN}..done..${NC}\"\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\nmkdir -p \/mnt\/server\/serverconfig\r\nFILE=$HOME\/serverconfig\/dedicatedserver.cfg\r\nif [ -f \"$FILE\" ]; then\r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n echo -e \"${GREEN}dedicatedserver.cfg found.${NC}\"\r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\nelse \r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n echo -e \"${RED}No dedicatedserver.cfg found. Downloading default...${NC}\"\r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n cd $HOME\/serverconfig\/\r\n curl -sSL -o dedicatedserver.cfg https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/sonsoftheforest\/dedicatedserver.cfg\r\nfi\r\necho -e \"${GREEN}..done..${NC}\"\r\n\r\nFILE=$HOME\/serverconfig\/ownerswhitelist.txt\r\nif [ -f \"$FILE\" ]; then\r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n echo -e \"${GREEN}ownerswhitelist.txt found.${NC}\"\r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\nelse \r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n echo -e \"${RED}No ownerswhitelist.txt found. Downloading default...${NC}\"\r\n echo -e \"${BLUE}-------------------------------------------------${NC}\"\r\n cd $HOME\/serverconfig\/\r\n curl -sSL -o ownerswhitelist.txt https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/sonsoftheforest\/ownerswhitelist.txt\r\nfi\r\necho -e \"${GREEN}..done..${NC}\"\r\n\r\n## install end\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${GREEN}Installation completed...${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -67,7 +67,7 @@ "default_value": "4", "user_viewable": true, "user_editable": true, - "rules": "required|integer|min:1", + "rules": "required|integer|between:1,8", "field_type": "text" }, { From 998087b89a41116d7ee25c729f04cd8d96297378 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 29 Jun 2023 10:44:02 +0200 Subject: [PATCH 27/53] Add extra comment to Syeam Networking variable --- .../no_one_survived/egg-no-one-survived.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/no_one_survived/egg-no-one-survived.json b/game_eggs/steamcmd_servers/no_one_survived/egg-no-one-survived.json index 9f4f5b7a..66c39a6d 100644 --- a/game_eggs/steamcmd_servers/no_one_survived/egg-no-one-survived.json +++ b/game_eggs/steamcmd_servers/no_one_survived/egg-no-one-survived.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-06-02T20:29:13+02:00", + "exported_at": "2023-06-29T10:42:53+02:00", "name": "No One Survived", "author": "josdekurk@gmail.com", "description": "This is a multiplayer cooperative open world construction survival sandbox game, where you and your friends must find supplies and build shelters in this world. You have to keep an eye on your character's needs state at all times, a bad state is likely to lead to death.", @@ -110,7 +110,7 @@ }, { "name": "Steam Networking", - "description": "Enable or disable steam networking", + "description": "Enable or disable steam networking.\r\nLeave this to False as with True it will fail to start!", "env_variable": "STEAM_NETWORKING", "default_value": "False", "user_viewable": true, @@ -199,4 +199,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 8e2b2fe1098db8c56a2ace7478e9443486ec45ec Mon Sep 17 00:00:00 2001 From: Daniel Barton Date: Fri, 30 Jun 2023 18:47:08 +0800 Subject: [PATCH 28/53] Updates startup to resolve issues with stop action Corrects call to rcon tool - the -c flag shouldn't be there. Calls processes async and then waits on them so that signal traps can work Traps *both* SIGINT and SIGTERM to account for wings bugs --- .../egg-ark--survival-evolved.json | 47 ++++++++++++------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_evolved/egg-ark--survival-evolved.json b/game_eggs/steamcmd_servers/ark_survival_evolved/egg-ark--survival-evolved.json index 555bfd66..4952cafc 100644 --- a/game_eggs/steamcmd_servers/ark_survival_evolved/egg-ark--survival-evolved.json +++ b/game_eggs/steamcmd_servers/ark_survival_evolved/egg-ark--survival-evolved.json @@ -1,21 +1,21 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1", + "version": "PTDL_v2", "update_url": null }, - "exported_at": "2021-11-26T13:48:52+01:00", + "exported_at": "2023-06-30T10:44:53+00:00", "name": "Ark: Survival Evolved", "author": "dev@shepper.fr", "description": "As a man or woman stranded, naked, freezing, and starving on the unforgiving shores of a mysterious island called ARK, use your skill and cunning to kill or tame and ride the plethora of leviathan dinosaurs and other primeval creatures roaming the land. Hunt, harvest resources, craft items, grow crops, research technologies, and build shelters to withstand the elements and store valuables, all while teaming up with (or preying upon) hundreds of other players to survive, dominate... and escape! \u2014 Gamepedia: ARK", "features": [ "steam_disk_space" ], - "images": [ - "ghcr.io\/parkervcp\/games:source" - ], + "docker_images": { + "ghcr.io\/parkervcp\/games:source": "ghcr.io\/parkervcp\/games:source" + }, "file_denylist": [], - "startup": "rmv() { echo -e \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} -c saveworld && rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} -c DoExit; }; trap rmv 15; cd ShooterGame\/Binaries\/Linux && .\/ShooterGameServer {{SERVER_MAP}}?listen?SessionName=\"{{SESSION_NAME}}\"?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?Port={{SERVER_PORT}}?RCONPort={{RCON_PORT}}?QueryPort={{QUERY_PORT}}?RCONEnabled=True?GameModIds={{MOD_ID}}$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) -server -automanagedmods {{ARGS}} -log & until echo \"waiting for rcon connection...\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD}; do sleep 5; done", + "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; cd ShooterGame\/Binaries\/Linux && .\/ShooterGameServer {{SERVER_MAP}}?listen?SessionName=\"{{SESSION_NAME}}\"?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?Port={{SERVER_PORT}}?RCONPort={{RCON_PORT}}?QueryPort={{QUERY_PORT}}?RCONEnabled=True?GameModIds={{MOD_ID}}$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) -server -automanagedmods {{ARGS}} -log & ARK_PID=$! ; until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<\/proc\/$$\/fd\/0 & wait $!; do sleep 5; done", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Waiting commands for 127.0.0.1:\"\r\n}", @@ -37,7 +37,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|alpha_dash|between:1,100" + "rules": "nullable|alpha_dash|between:1,100", + "field_type": "text" }, { "name": "Admin Password", @@ -46,7 +47,8 @@ "default_value": "PleaseChangeMe", "user_viewable": true, "user_editable": true, - "rules": "required|alpha_dash|between:1,100" + "rules": "required|alpha_dash|between:1,100", + "field_type": "text" }, { "name": "Server Map", @@ -55,7 +57,8 @@ "default_value": "TheIsland", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Server Name", @@ -64,7 +67,8 @@ "default_value": "A Pterodactyl Hosted ARK Server", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:128" + "rules": "required|string|max:128", + "field_type": "text" }, { "name": "Rcon Port", @@ -73,7 +77,8 @@ "default_value": "27020", "user_viewable": true, "user_editable": true, - "rules": "required|numeric" + "rules": "required|numeric", + "field_type": "text" }, { "name": "Query Port", @@ -82,7 +87,8 @@ "default_value": "27015", "user_viewable": true, "user_editable": true, - "rules": "required|numeric" + "rules": "required|numeric", + "field_type": "text" }, { "name": "Auto-update server", @@ -91,7 +97,8 @@ "default_value": "0", "user_viewable": true, "user_editable": true, - "rules": "required|boolean" + "rules": "required|boolean", + "field_type": "text" }, { "name": "Battle Eye", @@ -100,7 +107,8 @@ "default_value": "1", "user_viewable": true, "user_editable": true, - "rules": "required|boolean" + "rules": "required|boolean", + "field_type": "text" }, { "name": "Mods", @@ -109,7 +117,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string" + "rules": "nullable|string", + "field_type": "text" }, { "name": "App ID", @@ -118,7 +127,8 @@ "default_value": "376030", "user_viewable": true, "user_editable": false, - "rules": "nullable|numeric" + "rules": "nullable|numeric", + "field_type": "text" }, { "name": "Additional Arguments", @@ -127,7 +137,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string" + "rules": "nullable|string", + "field_type": "text" } ] -} +} \ No newline at end of file From 723f1d38e3c894d55da3d423463160c822872ffe Mon Sep 17 00:00:00 2001 From: Enozi <54645039+enozii@users.noreply.github.com> Date: Sat, 1 Jul 2023 11:16:55 +0200 Subject: [PATCH 29/53] Updated Evrima egg (#2334) * Updated Evrima egg * cleanup: The Isle --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- .../the_isle/evrima/egg-the-isle.json | 100 +++++++++++++----- 1 file changed, 76 insertions(+), 24 deletions(-) diff --git a/game_eggs/steamcmd_servers/the_isle/evrima/egg-the-isle.json b/game_eggs/steamcmd_servers/the_isle/evrima/egg-the-isle.json index cee68026..0dd4ee8a 100644 --- a/game_eggs/steamcmd_servers/the_isle/evrima/egg-the-isle.json +++ b/game_eggs/steamcmd_servers/the_isle/evrima/egg-the-isle.json @@ -4,25 +4,27 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-09T20:07:00+01:00", + "exported_at": "2023-07-01T11:11:33+02:00", "name": "The Isle", "author": "fredrik.johansenfuun@gmail.com", "description": "The Isle is an open beta with an open-world survival game where players choose from three factions in an attempt to survive a fierce island. Hunt. Prey. Survive.", - "features": null, + "features": [ + "steam_disk_space" + ], "docker_images": { - "ghcr.io\/parkervcp\/games:source": "ghcr.io\/parkervcp\/games:source" + "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], - "startup": "\/home\/container\/steamcmd\/steamcmd.sh +force_install_dir \/home\/container +login Anonymous +app_update 412680 -beta evrima +quit && \/home\/container\/TheIsle\/Binaries\/Linux\/TheIsleServer-Linux-Shipping -Port=$SERVER_PORT -ini:Engine:[EpicOnlineServices]:DedicatedServerClientId=xyza7891gk5PRo3J7G9puCJGFJjmEguW -ini:Engine:[EpicOnlineServices]:DedicatedServerClientSecret=pKWl6t5i9NJK8gTpVlAxzENZ65P8hYzodV8Dqe5Rlc8", + "startup": "\/home\/container\/TheIsle\/Binaries\/Linux\/TheIsleServer-Linux-Shipping -Port=$SERVER_PORT -ini:Engine:[EpicOnlineServices]:DedicatedServerClientId=xyza7891gk5PRo3J7G9puCJGFJjmEguW -ini:Engine:[EpicOnlineServices]:DedicatedServerClientSecret=pKWl6t5i9NJK8gTpVlAxzENZ65P8hYzodV8Dqe5Rlc8", "config": { - "files": "{\r\n \"\/TheIsle\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName\": \"ServerName={{server.build.env.SERVER_NAME}}\",\r\n \"MaxPlayerCount\": \"MaxPlayerCount={{server.build.env.PLAYER_COUNT}}\",\r\n \"MaxPlayers\": \"MaxPlayers={{server.build.env.PLAYER_COUNT}}\",\r\n \"RconEnabled\": \"RconEnabled={{server.build.env.RCON}}\",\r\n \"RconPort\": \"RconPort={{server.build.env.RCON_PORT}}\",\r\n \"RconPassword\": \"RconPassword={{server.build.env.RCON_PASSWORD}}\",\r\n \"QueuePort\": \"QueuePort={{server.build.env.QUEUE_PORT}}\",\r\n \"discord\": \"discord={{server.build.env.DISCORD}}\",\r\n \"bEnableHumans\": \"bEnableHumans={{server.build.env.HUMANS}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"r.EyeAdaptation.BlackHistogramBucketInfluence =\"\r\n}", + "files": "{\r\n \"\/TheIsle\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName\": \"ServerName={{server.build.env.SERVER_NAME}}\",\r\n \"MaxPlayerCount\": \"MaxPlayerCount={{server.build.env.PLAYER_COUNT}}\",\r\n \"MaxPlayers\": \"MaxPlayers={{server.build.env.PLAYER_COUNT}}\",\r\n \"bRconEnabled\": \"bRconEnabled={{server.build.env.RCON}}\",\r\n \"RconPort\": \"RconPort={{server.build.env.RCON_PORT}}\",\r\n \"RconPassword\": \"RconPassword={{server.build.env.RCON_PASSWORD}}\",\r\n \"bQueueEnabled\": \"bQueueEnabled={{server.build.env.ENABLE_QUEUE}}\",\r\n \"QueuePort\": \"QueuePort={{server.build.env.QUEUE_PORT}}\",\r\n \"discord\": \"discord={{server.build.env.DISCORD}}\",\r\n \"bEnableHumans\": \"bEnableHumans={{server.build.env.HUMANS}}\",\r\n \"bServerPassword\": \"bServerPassword={{server.build.env.SERVER_PASSWORD_ENABLED}}\",\r\n \"ServerPassword\": \"ServerPassword={{server.build.env.SERVER_PASSWORD}}\",\r\n \"bAllowReplay\": \"bAllowReplay={{server.build.env.ALLOW_REPLAY}}\",\r\n \"bServerDynamicWeather\": \"bServerDynamicWeather={{server.build.env.DYNAMIC_WEATHER}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Display: Session started succesfully!\"\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 'debian:buster-slim'\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\n\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} +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) 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# The Isle\r\nmkdir -p \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\r\n\r\n#Config File\r\ncat > \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\/Game.ini << ENDOFFILE\r\n[\/Script\/Engine.Game]\r\nRconEnabled=${RCON}\r\nRconPort=${RCON_PORT}\r\nRconPassword=${RCON_PASSWORD}\r\n-\r\n[\/Script\/TheIsle.TIGameSession]\r\nServerName=${SERVER_NAME}\r\nMaxPlayerCount=${PLAYER_COUNT}\r\nbEnableGlobalChat=true\r\nbGlobalIsSpeciesOnly=false\r\nbLocalIsSpeciesOnly=true\r\nbEnableHumans=${HUMANS}\r\nLocalChatRange=20000.f\r\nQueuePort=${QUEUE_PORT}\r\ndiscord=${DISCORD}\r\n-\r\n[\/Script\/Engine.GameSession]\r\nMaxPlayers=${PLAYER_COUNT}\r\n-\r\n[\/Script\/TheIsle.TIGameStateBase]\r\nAdminsSteamIDs=${ADMINSTEAMID}\r\nENDOFFILE\r\n#Hotfix\r\ncat > \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\/Engine.ini << ENDOFFILE\r\n[Core.System]\r\nPaths=..\/..\/..\/Engine\/Content\r\nPaths=%GAMEDIR%Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/SoundUtilities\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Synthesis\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/AudioSynesthesia\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/WebBrowserWidget\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/FX\/Niagara\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/PythonScriptPlugin\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/SteamCore\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/RVTObjectLandscapeBlending\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Nvidia\/DLSS\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/DonMeshPainting\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/UIPF\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/EOSCore\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ControlRig\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Nvidia\/DLSSMoviePipelineSupport\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/MovieScene\/MovieRenderPipeline\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Compositing\/OpenColorIO\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/MovieScene\/SequencerScripting\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/ImpostorBaker\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/2D\/Paper2D\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Developer\/AnimationSharing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Editor\/GeometryMode\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Editor\/SpeedTreeImporter\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Enterprise\/DatasmithContent\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosClothEditor\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/GeometryProcessing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/GeometryCollectionPlugin\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosSolverPlugin\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosNiagara\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/MotoSynth\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Media\/MediaCompositing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXREyeTracker\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXR\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXRHandTracking\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/VirtualProduction\/Takes\/Content\r\n\r\n[EpicOnlineServices]\r\nDedicatedServerClientId=xyza7891gk5PRo3J7G9puCJGFJjmEguW\r\nDedicatedServerClientSecret=pKWl6t5i9NJK8gTpVlAxzENZ65P8hYzodV8Dqe5Rlc8\r\nENDOFFILE\r\nchmod -R 777 \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\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# The Isle\r\nmkdir -p \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\r\n#Config File\r\ncat > \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\/Game.ini << ENDOFFILE\r\n[\/Script\/TheIsle.TIGameSession]\r\nServerName=${SERVER_NAME}\r\nMaxPlayerCount=${PLAYER_COUNT}\r\nbRconEnabled=${RCON}\r\nRconPort=${RCON_PORT}\r\nRconPassword=${RCON_PASSWORD}\r\nbServerPassword=${SERVER_PASSWORD_ENABLED}\r\nServerPassword=${SERVER_PASSWORD}\r\nbServerDynamicWeather=${DYNAMIC_WEATHER}\r\nbAllowReplay=${ALLOW_REPLAY}\r\nbEnableHumans=${HUMANS}\r\nbQueueEnabled=${ENABLE_QUEUE}\r\nQueuePort=${QUEUE_PORT}\r\n-\r\n[\/Script\/TheIsle.TIGameStateBase]\r\nAdminsSteamIDs=${ADMINSTEAMID}\r\nENDOFFILE\r\n#Hotfix\r\ncat > \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\/Engine.ini << ENDOFFILE\r\n[Core.System]\r\nPaths=..\/..\/..\/Engine\/Content\r\nPaths=%GAMEDIR%Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/SoundUtilities\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Synthesis\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/AudioSynesthesia\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/WebBrowserWidget\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/FX\/Niagara\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/PythonScriptPlugin\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/SteamCore\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/RVTObjectLandscapeBlending\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Nvidia\/DLSS\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/DonMeshPainting\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/UIPF\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/EOSCore\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ControlRig\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/Nvidia\/DLSSMoviePipelineSupport\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/MovieScene\/MovieRenderPipeline\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Compositing\/OpenColorIO\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/MovieScene\/SequencerScripting\/Content\r\nPaths=..\/..\/..\/TheIsle\/Plugins\/ImpostorBaker\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/2D\/Paper2D\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Developer\/AnimationSharing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Editor\/GeometryMode\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Editor\/SpeedTreeImporter\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Enterprise\/DatasmithContent\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosClothEditor\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/GeometryProcessing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/GeometryCollectionPlugin\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosSolverPlugin\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/ChaosNiagara\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Experimental\/MotoSynth\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Media\/MediaCompositing\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXREyeTracker\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXR\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/Runtime\/OpenXRHandTracking\/Content\r\nPaths=..\/..\/..\/Engine\/Plugins\/VirtualProduction\/Takes\/Content\r\n\r\n[EpicOnlineServices]\r\nDedicatedServerClientId=xyza7891gk5PRo3J7G9puCJGFJjmEguW\r\nDedicatedServerClientSecret=pKWl6t5i9NJK8gTpVlAxzENZ65P8hYzodV8Dqe5Rlc8\r\nENDOFFILE\r\n\r\nchmod -R 777 \/mnt\/server\/TheIsle\/Saved\/Config\/LinuxServer\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -48,6 +50,36 @@ "rules": "required|numeric|digits_between:1,100", "field_type": "text" }, + { + "name": "Allow Replay", + "description": "Enable or disable Replay", + "env_variable": "ALLOW_REPLAY", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "Humans", + "description": "Enable or disable humans", + "env_variable": "HUMANS", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "Enable Dynamic weather", + "description": "Enable or disable dynamic weather", + "env_variable": "DYNAMIC_WEATHER", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, { "name": "RCON", "description": "Enable RCON", @@ -64,7 +96,7 @@ "env_variable": "RCON_PORT", "default_value": "44000", "user_viewable": true, - "user_editable": true, + "user_editable": false, "rules": "required|numeric", "field_type": "text" }, @@ -72,19 +104,29 @@ "name": "RCON Password", "description": "", "env_variable": "RCON_PASSWORD", - "default_value": "RCON_password_is_a_must", + "default_value": "", "user_viewable": true, "user_editable": true, "rules": "required|string", "field_type": "text" }, + { + "name": "Enable Queue", + "description": "Enable the queue", + "env_variable": "ENABLE_QUEUE", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, { "name": "Queue Port", "description": "", "env_variable": "QUEUE_PORT", "default_value": "44000", "user_viewable": true, - "user_editable": true, + "user_editable": false, "rules": "required|numeric", "field_type": "text" }, @@ -94,20 +136,30 @@ "env_variable": "DISCORD", "default_value": "norden", "user_viewable": true, - "user_editable": true, + "user_editable": false, "rules": "nullable|string|max:20", "field_type": "text" }, { - "name": "Humans", - "description": "Enable humans", - "env_variable": "HUMANS", + "name": "Server Password", + "description": "Enable server password", + "env_variable": "SERVER_PASSWORD_ENABLED", "default_value": "false", "user_viewable": true, "user_editable": true, "rules": "required|string|in:true,false", "field_type": "text" }, + { + "name": "Server Password", + "description": "The password of the server", + "env_variable": "SERVER_PASSWORD", + "default_value": "No password", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20", + "field_type": "text" + }, { "name": "Auto Update", "description": "Auto update on restart", @@ -118,6 +170,16 @@ "rules": "required|boolean", "field_type": "text" }, + { + "name": "Beta branch of a steam app.", + "description": "", + "env_variable": "SRCDS_BETAID", + "default_value": "evrima", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, { "name": "App id", "description": "", @@ -127,16 +189,6 @@ "user_editable": false, "rules": "required|string|in:412680", "field_type": "text" - }, - { - "name": "Beta ID", - "description": "Beta branch of a steam app.", - "env_variable": "SRCDS_BETAID", - "default_value": "evrima", - "user_viewable": false, - "user_editable": false, - "rules": "required|string|", - "field_type": "text" } ] } \ No newline at end of file From 2bf0da4a047d96b4fc13c4f948f0f2dd4e751a84 Mon Sep 17 00:00:00 2001 From: Vedran <94656982+vedran77@users.noreply.github.com> Date: Sat, 1 Jul 2023 11:39:30 +0200 Subject: [PATCH 30/53] OpenMp Egg (#2269) * Add OpenMp egg * cleanup: OpenMP --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- README.md | 1 + game_eggs/README.md | 1 + game_eggs/gta/README.md | 3 + game_eggs/gta/openmp/README.md | 10 +++ game_eggs/gta/openmp/config.json | 93 ++++++++++++++++++++++++++ game_eggs/gta/openmp/egg-open-m-p.json | 52 ++++++++++++++ 6 files changed, 160 insertions(+) create mode 100644 game_eggs/gta/openmp/README.md create mode 100644 game_eggs/gta/openmp/config.json create mode 100644 game_eggs/gta/openmp/egg-open-m-p.json diff --git a/README.md b/README.md index 772456bf..cc0b8b53 100644 --- a/README.md +++ b/README.md @@ -135,6 +135,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * GTA SA * [Multi Theft Auto](game_eggs/gta/mtasa) * [SA-MP](game_eggs/gta/samp) + * [OpenMp](game_eggs/gta/openmp) * GTA * [GTAC](game_eggs/gta/gtac) diff --git a/game_eggs/README.md b/game_eggs/README.md index 67501909..a4c31d61 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -40,6 +40,7 @@ * GTA SA * [Multi Theft Auto](gta/mtasa) * [SA-MP](gta/samp) + * [OpenMp](gta/openmp) * GTA * [GTAC](gta/gtac) diff --git a/game_eggs/gta/README.md b/game_eggs/gta/README.md index 9ac0a052..fe23fdd1 100644 --- a/game_eggs/gta/README.md +++ b/game_eggs/gta/README.md @@ -20,6 +20,9 @@ alt:V Multiplayer a third-party multiplayer modification for Grand Theft Auto: V [GTA SA:MP](https://www.sa-mp.com/) SA-MP is a free Massively Multiplayer Online game mod for the PC version of Rockstar Games Grand Theft Auto: San Andreas (tm). +[OpenMp](https://www.open.mp/) +A multiplayer mod for Grand Theft Auto: San Andreas that is fully backwards compatible with San Andreas Multiplayer. + [MTA SA](https://mtasa.com/) What more could you want? Multi Theft Auto provides the best online Grand Theft Auto experience there is. Read on to find out more. diff --git a/game_eggs/gta/openmp/README.md b/game_eggs/gta/openmp/README.md new file mode 100644 index 00000000..2f9cabb5 --- /dev/null +++ b/game_eggs/gta/openmp/README.md @@ -0,0 +1,10 @@ +# OpenMp + +The [OpenMp](https://www.open.mp/) GTA San Andreas dedicated server + +## Server Ports + + +| Port | default | +|---------|---------| +| Game | 25570 | diff --git a/game_eggs/gta/openmp/config.json b/game_eggs/gta/openmp/config.json new file mode 100644 index 00000000..d2a04f2e --- /dev/null +++ b/game_eggs/gta/openmp/config.json @@ -0,0 +1,93 @@ +{ + "announce": true, + "artwork": { + "cdn": "", + "enable": true, + "models_path": "models" + }, + "chat_input_filter": true, + "enable_query": true, + "game": { + "allow_interior_weapons": true, + "chat_radius": 200.0, + "death_drop_amount": 0, + "gravity": 0.008, + "group_player_objects": false, + "lag_compensation_mode": 1, + "map": "", + "mode": "", + "nametag_draw_radius": 70.0, + "player_marker_draw_radius": 250.0, + "player_marker_mode": 1, + "time": 12, + "use_all_animations": false, + "use_chat_radius": false, + "use_entry_exit_markers": true, + "use_instagib": false, + "use_manual_engine_and_lights": false, + "use_nametag_los": true, + "use_nametags": true, + "use_player_marker_draw_radius": false, + "use_player_ped_anims": false, + "use_stunt_bonuses": true, + "use_vehicle_friendly_fire": false, + "use_zone_names": false, + "vehicle_respawn_time": 10000, + "weather": 10 + }, + "language": "", + "logging": { + "enable": true, + "log_chat": true, + "log_cookies": false, + "log_deaths": true, + "log_queries": false, + "log_sqlite": false, + "log_sqlite_queries": false, + "timestamp_format": "[%Y-%m-%dT%H:%M:%S%z]", + "use_prefix": true, + "use_timestamp": true + }, + "max_bots": 0, + "max_players": 50, + "name": "open.mp server", + "network": { + "acks_limit": 3000, + "aiming_sync_rate": 30, + "allow_037_clients": true, + "bind": "", + "cookie_reseed_time": 300000, + "in_vehicle_sync_rate": 30, + "limits_ban_time": 60000, + "message_hole_limit": 3000, + "messages_limit": 500, + "minimum_connection_time": 0, + "mtu": 576, + "multiplier": 10, + "on_foot_sync_rate": 30, + "player_marker_sync_rate": 2500, + "player_timeout": 10000, + "port": 7777, + "public_addr": "", + "stream_radius": 200.0, + "stream_rate": 1000, + "time_sync_rate": 30000, + "use_lan_mode": false + }, + "password": "", + "pawn": { + "legacy_plugins": [], + "main_scripts": [ + "test 1" + ], + "side_scripts": [] + }, + "rcon": { + "allow_teleport": false, + "enable": false, + "password": "changeme" + }, + "sleep": 5.0, + "use_dyn_ticks": true, + "website": "open.mp" +} diff --git a/game_eggs/gta/openmp/egg-open-m-p.json b/game_eggs/gta/openmp/egg-open-m-p.json new file mode 100644 index 00000000..6b41c066 --- /dev/null +++ b/game_eggs/gta/openmp/egg-open-m-p.json @@ -0,0 +1,52 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-07-01T11:37:31+02:00", + "name": "OpenMP", + "author": "vedrancappone@gmail.com", + "description": "A multiplayer mod for Grand Theft Auto: San Andreas that is fully backwards compatible with San Andreas Multiplayer.", + "features": null, + "docker_images": { + "Samp": "ghcr.io\/parkervcp\/games:samp" + }, + "file_denylist": [], + "startup": ".\/omp-server", + "config": { + "files": "{\r\n \"config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"network.port\": \"{{server.build.default.port}}\",\r\n \"rcon.password\": \"{{server.build.env.RCON_PASSWORD}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"started on port\"\r\n}", + "logs": "{}", + "stop": "exit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\napt -y install curl git jq tar\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/openmultiplayer\/open.mp\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/openmultiplayer\/open.mp\/releases\")\r\nMATCH=open.mp-linux-x86-dynssl\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -linux-x86 | head -1)\r\n fi\r\nfi\r\n\r\necho \"running: curl -sSL -o openmp.tar.gz ${DOWNLOAD_URL}\"\r\ncurl -sSL -o openmp.tar.gz ${DOWNLOAD_URL}\r\n\r\nmkdir -p \/mnt\/server\r\ntar -xzvf openmp.tar.gz --strip-components=1 -C \/mnt\/server\/\r\n\r\ncd \/mnt\/server || exit\r\n\r\necho \"creating default config\"\r\n\r\nif [ -e config.json ]; then\r\n echo \"server config file exists\"\r\nelse\r\n echo \"Downloading default OpenMp config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/gta\/openmp\/config.json >> config.json\r\nfi\r\n\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "RCON Password", + "description": "The password for RCON", + "env_variable": "RCON_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + }, + { + "name": "Version", + "description": "The version you want to install", + "env_variable": "VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + } + ] +} \ No newline at end of file From 1b37f9aaa6126382a1fa975917fe6b1a35d9848a Mon Sep 17 00:00:00 2001 From: diedyesterday <81169193+diedyesterdaywashere@users.noreply.github.com> Date: Sat, 1 Jul 2023 13:56:28 +0300 Subject: [PATCH 31/53] Add DDRaceNetwork (#2275) * add DDRaceNetwork egg * cleanup: DDRaceNetwork --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- README.md | 2 + game_eggs/README.md | 2 + game_eggs/ddracenetwork/README.md | 20 +++++ .../ddracenetwork/egg-d-d-race-network.json | 82 +++++++++++++++++++ 4 files changed, 106 insertions(+) create mode 100644 game_eggs/ddracenetwork/README.md create mode 100644 game_eggs/ddracenetwork/egg-d-d-race-network.json diff --git a/README.md b/README.md index cc0b8b53..dc826cbd 100644 --- a/README.md +++ b/README.md @@ -111,6 +111,8 @@ If you are reading this it looks like you are looking to add an egg to your serv * [MCGalaxy](game_eggs/classicube/mcgalaxy) +[DDRaceNetwork](game_eggs/ddracenetwork) + [Doom](game_eggs/doom) * [Zandronum](game_eggs/doom/zandronum) diff --git a/game_eggs/README.md b/game_eggs/README.md index a4c31d61..c50cdd4b 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -16,6 +16,8 @@ * [CS2D](cs2d) +[DDRaceNetwork](ddracenetwork/) + [Doom](doom) * [Zandronum](doom/zandronum) diff --git a/game_eggs/ddracenetwork/README.md b/game_eggs/ddracenetwork/README.md new file mode 100644 index 00000000..8b02ea2e --- /dev/null +++ b/game_eggs/ddracenetwork/README.md @@ -0,0 +1,20 @@ +# DDRaceNetwork + +## From their [Website](https://ddnet.org/downloads/) + +DDraceNetwork (DDNet) is an actively maintained version of DDRace, a Teeworlds modification with a unique cooperative gameplay.. + +## Installation/System Requirements +| | Bare Minimum | Recommended | +|---------|---------|---------| +| Processor | Almost any proccessor will work | -| +| RAM | 100 MiB | 256 MiB | +| Storage | 70 MiB | 1024 MiB | +| Network | Any reasonable speed |- | +| Game Ownership | Not needed | The game is free, and server doesn't need the game to work. | + +## Server Ports + +| Port | default | +|---------|---------| +| Game | 8303 | diff --git a/game_eggs/ddracenetwork/egg-d-d-race-network.json b/game_eggs/ddracenetwork/egg-d-d-race-network.json new file mode 100644 index 00000000..6701c87b --- /dev/null +++ b/game_eggs/ddracenetwork/egg-d-d-race-network.json @@ -0,0 +1,82 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-07-01T12:47:31+02:00", + "name": "DDRaceNetwork", + "author": "diedyesterdaywashere@gmail.com", + "description": "DDraceNetwork (DDNet) is an actively maintained version of DDRace, a Teeworlds modification with a unique cooperative gameplay.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian" + }, + "file_denylist": [], + "startup": ".\/DDNet-Server", + "config": { + "files": "{\r\n \"data\/autoexec_server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"sv_port\": \"sv_port {{server.build.default.port}}\",\r\n \"sv_name\": \"sv_name \\\"{{server.build.env.SERVER_NAME}}\\\"\",\r\n \"password\": \"password \\\"{{server.build.env.SERVER_PASSWORD}}\\\"\",\r\n \"sv_map\": \"sv_map \\\"{{server.build.env.SERVER_MAP}}\\\"\",\r\n \"sv_register\": \"sv_register {{server.build.env.SERVER_REGISTER}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \" server name is \"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\napt update\r\napt -y install curl xz-utils tar\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n A=$(curl -sSL https:\/\/ddnet.org\/downloads\/ | grep -io '> myServerconfig.cfg\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "debian:bullseye-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Game Version", + "description": "Latest is the default, put \"nightly\" for beta, or enter the version number, for example \"17.0\".", + "env_variable": "VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Server name", + "description": "The name of the server", + "env_variable": "SERVER_NAME", + "default_value": "My DDNet server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:64", + "field_type": "text" + }, + { + "name": "Server password", + "description": "Password for joining the server, empty for no password", + "env_variable": "SERVER_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:64", + "field_type": "text" + }, + { + "name": "Server map", + "description": "Map to start server with", + "env_variable": "SERVER_MAP", + "default_value": "Tutorial", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:64", + "field_type": "text" + }, + { + "name": "Register server", + "description": "Register the server to the server list.\r\n0 is disabled\r\nipv4 is enabled listening ipv4", + "env_variable": "SERVER_REGISTER", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:0,ipv4", + "field_type": "text" + } + ] +} \ No newline at end of file From ae30536b34592683b9464ce22f4fcdb1d347ee73 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 1 Jul 2023 18:35:32 +0200 Subject: [PATCH 32/53] add: Spacestation 14 --- README.md | 2 + game_eggs/README.md | 2 + game_eggs/spacestation_14/README.md | 31 ++++++++++ .../spacestation_14/egg-spacestation14.json | 62 +++++++++++++++++++ 4 files changed, 97 insertions(+) create mode 100644 game_eggs/spacestation_14/README.md create mode 100644 game_eggs/spacestation_14/egg-spacestation14.json diff --git a/README.md b/README.md index dc826cbd..6057a1d9 100644 --- a/README.md +++ b/README.md @@ -212,6 +212,8 @@ If you are reading this it looks like you are looking to add an egg to your serv * [RedM](game_eggs/rdr/redm) +[Spacestation 14](game_eggs/spacestation_14) + [Rimworld](game_eggs/rimworld) * [Open World](game_eggs/rimworld/open_world) diff --git a/game_eggs/README.md b/game_eggs/README.md index c50cdd4b..b2b387e7 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -110,6 +110,8 @@ * [RedM](rdr/redm) +[Spacestation 14](spacestation_14) + [Rimworld](rimworld) * [Open World](rimworld/open_world) diff --git a/game_eggs/spacestation_14/README.md b/game_eggs/spacestation_14/README.md new file mode 100644 index 00000000..1bb753af --- /dev/null +++ b/game_eggs/spacestation_14/README.md @@ -0,0 +1,31 @@ +# Spacestation 14 + +## From their [Site](https://spacestation14.io/) + +## [Documentation](https://docs.spacestation14.io/en/getting-started/hosting) + + +## Minimum RAM warning + +Minimum required memory to run the server. +2GB is recommended. 3GB+ is preferred + +## Minumim Sorage warning + +Minimum required storage to run the server. +Example: 100MiB is recommended. 2GiB+ is preferred + + +## Server Ports + +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Game | 1212 (TCP+ UDP) | + +### Notes + + +1212 is the default port, but any port can be used. + diff --git a/game_eggs/spacestation_14/egg-spacestation14.json b/game_eggs/spacestation_14/egg-spacestation14.json new file mode 100644 index 00000000..17fbbb57 --- /dev/null +++ b/game_eggs/spacestation_14/egg-spacestation14.json @@ -0,0 +1,62 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-07-01T18:30:46+02:00", + "name": "Spacestation 14", + "author": "josdekurk@gmail.com", + "description": "Space Station 14 tells the story of an ordinary shift on a space station gone wrong. Immerse yourself into your role, tinker with detailed systems, and survive the chaos in this round-based multiplayer role playing game.", + "features": null, + "docker_images": { + "Dotnet 7": "ghcr.io\/parkervcp\/yolks:dotnet_7" + }, + "file_denylist": [], + "startup": ".\/Robust.Server", + "config": { + "files": "{\r\n \"server_config.toml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"port\": \"port = {{server.build.default.port}}\",\r\n \"hostname\": \"hostname = \\\"{{server.build.env.SERVER_NAME}}\\\"\",\r\n \"tickrate\": \"tickrate = {{server.build.env.SERVER_TICK}}\",\r\n \"max_connections\": \"max_connections = {{server.build.env.SERVER_MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Server Version\"\r\n}", + "logs": "{}", + "stop": "^SIGKILL" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt -y install curl unzip\r\n\r\nV=$(curl -sSL https:\/\/central.spacestation14.io\/builds\/wizards\/builds.html | grep \"The version is\" | sed -n 's\/.*\\([^<]*\\)<\\\/span>.*\/\\1\/p')\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux-x64\" || echo \"linux-x64\")\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\necho \"Running: curl -sSL -o server_linux.zip https:\/\/cdn.centcomm.spacestation14.com\/builds\/wizards\/builds\/${V}\/SS14.Server_${ARCH}.zip\"\r\ncurl -sSL -o server_linux.zip \"https:\/\/cdn.centcomm.spacestation14.com\/builds\/wizards\/builds\/${V}\/SS14.Server_${ARCH}.zip\"\r\nunzip -o server_linux.zip\r\nrm server_linux.zip\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "debian:bullseye-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Server name", + "description": "The server hostname", + "env_variable": "SERVER_NAME", + "default_value": "MyServer", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:48", + "field_type": "text" + }, + { + "name": "Server tickrate", + "description": "The tickrate of the server. Default is 60", + "env_variable": "SERVER_TICK", + "default_value": "60", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|between:1,80", + "field_type": "text" + }, + { + "name": "Max players", + "description": "", + "env_variable": "SERVER_MAX_PLAYERS", + "default_value": "256", + "user_viewable": true, + "user_editable": false, + "rules": "required|numeric|between:1,256", + "field_type": "text" + } + ] +} \ No newline at end of file From d756bc09adb4f2a4b1d850ad32dc7e309449263b Mon Sep 17 00:00:00 2001 From: Daniel Barton Date: Sun, 2 Jul 2023 22:55:31 +0800 Subject: [PATCH 33/53] Shorten STDIN redirection --- .../ark_survival_evolved/egg-ark--survival-evolved.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_evolved/egg-ark--survival-evolved.json b/game_eggs/steamcmd_servers/ark_survival_evolved/egg-ark--survival-evolved.json index 4952cafc..1a3b73d4 100644 --- a/game_eggs/steamcmd_servers/ark_survival_evolved/egg-ark--survival-evolved.json +++ b/game_eggs/steamcmd_servers/ark_survival_evolved/egg-ark--survival-evolved.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-06-30T10:44:53+00:00", + "exported_at": "2023-07-02T14:54:47+00:00", "name": "Ark: Survival Evolved", "author": "dev@shepper.fr", "description": "As a man or woman stranded, naked, freezing, and starving on the unforgiving shores of a mysterious island called ARK, use your skill and cunning to kill or tame and ride the plethora of leviathan dinosaurs and other primeval creatures roaming the land. Hunt, harvest resources, craft items, grow crops, research technologies, and build shelters to withstand the elements and store valuables, all while teaming up with (or preying upon) hundreds of other players to survive, dominate... and escape! \u2014 Gamepedia: ARK", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/games:source": "ghcr.io\/parkervcp\/games:source" }, "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; cd ShooterGame\/Binaries\/Linux && .\/ShooterGameServer {{SERVER_MAP}}?listen?SessionName=\"{{SESSION_NAME}}\"?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?Port={{SERVER_PORT}}?RCONPort={{RCON_PORT}}?QueryPort={{QUERY_PORT}}?RCONEnabled=True?GameModIds={{MOD_ID}}$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) -server -automanagedmods {{ARGS}} -log & ARK_PID=$! ; until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<\/proc\/$$\/fd\/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} 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; cd ShooterGame\/Binaries\/Linux && .\/ShooterGameServer {{SERVER_MAP}}?listen?SessionName=\"{{SESSION_NAME}}\"?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?Port={{SERVER_PORT}}?RCONPort={{RCON_PORT}}?QueryPort={{QUERY_PORT}}?RCONEnabled=True?GameModIds={{MOD_ID}}$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) -server -automanagedmods {{ARGS}} -log & 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": "{}", "startup": "{\r\n \"done\": \"Waiting commands for 127.0.0.1:\"\r\n}", From f331b0b82856b28b172dc69a3ec79f2dfdbfe390 Mon Sep 17 00:00:00 2001 From: Stefan Kevin <39440609+MatrixSystemPVP@users.noreply.github.com> Date: Sun, 2 Jul 2023 17:38:48 +0200 Subject: [PATCH 34/53] Update egg-unturned.json (#2337) * Update unturned to new docker image * Update the install script and image to the current one --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- .../unturned/egg-unturned.json | 38 +++++++++++++------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/game_eggs/steamcmd_servers/unturned/egg-unturned.json b/game_eggs/steamcmd_servers/unturned/egg-unturned.json index 8f4ad1b2..ac3293fa 100644 --- a/game_eggs/steamcmd_servers/unturned/egg-unturned.json +++ b/game_eggs/steamcmd_servers/unturned/egg-unturned.json @@ -1,19 +1,19 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1", + "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-01-20T13:04:52-05:00", + "exported_at": "2023-07-02T17:36:50+02:00", "name": "Unturned", "author": "parker@parkervcp.com", "description": "Vanilla Unturned with the included RockerMod.", "features": [ "steam_disk_space" ], - "images": [ - "quay.io\/parkervcp\/pterodactyl-images:debian_source" - ], + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" + }, "file_denylist": [], "startup": ".\/Unturned_Headless.x86_64 -batchmode -nographics -bind 0.0.0.0 -port {{SERVER_PORT}}", "config": { @@ -24,8 +24,8 @@ }, "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 'debian:buster-slim'\r\n\r\nDEBIAN_FRONTEND=noninteractive\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; 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\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} 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 \/mnt\/server\/.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 \/mnt\/server\/.steam\/sdk64\/steamclient.so\r\n\r\n## Specific to Unturned\r\ncd \/mnt\/server\/\r\nln -s ..\/..\/..\/steamcmd\/linux64\/steamclient.so Unturned_Headless_Data\/Plugins\/x86_64\/steamclient.so\r\nln -s ..\/Extras\/Rocket.Unturned\/ Modules\/", - "container": "debian:buster-slim", + "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## 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## 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## Specific to Unturned\r\ncd \/mnt\/server\/\r\nln -s ..\/..\/..\/steamcmd\/linux64\/steamclient.so Unturned_Headless_Data\/Plugins\/x86_64\/steamclient.so\r\nln -s ..\/Extras\/Rocket.Unturned\/ Modules\/\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } }, @@ -37,7 +37,8 @@ "default_value": "1110390", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|in:1110390", + "field_type": "text" }, { "name": "ld lib path", @@ -46,7 +47,8 @@ "default_value": ".\/Unturned_Headless_Data\/Plugins\/x86_64\/", "user_viewable": false, "user_editable": false, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { "name": "Steam User", @@ -55,7 +57,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string" + "rules": "nullable|string", + "field_type": "text" }, { "name": "Steam Password", @@ -64,7 +67,18 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string" + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Auto update", + "description": "Auto update on restart", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" } ] -} +} \ No newline at end of file From c126e445a5d770a91b353d4682e186bfc84b37bf Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 2 Jul 2023 17:51:41 +0200 Subject: [PATCH 35/53] Update Pavlov VR --- .../steamcmd_servers/pavlov_vr/README.md | 6 ++ .../pavlov_vr/egg-pavlov-v-r.json | 65 ++++++++++++------- 2 files changed, 46 insertions(+), 25 deletions(-) diff --git a/game_eggs/steamcmd_servers/pavlov_vr/README.md b/game_eggs/steamcmd_servers/pavlov_vr/README.md index 38ca0eb1..f7ee5b9b 100644 --- a/game_eggs/steamcmd_servers/pavlov_vr/README.md +++ b/game_eggs/steamcmd_servers/pavlov_vr/README.md @@ -12,6 +12,12 @@ This server requires about 2048M to run. A 3.2 GHz core will support approximate If you are running multiple servers and have set additional ports (see [Running multiple servers](http://wiki.pavlov-vr.com/index.php?title=Dedicated_server#Running_multiple_servers_on_one_host)) then you need to allow access to the defined port plus the port 400 higher. So if you use 7000 as your port, then UDP 7000 and 7400 need to be open. +### API key + +For your server to show up in the server list, there is now a requirement to have an ApiKey issued by vankrupt. This is to prevent DOS attacks against the master server + +Get the key by going [here](https://pavlov-ms.vankrupt.com/servers/v1/key) and using your mobile number to get a SMS (note that there have been reported failures of this SMS system for non-US mobiles. In this case DM davevillz your mobile and ask for a key). + ### Steam Workshop diff --git a/game_eggs/steamcmd_servers/pavlov_vr/egg-pavlov-v-r.json b/game_eggs/steamcmd_servers/pavlov_vr/egg-pavlov-v-r.json index 8a51b857..0a7fafd9 100644 --- a/game_eggs/steamcmd_servers/pavlov_vr/egg-pavlov-v-r.json +++ b/game_eggs/steamcmd_servers/pavlov_vr/egg-pavlov-v-r.json @@ -1,31 +1,31 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1", + "version": "PTDL_v2", "update_url": null }, - "exported_at": "2021-07-02T04:21:26+03:00", + "exported_at": "2023-07-02T17:49:33+02:00", "name": "Pavlov VR", "author": "admin@devil.wtf", "description": "Pavlov VR is a multiplayer shooter in VR with heavy focus on community features. Realistic reloading features and fast paced combat as part of the core experience. Play the #1 most popular VR shooter on PC today.", "features": [ "steam_disk_space" ], - "images": [ - "quay.io\/parkervcp\/pterodactyl-images:debian_source" - ], + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" + }, "file_denylist": [], - "startup": ".\/Pavlov\/Binaries\/Linux\/PavlovServer -PORT={{SERVER_PORT}}", + "startup": ".\/Pavlov\/Binaries\/Linux\/PavlovServer-Linux-Shipping Pavlov -PORT={{SERVER_PORT}} -KEY=\"{{API_KEY}}\"", "config": { "files": "{\r\n \"Pavlov\/Saved\/Config\/RconSettings.txt\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"Password=\": \"Password={{env.RCON_PASSWORD}}\",\r\n \"Port=\": \"Port={{env.RCON_PORT}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"PavlovLog: StartPlay was called\"\r\n}", + "startup": "{\r\n \"done\": \"Starting Server Status Helper on Port\"\r\n}", "logs": "{}", - "stop": "^C" + "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 'debian:buster-slim'\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 ffound here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# EXTRA_FLAGS - when a server has extra glas for things like beta installs or updates.\r\n#\r\n##\r\napt -y update\r\napt -y --no-install-recommends install wget gdb curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; 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\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} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +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\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\nchmod +x \"\/mnt\/server\/Pavlov\/Binaries\/Linux\/PavlovServer\"\r\n\r\n# Install Configuration Files\r\nmkdir -p \/mnt\/server\/Pavlov\/Saved\/Logs\r\nmkdir -p \/mnt\/server\/Pavlov\/Saved\/Config\/LinuxServer\r\n\r\ncd \/mnt\/server\/Pavlov\/Saved\/Config\/LinuxServer\r\nif [ ! -f Game.ini ]; then\r\n echo -e \"Downloading Pavlov VR Game.ini\"\r\n curl -ssL -o Game.ini https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/pavlov_vr\/Game.ini\r\nfi\r\n\r\ncd \/mnt\/server\/Pavlov\/Saved\/Config\r\nif [ ! -f RconSettings.txt ]; then\r\n echo -e \"Downloading Pavlov VR RconSettings.txt\"\r\n curl -ssL -o RconSettings.txt https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/pavlov_vr\/RconSettings.txt\r\nfi\r\n\r\ncd \/mnt\/server\/\r\nif [ -f PavlovServer.sh ]; then\r\n rm PavlovServer.sh\r\nfi", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n\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## 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\nchmod +x \"\/mnt\/server\/Pavlov\/Binaries\/Linux\/PavlovServer-Linux-Shipping\"\r\n\r\n# Install Configuration Files\r\nmkdir -p \/mnt\/server\/Pavlov\/Saved\/Logs\r\nmkdir -p \/mnt\/server\/Pavlov\/Saved\/Config\/LinuxServer\r\nmkdir -p \/mnt\/server\/Pavlov\/Saved\/maps\r\n\r\n\r\ncd \/mnt\/server\/Pavlov\/Saved\/Config\/LinuxServer\r\nif [ ! -f Game.ini ]; then\r\n echo -e \"Downloading Pavlov VR Game.ini\"\r\n curl -ssL -o Game.ini https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/pavlov_vr\/Game.ini\r\nfi\r\n\r\ncd \/mnt\/server\/Pavlov\/Saved\/Config\r\nif [ ! -f RconSettings.txt ]; then\r\n echo -e \"Downloading Pavlov VR RconSettings.txt\"\r\n curl -ssL -o RconSettings.txt https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/pavlov_vr\/RconSettings.txt\r\nfi\r\n\r\ncd \/mnt\/server\/\r\nif [ -f PavlovServer.sh ]; then\r\n rm PavlovServer.sh\r\nfi\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } }, @@ -37,16 +37,8 @@ "default_value": "622970", "user_viewable": false, "user_editable": false, - "rules": "nullable|numeric" - }, - { - "name": "Server Type", - "description": "Choose Between Beta or Shack (-beta shack) or (-beta beta_server). Leave blank for the normal build.", - "env_variable": "EXTRA_FLAGS", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string|max:20" + "rules": "required|numeric|in:622970", + "field_type": "text" }, { "name": "RCON Password", @@ -55,7 +47,8 @@ "default_value": "CHANGE_ME", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "RCON Port", @@ -64,16 +57,38 @@ "default_value": "8188", "user_viewable": true, "user_editable": true, - "rules": "required|numeric" + "rules": "required|numeric", + "field_type": "text" }, { "name": "Auto-update server", "description": "This is to enable auto-updating for servers.\r\n\r\nDefault is 0. Set to 1 to update", "env_variable": "AUTO_UPDATE", - "default_value": "0", + "default_value": "1", "user_viewable": true, "user_editable": true, - "rules": "required|boolean" + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Beta id", + "description": "Beta branch of a steam app", + "env_variable": "SRCDS_BETAID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|in:,beta_server", + "field_type": "text" + }, + { + "name": "Api key", + "description": "For your server to show up in the server list, there is now a requirement to have an ApiKey issued by vankrupt. This is to prevent DOS attacks against the master server.\r\nGet it here: https:\/\/pavlov-ms.vankrupt.com\/servers\/v1\/key", + "env_variable": "API_KEY", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:64", + "field_type": "text" } ] -} +} \ No newline at end of file From 61c79621952e753a2072708d0f70d9965cfce749 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 2 Jul 2023 17:56:29 +0200 Subject: [PATCH 36/53] Use ubuntu image --- game_eggs/steamcmd_servers/pavlov_vr/egg-pavlov-v-r.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/pavlov_vr/egg-pavlov-v-r.json b/game_eggs/steamcmd_servers/pavlov_vr/egg-pavlov-v-r.json index 0a7fafd9..e0afab91 100644 --- a/game_eggs/steamcmd_servers/pavlov_vr/egg-pavlov-v-r.json +++ b/game_eggs/steamcmd_servers/pavlov_vr/egg-pavlov-v-r.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-07-02T17:49:33+02:00", + "exported_at": "2023-07-02T17:55:48+02:00", "name": "Pavlov VR", "author": "admin@devil.wtf", "description": "Pavlov VR is a multiplayer shooter in VR with heavy focus on community features. Realistic reloading features and fast paced combat as part of the core experience. Play the #1 most popular VR shooter on PC today.", @@ -12,7 +12,7 @@ "steam_disk_space" ], "docker_images": { - "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" + "ghcr.io\/parkervcp\/steamcmd:ubuntu": "ghcr.io\/parkervcp\/steamcmd:ubuntu" }, "file_denylist": [], "startup": ".\/Pavlov\/Binaries\/Linux\/PavlovServer-Linux-Shipping Pavlov -PORT={{SERVER_PORT}} -KEY=\"{{API_KEY}}\"", @@ -91,4 +91,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From c92bbe4112ce7b0c4d475b40f3f2293ee9b5df75 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 2 Jul 2023 19:29:51 +0200 Subject: [PATCH 37/53] add Generic C# --- README.md | 1 + generic/README.md | 5 ++ generic/c#/README.md | 22 +++++++ generic/c#/egg-generic-c.json | 116 ++++++++++++++++++++++++++++++++++ 4 files changed, 144 insertions(+) create mode 100644 generic/c#/README.md create mode 100644 generic/c#/egg-generic-c.json diff --git a/README.md b/README.md index 6057a1d9..9dbb834e 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,7 @@ If you are reading this it looks like you are looking to add an egg to your serv ## [Generic Languages](/generic) +* [C#](/generic/c#/) * [dart](/generic/dart/) * [deno](/generic/deno/) * [golang](/generic/golang/) diff --git a/generic/README.md b/generic/README.md index ee032791..d3ddba3c 100644 --- a/generic/README.md +++ b/generic/README.md @@ -1,5 +1,10 @@ # Generic Language +### [C#](c#) + +[C#](https://learn.microsoft.com/en-us/dotnet/csharp//) +A generic C# language egg running with dotnet + ### [Dart](dart) [dart](https://dart.dev/) diff --git a/generic/c#/README.md b/generic/c#/README.md new file mode 100644 index 00000000..ea246ad4 --- /dev/null +++ b/generic/c#/README.md @@ -0,0 +1,22 @@ +# C# Language Generic + +This egg is designed to run any generic C# application, allowing users to pull their own C# source code from a Github repository. + +There is an option to allow a user to upload their own files to run a bot. + +The startup configs and commands may need changing to actually function properly. + +## Configuration + +The server will be stuck as `starting` until the egg Start Configuration is modified. You have to edit the text to match something your bot will print for Pterodactyl panel to detect it as running. +![image](https://user-images.githubusercontent.com/10975908/126516861-c5cb4630-9f25-405c-8199-97bf5ec15a7f.png) + +You can use arrays to have multiple different values when different bots are being used + +```json +{ + "done":[ + "change this text 1", + "change this text 2" + ] +} diff --git a/generic/c#/egg-generic-c.json b/generic/c#/egg-generic-c.json new file mode 100644 index 00000000..dcdb7bea --- /dev/null +++ b/generic/c#/egg-generic-c.json @@ -0,0 +1,116 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-07-02T19:22:35+02:00", + "name": "Generic C#", + "author": "josdekurk@gmail.com", + "description": "A generic C# (dotnet) egg that runs your C# project.", + "features": null, + "docker_images": { + "Dotnet_7": "ghcr.io\/parkervcp\/yolks:dotnet_7", + "Dotnet_6": "ghcr.io\/parkervcp\/yolks:dotnet_6", + "Dotnet_5": "ghcr.io\/parkervcp\/yolks:dotnet_5", + "Dotnet_3.1": "ghcr.io\/parkervcp\/yolks:dotnet_3.1", + "Dotnet_2.1": "ghcr.io\/parkervcp\/yolks:dotnet_2.1" + }, + "file_denylist": [], + "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; cd {{PROJECT_DIR}}; dotnet restore; dotnet run --project {{PROJECT_FILE}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": [\r\n \"change this text 1\",\r\n \"change this text 2\"\r\n ]\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y git curl jq file unzip\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n echo -e \"assuming user knows what they are doing have a good day.\"\r\n exit 0\r\nfi\r\n\r\n## add git ending if it's not on the address\r\nif [[ ${GIT_ADDRESS} != *.git ]]; then\r\n GIT_ADDRESS=${GIT_ADDRESS}.git\r\nfi\r\n\r\nif [ -z \"${USERNAME}\" ] && [ -z \"${ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git js bot repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n echo -e \"\/mnt\/server directory is not empty.\"\r\n if [ -d .git ]; then\r\n echo -e \".git directory exists\"\r\n if [ -f .git\/config ]; then\r\n echo -e \"loading info from git config\"\r\n ORIGIN=$(git config --get remote.origin.url)\r\n else\r\n echo -e \"files found with no git config\"\r\n echo -e \"closing out without touching things to not break anything\"\r\n exit 10\r\n fi\r\n fi\r\n\r\n if [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\n echo \"pulling latest from github\"\r\n git pull\r\n fi\r\nelse\r\n echo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n if [ -z ${BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${BRANCH}'\"\r\n git clone --single-branch --branch ${BRANCH} ${GIT_ADDRESS} .\r\n fi\r\nfi\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "debian:bullseye-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Git Repo Address", + "description": "GitHub Repo to clone\r\n\r\nI.E. https:\/\/github.com\/parkervcp\/repo_name", + "env_variable": "GIT_ADDRESS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Install Branch", + "description": "The branch to install.", + "env_variable": "BRANCH", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "User Uploaded Files", + "description": "Skip all the install stuff if you are letting a user upload files.\r\n\r\n0 = false (default)\r\n1 = true", + "env_variable": "USER_UPLOAD", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Auto Update", + "description": "Pull the latest files on startup when using a GitHub repo.", + "env_variable": "AUTO_UPDATE", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Git Username", + "description": "Username to auth with git.", + "env_variable": "USERNAME", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Git Access Token", + "description": "Password to use with git.\r\n\r\nIt's best practice to use a Personal Access Token.\r\nhttps:\/\/github.com\/settings\/tokens\r\nhttps:\/\/gitlab.com\/-\/profile\/personal_access_tokens", + "env_variable": "ACCESS_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "project file", + "description": "The main project file if multiple are present", + "env_variable": "PROJECT_FILE", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Project location", + "description": "The location of where the .csproj file is located. not the .sln file!", + "env_variable": "PROJECT_DIR", + "default_value": "\/home\/container", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|", + "field_type": "text" + } + ] +} \ No newline at end of file From 284215704e01f57d60ff76e60dda59d41b6223ed Mon Sep 17 00:00:00 2001 From: Gabriel <35740183+Ex4ltado@users.noreply.github.com> Date: Sun, 2 Jul 2023 19:55:46 -0300 Subject: [PATCH 38/53] Update README.md word "Kotin" to "Kotlin" --- generic/java/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generic/java/README.md b/generic/java/README.md index 5f4e909c..987ebe2f 100644 --- a/generic/java/README.md +++ b/generic/java/README.md @@ -1,6 +1,6 @@ # Java Language Generic -This egg is designed to run any generic Java application, allowing users to pull their own Java source code from a Github repository. This egg is also compatible with Kotin. +This egg is designed to run any generic Java application, allowing users to pull their own Java source code from a Github repository. This egg is also compatible with Kotlin. There is an option to allow a user to upload their own files to run a bot. From 071834d8a6e70f54d43b77470ae450a5b86e946f Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Mon, 3 Jul 2023 16:23:14 +0200 Subject: [PATCH 39/53] Hotfix spacestation14 --- game_eggs/spacestation_14/egg-spacestation14.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/spacestation_14/egg-spacestation14.json b/game_eggs/spacestation_14/egg-spacestation14.json index 17fbbb57..c5826c44 100644 --- a/game_eggs/spacestation_14/egg-spacestation14.json +++ b/game_eggs/spacestation_14/egg-spacestation14.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-07-01T18:30:46+02:00", + "exported_at": "2023-07-03T16:22:48+02:00", "name": "Spacestation 14", "author": "josdekurk@gmail.com", "description": "Space Station 14 tells the story of an ordinary shift on a space station gone wrong. Immerse yourself into your role, tinker with detailed systems, and survive the chaos in this round-based multiplayer role playing game.", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt update\r\napt -y install curl unzip\r\n\r\nV=$(curl -sSL https:\/\/central.spacestation14.io\/builds\/wizards\/builds.html | grep \"The version is\" | sed -n 's\/.*\\([^<]*\\)<\\\/span>.*\/\\1\/p')\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux-x64\" || echo \"linux-x64\")\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\necho \"Running: curl -sSL -o server_linux.zip https:\/\/cdn.centcomm.spacestation14.com\/builds\/wizards\/builds\/${V}\/SS14.Server_${ARCH}.zip\"\r\ncurl -sSL -o server_linux.zip \"https:\/\/cdn.centcomm.spacestation14.com\/builds\/wizards\/builds\/${V}\/SS14.Server_${ARCH}.zip\"\r\nunzip -o server_linux.zip\r\nrm server_linux.zip\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt -y install curl unzip\r\n\r\nV=$(curl -sSL https:\/\/central.spacestation14.io\/builds\/wizards\/builds.html | grep \"The version is\" | sed -n 's\/.*\\([^<]*\\)<\\\/span>.*\/\\1\/p')\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux-x64\" || echo \"linux-arm64\")\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\necho \"Running: curl -sSL -o server_linux.zip https:\/\/cdn.centcomm.spacestation14.com\/builds\/wizards\/builds\/${V}\/SS14.Server_${ARCH}.zip\"\r\ncurl -sSL -o server_linux.zip \"https:\/\/cdn.centcomm.spacestation14.com\/builds\/wizards\/builds\/${V}\/SS14.Server_${ARCH}.zip\"\r\nunzip -o server_linux.zip\r\nrm server_linux.zip\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "debian:bullseye-slim", "entrypoint": "bash" } @@ -59,4 +59,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From dd048b6f4555c8b057ec0426da4b66cbc91714a9 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Mon, 3 Jul 2023 17:46:50 +0200 Subject: [PATCH 40/53] add: Clone Hero --- README.md | 2 + game_eggs/README.md | 4 +- game_eggs/clone_hero/README.md | 31 ++++++++++++ game_eggs/clone_hero/egg-clone-hero.json | 62 ++++++++++++++++++++++++ 4 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 game_eggs/clone_hero/README.md create mode 100644 game_eggs/clone_hero/egg-clone-hero.json diff --git a/README.md b/README.md index 6057a1d9..8b1d9501 100644 --- a/README.md +++ b/README.md @@ -107,6 +107,8 @@ If you are reading this it looks like you are looking to add an egg to your serv [ClassiCube](game_eggs/classicube) +[Clone Hero](game_eggs/clone_hero) + [CS2D](game_eggs/cs2d) * [MCGalaxy](game_eggs/classicube/mcgalaxy) diff --git a/game_eggs/README.md b/game_eggs/README.md index b2b387e7..7db5ea4f 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -12,9 +12,9 @@ [ClassiCube](classicube) -[ClassiCube](classicube) +[Clone Hero](clone_hero) -* [CS2D](cs2d) +[CS2D](cs2d) [DDRaceNetwork](ddracenetwork/) diff --git a/game_eggs/clone_hero/README.md b/game_eggs/clone_hero/README.md new file mode 100644 index 00000000..1778313d --- /dev/null +++ b/game_eggs/clone_hero/README.md @@ -0,0 +1,31 @@ +# Clone Hero + +## From their [Site](https://clonehero.net/) + +## [Documentation](https://wiki.clonehero.net/books/guides-and-tutorials/page/online-multiplayer#bkmrk-hosting-a-standalone) + + +## Minimum RAM warning + +Minimum required memory to run the server. +80MiB is recommended. 2GB+ is preferred + +## Minumim Sorage warning + +Minimum required storage to run the server. +100MiB is recommended. 2GiB+ is preferred + + +## Server Ports + +Ports required to run the server. + +| Port | default | +|---------|---------| +| Game | 14242 | + +### Notes + + +14242 is the default port, but any port can be used. + diff --git a/game_eggs/clone_hero/egg-clone-hero.json b/game_eggs/clone_hero/egg-clone-hero.json new file mode 100644 index 00000000..aaa9fce1 --- /dev/null +++ b/game_eggs/clone_hero/egg-clone-hero.json @@ -0,0 +1,62 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-07-03T16:24:37+02:00", + "name": "Clone Hero", + "author": "josdekurk@gmail.com", + "description": "Clone Hero is a classic instrument based rhythm game for Windows, Mac, Linux, and Android. It's playable with any 5 or 6 fret guitar controller, any midi drum kit, any game controller and even your keyboard! Jam out with Drums, 5-fret Guitar, or 6-fret Guitar online or local!", + "features": null, + "docker_images": { + "Debian": "ghcr.io\/parkervcp\/yolks:debian" + }, + "file_denylist": [], + "startup": ".\/Server -l {{LOG_LEVEL}} -n \"{{SERVER_DISPLAY_NAME}}\" -p {{SERVER_PORT}} -a 0.0.0.0 $([[ -z \"{{SERVER_PASSWORD}}\" ]] && echo -np || echo \"-ps {{SERVER_PASSWORD}}\")", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Server running...\"\r\n}", + "logs": "{}", + "stop": "^SIGKILL" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt -y install curl unzip\r\n\r\nV=$(curl -s https:\/\/clonehero.net\/ | grep -i \"Latest version\" | grep -oP '(?<=).+?(?=<\\\/b>)' | sed -e 's\/^[[:space:]]*\/\/' -e 's\/[[:space:]]*$\/\/') #v1.0.0.4080\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux-x64\" || echo \"linux-arm64\")\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\necho \"Running: curl -sSL -o ChStandaloneServer.zip https:\/\/pubdl.clonehero.net\/chserver\/ChStandaloneServer-${V}-final.zip\"\r\ncurl -sSL -o ChStandaloneServer.zip https:\/\/pubdl.clonehero.net\/chserver\/ChStandaloneServer-${V}-final.zip\r\n\r\nunzip -o ChStandaloneServer.zip\r\nrm ChStandaloneServer.zip\r\nmv ChStandaloneServer-${V}-final\/${ARCH}\/* .\r\nrm -rf ChStandaloneServer-${V}-final\/\r\n\r\nchmod +x Server\r\n\r\n\r\nif [ ! -f \/mnt\/server\/settings.ini ]\r\nthen\r\n\tcurl -sSL -o settings.ini https:\/\/pastebin.com\/raw\/rhcv0hvi\r\nfi\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "debian:bullseye-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Server name", + "description": "The name of the server", + "env_variable": "SERVER_DISPLAY_NAME", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:80", + "field_type": "text" + }, + { + "name": "Server password", + "description": "The password of the server", + "env_variable": "SERVER_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|regex:\/^[a-zA-Z0-9_]+$\/", + "field_type": "text" + }, + { + "name": "Log level", + "description": "Set max logging level", + "env_variable": "LOG_LEVEL", + "default_value": "4", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:0,1,2,3,4", + "field_type": "text" + } + ] +} \ No newline at end of file From 3a67c23a90adc5862b067e20aad4c0be08a1b8c7 Mon Sep 17 00:00:00 2001 From: Griffen <42309996+Griffeng@users.noreply.github.com> Date: Wed, 5 Jul 2023 17:27:31 +0200 Subject: [PATCH 41/53] Update lavalink java version (#2347) * Update lavalink to use java 17 Co-authored-by: Griffen --- voice_servers/lavalink/egg-lavalink.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/voice_servers/lavalink/egg-lavalink.json b/voice_servers/lavalink/egg-lavalink.json index 6d0c93d0..6ac3512e 100644 --- a/voice_servers/lavalink/egg-lavalink.json +++ b/voice_servers/lavalink/egg-lavalink.json @@ -4,13 +4,13 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-06T17:07:59+00:00", + "exported_at": "2023-07-04T22:10:59+02:00", "name": "Lavalink", "author": "damuffin36@gmail.com", "description": "A standalone audio sending node based on Lavaplayer and Koe. Allows for sending audio without it ever reaching any of your shards.\r\nDescription taken from https:\/\/github.com\/freyacodes\/Lavalink", "features": null, "docker_images": { - "ghcr.io\/parkervcp\/yolks:java_11": "ghcr.io\/parkervcp\/yolks:java_11" + "ghcr.io\/parkervcp\/yolks:java_17": "ghcr.io\/parkervcp\/yolks:java_17" }, "file_denylist": [], "startup": "java -jar Lavalink.jar", @@ -28,4 +28,4 @@ } }, "variables": [] -} +} \ No newline at end of file From c7c859a6a3902af1681ff954d9dc3856b0e33c22 Mon Sep 17 00:00:00 2001 From: Azalee Date: Fri, 7 Jul 2023 10:40:55 +0200 Subject: [PATCH 42/53] Add Eggs PowerNukkitX and add server.properties --- .../minecraft/bedrock/PowerNukkitX/README.md | 4 + .../PowerNukkitX/egg-powernukkitx.json | 52 ++++++ .../minecraft/bedrock/PowerNukkitX/nukkit.yml | 162 ++++++++++++++++++ .../bedrock/PowerNukkitX/server.properties | 40 +++++ game_eggs/minecraft/bedrock/README.md | 5 + 5 files changed, 263 insertions(+) create mode 100644 game_eggs/minecraft/bedrock/PowerNukkitX/README.md create mode 100644 game_eggs/minecraft/bedrock/PowerNukkitX/egg-powernukkitx.json create mode 100644 game_eggs/minecraft/bedrock/PowerNukkitX/nukkit.yml create mode 100644 game_eggs/minecraft/bedrock/PowerNukkitX/server.properties diff --git a/game_eggs/minecraft/bedrock/PowerNukkitX/README.md b/game_eggs/minecraft/bedrock/PowerNukkitX/README.md new file mode 100644 index 00000000..641d7d58 --- /dev/null +++ b/game_eggs/minecraft/bedrock/PowerNukkitX/README.md @@ -0,0 +1,4 @@ +# PowerNukkitX + +[PowerNukkitX](https://github.com/PowerNukkitX/PowerNukkitX) +PowerNukkitX is a software for minecraft bedrock edition in Java which is a fork of PowerNukkit \ No newline at end of file diff --git a/game_eggs/minecraft/bedrock/PowerNukkitX/egg-powernukkitx.json b/game_eggs/minecraft/bedrock/PowerNukkitX/egg-powernukkitx.json new file mode 100644 index 00000000..e764b2f3 --- /dev/null +++ b/game_eggs/minecraft/bedrock/PowerNukkitX/egg-powernukkitx.json @@ -0,0 +1,52 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-07-07T02:29:39+02:00", + "name": "PowerNukkitX", + "author": "powernukkitx@github.com", + "description": "PowerNukkitX support for Pterodactyl", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian" + }, + "file_denylist": [], + "startup": ".\/pnx start {{AUTOREBOOT}}", + "config": { + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"query.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \")! For help, type \"\r\n}", + "logs": "{}", + "stop": "stop" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\napt-get update\r\napt-get install -y git curl wget jq file tar unzip zip openssl\r\nmkdir -p \/mnt\/server\/ # Not required. Only here for parkervcp's local test setup\r\ncd \/mnt\/server || exit 1\r\nUPGRADE=\"no\"\r\nif [ -d \".\/java\" ]; then\r\nUPGRADE=\"yes\"\r\nfi\r\nwget https:\/\/github.com\/PowerNukkitX\/PNX-CLI\/releases\/download\/0.1.6\/PNX-CLI-Linux-x86.zip -O pnx.zip\r\nwget https:\/\/raw.githubusercontent.com\/PowerNukkitX\/PowerNukkitX\/master\/src\/main\/resources\/default-nukkit.yml -O nukkit.yml\r\nunzip pnx.zip\r\nrm -fr pnx.zip 2>&1 >\/dev\/null\r\nmv .\/target\/linux-x86\/pnx .\/ 2>&1 >\/dev\/null\r\nrm -fr target 2>&1 >\/dev\/null\r\nrm -fr java 2>&1 >\/dev\/null\r\nchmod +x pnx\r\n.\/pnx jvm install=GraalVM\r\nif [ \"$UPGRADE\" == \"no\" ]; then\r\nif [ \"$VERSION\" == \"latest\" ]; then\r\n.\/pnx server install --latest\r\nelse\r\n.\/pnx server install --dev\r\nfi\r\nelse\r\nrm -fr libs 2>&1 >\/dev\/null\r\nif [ \"$VERSION\" == \"latest\" ]; then\r\n.\/pnx server update --latest\r\nelse\r\n.\/pnx server update --dev\r\nfi\r\nfi\r\nrm -fr tmp-GraalVM.tar.gz 2>&1 >\/dev\/null\r\ncat < 1, it will show debug messages in the console + level: 1 + # Enables commands: /status /gc + commands: false + ignored-packets: + - LevelChunkPacket + +timings: + # Turn off the timing completely, no timing object will be created, which can help improve performance + completely-close: false + # Enable core and plugin timings by default + enabled: false + # Enable monitoring at verbose level, include high-frequency timings + verbose: false + # Interval between history frames in ticks + # Default is 5 minutes (6000 ticks) + history-interval: 6000 + # Length of the whole timing history in ticks + # Default is 1 hour (72000 ticks) + # This value is capped at a maximum of history-interval * 12 + history-length: 72000 + # For special cases of servers with special permission to bypass the max + # This max helps keep data file sizes reasonable for processing on Aikar's Timing parser side + # Setting this will not help you bypass the max unless Aikar has added an exception on the API side + bypass-max: false + # If set to true, name of your server won't be sent + privacy: false + ignore: [] + +level-settings: + # The default format that levels will use when created + default-format: anvil + # Automatically change levels tick rate to maintain 20 ticks per second + auto-tick-rate: true + auto-tick-rate-limit: 20 + # Sets the base tick rate (1 = 20 ticks per second, 2 = 10 ticks per second, etc.) + base-tick-rate: 1 + # Tick all players each tick even when other settings disallow this + always-tick-players: false + tick-redstone: true + +chunk-saving: + maximum-size-per-chunk: 1048576 + +chunk-sending: + # Amount of chunks sent to players per tick + per-tick: 8 + # Amount of chunks sent around each player + max-chunks: 192 + # Amount of chunks that need to be sent before spawning the player + spawn-threshold: 56 + # Save a serialized copy of the chunk in memory for faster sending + # Useful in mostly-static worlds where lots of players join at the same time + cache-chunks: false + +chunk-ticking: + # Max amount of chunks processed each tick + per-tick: 40 + # Radius of chunks around a player to tick + tick-radius: 3 + light-updates: false + clear-tick-list: false + +chunk-generation: + # Max. amount of chunks in the waiting queue to be generated + queue-size: 8 + # Max. amount of chunks in the waiting queue to be populated + population-queue-size: 8 + +# Max tick rate for these entities +ticks-per: + animal-spawns: 400 + monster-spawns: 1 + autosave: 6000 + cache-cleanup: 900 + +memory-compression: + enable: true + slots: 32 + default-temperature: 32 + threshold: + freezing-point: 0 + boiling-point: 1024 + absolute-zero: -256 + heat: + melting: 16 + single-operation: 1 + batch-operation: 32 + + +# Max amount of these entities +spawn-limits: + monsters: 70 + animals: 15 + water-animals: 5 + ambient: 15 + +player: + # If true, player data will be saved as players/playername.dat + # If false, nukkit won't save player data as "dat" files, in order that plugins can do something on it. + save-player-data: true + # The time between skin change action in seconds, set to 0 if you dont want the cooldown + skin-change-cooldown: 30 + force-skin-trusted: false + check-movement: true + +aliases: +# Aliases for commands +# Examples: +# showtheversion: version +# savestop: [save-all, stop] + +worlds: +# These settings will override the generator set in server.properties and allows loading multiple levels +# Examples: +#world: +# seed: 404 +# generator: FLAT:2;7,59x1,3x3,2;1;decoration(treecount=80 grasscount=45) + +anti-xray: +#world: +# enabled: true +# level: low +# pre-deobfuscate: true diff --git a/game_eggs/minecraft/bedrock/PowerNukkitX/server.properties b/game_eggs/minecraft/bedrock/PowerNukkitX/server.properties new file mode 100644 index 00000000..da94fc1b --- /dev/null +++ b/game_eggs/minecraft/bedrock/PowerNukkitX/server.properties @@ -0,0 +1,40 @@ +#Properties Config file +#2023-07-06 06:07:52 +motd=PowerNukkitX Server +sub-motd=https://powernukkitx.cn +server-port=19132 +server-ip=0.0.0.0 +view-distance=12 +white-list=off +achievements=on +announce-player-achievements=on +spawn-protection=16 +max-players=20 +allow-flight=off +spawn-animals=on +spawn-mobs=on +gamemode=0 +force-gamemode=off +hardcore=off +pvp=on +difficulty=1 +generator-settings= +level-name=world +level-seed= +level-type=DEFAULT +allow-nether=on +allow-the_end=on +use-terra=on +enable-experiment-mode=on +enable-query=on +enable-rcon=off +rcon.password= +auto-save=on +force-resources=off +force-resources-allow-client-packs=off +xbox-auth=on +check-login-time=on +disable-auto-bug-report=off +allow-shaded=off +server-authoritative-movement=server-auth +network-encryption=on diff --git a/game_eggs/minecraft/bedrock/README.md b/game_eggs/minecraft/bedrock/README.md index 0bf1314a..521d0bbd 100644 --- a/game_eggs/minecraft/bedrock/README.md +++ b/game_eggs/minecraft/bedrock/README.md @@ -21,6 +21,11 @@ LiteLoaderBDS is an unofficial plugin loader that provides basic API support for [Nukkit GitHub](https://github.com/Nukkit/Nukkit) Nukkit is a Nuclear-Powered Server Software For Minecraft: Pocket Edition +## [PowerNukkitX](/game_eggs/minecraft/bedrock/PowerNukkitX) + +[PowerNukkitX](https://github.com/PowerNukkitX/PowerNukkitX) +PowerNukkitX is a software for minecraft bedrock edition in Java which is a fork of PowerNukkit + ## [PocketMine MP](/game_eggs/minecraft/bedrock/pocketmine_mp) [PocketMine MP](https://github.com/pmmp/PocketMine-MP) From 0a8846e72cfccb79f4cdbb2a49585570f6cf5358 Mon Sep 17 00:00:00 2001 From: diedyesterday <81169193+diedyesterdaywashere@users.noreply.github.com> Date: Sat, 8 Jul 2023 18:17:54 +0300 Subject: [PATCH 43/53] Add Quilt --- game_eggs/minecraft/README.md | 1 + game_eggs/minecraft/java/README.md | 4 ++ game_eggs/minecraft/java/quilt/README.md | 29 ++++++++++ game_eggs/minecraft/java/quilt/egg-quilt.json | 56 +++++++++++++++++++ 4 files changed, 90 insertions(+) create mode 100644 game_eggs/minecraft/java/quilt/README.md create mode 100644 game_eggs/minecraft/java/quilt/egg-quilt.json diff --git a/game_eggs/minecraft/README.md b/game_eggs/minecraft/README.md index 982b0a79..7814da60 100644 --- a/game_eggs/minecraft/README.md +++ b/game_eggs/minecraft/README.md @@ -30,6 +30,7 @@ It’s set in infinitely-generated worlds of wide open terrain - icy mountains, * [NanoLimbo](java/nanolimbo) * [Paper](java/paper) * [Purpur](java/purpur) +* [Quilt](java/quilt/) * [Spigot](java/spigot) * [SpongeForge](java/spongeforge) * [SpongeVanilla](java/spongevanilla) diff --git a/game_eggs/minecraft/java/README.md b/game_eggs/minecraft/java/README.md index 414419e9..1a741073 100644 --- a/game_eggs/minecraft/java/README.md +++ b/game_eggs/minecraft/java/README.md @@ -100,6 +100,10 @@ A lightweight minecraft limbo server, written on Java with Netty. The main goal [Limbo GitHub](https://github.com/LOOHP/Limbo) Standalone server program Limbo. +## [Quilt](quilt) +[Quilt Website](https://quiltmc.org/) +The Quilt project is an open-source, community-driven modding toolchain designed primarily for Minecraft. By focusing on speed, ease of use and modularity, Quilt aims to provide a sleek and modern modding toolchain with an open ecosystem. + ## Spigot Based A collection of spigot and forked spigot eggs. diff --git a/game_eggs/minecraft/java/quilt/README.md b/game_eggs/minecraft/java/quilt/README.md new file mode 100644 index 00000000..0655096f --- /dev/null +++ b/game_eggs/minecraft/java/quilt/README.md @@ -0,0 +1,29 @@ +# Quilt + +## From their [Website](https://quiltmc.org/) + +## [Documentation](https://quiltmc.org/en/install/server/) + +The Quilt project is an open-source, community-driven modding toolchain designed primarily for Minecraft. By focusing on speed, ease of use and modularity, Quilt aims to provide a sleek and modern modding toolchain with an open ecosystem. + +## Installation/System Requirements + +| | Bare Minimum | Recommended | +|---------|---------|---------| +| Processor | Minecraft probably supports everything? | - | +| RAM | 2GB | 5GB | +| Storage | 300MB | 10GB | +| Network | 3 Mbit/s | 7 Mbit/s | +| Game Ownership | The game is not required to run the server. | - | + +## Server Ports + +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Game | 25565 | + +### Notes + +25565 is the default port, but any port can be used. \ No newline at end of file diff --git a/game_eggs/minecraft/java/quilt/egg-quilt.json b/game_eggs/minecraft/java/quilt/egg-quilt.json new file mode 100644 index 00000000..b5e16cca --- /dev/null +++ b/game_eggs/minecraft/java/quilt/egg-quilt.json @@ -0,0 +1,56 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-07-08T16:11:20+03:00", + "name": "Quilt", + "author": "diedyesterdaywashere@gmail.com", + "description": "The Quilt project is an open-source, community-driven modding toolchain designed primarily for Minecraft. By focusing on speed, ease of use and modularity, Quilt aims to provide a sleek and modern modding toolchain with an open ecosystem.", + "features": null, + "docker_images": { + "Java 8": "ghcr.io\/pterodactyl\/yolks:java_8", + "Java 11": "ghcr.io\/pterodactyl\/yolks:java_11", + "Java 16": "ghcr.io\/pterodactyl\/yolks:java_16", + "Java 17": "ghcr.io\/pterodactyl\/yolks:java_17", + "Java 18": "ghcr.io\/pterodactyl\/yolks:java_18" + }, + "file_denylist": [], + "startup": "java -jar {{SERVER_JARFILE}} nogui -Xms128M -XX:MaxRAMPercentage=95.0", + "config": { + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \")! For help, type \",\r\n \"userInteraction\": [\r\n \"Go to eula.txt for more info.\"\r\n ]\r\n}", + "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "stop" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# Quilt Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y wget\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nwget -O quilt.jar https:\/\/quiltmc.org\/api\/v1\/download-latest-installer\/java-universal\r\njava -jar quilt.jar \\\r\n install server $MC_VERSION \\\r\n --download-server\r\ncd \/mnt\/server\/server\r\nmv * \/mnt\/server\r\ncd ..\r\nrm quilt.jar\r\nrmdir \/mnt\/server\/server\r\nmv server.jar minecraft.jar\r\nmv quilt-server-launch.jar server.jar\r\necho \"serverJar=minecraft.jar\" > quilt-server-launcher.properties\r\necho -e \"Server is Ready!\"", + "container": "eclipse-temurin:18-jdk-jammy", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Minecraft Version", + "description": "Version of Minecraft that will be installed. You can only choose the exact version number, for example \"1.19.2\", \"latest\" won't work!", + "env_variable": "MC_VERSION", + "default_value": "1.19.2", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|between:3,15", + "field_type": "text" + }, + { + "name": "Server Jar File", + "description": "The name of the jarfile that will be ran on server launch.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "user_viewable": true, + "user_editable": true, + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/", + "field_type": "text" + } + ] +} \ No newline at end of file From 0e07013cd84f7defe799257b417f9047d1040b1b Mon Sep 17 00:00:00 2001 From: diedyesterday <81169193+diedyesterdaywashere@users.noreply.github.com> Date: Sat, 8 Jul 2023 19:06:00 +0300 Subject: [PATCH 44/53] Update Docker images --- game_eggs/minecraft/java/quilt/egg-quilt.json | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/game_eggs/minecraft/java/quilt/egg-quilt.json b/game_eggs/minecraft/java/quilt/egg-quilt.json index b5e16cca..2d60d507 100644 --- a/game_eggs/minecraft/java/quilt/egg-quilt.json +++ b/game_eggs/minecraft/java/quilt/egg-quilt.json @@ -4,17 +4,16 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-07-08T16:11:20+03:00", + "exported_at": "2023-07-08T19:05:09+03:00", "name": "Quilt", - "author": "diedyesterdaywashere@gmail.com", + "author": "admin@sunstonesoft.com", "description": "The Quilt project is an open-source, community-driven modding toolchain designed primarily for Minecraft. By focusing on speed, ease of use and modularity, Quilt aims to provide a sleek and modern modding toolchain with an open ecosystem.", "features": null, "docker_images": { - "Java 8": "ghcr.io\/pterodactyl\/yolks:java_8", - "Java 11": "ghcr.io\/pterodactyl\/yolks:java_11", - "Java 16": "ghcr.io\/pterodactyl\/yolks:java_16", - "Java 17": "ghcr.io\/pterodactyl\/yolks:java_17", - "Java 18": "ghcr.io\/pterodactyl\/yolks:java_18" + "Java 8: 1.14 - 1.16.5": "ghcr.io\/pterodactyl\/yolks:java_8", + "Java 16: 1.17 - 1.17.1": "ghcr.io\/pterodactyl\/yolks:java_16", + "Java 17: 1.18 - Newest": "ghcr.io\/pterodactyl\/yolks:java_17", + "Java 18: Newest": "ghcr.io\/pterodactyl\/yolks:java_18" }, "file_denylist": [], "startup": "java -jar {{SERVER_JARFILE}} nogui -Xms128M -XX:MaxRAMPercentage=95.0", From 06911328c9e05069bde3b82038b3e48c8d739d8d Mon Sep 17 00:00:00 2001 From: diedyesterday <81169193+diedyesterdaywashere@users.noreply.github.com> Date: Sat, 8 Jul 2023 21:29:57 +0300 Subject: [PATCH 45/53] Update egg-quilt.json --- game_eggs/minecraft/java/quilt/egg-quilt.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/minecraft/java/quilt/egg-quilt.json b/game_eggs/minecraft/java/quilt/egg-quilt.json index 2d60d507..124ad837 100644 --- a/game_eggs/minecraft/java/quilt/egg-quilt.json +++ b/game_eggs/minecraft/java/quilt/egg-quilt.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-07-08T19:05:09+03:00", "name": "Quilt", - "author": "admin@sunstonesoft.com", + "author": "diedyesterdaywashere@gmail.com", "description": "The Quilt project is an open-source, community-driven modding toolchain designed primarily for Minecraft. By focusing on speed, ease of use and modularity, Quilt aims to provide a sleek and modern modding toolchain with an open ecosystem.", "features": null, "docker_images": { From 54a21d5f59740c9420c935e3d8376826fa43b6e8 Mon Sep 17 00:00:00 2001 From: rafal1137 Date: Mon, 10 Jul 2023 12:55:00 +0200 Subject: [PATCH 46/53] Update README.md There was a missing port for allowing server to be shown on the server list. You need to port forward port 27950 too. --- game_eggs/enemy_territory/etlegacy/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/game_eggs/enemy_territory/etlegacy/README.md b/game_eggs/enemy_territory/etlegacy/README.md index 09555dd7..622829b6 100644 --- a/game_eggs/enemy_territory/etlegacy/README.md +++ b/game_eggs/enemy_territory/etlegacy/README.md @@ -18,3 +18,5 @@ ET: Legacy requires a single port | Port | default | |---------|---------| | Game | 27960 | +|---------|---------| +| Server | 27950 | From 8c4c342e413179979d916200c986b8449e438517 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Mon, 10 Jul 2023 16:17:37 +0200 Subject: [PATCH 47/53] add skip networktests --- .../sonsoftheforest/egg-sons-of-the-forest.json | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/sonsoftheforest/egg-sons-of-the-forest.json b/game_eggs/steamcmd_servers/sonsoftheforest/egg-sons-of-the-forest.json index c931aa17..7d6cbfdf 100644 --- a/game_eggs/steamcmd_servers/sonsoftheforest/egg-sons-of-the-forest.json +++ b/game_eggs/steamcmd_servers/sonsoftheforest/egg-sons-of-the-forest.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-06-28T16:10:30+02:00", + "exported_at": "2023-07-10T16:14:35+02:00", "name": "Sons Of The Forest", "author": "info@goover.de", "description": "Sons of the Forest is a horror survival game and sequel to The Forest by Endnight Games, Ltd.. Sent to find a missing billionaire on a remote island, you find yourself in a cannibal-infested hellscape. Craft, build, and struggle to survive, alone or with friends.", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" }, "file_denylist": [], - "startup": "wine .\/SonsOfTheForestDS.exe -userdatapath \"\/home\/container\/serverconfig\" -dedicatedserver.IpAddress \"0.0.0.0\" -dedicatedserver.GamePort \"{{SERVER_PORT}}\" -dedicatedserver.QueryPort \"{{QUERY_PORT}}\" -dedicatedserver.BlobSyncPort \"{{BLOBSYNC_PORT}}\" -dedicatedserver.MaxPlayers \"{{MAX_PLAYERS}}\" -dedicatedserver.Password \"{{SRV_PW}}\" -dedicatedserver.GameMode \"{{GAME_MODE}}\" -dedicatedserver.LogFilesEnabled \"true\" -dedicatedserver.TimestampLogFilenames \"true\"", + "startup": "wine .\/SonsOfTheForestDS.exe -userdatapath \"\/home\/container\/serverconfig\" -dedicatedserver.IpAddress \"0.0.0.0\" -dedicatedserver.GamePort \"{{SERVER_PORT}}\" -dedicatedserver.QueryPort \"{{QUERY_PORT}}\" -dedicatedserver.BlobSyncPort \"{{BLOBSYNC_PORT}}\" -dedicatedserver.MaxPlayers \"{{MAX_PLAYERS}}\" -dedicatedserver.Password \"{{SRV_PW}}\" -dedicatedserver.GameMode \"{{GAME_MODE}}\" -dedicatedserver.SkipNetworkAccessibilityTest \"{{SKIP_TESTS}}\" -dedicatedserver.LogFilesEnabled \"true\" -dedicatedserver.TimestampLogFilenames \"true\"", "config": { "files": "{\r\n \"serverconfig\/dedicatedserver.cfg\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"ServerName\": \"{{server.build.env.SRV_NAME}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"ServerStart Success\"\r\n}", @@ -100,6 +100,16 @@ "rules": "required|boolean", "field_type": "text" }, + { + "name": "Skip network Test", + "description": "if you have problems to connect to your server, set this to TRUE", + "env_variable": "SKIP_TESTS", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, { "name": "SRCDS_APPID", "description": "", From 2f5fceb7f89c13b285aca8318a50d67692ff09a8 Mon Sep 17 00:00:00 2001 From: diedyesterday <81169193+diedyesterdaywashere@users.noreply.github.com> Date: Wed, 12 Jul 2023 02:12:04 +0300 Subject: [PATCH 48/53] Add CS:S --- README.md | 2 + game_eggs/README.md | 3 + .../steamcmd_servers/counter_strike/README.md | 8 ++ .../counter_strike_source/README.md | 42 +++++++++ .../egg-counter--strike--source.json | 92 +++++++++++++++++++ 5 files changed, 147 insertions(+) create mode 100644 game_eggs/steamcmd_servers/counter_strike/README.md create mode 100644 game_eggs/steamcmd_servers/counter_strike/counter_strike_source/README.md create mode 100644 game_eggs/steamcmd_servers/counter_strike/counter_strike_source/egg-counter--strike--source.json diff --git a/README.md b/README.md index 5f28cfb5..f5ed51cb 100644 --- a/README.md +++ b/README.md @@ -236,6 +236,8 @@ If you are reading this it looks like you are looking to add an egg to your serv * [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) +* [Counter-Strike](steamcmd_servers/counter_strike/) + * [Counter-Strike: Source](steamcmd_servers/counter_strike/counter_strike_source/) * [Craftopia](game_eggs/steamcmd_servers/craftopia) * [Cryofall](game_eggs/steamcmd_servers/cryofall) * [DayZ (Experimental)](game_eggs/steamcmd_servers/dayz-experimental) diff --git a/game_eggs/README.md b/game_eggs/README.md index 7db5ea4f..9e4dc8d3 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -133,6 +133,9 @@ * [Citadel: Forged with Fire](steamcmd_servers/citadel) * [Conan Exiles](steamcmd_servers/conan_exiles) * [Core Keeper](steamcmd_servers/core_keeper) +* [Counter-Strike](steamcmd_servers/counter_strike/) + * [Counter-Strike: Source](steamcmd_servers/counter_strike/counter_strike_source/) +* [Craftopia](game_eggs/steamcmd_servers/craftopia) * [CryoFall](steamcmd_servers/cryofall) * [DayZ (Experimental)](steamcmd_servers/dayz-experimental) * [Don't Starve Together](steamcmd_servers/dont_starve) diff --git a/game_eggs/steamcmd_servers/counter_strike/README.md b/game_eggs/steamcmd_servers/counter_strike/README.md new file mode 100644 index 00000000..459f5447 --- /dev/null +++ b/game_eggs/steamcmd_servers/counter_strike/README.md @@ -0,0 +1,8 @@ +# Counter-Strike + +Counter-Strike is a series of multiplayer tactical first-person shooter video games in which teams of terrorists battle to perpetrate an act of terror while counter-terrorists try to prevent it. The series began on Windows in 1999 with the release of the first game, Counter-Strike. + +## Counter-Strike Titles + +- [Counter-Strike: Source](counter_strike_source) +- [Counter-Strike: Global-Offensive](https://github.com/pterodactyl/panel/blob/develop/database/Seeders/eggs/source-engine/egg-counter--strike--global-offensive.json) \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/counter_strike/counter_strike_source/README.md b/game_eggs/steamcmd_servers/counter_strike/counter_strike_source/README.md new file mode 100644 index 00000000..16a6c0ce --- /dev/null +++ b/game_eggs/steamcmd_servers/counter_strike/counter_strike_source/README.md @@ -0,0 +1,42 @@ +# Counter-Strike: Source + +## From their [Steam Depot](https://steamdb.info/app/232330/) + +A link to the site that you download the server files from. + +## [Documentation](https://github.com/parkervcp/eggs/blob/master/README.md) + +A link to relevent documentation for the server. + +The description of the server usually provided by the game/server maker. + + +## Install notes + +To get a persistent server (server that appears on the server list), you need to get a [Steam Server Login Token](https://steamcommunity.com/dev/managegameservers), it's not required though. + +## Installation/System Requirements + +| | Bare Minimum | Recommended | +|---------|---------|---------| +| Processor | Does not support ARM(?) | - | +| RAM | 512MB | 1GB | +| Storage | 3GB | 6GB | +| Network | 1Mbit/s | 5Mbit/s | +| Game Ownership | No | See **Install Notes** | + +## Server Ports + +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Game | 27015 | +| Source TV | 27020 | +| Client | 27005 | +| Steam | 26900 | + +### Notes + +27015 is the default port, but any port can be used. +The only required port is the Game port, server can run perfectly fine without other allocations. diff --git a/game_eggs/steamcmd_servers/counter_strike/counter_strike_source/egg-counter--strike--source.json b/game_eggs/steamcmd_servers/counter_strike/counter_strike_source/egg-counter--strike--source.json new file mode 100644 index 00000000..da5088d2 --- /dev/null +++ b/game_eggs/steamcmd_servers/counter_strike/counter_strike_source/egg-counter--strike--source.json @@ -0,0 +1,92 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-07-12T01:39:04+03:00", + "name": "Counter-Strike: Source", + "author": "diedyesterdaywashere@gmail.com", + "description": "Counter-Strike: Source blends Counter-Strike's award-winning teamplay action with the advanced technology of Source\u2122 technology.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" + }, + "file_denylist": [], + "startup": ".\/srcds_run -game cstrike -console -port {{SERVER_PORT}} +map {{SRCDS_MAP}} +sv_setsteamaccount {{STEAM_TOKEN}} +ip 0.0.0.0 -strictportbind -norestart", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"gameserver Steam ID \"\r\n}", + "logs": "{}", + "stop": "quit" + }, + "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\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Steam Username", + "description": "Username you log into Steam with.", + "env_variable": "STEAM_USER", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Steam Password", + "description": "Password you log into steam with.", + "env_variable": "STEAM_PASS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Steam Guard Code", + "description": "Your Steam 2FA on your mobile phone. (Not really needed anymore as you get Approve requests now)", + "env_variable": "STEAM_AUTH", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "App ID", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "232330", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Map", + "description": "Default map", + "env_variable": "SRCDS_MAP", + "default_value": "de_dust2", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Steam Game Login Token", + "description": "https:\/\/steamcommunity.com\/dev\/managegameservers", + "env_variable": "STEAM_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + } + ] +} \ No newline at end of file From 65c7ea05b152fdf7d0110413f30bcac726ecaf2c Mon Sep 17 00:00:00 2001 From: diedyesterday <81169193+diedyesterdaywashere@users.noreply.github.com> Date: Thu, 13 Jul 2023 20:19:17 +0300 Subject: [PATCH 49/53] Add BATTALION: Legacy (#2366) * Add BATTALION: Legacy --- README.md | 1 + game_eggs/README.md | 1 + game_eggs/steamcmd_servers/README.md | 4 + .../battalion_legacy/README.md | 32 +++++++ .../egg-b-a-t-t-a-l-i-o-n--legacy.json | 84 +++++++++++++++++++ 5 files changed, 122 insertions(+) create mode 100644 game_eggs/steamcmd_servers/battalion_legacy/README.md create mode 100644 game_eggs/steamcmd_servers/battalion_legacy/egg-b-a-t-t-a-l-i-o-n--legacy.json diff --git a/README.md b/README.md index 5f28cfb5..b4782157 100644 --- a/README.md +++ b/README.md @@ -232,6 +232,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Astroneer](game_eggs/steamcmd_servers/astroneer) * [Avorion](game_eggs/steamcmd_servers/avorion) * [Barotrauma](game_eggs/steamcmd_servers/barotrauma) +* [BATTALION: Legacy](game_eggs/steamcmd_servers/battalion_legacy) * [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) diff --git a/game_eggs/README.md b/game_eggs/README.md index 7db5ea4f..9368976c 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -129,6 +129,7 @@ * [Astroneer](steamcmd_servers/astroneer) * [Avorion](steamcmd_servers/avorion) * [Barotrauma](steamcmd_servers/barotrauma) +* [BATTALION: Legacy](steamcmd_servers/battalion_legacy) * [Black Mesa](steamcmd_servers/black_mesa) * [Citadel: Forged with Fire](steamcmd_servers/citadel) * [Conan Exiles](steamcmd_servers/conan_exiles) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index 06153b06..f47767e7 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -28,6 +28,10 @@ This is a collection of servers that use SteamCMD to install. [Barotrauma](barotrauma) +## BATTALION: Legacy + +[BATTALION: Legacy](/battalion_legacy) + ## Black Mesa [Black Mesa](black_mesa) diff --git a/game_eggs/steamcmd_servers/battalion_legacy/README.md b/game_eggs/steamcmd_servers/battalion_legacy/README.md new file mode 100644 index 00000000..fb5d5112 --- /dev/null +++ b/game_eggs/steamcmd_servers/battalion_legacy/README.md @@ -0,0 +1,32 @@ +# BATTALION: Legacy + +## From their [Steam Depot](https://steamdb.info/app/805140) + +## [Documentation](https://github.com/parkervcp/eggs/blob/master/README.md) + +BATTALION: Legacy recaptures the core of classic shooters in the final iteration of Battalion 1944. Return to the simple days of playing first person shooters with your friends. Grab your bolt action rifle in 'rifles only' mode or compete in 5v5 Search and Destroy. +## Install notes + +The only issue with this egg is that server name appears with a ] in the end, for example: if you set the name to "Test", in the game it'll display as "Test]", the reason for this in unknown. +## Installation/System Requirements + +| | Bare Minimum | Recommended | +|---------|---------|---------| +| Processor | No ARM support(?) | | +| RAM | 1GiB | 2GiB | +| Storage | 2GB | - | +| Network | 1Mbit/s | 3Mbit/s | +| Game Ownership | No | - | + +## Server Ports + +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Game | 27015 | +| Query | 27016 | + +### Notes + +Game and Query port can be anything, but they're both required. \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/battalion_legacy/egg-b-a-t-t-a-l-i-o-n--legacy.json b/game_eggs/steamcmd_servers/battalion_legacy/egg-b-a-t-t-a-l-i-o-n--legacy.json new file mode 100644 index 00000000..be51f2f2 --- /dev/null +++ b/game_eggs/steamcmd_servers/battalion_legacy/egg-b-a-t-t-a-l-i-o-n--legacy.json @@ -0,0 +1,84 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-07-13T20:14:32+03:00", + "name": "BATTALION: Legacy", + "author": "diedyesterdaywashere@gmail.com", + "description": "BATTALION: Legacy recaptures the core of classic shooters in the final iteration of Battalion 1944. Return to the simple days of playing first person shooters with your friends. Grab your bolt action rifle in 'rifles only' mode or compete in 5v5 Search and Destroy.", + "features": [ + "steam_disk_space" + ], + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" + }, + "file_denylist": [], + "startup": ".\/Battalion\/Binaries\/Linux\/BattalionServer-Linux-Shipping Battalion -QueryPort={{QUERY_PORT}} -SteamServerName=\"{{SERVER_NAME}]\" -Queue=\"Wartide\" -AdminPassword=\"{{ADMIN_PW}}\" -Log", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \" OnCreateSessionComplete \"\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\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\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "App ID", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "805140", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:805140", + "field_type": "text" + }, + { + "name": "Auto Update", + "description": "Server will check for updates on every restart. Use 0 to disable.", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Query Port", + "description": "", + "env_variable": "QUERY_PORT", + "default_value": "27016", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1024,65536", + "field_type": "text" + }, + { + "name": "Server Name", + "description": "", + "env_variable": "SERVER_NAME", + "default_value": "Pterodactyl hosted Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:60", + "field_type": "text" + }, + { + "name": "Admin Password", + "description": "", + "env_variable": "ADMIN_PW", + "default_value": "changeme", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + } + ] +} \ No newline at end of file From 0746131ddeb9a8e70a27530815d9a1df96a0a7ff Mon Sep 17 00:00:00 2001 From: TheKing1543 <84400712+TheKing1543@users.noreply.github.com> Date: Thu, 13 Jul 2023 22:13:25 +0000 Subject: [PATCH 50/53] Update egg-team-fortress-2-classic.json Made it work, lol. --- .../egg-team-fortress-2-classic.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/team_fortress_2_classic/egg-team-fortress-2-classic.json b/game_eggs/steamcmd_servers/team_fortress_2_classic/egg-team-fortress-2-classic.json index f89e16f2..498ee944 100644 --- a/game_eggs/steamcmd_servers/team_fortress_2_classic/egg-team-fortress-2-classic.json +++ b/game_eggs/steamcmd_servers/team_fortress_2_classic/egg-team-fortress-2-classic.json @@ -4,9 +4,9 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-06-02T19:04:54+02:00", + "exported_at": "2023-07-13T23:07:08+01:00", "name": "Team Fortress 2 Classic", - "author": "eggs@scattergun.io", + "author": "kinguwu@duck.com", "description": "Team Fortress 2 Classic is a free mod of the 2007 game Team Fortress 2, developed by Eminoma and utilizing the Source engine.", "features": [ "steam_disk_space" @@ -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\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## download TF2C from website\r\ncd \/mnt\/server\r\nwhich unzip\r\n\r\necho \"Downloading tf2classic, This will take some time\" \r\ncurl -sSL -o tf2classic.zip https:\/\/wiki.tf2classic.com\/kachemak\/tf2classic-${GAMEVERSION}.zip\r\n\r\n\r\nunzip -o tf2classic.zip\r\nrm -rf tf2classic.zip\r\n## fix issue \/w symlink\r\ncd \/mnt\/server\/bin\r\nln -s vphysics_srv.so vphysics.so\r\nln -s studiorender_srv.so studiorender.so\r\nln -s soundemittersystem_srv.so soundemittersystem.so\r\nln -s shaderapiempty_srv.so shaderapiempty.so\r\nln -s scenefilecache_srv.so scenefilecache.so\r\nln -s replay_srv.so replay.so\r\nln -s materialsystem_srv.so materialsystem.so\r\n\r\ncd \/mnt\/server\/tf2classic\/bin\r\n## fix server as of 2.0.4 crashing on start\r\nrm -rf server_srv.so\r\nln -s server.so server_srv.so\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napt install -y zstd\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## download TF2C from website\r\ncd \/mnt\/server\r\nwhich unzip\r\n\r\necho \"Downloading tf2classic, This will take some time\" \r\ncurl -sSL -o tf2classic.tar.zst https:\/\/wiki.tf2classic.com\/kachemak\/tf2classic-${GAMEVERSION}.tar.zst\r\n\r\ntar -xf tf2classic.tar.zst\r\nrm -rf tf2classic.zip\r\n## fix issue \/w symlink\r\ncd \/mnt\/server\/bin\r\nln -s vphysics_srv.so vphysics.so\r\nln -s studiorender_srv.so studiorender.so\r\nln -s soundemittersystem_srv.so soundemittersystem.so\r\nln -s shaderapiempty_srv.so shaderapiempty.so\r\nln -s scenefilecache_srv.so scenefilecache.so\r\nln -s replay_srv.so replay.so\r\nln -s materialsystem_srv.so materialsystem.so\r\n\r\ncd \/mnt\/server\/tf2classic\/bin\r\n## fix server as of 2.0.4 crashing on start\r\nrm -rf server_srv.so\r\nln -s server.so server_srv.so\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } From 0fd35acedce91c856988e827f74e17b694bb1cee Mon Sep 17 00:00:00 2001 From: HerrSammy <38103916+HerrSammyDE@users.noreply.github.com> Date: Sat, 15 Jul 2023 02:29:14 +0200 Subject: [PATCH 51/53] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 62d1a1e0..d2a1772f 100644 --- a/README.md +++ b/README.md @@ -237,8 +237,8 @@ If you are reading this it looks like you are looking to add an egg to your serv * [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) -* [Counter-Strike](steamcmd_servers/counter_strike/) - * [Counter-Strike: Source](steamcmd_servers/counter_strike/counter_strike_source/) +* [Counter-Strike](game_eggs/steamcmd_servers/counter_strike/) + * [Counter-Strike: Source](game_eggs/steamcmd_servers/counter_strike/counter_strike_source/) * [Craftopia](game_eggs/steamcmd_servers/craftopia) * [Cryofall](game_eggs/steamcmd_servers/cryofall) * [DayZ (Experimental)](game_eggs/steamcmd_servers/dayz-experimental) From 63d2a76409aa2714d55fb4dadd217ba5d54c8db6 Mon Sep 17 00:00:00 2001 From: TheKing1543 <84400712+TheKing1543@users.noreply.github.com> Date: Sun, 16 Jul 2023 11:31:51 +0000 Subject: [PATCH 52/53] Update egg-team-fortress-2-classic.json Fixed the e-mail. --- .../team_fortress_2_classic/egg-team-fortress-2-classic.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/team_fortress_2_classic/egg-team-fortress-2-classic.json b/game_eggs/steamcmd_servers/team_fortress_2_classic/egg-team-fortress-2-classic.json index 498ee944..9e029455 100644 --- a/game_eggs/steamcmd_servers/team_fortress_2_classic/egg-team-fortress-2-classic.json +++ b/game_eggs/steamcmd_servers/team_fortress_2_classic/egg-team-fortress-2-classic.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-07-13T23:07:08+01:00", "name": "Team Fortress 2 Classic", - "author": "kinguwu@duck.com", + "author": "eggs@scattergun.io", "description": "Team Fortress 2 Classic is a free mod of the 2007 game Team Fortress 2, developed by Eminoma and utilizing the Source engine.", "features": [ "steam_disk_space" From 2d214d34782bf98ea493d58869d206729e4a484e Mon Sep 17 00:00:00 2001 From: Kevin Moore Date: Mon, 17 Jul 2023 11:17:26 -0400 Subject: [PATCH 53/53] Added support for Steam account, required by some HLDS games --- .../egg-custom-h-l-d-s-engine-game.json | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/hlds_server/vanilla/egg-custom-h-l-d-s-engine-game.json b/game_eggs/steamcmd_servers/hlds_server/vanilla/egg-custom-h-l-d-s-engine-game.json index ab3ea737..7b8c79a9 100644 --- a/game_eggs/steamcmd_servers/hlds_server/vanilla/egg-custom-h-l-d-s-engine-game.json +++ b/game_eggs/steamcmd_servers/hlds_server/vanilla/egg-custom-h-l-d-s-engine-game.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-11-08T16:25:05+01:00", + "exported_at": "2023-07-17T10:38:39-04:00", "name": "Custom HLDS Engine Game", "author": "parker@parkervcp.com", "description": "This option allows modifying the startup arguments and other details to run a custom HLDS based game on the panel.", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\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\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login anonymous +app_update ${SRCDS_APPID} +app_set_config 90 mod ${HLDS_GAME} +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n\r\nif [ \"${STEAM_USER}\" == \"\" ] || [ \"${STEAM_PASS}\" == \"\" ]; then\r\n echo -e \"Steam user is not set, 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\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\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\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_update ${SRCDS_APPID} +app_set_config 90 mod ${HLDS_GAME} +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -69,6 +69,36 @@ "user_editable": false, "rules": "required|numeric|digits_between:1,5", "field_type": "text" + }, + { + "name": "Steam Username", + "description": "Steam account used to download files (Defaults to anonymous)", + "env_variable": "STEAM_USER", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "nullable|string|max:32", + "field_type": "text" + }, + { + "name": "Steam Password", + "description": "Password for Steam account", + "env_variable": "STEAM_PASS", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "nullable|string|max:64", + "field_type": "text" + }, + { + "name": "Steam Auth", + "description": "Steam Guard 2FA code for account", + "env_variable": "STEAM_AUTH", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "nullable|string|max:20", + "field_type": "text" } ] } \ No newline at end of file