From 3eb8cd083425ea8d84d090a09b4c3a2cf34991a5 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Wed, 23 Mar 2022 19:49:09 -0700 Subject: [PATCH 001/473] Create egg-sftp-storage-share.json --- .../egg-sftp-storage-share.json | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 storage/sftp_storage_share/egg-sftp-storage-share.json diff --git a/storage/sftp_storage_share/egg-sftp-storage-share.json b/storage/sftp_storage_share/egg-sftp-storage-share.json new file mode 100644 index 00000000..34b67947 --- /dev/null +++ b/storage/sftp_storage_share/egg-sftp-storage-share.json @@ -0,0 +1,30 @@ +{ + "_comment": "Pterodactyl SFTP Storage Share Egg ~ David Wolfe (Red-Thirten) ~ 2022-03-14", + "meta": { + "version": "PTDL_v1", + "update_url": null + }, + "name": "SFTP Storage Share", + "author": "rehlmgaming@gmail.com", + "description": "A simple \"empty\" egg that acts as a private SFTP storage share by utilizing Pterodactyl's built in SFTP system for servers. Sub-users can be added to the server by the owner to allow additional people to access the share. \"Starting\" the server performs no actions and it should be left off.", + "features": null, + "images": [ + "ghcr.io\/parkervcp\/yolks:alpine" + ], + "file_denylist": [], + "startup": "echo -e \"\\n\\n\\033[0;31mThere is no need to start this server. The SFTP service is always running. Feel free to stop the server now.\\n\\t\\033[0;36m(Sub-users can be added via the Users tab to add\/remove access to the share in real time)\\n\\n\"", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": null, + "container": "alpine:3.4", + "entrypoint": "ash" + } + }, + "variables": [] +} \ No newline at end of file From d9c28e23ad82c7fae8a50fa3f84e6543a628dd43 Mon Sep 17 00:00:00 2001 From: HyperBeats Date: Thu, 23 Jun 2022 16:08:08 +0200 Subject: [PATCH 002/473] Create eggs Iosoccer --- .../iosoccer/eggs-iosoccer.json | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json diff --git a/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json b/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json new file mode 100644 index 00000000..1764464c --- /dev/null +++ b/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json @@ -0,0 +1,88 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1", + "update_url": null + }, + "exported_at": "2022-02-20T01:24:34+01:00", + "name": "IOSOCER-server-hyper", + "author": "hyperbeats@raptorhost.fr", + "description": "SERVER IOSOCCER", + "features": [ + "steam_disk_space" + ], + "images": [ + "ghcr.io\/parkervcp\/games:source" + ], + "file_denylist": [], + "startup": ".\/srcds_run -console -game iosoccer -condebug -port {{SERVER_PORT}} +maxplayers {{SLOTS}} +fps_max {{MAX_FPS}} -tickrate {{TICKRATE}} +map {{MAP}} +rcon_password {{RCON}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Connection to Steam servers successful.\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "quit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -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 +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} validate +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Game ID", + "description": "Game ID", + "env_variable": "SRCDS_APPID", + "default_value": "673990", + "user_viewable": true, + "user_editable": false, + "rules": "required|regex:\/^(673990)$\/" + }, + { + "name": "MAP", + "description": "", + "env_variable": "MAP", + "default_value": "8v8_vienna", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20" + }, + { + "name": "SLOTS", + "description": "", + "env_variable": "SLOTS", + "default_value": "32", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20" + }, + { + "name": "TICKRATE", + "description": "", + "env_variable": "TICKRATE", + "default_value": "100", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20" + }, + { + "name": "MAX FPS", + "description": "", + "env_variable": "MAX_FPS", + "default_value": "500", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20" + }, + { + "name": "RCON", + "description": "", + "env_variable": "RCON", + "default_value": "pleasechangepassword", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20" + } + ] +} From dd8bddcb83cbac0aee5910a22ab24c4fab99a6c9 Mon Sep 17 00:00:00 2001 From: HyperBeats Date: Thu, 23 Jun 2022 16:09:16 +0200 Subject: [PATCH 003/473] Update eggs-iosoccer.json --- game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json b/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json index 1764464c..0936c2a4 100644 --- a/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json +++ b/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json @@ -5,7 +5,7 @@ "update_url": null }, "exported_at": "2022-02-20T01:24:34+01:00", - "name": "IOSOCER-server-hyper", + "name": "IOSOCER-server", "author": "hyperbeats@raptorhost.fr", "description": "SERVER IOSOCCER", "features": [ From 39c197bb60dec74a76601775a48ab9641712e050 Mon Sep 17 00:00:00 2001 From: HyperBeats <45314346+HyperBeats@users.noreply.github.com> Date: Thu, 23 Jun 2022 18:35:15 +0200 Subject: [PATCH 004/473] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a83e91d3..58fbc2d9 100644 --- a/README.md +++ b/README.md @@ -243,6 +243,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Valheim](game_eggs/steamcmd_servers/valheim) * [Valheim Vanilla](game_eggs/steamcmd_servers/valheim/valheim_vanilla) * [Valheim Plus Mod](game_eggs/steamcmd_servers/valheim/valheim_plus) +* [iosoccer](game_eggs/steamcmd_servers/iosoccer) [Teeworlds](game_eggs/teeworlds) From b8aef59986e6294c320351c136f0fd17bf366dc6 Mon Sep 17 00:00:00 2001 From: Attackwave Date: Thu, 8 Dec 2022 23:31:43 +0100 Subject: [PATCH 005/473] update/valheim-vanilla Added public server y/n and backup settings. --- .../valheim/valheim_vanilla/egg-valheim.json | 54 ++++++++++++++++++- 1 file changed, 52 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_vanilla/egg-valheim.json b/game_eggs/steamcmd_servers/valheim/valheim_vanilla/egg-valheim.json index 1425875f..9a3a0ace 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_vanilla/egg-valheim.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_vanilla/egg-valheim.json @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/games:valheim": "ghcr.io\/parkervcp\/games:valheim" }, "file_denylist": [], - "startup": ".\/valheim_server.x86_64 -nographics -batchmode -name \"{{SERVER_NAME}}\" -port {{SERVER_PORT}} -world \"{{WORLD}}\" -password \"{{PASSWORD}}\" $( [[ ${ENABLE_CROSSPLAY} -eq 1 ]] && echo \" -crossplay \") > >(sed -uE \"{{FILTER}}\") & trap \"{{STOP}}\" 15; wait $!", + "startup": ".\/valheim_server.x86_64 -nographics -batchmode -name \"{{SERVER_NAME}}\" -port {{SERVER_PORT}} -world \"{{WORLD}}\" -password \"{{PASSWORD}}\" -public {{PUBLIC_SERVER}} -saveinterval {{BACKUP_INTERVAL}} -backups {{BACKUP_COUNT}} -backupshort {{BACKUP_SHORTTIME}} -backuplong {{BACKUP_LONGTIME}} $( [[ ${ENABLE_CROSSPLAY} -eq 1 ]] && echo \" -crossplay \") > >(sed -uE \"{{FILTER}}\") & trap \"{{STOP}}\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"DungeonDB Start\"\r\n}", @@ -60,6 +60,16 @@ "rules": "required|string|max:20", "field_type": "text" }, + { + "name": "Public Server", + "description": "Public visibility of your server. Set it to false to make the server invisible and only joinable via the 'Join IP'-button.", + "env_variable": "PUBLIC_SERVER", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "boolean", + "field_type": "text" + }, { "name": "App ID", "description": "Valheim steam app id for auto updates.", @@ -112,7 +122,7 @@ }, { "name": "Enable Crossplay", - "description": "Enable crossplay support", + "description": "Enable crossplay support.", "env_variable": "ENABLE_CROSSPLAY", "default_value": "1", "user_viewable": true, @@ -120,6 +130,46 @@ "rules": "boolean", "field_type": "text" }, + { + "name": "Backup Interval", + "description": "Change how often the world will save in seconds.", + "env_variable": "BACKUP_INTERVAL", + "default_value": "1800", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, + { + "name": "Backup Count", + "description": "Sets how many automatic backups will be kept. The first is the 'short' backup length, and the rest are the 'long' backup length. When default values are used means one backup that is 2 hours old, and 3 backups that are 12 hours apart.", + "env_variable": "BACKUP_COUNT", + "default_value": "4", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, + { + "name": "Backup Shorttime", + "description": "Sets the interval between the first automatic backups.", + "env_variable": "BACKUP_SHORTTIME", + "default_value": "7200", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, + { + "name": "Backup Longtime", + "description": "Sets the interval between the subsequent automatic backups.", + "env_variable": "BACKUP_LONGTIME", + "default_value": "43200", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, { "name": "Beta Branch", "description": "", From 12009da8fe02548ee2c163c81fe0387be6b0bf63 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 18 Dec 2022 10:59:43 +0100 Subject: [PATCH 006/473] install script fix double tar cmd + move to python3 --- bots/discord/bastion/README.md | 3 --- bots/discord/bastion/egg-bastion.json | 6 +++--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/bots/discord/bastion/README.md b/bots/discord/bastion/README.md index 2156a2fb..963bf474 100644 --- a/bots/discord/bastion/README.md +++ b/bots/discord/bastion/README.md @@ -4,9 +4,6 @@ Bastion is a multi-purpose Discord Bot that can help you automate most tasks in your server, from administration and moderation to keeping the members active through various incentives, games and other fun activities. -## Install notes - -There will be a tar error on first install. You can safly ignore this. ## Running the bot diff --git a/bots/discord/bastion/egg-bastion.json b/bots/discord/bastion/egg-bastion.json index 0ad33578..cc0ea170 100644 --- a/bots/discord/bastion/egg-bastion.json +++ b/bots/discord/bastion/egg-bastion.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-12-15T16:23:16+01:00", + "exported_at": "2022-12-18T10:58:30+01:00", "name": "Bastion", "author": "parker@parkervcp.com", "description": "Bastion is a multi-purpose Discord Bot that can help you automate most tasks in your server, from administration and moderation to keeping the members active through various incentives, games and other fun activities", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Bastion Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n## Move to install folder\r\napt update\r\napt install -y build-essential libtool python git tar\r\n\r\nmkdir -p \/mnt\/server\/\r\ncd \/mnt\/server\/\r\n\r\nif [ -d \"\/mnt\/server\/mongodb\" ]\r\nthen\r\n cd \/mnt\/server\/\r\n echo \"backing up mongodb\"\r\n REINSTALL=true\r\n tar -czf mongodb_backup.tar.gz mongodb\/\r\n mv mongodb_backup.tar.gz \/tmp\r\nfi\r\n\r\ntar -czf mongodb_back.tar.gz mongodb\/\r\nmv mongodb_back.tar.gz \/tmp\r\n\r\ncd \/mnt\/server\r\nrm -rf * .git\/ .github\/ .env.example .eslintrc.yml .gitattributes .gitignore .npm\/\r\n\r\n\r\n## Clone repo\r\necho \"cloning Bastion bot\"\r\ngit clone -q --depth 1 https:\/\/github.com\/TheBastionBot\/Bastion.git .\/\r\n\r\necho \"npm install --no-package-lock\"\r\nnpm install --no-package-lock\r\necho \"npm run build\"\r\nnpm run build\r\n\r\n## Move config files.\r\nmv settings.example.yaml settings.yaml\r\nrm bastion.cmd .env.example bastion.sh\r\n\r\n\r\nmkdir mongodb\/\r\nif [ \"$REINSTALL\" == \"true\" ]\r\nthen\r\n cd \/mnt\/server\r\n echo \"reinstall\"\r\n mv \/tmp\/mongodb_backup.tar.gz \/mnt\/server\r\n tar xf mongodb_backup.tar.gz\r\n rm mongodb_backup.tar.gz\r\nelse\r\n echo \"fresh install\"\r\nfi\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n# Bastion Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n## Move to install folder\r\napt update\r\napt install -y build-essential libtool python3 git tar\r\n\r\nmkdir -p \/mnt\/server\/\r\ncd \/mnt\/server\/\r\n\r\nif [ -d \"\/mnt\/server\/mongodb\" ]\r\nthen\r\n cd \/mnt\/server\/\r\n echo \"backing up mongodb\"\r\n REINSTALL=true\r\n tar -czf mongodb_backup.tar.gz mongodb\/\r\n mv mongodb_backup.tar.gz \/tmp\r\nfi\r\n\r\ncd \/mnt\/server\r\nrm -rf * .git\/ .github\/ .env.example .eslintrc.yml .gitattributes .gitignore .npm\/\r\n\r\n\r\n## Clone repo\r\necho \"cloning Bastion bot\"\r\ngit clone -q --depth 1 https:\/\/github.com\/TheBastionBot\/Bastion.git .\/\r\n\r\necho \"npm install --no-package-lock\"\r\nnpm install --no-package-lock\r\necho \"npm run build\"\r\nnpm run build\r\n\r\n## Move config files.\r\nmv settings.example.yaml settings.yaml\r\nrm -rf bastion.cmd .env.example bastion.sh scripts\/\r\n\r\n\r\nmkdir -p mongodb\/\r\nif [ \"$REINSTALL\" == \"true\" ]\r\nthen\r\n cd \/mnt\/server\r\n echo \"reinstall\"\r\n mv \/tmp\/mongodb_backup.tar.gz \/mnt\/server\r\n tar xf mongodb_backup.tar.gz\r\n rm mongodb_backup.tar.gz\r\nelse\r\n echo \"fresh install\"\r\nfi\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "node:18-bullseye", "entrypoint": "bash" } @@ -119,4 +119,4 @@ "field_type": "text" } ] -} +} \ No newline at end of file From 3028b481b8d3f0b66977f2fbe1b11ba7bf90418c Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 18 Dec 2022 11:28:45 +0100 Subject: [PATCH 007/473] bastion: update npm to latest on install add L31 npm install -g npm@latest --- bots/discord/bastion/egg-bastion.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bots/discord/bastion/egg-bastion.json b/bots/discord/bastion/egg-bastion.json index cc0ea170..37356c98 100644 --- a/bots/discord/bastion/egg-bastion.json +++ b/bots/discord/bastion/egg-bastion.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-12-18T10:58:30+01:00", + "exported_at": "2022-12-18T11:27:40+01:00", "name": "Bastion", "author": "parker@parkervcp.com", "description": "Bastion is a multi-purpose Discord Bot that can help you automate most tasks in your server, from administration and moderation to keeping the members active through various incentives, games and other fun activities", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Bastion Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n## Move to install folder\r\napt update\r\napt install -y build-essential libtool python3 git tar\r\n\r\nmkdir -p \/mnt\/server\/\r\ncd \/mnt\/server\/\r\n\r\nif [ -d \"\/mnt\/server\/mongodb\" ]\r\nthen\r\n cd \/mnt\/server\/\r\n echo \"backing up mongodb\"\r\n REINSTALL=true\r\n tar -czf mongodb_backup.tar.gz mongodb\/\r\n mv mongodb_backup.tar.gz \/tmp\r\nfi\r\n\r\ncd \/mnt\/server\r\nrm -rf * .git\/ .github\/ .env.example .eslintrc.yml .gitattributes .gitignore .npm\/\r\n\r\n\r\n## Clone repo\r\necho \"cloning Bastion bot\"\r\ngit clone -q --depth 1 https:\/\/github.com\/TheBastionBot\/Bastion.git .\/\r\n\r\necho \"npm install --no-package-lock\"\r\nnpm install --no-package-lock\r\necho \"npm run build\"\r\nnpm run build\r\n\r\n## Move config files.\r\nmv settings.example.yaml settings.yaml\r\nrm -rf bastion.cmd .env.example bastion.sh scripts\/\r\n\r\n\r\nmkdir -p mongodb\/\r\nif [ \"$REINSTALL\" == \"true\" ]\r\nthen\r\n cd \/mnt\/server\r\n echo \"reinstall\"\r\n mv \/tmp\/mongodb_backup.tar.gz \/mnt\/server\r\n tar xf mongodb_backup.tar.gz\r\n rm mongodb_backup.tar.gz\r\nelse\r\n echo \"fresh install\"\r\nfi\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n# Bastion Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n## Move to install folder\r\napt update\r\napt install -y build-essential libtool python3 git tar\r\n\r\n\r\nmkdir -p \/mnt\/server\/\r\ncd \/mnt\/server\/\r\n\r\nif [ -d \"\/mnt\/server\/mongodb\" ]\r\nthen\r\n cd \/mnt\/server\/\r\n echo \"backing up mongodb\"\r\n REINSTALL=true\r\n tar -czf mongodb_backup.tar.gz mongodb\/\r\n mv mongodb_backup.tar.gz \/tmp\r\nfi\r\n\r\ncd \/mnt\/server\r\nrm -rf * .git\/ .github\/ .env.example .eslintrc.yml .gitattributes .gitignore .npm\/\r\n\r\n\r\n## Clone repo\r\necho \"cloning Bastion bot\"\r\ngit clone -q --depth 1 https:\/\/github.com\/TheBastionBot\/Bastion.git .\/\r\n\r\necho \"updating npm\"\r\nnpm install -g npm@latest\r\necho \"npm install --no-package-lock\"\r\nnpm install --no-package-lock\r\necho \"npm run build\"\r\nnpm run build\r\n\r\n## Move config files.\r\nmv settings.example.yaml settings.yaml\r\nrm -rf bastion.cmd .env.example bastion.sh scrips\/\r\n\r\n\r\nmkdir -p mongodb\/\r\nif [ \"$REINSTALL\" == \"true\" ]\r\nthen\r\n cd \/mnt\/server\r\n echo \"reinstall\"\r\n mv \/tmp\/mongodb_backup.tar.gz \/mnt\/server\r\n tar xf mongodb_backup.tar.gz\r\n rm mongodb_backup.tar.gz\r\nelse\r\n echo \"fresh install\"\r\nfi\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "node:18-bullseye", "entrypoint": "bash" } @@ -119,4 +119,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 5de7b0610abc07e11da4cee0e168c09f0f4ce4fc Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Tue, 27 Dec 2022 11:41:10 +0100 Subject: [PATCH 008/473] Backup options added and descriptions synced --- .../valheim/valheim_vanilla/egg-valheim.json | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_vanilla/egg-valheim.json b/game_eggs/steamcmd_servers/valheim/valheim_vanilla/egg-valheim.json index 9a3a0ace..1422370c 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_vanilla/egg-valheim.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_vanilla/egg-valheim.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-09-29T21:43:06+00:00", + "exported_at": "2022-12-27T11:24:35+01:00", "name": "Valheim", "author": "magi1053@outlook.com", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture.", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/games:valheim": "ghcr.io\/parkervcp\/games:valheim" }, "file_denylist": [], - "startup": ".\/valheim_server.x86_64 -nographics -batchmode -name \"{{SERVER_NAME}}\" -port {{SERVER_PORT}} -world \"{{WORLD}}\" -password \"{{PASSWORD}}\" -public {{PUBLIC_SERVER}} -saveinterval {{BACKUP_INTERVAL}} -backups {{BACKUP_COUNT}} -backupshort {{BACKUP_SHORTTIME}} -backuplong {{BACKUP_LONGTIME}} $( [[ ${ENABLE_CROSSPLAY} -eq 1 ]] && echo \" -crossplay \") > >(sed -uE \"{{FILTER}}\") & trap \"{{STOP}}\" 15; wait $!", + "startup": ".\/valheim_server.x86_64 -nographics -batchmode -name \"{{SERVER_NAME}}\" -port {{SERVER_PORT}} -world \"{{WORLD}}\" -password \"{{PASSWORD}}\" -public {{PUBLIC_SERVER}} -saveinterval {{BACKUP_INTERVAL}} -backups {{BACKUP_COUNT}} -backupshort {{BACKUP_SHORTTIME}} -backuplong {{BACKUP_LONGTIME}} $( [[ {{ENABLE_CROSSPLAY}} -eq 1 ]] && echo \" -crossplay \") > >(sed -uE \"{{CONSOLE_FILTER}}\") & trap \"{{STOP}}\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"DungeonDB Start\"\r\n}", @@ -90,16 +90,6 @@ "rules": "required|string", "field_type": "text" }, - { - "name": "Console Filter", - "description": "Remove spam from the console output.", - "env_variable": "FILTER", - "default_value": "\/^\\(Filename:.*Line:[[:space:]]+[[:digit:]]+\\)$\/d; \/^([[:space:]]+)?$\/d", - "user_viewable": false, - "user_editable": false, - "rules": "string", - "field_type": "text" - }, { "name": "Shutdown Command", "description": "Commands to trigger a server shutdown.", @@ -117,7 +107,7 @@ "default_value": "1", "user_viewable": true, "user_editable": true, - "rules": "boolean", + "rules": "required|boolean", "field_type": "text" }, { @@ -127,12 +117,12 @@ "default_value": "1", "user_viewable": true, "user_editable": true, - "rules": "boolean", + "rules": "required|boolean", "field_type": "text" }, { "name": "Backup Interval", - "description": "Change how often the world will save in seconds.", + "description": "Change how often the world will save in seconds. Default: 1800 (30 minutes).", "env_variable": "BACKUP_INTERVAL", "default_value": "1800", "user_viewable": true, @@ -142,7 +132,7 @@ }, { "name": "Backup Count", - "description": "Sets how many automatic backups will be kept. The first is the 'short' backup length, and the rest are the 'long' backup length. When default values are used means one backup that is 2 hours old, and 3 backups that are 12 hours apart.", + "description": "Sets how many automatic backups will be kept. The first is the 'short' backup length, and the rest are the 'long' backup length. When default values are used means one backup that is 2 hours old, and 3 backups that are 12 hours apart. Default: 4.", "env_variable": "BACKUP_COUNT", "default_value": "4", "user_viewable": true, @@ -152,7 +142,7 @@ }, { "name": "Backup Shorttime", - "description": "Sets the interval between the first automatic backups.", + "description": "Sets the interval between the first automatic backups in seconds. Default: 7200 (2 hours).", "env_variable": "BACKUP_SHORTTIME", "default_value": "7200", "user_viewable": true, @@ -162,7 +152,7 @@ }, { "name": "Backup Longtime", - "description": "Sets the interval between the subsequent automatic backups.", + "description": "Sets the interval between the subsequent automatic backups in seconds. Default: 43200 (12 hours).", "env_variable": "BACKUP_LONGTIME", "default_value": "43200", "user_viewable": true, @@ -172,7 +162,7 @@ }, { "name": "Beta Branch", - "description": "", + "description": "Beta branch of a steam app. Leave blank to install normal branch.", "env_variable": "SRCDS_BETAID", "default_value": "", "user_viewable": true, @@ -181,14 +171,24 @@ "field_type": "text" }, { - "name": "Betapassword", - "description": "", + "name": "Beta Password", + "description": "Password for a beta branch should one be required during private or closed testing phases. Leave blank for no password.", "env_variable": "SRCDS_BETAPASS", "default_value": "", "user_viewable": true, "user_editable": true, "rules": "max:30", "field_type": "text" + }, + { + "name": "Console Filter", + "description": "Remove unwanted outputs from the console.", + "env_variable": "CONSOLE_FILTER", + "default_value": "\/^\\(Filename:.*Line:[[:space:]]+[[:digit:]]+\\)$\/d; \/^([[:space:]]+)?$\/d", + "user_viewable": false, + "user_editable": false, + "rules": "string", + "field_type": "text" } ] } \ No newline at end of file From faa56b99b372c36453efacaa335456c5f00fc64e Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 29 Dec 2022 16:31:12 +0100 Subject: [PATCH 009/473] update grafana --- software/grafana/egg-grafana.json | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/software/grafana/egg-grafana.json b/software/grafana/egg-grafana.json index d60ddf7f..6cd70acb 100644 --- a/software/grafana/egg-grafana.json +++ b/software/grafana/egg-grafana.json @@ -1,29 +1,29 @@ { "_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:46:01-05:00", + "exported_at": "2022-12-29T16:30:15+01:00", "name": "Grafana", "author": "p.zarrad@outlook.de", "description": "The open and composable observability and data visualization platform.\r\nVisualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.", "features": null, - "images": [ - "ghcr.io\/parkervcp\/yolks:debian" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian" + }, "file_denylist": [], "startup": ".\/bin\/grafana-server web", "config": { "files": "{\r\n \"conf\/defaults.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"server.http_port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"HTTP Server Listen\"\r\n}", "logs": "{}", - "stop": "^C" + "stop": "^^C" }, "scripts": { "installation": { - "script": "#!\/bin\/sh\r\nshopt -s extglob\r\n# Switch to mounted directory\r\ncd \/mnt\/server\r\n# Update installation system and install curl\r\napt-get update\r\napt-get install -y curl\r\n# Cleanup previous install if available\r\nif [ -d \"conf\" ]; then mv conf conf.bak; fi\r\nrm -rfv !(conf.bak|data)\r\n# Download and extract Grafana\r\nversion=${GRAFANA_VERSION}\r\nif [ \"$version\" = \"latest\" ]; then version=$(curl --silent \"https:\/\/api.github.com\/repos\/grafana\/grafana\/releases\/latest\" | grep '\"tag_name\":' | sed -E 's\/.*\"([^\"]+)\".*\/\\1\/' | cut -c2-); fi\r\ncurl https:\/\/dl.grafana.com\/oss\/release\/grafana-${version}.linux-amd64.tar.gz --output grafana.tar.gz\r\ntar -zxvf grafana.tar.gz\r\nmv -n grafana-*\/* .\/\r\nrm -rf grafana.tar.gz grafana-*\/\r\n# Restore configuration if necessary\r\nif [ -d \"conf.bak\" ]; then rm -rf conf && mv conf.bak conf && rm -rf conf.bak; fi\r\n# Update existing plugins and install Grafana plugins\r\nif [ ! -z \"${GRAFANA_PLUGINS}\" ]; then\r\nfor v in $(tr ',' '\\n' <<< \"${GRAFANA_PLUGINS}\") ; do .\/bin\/grafana-cli --pluginsDir=\"\/mnt\/server\/data\/plugins\" plugins install \"$v\" ; done\r\nfi", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\nshopt -s extglob\r\n\r\n# Switch to mounted directory\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n# Update installation system and install curl\r\napt-get update\r\napt-get install -y curl\r\n\r\n# Cleanup previous install if available\r\nif [ -d \"conf\" ]; then mv conf conf.bak; fi\r\nrm -rfv !(conf.bak|data)\r\n\r\n# Download and extract Grafana\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n\r\nversion=${GRAFANA_VERSION}\r\nif [ \"$version\" = \"latest\" ]; then version=$(curl --silent \"https:\/\/api.github.com\/repos\/grafana\/grafana\/releases\/latest\" | grep '\"tag_name\":' | sed -E 's\/.*\"([^\"]+)\".*\/\\1\/' | cut -c2-); fi\r\ncurl https:\/\/dl.grafana.com\/oss\/release\/grafana-${version}.linux-${ARCH}.tar.gz --output grafana.tar.gz\r\ntar -zxvf grafana.tar.gz\r\nmv -n grafana-*\/* .\/\r\nrm -rf grafana.tar.gz grafana-*\/\r\n\r\n# Restore configuration if necessary\r\nif [ -d \"conf.bak\" ]; then rm -rf conf && mv conf.bak conf && rm -rf conf.bak; fi\r\n\r\n# Update existing plugins and install Grafana plugins\r\nif [ ! -z \"${GRAFANA_PLUGINS}\" ]; then\r\nfor v in $(tr ',' '\\n' <<< \"${GRAFANA_PLUGINS}\") ; do .\/bin\/grafana-cli --pluginsDir=\"\/mnt\/server\/data\/plugins\" plugins install \"$v\" ; done\r\nfi\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------", + "container": "debian:bullseye-slim", "entrypoint": "bash" } }, @@ -35,7 +35,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Grafana Plugins", @@ -44,7 +45,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string" + "rules": "nullable|string", + "field_type": "text" } ] } From 5e0d1f7abce8100ca5764377cf02a683ff960043 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Fri, 30 Dec 2022 11:40:18 +0100 Subject: [PATCH 010/473] Update egg-stationeers.json --- .../steamcmd_servers/stationeers/egg-stationeers.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/steamcmd_servers/stationeers/egg-stationeers.json b/game_eggs/steamcmd_servers/stationeers/egg-stationeers.json index 2b09126e..21c62948 100644 --- a/game_eggs/steamcmd_servers/stationeers/egg-stationeers.json +++ b/game_eggs/steamcmd_servers/stationeers/egg-stationeers.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-11-28T18:14:03+01:00", + "exported_at": "2022-12-30T11:39:51+01:00", "name": "Stationeers", "author": "info@goover.de", "description": "Stationeers Server", @@ -12,7 +12,7 @@ "steam_disk_space" ], "docker_images": { - "ghcr.io\/parkervcp\/games:source": "ghcr.io\/parkervcp\/games:source" + "ghcr.io\/parkervcp\/steamcmd:ubuntu": "ghcr.io\/parkervcp\/steamcmd:ubuntu" }, "file_denylist": [], "startup": "stty cols 80 rows 24; .\/rocketstation_DedicatedServer.x86_64 -loadlatest \"{{SAVE_NAME}}\" {{WORLD_NAME}} -settings ServerName \"{{SERVER_NAME}}\" StartLocalHost true ServerVisible true GamePort {{SERVER_PORT}} UpdatePort {{UPDATE_PORT}} AutoSave {{AUTOSAVE}} SaveInterval {{SAVE_INTERVAL}} ServerPassword {{SERVER_PASSWD}} ServerMaxPlayers {{MAX_PLAYERS}} UPNPEnabled {{UPNP}} ;2>&1", @@ -25,7 +25,7 @@ "scripts": { "installation": { "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", - "container": "ghcr.io\/pteroforge\/installers:debian", + "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } }, @@ -151,4 +151,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From edc97e7217887710d6dd911163433eee0c1ee880 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sat, 31 Dec 2022 16:51:00 +0100 Subject: [PATCH 011/473] added autoupdate, updated readme --- game_eggs/steamcmd_servers/eco/README.md | 7 +- game_eggs/steamcmd_servers/eco/egg-eco.json | 99 ++++++++++++++++----- 2 files changed, 83 insertions(+), 23 deletions(-) diff --git a/game_eggs/steamcmd_servers/eco/README.md b/game_eggs/steamcmd_servers/eco/README.md index 4ae287a2..47a9199d 100644 --- a/game_eggs/steamcmd_servers/eco/README.md +++ b/game_eggs/steamcmd_servers/eco/README.md @@ -1,8 +1,13 @@ # Eco -Steam Description +## Steam Description Eco is a community-based game; the players develop laws, government, and an economy to determine the success of their world. We need extensive playtesting to get the balance of our core features just right. Early Access is the perfect fit for finding an audience for this while also funding additional development. +## 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 Eco requires up to 2 ports diff --git a/game_eggs/steamcmd_servers/eco/egg-eco.json b/game_eggs/steamcmd_servers/eco/egg-eco.json index 2427f1c6..415244b4 100644 --- a/game_eggs/steamcmd_servers/eco/egg-eco.json +++ b/game_eggs/steamcmd_servers/eco/egg-eco.json @@ -1,31 +1,29 @@ { "_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-08-24T17:43:23+02:00", + "exported_at": "2022-12-31T16:45:36+01:00", "name": "Eco", "author": "info@goover.de", "description": "Eco is an online world from Strange Loop Games where players must build civilization using resources from an ecosystem that can be damaged and destroyed. The world of Eco is an incredibly reactive one, and whatever any player does in the world affects the underlying ecosystem.", - "features": [ - "steam_disk_space" - ], - "images": [ - "quay.io\/parkervcp\/pterodactyl-images:debian_dotnet-5" - ], + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:dotnet": "ghcr.io\/parkervcp\/steamcmd:dotnet" + }, "file_denylist": [], "startup": ".\/EcoServer", "config": { - "files": "{\r\n \"Configs\/Network.eco\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"GameServerPort\": \"{{server.build.default.port}}\",\r\n \"WebServerPort\": \"{{server.build.env.WEB_PORT}}\",\r\n \"PublicServer\": \"{{server.build.env.PUB_SRV}}\",\r\n \"Password\": \"{{server.build.env.SRV_PWD}}\",\r\n \"UPnPEnabled\": \"{{server.build.env.UPNP}}\",\r\n \"Description\": \"{{server.build.env.SRV_DES}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \" = Unix\",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "files": "{\r\n \"Configs\/Network.eco\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"GameServerPort\": \"{{server.build.default.port}}\",\r\n \"WebServerPort\": \"{{server.build.env.WEB_PORT}}\",\r\n \"PublicServer\": \"{{server.build.env.PUB_SRV}}\",\r\n \"Password\": \"{{server.build.env.SRV_PWD}}\",\r\n \"UPnPEnabled\": \"{{server.build.env.UPNP}}\",\r\n \"Description\": \"{{server.build.env.SRV_DES}}\",\r\n \"DetailedDescription\": \"{{server.build.env.DEDES}}\",\r\n \"Playtime\": \"{{server.build.env.PLAYTIME}}\",\r\n \"MaxConnections\": \"{{server.build.env.MAX_CON}}\",\r\n \"WebServerUrl\": \"{{server.build.env.WEBSRVURL}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \" = Unix\"\r\n}", + "logs": "{}", "stop": "exit" }, "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\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}\" == \"\" ]] || [[ \"${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 +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${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\ncp -f $HOME\/Configs\/Network.eco.template $HOME\/Configs\/Network.eco", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\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\ncp -f $HOME\/Configs\/Network.eco.template $HOME\/Configs\/Network.eco", + "container": "ghcr.io\/pteroforge\/installers:debian", "entrypoint": "bash" } }, @@ -35,9 +33,10 @@ "description": "ID", "env_variable": "SRCDS_APPID", "default_value": "739590", - "user_viewable": true, + "user_viewable": false, "user_editable": false, - "rules": "required|numeric|digits_between:1,6" + "rules": "required|numeric|digits_between:1,6", + "field_type": "text" }, { "name": "Web server port", @@ -46,7 +45,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|numeric|digits_between:1,6" + "rules": "required|numeric|digits_between:1,6", + "field_type": "text" }, { "name": "Public Server", @@ -55,7 +55,8 @@ "default_value": "false", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "boolean|in:true,false", + "field_type": "text" }, { "name": "Server Password", @@ -64,7 +65,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:20" + "rules": "nullable|string|max:20", + "field_type": "text" }, { "name": "Server Description", @@ -73,7 +75,8 @@ "default_value": "Hosted by Pterodactyl", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:50" + "rules": "required|string|max:50", + "field_type": "text" }, { "name": "UPNP", @@ -82,7 +85,8 @@ "default_value": "false", "user_viewable": true, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Install Flags", @@ -91,7 +95,58 @@ "default_value": "-beta default", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:50" + "rules": "required|string|max:50", + "field_type": "text" + }, + { + "name": "Auto Update", + "description": "", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "boolean", + "field_type": "text" + }, + { + "name": "Webserver URL", + "description": "", + "env_variable": "WEBSRVURL", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|url", + "field_type": "text" + }, + { + "name": "Max Connections", + "description": "", + "env_variable": "MAX_CON", + "default_value": "-1", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Playtime", + "description": "", + "env_variable": "PLAYTIME", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "DetailedDescription", + "description": "", + "env_variable": "DEDES", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:50", + "field_type": "text" } ] -} +} \ No newline at end of file From 16de96a2d0badba7e113ea913792f52953c4dcf0 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sat, 31 Dec 2022 17:37:21 +0100 Subject: [PATCH 012/473] re-added steam_disk_space --- game_eggs/steamcmd_servers/eco/egg-eco.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/eco/egg-eco.json b/game_eggs/steamcmd_servers/eco/egg-eco.json index 415244b4..cfa3986c 100644 --- a/game_eggs/steamcmd_servers/eco/egg-eco.json +++ b/game_eggs/steamcmd_servers/eco/egg-eco.json @@ -8,7 +8,9 @@ "name": "Eco", "author": "info@goover.de", "description": "Eco is an online world from Strange Loop Games where players must build civilization using resources from an ecosystem that can be damaged and destroyed. The world of Eco is an incredibly reactive one, and whatever any player does in the world affects the underlying ecosystem.", - "features": null, + "features": [ + "steam_disk_space" + ], "docker_images": { "ghcr.io\/parkervcp\/steamcmd:dotnet": "ghcr.io\/parkervcp\/steamcmd:dotnet" }, From f32f382baf9da91edfc9a7bd15b3c531431deff5 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sat, 31 Dec 2022 19:12:55 +0100 Subject: [PATCH 013/473] wrong image --- game_eggs/steamcmd_servers/eco/egg-eco.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/eco/egg-eco.json b/game_eggs/steamcmd_servers/eco/egg-eco.json index cfa3986c..994511c7 100644 --- a/game_eggs/steamcmd_servers/eco/egg-eco.json +++ b/game_eggs/steamcmd_servers/eco/egg-eco.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-12-31T16:45:36+01:00", + "exported_at": "2022-12-31T19:10:56+01:00", "name": "Eco", "author": "info@goover.de", "description": "Eco is an online world from Strange Loop Games where players must build civilization using resources from an ecosystem that can be damaged and destroyed. The world of Eco is an incredibly reactive one, and whatever any player does in the world affects the underlying ecosystem.", @@ -25,7 +25,7 @@ "scripts": { "installation": { "script": "#!\/bin\/bash\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\ncp -f $HOME\/Configs\/Network.eco.template $HOME\/Configs\/Network.eco", - "container": "ghcr.io\/pteroforge\/installers:debian", + "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } }, From a01e9ea3b8bcd0854a73ea2287fa7e77cf8a0026 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sat, 31 Dec 2022 19:15:39 +0100 Subject: [PATCH 014/473] update to latest installscript --- game_eggs/steamcmd_servers/eco/egg-eco.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/eco/egg-eco.json b/game_eggs/steamcmd_servers/eco/egg-eco.json index 994511c7..685fe6d8 100644 --- a/game_eggs/steamcmd_servers/eco/egg-eco.json +++ b/game_eggs/steamcmd_servers/eco/egg-eco.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-12-31T19:10:56+01:00", + "exported_at": "2022-12-31T19:14:52+01:00", "name": "Eco", "author": "info@goover.de", "description": "Eco is an online world from Strange Loop Games where players must build civilization using resources from an ecosystem that can be damaged and destroyed. The world of Eco is an incredibly reactive one, and whatever any player does in the world affects the underlying ecosystem.", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\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\ncp -f $HOME\/Configs\/Network.eco.template $HOME\/Configs\/Network.eco", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\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\ncp -f $HOME\/Configs\/Network.eco.template $HOME\/Configs\/Network.eco\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } From c9d20d067abd75c112eb6a07d74680ff2afe8ff2 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Sat, 31 Dec 2022 19:35:48 +0100 Subject: [PATCH 015/473] comment out apt --- scripts/steamcmd_installer.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/steamcmd_installer.sh b/scripts/steamcmd_installer.sh index 984e62d0..6cfa2ff8 100644 --- a/scripts/steamcmd_installer.sh +++ b/scripts/steamcmd_installer.sh @@ -18,8 +18,8 @@ ## # Install packages. Default packages below are not required if using our existing install image thus speeding up the install process. -apt -y update -apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates +#apt -y update +#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates ## just in case someone removed the defaults. if [[ "${STEAM_USER}" == "" ]] || [[ "${STEAM_PASS}" == "" ]]; then From df7756d315099748cc09287912e70a31c63a818f Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sat, 31 Dec 2022 19:49:04 +0100 Subject: [PATCH 016/473] comment out apt install --- game_eggs/steamcmd_servers/eco/egg-eco.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/eco/egg-eco.json b/game_eggs/steamcmd_servers/eco/egg-eco.json index 685fe6d8..1fba81e8 100644 --- a/game_eggs/steamcmd_servers/eco/egg-eco.json +++ b/game_eggs/steamcmd_servers/eco/egg-eco.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-12-31T19:14:52+01:00", + "exported_at": "2022-12-31T19:48:33+01:00", "name": "Eco", "author": "info@goover.de", "description": "Eco is an online world from Strange Loop Games where players must build civilization using resources from an ecosystem that can be damaged and destroyed. The world of Eco is an incredibly reactive one, and whatever any player does in the world affects the underlying ecosystem.", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\napt -y update\r\napt -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\ncp -f $HOME\/Configs\/Network.eco.template $HOME\/Configs\/Network.eco\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# 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\ncp -f $HOME\/Configs\/Network.eco.template $HOME\/Configs\/Network.eco\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } From fe14f764488e5c332de23d96a5b010a61ab1e6b4 Mon Sep 17 00:00:00 2001 From: Wapriaily Date: Wed, 4 Jan 2023 16:49:44 +0800 Subject: [PATCH 017/473] Update Forge download address --- .../java/spongeforge/egg-sponge-forge.json | 42 ++++++++++--------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/game_eggs/minecraft/java/spongeforge/egg-sponge-forge.json b/game_eggs/minecraft/java/spongeforge/egg-sponge-forge.json index a6fae67b..7f3326be 100644 --- a/game_eggs/minecraft/java/spongeforge/egg-sponge-forge.json +++ b/game_eggs/minecraft/java/spongeforge/egg-sponge-forge.json @@ -1,10 +1,10 @@ { "_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:03:59+03:00", + "exported_at": "2023-01-04T16:44:53+08:00", "name": "SpongeForge", "author": "parker@parkervcp.com", "description": "A community-driven open source Minecraft: Java Edition modding platform.", @@ -13,12 +13,12 @@ "java_version", "pid_limit" ], - "images": [ - "ghcr.io\/pterodactyl\/yolks:java_8", - "ghcr.io\/pterodactyl\/yolks:java_11", - "ghcr.io\/pterodactyl\/yolks:java_16", - "ghcr.io\/pterodactyl\/yolks:java_17" - ], + "docker_images": { + "ghcr.io\/pterodactyl\/yolks:java_8": "ghcr.io\/pterodactyl\/yolks:java_8", + "ghcr.io\/pterodactyl\/yolks:java_11": "ghcr.io\/pterodactyl\/yolks:java_11", + "ghcr.io\/pterodactyl\/yolks:java_16": "ghcr.io\/pterodactyl\/yolks:java_16", + "ghcr.io\/pterodactyl\/yolks:java_17": "ghcr.io\/pterodactyl\/yolks:java_17" + }, "file_denylist": [], "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", "config": { @@ -29,21 +29,12 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# SpongeForge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y jq curl\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! ${SERVER_JARFILE} = *\\.jar ]]; then\r\n SERVER_JARFILE=\"${SERVER_JARFILE}.jar\"\r\nfi\r\n\r\n\r\nif [ -z ${SF_VERSION} ] || [ \"$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION})\" == \"Unknown version\" ]; then\r\n echo -e \"defaulting to recommended\"\r\n SF_VERSION=\"recommended\"\r\nfi\r\n\r\nif [ \"${SF_VERSION}\" == \"recommended\" ]; then\r\n echo -e \"using recommended SpongeForge version\"\r\n SF_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.version')\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.dependencies.forge')\r\n echo -e \"found Forge Version ${FORGE_DOWNLOAD_VERSION}\"\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nelif [ \"${SF_VERSION}\" == \"latest\" ]; then\r\n echo -e \"using latest SpongForge version\"\r\n SF_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge | jq -r '.buildTypes.stable.latest.version')\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.forge')\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nelse\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.forge')\r\n echo -e \"found Forge Version ${FORGE_DOWNLOAD_VERSION}\"\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nfi\r\n\r\nFORGE_DL_LINK=https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}\/forge-${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}\r\n\r\nif [ -f server.jar ] && [ $(sha1sum server.jar | awk '{ print $1 }') == $(curl -s ${FORGE_DL_LINK}-universal.jar.sha1) ]; then\r\n echo -e \"Already have the correct forge version\"\r\nelse\r\n echo -e \"Downloading forge version ${FORGE_VERSION}\"\r\n echo -e \"running: curl -s -o installer.jar -o ${FORGE_DL_LINK}-installer.jar\"\r\n curl -s -o installer.jar ${FORGE_DL_LINK}-installer.jar\r\n echo -e \"running: curl -s -o ${SERVER_JARFILE} -o ${FORGE_DL_LINK}-universal.jar\"\r\n curl -s -o ${SERVER_JARFILE} ${FORGE_DL_LINK}-universal.jar\r\n java -jar installer.jar --installServer\r\n rm installer.jar forge-${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}-universal.jar\r\nfi\r\n\r\nif [ ! -d \/mnt\/server\/mods\/ ]; then\r\n echo -e \"making mods directory\"\r\n mkdir -p \/mnt\/server\/mods\/\r\nfi\r\n\r\nif [ -f \/mnt\/server\/mods\/spongeforge*.jar ]; then\r\n mkdir -p \/mnt\/server\/mods\/old\/\r\n mv -f \/mnt\/server\/mods\/spongeforge*.jar \/mnt\/server\/mods\/old\/spongeforge*.jar\r\nfi \r\n\r\necho -e \"running: curl -s ${SF_DL_LINK} -o \/mnt\/server\/mods\/spongeforge-${SF_VERSION}.jar\"\r\ncurl -s ${SF_DL_LINK} -o \/mnt\/server\/mods\/spongeforge-${SF_VERSION}.jar\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/java\/server.properties\r\nfi\r\n\r\necho -e \"Install for SpongeForge is complete\"", + "script": "#!\/bin\/bash\r\n# SpongeForge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y jq curl\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! ${SERVER_JARFILE} = *\\.jar ]]; then\r\n SERVER_JARFILE=\"${SERVER_JARFILE}.jar\"\r\nfi\r\n\r\n\r\nif [ -z ${SF_VERSION} ] || [ \"$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION})\" == \"Unknown version\" ]; then\r\n echo -e \"defaulting to recommended\"\r\n SF_VERSION=\"recommended\"\r\nfi\r\n\r\nif [ \"${SF_VERSION}\" == \"recommended\" ]; then\r\n echo -e \"using recommended SpongeForge version\"\r\n SF_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.version')\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.dependencies.forge')\r\n echo -e \"found Forge Version ${FORGE_DOWNLOAD_VERSION}\"\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nelif [ \"${SF_VERSION}\" == \"latest\" ]; then\r\n echo -e \"using latest SpongForge version\"\r\n SF_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge | jq -r '.buildTypes.stable.latest.version')\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.forge')\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nelse\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.forge')\r\n echo -e \"found Forge Version ${FORGE_DOWNLOAD_VERSION}\"\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nfi\r\n\r\nFORGE_DL_LINK=https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}\/forge-${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}\r\n\r\nif [ -f server.jar ] && [ $(sha1sum server.jar | awk '{ print $1 }') == $(curl -s ${FORGE_DL_LINK}-universal.jar.sha1) ]; then\r\n echo -e \"Already have the correct forge version\"\r\nelse\r\n echo -e \"Downloading forge version ${FORGE_VERSION}\"\r\n echo -e \"running: curl -s -o installer.jar -o ${FORGE_DL_LINK}-installer.jar\"\r\n curl -s -o installer.jar ${FORGE_DL_LINK}-installer.jar\r\n echo -e \"running: curl -s -o ${SERVER_JARFILE} -o ${FORGE_DL_LINK}-universal.jar\"\r\n curl -s -o ${SERVER_JARFILE} ${FORGE_DL_LINK}-universal.jar\r\n java -jar installer.jar --installServer\r\n rm installer.jar forge-${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}-universal.jar\r\nfi\r\n\r\nif [ ! -d \/mnt\/server\/mods\/ ]; then\r\n echo -e \"making mods directory\"\r\n mkdir -p \/mnt\/server\/mods\/\r\nfi\r\n\r\nif [ -f \/mnt\/server\/mods\/spongeforge*.jar ]; then\r\n mkdir -p \/mnt\/server\/mods\/old\/\r\n mv -f \/mnt\/server\/mods\/spongeforge*.jar \/mnt\/server\/mods\/old\/spongeforge*.jar\r\nfi \r\n\r\necho -e \"running: curl -s ${SF_DL_LINK} -o \/mnt\/server\/mods\/spongeforge-${SF_VERSION}.jar\"\r\ncurl -s ${SF_DL_LINK} -o \/mnt\/server\/mods\/spongeforge-${SF_VERSION}.jar\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/java\/server.properties\r\nfi\r\n\r\necho -e \"Install for SpongeForge is complete\"", "container": "openjdk:8-jre-slim", "entrypoint": "bash" } }, "variables": [ - { - "name": "SpongeForge Version", - "description": "Example 1.12.2-2825-7.1.6\r\n\r\nIf the version fails it defaults to recommended", - "env_variable": "SF_VERSION", - "default_value": "recommended", - "user_viewable": true, - "user_editable": true, - "rules": "required|string" - }, { "name": "Server Jar File", "description": "The name of the Jarfile to use when running Forge Mod.", @@ -51,7 +42,18 @@ "default_value": "server.jar", "user_viewable": true, "user_editable": true, - "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/", + "field_type": "text" + }, + { + "name": "SpongeForge Version", + "description": "Example 1.12.2-2825-7.1.6\r\n\r\nIf the version fails it defaults to recommended", + "env_variable": "SF_VERSION", + "default_value": "recommended", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" } ] -} +} \ No newline at end of file From a86ae054a6deee38975dcc64f5978b6a86d6991a Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 4 Jan 2023 11:20:17 +0100 Subject: [PATCH 018/473] Tmodloader fix difficulty changing - Change the difficulty to the config with the file parser as it does not work in the startup --- game_eggs/terraria/tmodloader/egg-t-modloader.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/game_eggs/terraria/tmodloader/egg-t-modloader.json b/game_eggs/terraria/tmodloader/egg-t-modloader.json index 0887643d..ccbee327 100755 --- a/game_eggs/terraria/tmodloader/egg-t-modloader.json +++ b/game_eggs/terraria/tmodloader/egg-t-modloader.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-06-25T23:43:59+03:00", + "exported_at": "2023-01-04T11:17:39+01:00", "name": "tModloader", "author": "parker@parkervcp.com", "description": "tModLoader is essentially a mod that provides a way to load your own mods without having to work directly with Terraria's source code itself. This means you can easily make mods that are compatible with other people's mods, save yourself the trouble of having to decompile and recompile Terraria.exe, and escape from having to understand all of the obscure \"intricacies\" of Terraria's source code. It is made to work for Terraria 1.3+.", @@ -13,17 +13,17 @@ "Dotnet 6": "ghcr.io\/parkervcp\/yolks:dotnet_6" }, "file_denylist": [], - "startup": ".\/tModLoaderServer -ip 0.0.0.0 -port {{SERVER_PORT}} -maxplayers {{MAX_PLAYERS}} -difficulty {{DIFFICULTY}} -password \"{{SERVER_PASSWORD}}\" -motd \"{{MOTD}}\" -lang {{LANGUAGE}} -world ~\/saves\/Worlds\/{{WORLD_NAME}}.wld -worldname {{WORLD_NAME}} -autocreate {{WORLD_SIZE}} -savedirectory ~\/ -tmlsavedirectory ~\/saves -modpath ~\/mods", + "startup": ".\/tModLoaderServer -ip 0.0.0.0 -port {{SERVER_PORT}} -maxplayers {{MAX_PLAYERS}} -password \"{{SERVER_PASSWORD}}\" -motd \"{{MOTD}}\" -lang {{LANGUAGE}} -world ~\/saves\/Worlds\/{{WORLD_NAME}}.wld -worldname {{WORLD_NAME}} -autocreate {{WORLD_SIZE}} -savedirectory ~\/ -tmlsavedirectory ~\/saves -modpath ~\/mods", "config": { - "files": "{}", + "files": "{\r\n \"serverconfig.txt\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"difficulty\": \"difficulty={{server.build.env.DIFFICULTY}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Type 'help' for a list of commands\"\r\n}", "logs": "{}", "stop": "exit" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Vanilla tModloader Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n## install packages to get version and download links\r\napt update\r\napt install -y curl jq file unzip\r\n\r\nGITHUB_PACKAGE=tmodloader\/tmodloader\r\n\r\nif [ -z \"$GITHUB_USER\" ] && [ -z \"$GITHUB_OAUTH_TOKEN\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u $GITHUB_USER:$GITHUB_OAUTH_TOKEN '\r\nfi\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/$GITHUB_PACKAGE\/releases\" | jq -c '.[]' | head -1)\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/$GITHUB_PACKAGE\/releases\" | jq '.[]')\r\n\r\n\r\nif [ -z \"$VERSION\" ] || [ \"$VERSION\" == \"latest\" ]; then\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i tmodloader.zip)\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 if [[ \"$VERSION\" == v0* ]]; then\r\n DOWNLOAD_LINK=$(echo $RELEASES | jq -r --arg VERSION \"$VERSION\" '. | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i linux | grep -i zip)\r\n else\r\n DOWNLOAD_LINK=$(echo $RELEASES | jq -r --arg VERSION \"$VERSION\" '. | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i tmodloader.zip)\r\n fi\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i tmodloader.zip)\r\n fi\r\nfi\r\n\r\n## mkdir and cd to \/mnt\/server\/\r\nmkdir -p \/mnt\/server\r\n\r\ncd \/mnt\/server || exit 5\r\n\r\n## download release\r\necho -e \"running: curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip -o ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2\r\nfi\r\n\r\nif [[ \"$VERSION\" == v0* ]]; then\r\n chmod +x tModLoaderServer.bin.x86_64\r\n chmod +x tModLoaderServer\r\nelse\r\n #tiny startup script for backward compatibility\r\n echo 'dotnet tModLoader.dll -server \"$@\"' > tModLoaderServer\r\n chmod +x tModLoaderServer\r\nfi\r\n\r\necho -e \"Cleaning up extra files.\"\r\nrm -rf terraria-server-*.zip rm ${DOWNLOAD_LINK##*\/}\r\nif [[ \"$VERSION\" != v0* ]]; then\r\n rm -rf DedicatedServerUtils LaunchUtils PlatformVariantLibs tModPorter RecentGitHubCommits.txt *.bat *.sh\r\nfi", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\n# Vanilla tModloader Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n## install packages to get version and download links\r\napt update\r\napt install -y curl jq file unzip\r\n\r\n\r\nif [ -z \"$GITHUB_USER\" ] && [ -z \"$GITHUB_OAUTH_TOKEN\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u $GITHUB_USER:$GITHUB_OAUTH_TOKEN '\r\nfi\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/tmodloader\/tmodloader\/releases\" | jq -c '.[]' | head -1)\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/tmodloader\/tmodloader\/releases\" | jq '.[]')\r\n\r\n\r\nif [ -z \"$VERSION\" ] || [ \"$VERSION\" == \"latest\" ]; then\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i tmodloader.zip)\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 if [[ \"$VERSION\" == v0* ]]; then\r\n DOWNLOAD_LINK=$(echo $RELEASES | jq -r --arg VERSION \"$VERSION\" '. | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i linux | grep -i zip)\r\n else\r\n DOWNLOAD_LINK=$(echo $RELEASES | jq -r --arg VERSION \"$VERSION\" '. | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i tmodloader.zip)\r\n fi\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i tmodloader.zip)\r\n fi\r\nfi\r\n\r\n## mkdir and cd to \/mnt\/server\/\r\nmkdir -p \/mnt\/server\r\n\r\ncd \/mnt\/server || exit 5\r\n\r\n## download release\r\necho -e \"running: curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip -o ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2\r\nfi\r\n\r\nif [[ \"$VERSION\" == v0* ]]; then\r\n chmod +x tModLoaderServer.bin.x86_64\r\n chmod +x tModLoaderServer\r\nelse\r\n #tiny startup script for backward compatibility\r\n echo 'dotnet tModLoader.dll -server \"$@\"' > tModLoaderServer\r\n chmod +x tModLoaderServer\r\nfi\r\n\r\necho -e \"Cleaning up extra files.\"\r\nrm -rf terraria-server-*.zip rm ${DOWNLOAD_LINK##*\/}\r\nif [[ \"$VERSION\" != v0* ]]; then\r\n rm -rf DedicatedServerUtils LaunchUtils PlatformVariantLibs tModPorter RecentGitHubCommits.txt *.bat *.sh\r\nfi\r\n\r\n## using config for difficulty as the startup parameter does not work -> config parser\r\nmv \/mnt\/server\/serverconfig.txt \/mnt\/server\/config.txt\r\nsed 's\/#difficulty\/difficulty\/' \/mnt\/server\/config.txt > \/mnt\/server\/serverconfig.txt\r\nrm \/mnt\/server\/config.txt\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "debian:bullseye-slim", "entrypoint": "bash" } }, @@ -95,7 +95,7 @@ "default_value": "0", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:0,1", + "rules": "required|boolean", "field_type": "text" }, { @@ -129,4 +129,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From ccfe52dc4c4a06cd39b796b861c70f6019533435 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 4 Jan 2023 11:30:08 +0100 Subject: [PATCH 019/473] Eco change rule Public Server --- game_eggs/steamcmd_servers/eco/egg-eco.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/eco/egg-eco.json b/game_eggs/steamcmd_servers/eco/egg-eco.json index 1fba81e8..f91c6fed 100644 --- a/game_eggs/steamcmd_servers/eco/egg-eco.json +++ b/game_eggs/steamcmd_servers/eco/egg-eco.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-12-31T19:48:33+01:00", + "exported_at": "2023-01-04T11:28:40+01:00", "name": "Eco", "author": "info@goover.de", "description": "Eco is an online world from Strange Loop Games where players must build civilization using resources from an ecosystem that can be damaged and destroyed. The world of Eco is an incredibly reactive one, and whatever any player does in the world affects the underlying ecosystem.", @@ -57,7 +57,7 @@ "default_value": "false", "user_viewable": true, "user_editable": true, - "rules": "boolean|in:true,false", + "rules": "required|string|in:true,false", "field_type": "text" }, { @@ -151,4 +151,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 1bdf180fb2c8f666ad0245b3fc13656b06419768 Mon Sep 17 00:00:00 2001 From: Panda260 Date: Thu, 5 Jan 2023 10:44:13 +0100 Subject: [PATCH 020/473] Update egg-prometheus.json add: time save data settings --- monitoring/prometheus/egg-prometheus.json | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/monitoring/prometheus/egg-prometheus.json b/monitoring/prometheus/egg-prometheus.json index 54bd4f85..b01b1d83 100644 --- a/monitoring/prometheus/egg-prometheus.json +++ b/monitoring/prometheus/egg-prometheus.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-07-08T15:58:56+02:00", + "exported_at": "2023-01-05T10:40:06+01:00", "name": "Prometheus", "author": "p.zarrad@outlook.de", "description": "The Prometheus monitoring system and time series database.", @@ -13,7 +13,7 @@ "ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian" }, "file_denylist": [], - "startup": ".\/prometheus --web.listen-address=0.0.0.0:{{SERVER_PORT}} --config.file=\/home\/container\/prometheus.yml --storage.tsdb.path=\/home\/container\/data --web.console.templates=\/home\/container\/consoles --web.console.libraries=\/home\/container\/console_libraries --web.config.file=\/home\/container\/prometheus.web.yml", + "startup": ".\/prometheus --web.listen-address=0.0.0.0:{{SERVER_PORT}} --config.file=\/home\/container\/prometheus.yml --storage.tsdb.path=\/home\/container\/data --web.console.templates=\/home\/container\/consoles --web.console.libraries=\/home\/container\/console_libraries --web.config.file=\/home\/container\/prometheus.web.yml --storage.tsdb.retention.time={{DATA_SAVE_TIME}}d", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Server is ready to receive web requests.\"\r\n}", @@ -37,6 +37,16 @@ "user_editable": true, "rules": "required|string|max:20", "field_type": "text" + }, + { + "name": "Data Save time in Days", + "description": "How long the data is being saved", + "env_variable": "DATA_SAVE_TIME", + "default_value": "365", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:10", + "field_type": "text" } ] -} +} \ No newline at end of file From 57f668468b3e7f6a56b47e70e04c8987360f2492 Mon Sep 17 00:00:00 2001 From: Panda260 Date: Thu, 5 Jan 2023 11:16:57 +0100 Subject: [PATCH 021/473] Update egg-prometheus.json Added option to change unit of time & changed to default time of Prometheus --- monitoring/prometheus/egg-prometheus.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/monitoring/prometheus/egg-prometheus.json b/monitoring/prometheus/egg-prometheus.json index b01b1d83..f24d8167 100644 --- a/monitoring/prometheus/egg-prometheus.json +++ b/monitoring/prometheus/egg-prometheus.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-05T10:40:06+01:00", + "exported_at": "2023-01-05T11:04:39+01:00", "name": "Prometheus", "author": "p.zarrad@outlook.de", "description": "The Prometheus monitoring system and time series database.", @@ -13,7 +13,7 @@ "ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian" }, "file_denylist": [], - "startup": ".\/prometheus --web.listen-address=0.0.0.0:{{SERVER_PORT}} --config.file=\/home\/container\/prometheus.yml --storage.tsdb.path=\/home\/container\/data --web.console.templates=\/home\/container\/consoles --web.console.libraries=\/home\/container\/console_libraries --web.config.file=\/home\/container\/prometheus.web.yml --storage.tsdb.retention.time={{DATA_SAVE_TIME}}d", + "startup": ".\/prometheus --web.listen-address=0.0.0.0:{{SERVER_PORT}} --config.file=\/home\/container\/prometheus.yml --storage.tsdb.path=\/home\/container\/data --web.console.templates=\/home\/container\/consoles --web.console.libraries=\/home\/container\/console_libraries --web.config.file=\/home\/container\/prometheus.web.yml --storage.tsdb.retention.time={{DATA_SAVE_TIME}}", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Server is ready to receive web requests.\"\r\n}", @@ -42,7 +42,7 @@ "name": "Data Save time in Days", "description": "How long the data is being saved", "env_variable": "DATA_SAVE_TIME", - "default_value": "365", + "default_value": "15d", "user_viewable": true, "user_editable": true, "rules": "required|string|max:10", From 29e00c812c90731fd2c5cff95580e3d7e0b8ba5b Mon Sep 17 00:00:00 2001 From: "Michael (Parker) Parker" Date: Sat, 7 Jan 2023 10:01:26 -0500 Subject: [PATCH 022/473] update to ghcr image update start command for 64 bit update readme with info for ports --- .../steamcmd_servers/dont_starve/README.md | 2 +- .../egg-don-t-starve-together.json | 49 +++++++++++-------- 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/game_eggs/steamcmd_servers/dont_starve/README.md b/game_eggs/steamcmd_servers/dont_starve/README.md index 5236e70d..b77f6950 100644 --- a/game_eggs/steamcmd_servers/dont_starve/README.md +++ b/game_eggs/steamcmd_servers/dont_starve/README.md @@ -14,7 +14,7 @@ Minimum required memory to run the server is around 512mb for a single user.. ## Server Ports -Don't Starve Together only requires a single port to run. The default is 10999 +Don't Starve Together only requires a single port to run. All network communications are proxied through the master. The default is 10999 | Port | default | |---------|---------| diff --git a/game_eggs/steamcmd_servers/dont_starve/egg-don-t-starve-together.json b/game_eggs/steamcmd_servers/dont_starve/egg-don-t-starve-together.json index 7ac34fcf..9e912bb4 100644 --- a/game_eggs/steamcmd_servers/dont_starve/egg-don-t-starve-together.json +++ b/game_eggs/steamcmd_servers/dont_starve/egg-don-t-starve-together.json @@ -1,24 +1,22 @@ { "_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:29:47+03:00", + "exported_at": "2023-01-07T09:58:40-05:00", "name": "Don't Starve Together", "author": "parker@parkervcp.com", "description": "Don\u2019t Starve Together is an uncompromising wilderness survival game full of science and magic.", - "features": [ - "steam_disk_space" - ], - "images": [ - "quay.io\/parkervcp\/pterodactyl-images:debian_source" - ], + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/games:source": "ghcr.io\/parkervcp\/games:source" + }, "file_denylist": [], - "startup": "cd bin && coproc caves ( .\/dontstarve_dedicated_server_nullrenderer -console -persistent_storage_root \/home\/container\/DoNotStarveTogether -conf_dir config -cluster server -players {{MAX_PLAYERS}} -shard Caves ); .\/dontstarve_dedicated_server_nullrenderer -bind_ip 0.0.0.0 -port 10999 -console -persistent_storage_root \/home\/container\/DoNotStarveTogether -conf_dir config -cluster server -players {{MAX_PLAYERS}} -shard Master && echo 'c_shutdown()' >&\"${caves[1]}\"", + "startup": "cd bin64 && coproc caves ( .\/dontstarve_dedicated_server_nullrenderer_x64 -bind_ip 0.0.0.0 -port 11000 -persistent_storage_root \/home\/container\/DoNotStarveTogether -conf_dir config -cluster server -players {{MAX_PLAYERS}} -shard Caves ); .\/dontstarve_dedicated_server_nullrenderer_x64 -bind_ip 0.0.0.0 -port {{SERVER_PORT}} -persistent_storage_root \/home\/container\/DoNotStarveTogether -conf_dir config -cluster server -players {{MAX_PLAYERS}} -shard Master && echo 'c_shutdown()' >&\"${caves[1]}\"", "config": { "files": "{\r\n \"DoNotStarveTogether\/config\/server\/cluster.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"GAMEPLAY.game_mode\": \"{{server.build.env.GAME_MODE}}\",\r\n \"GAMEPLAY.max_players\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"NETWORK.cluster_name\": \"{{server.build.env.CLUSTER_NAME}}\",\r\n \"NETWORK.cluster_description\": \"{{server.build.env.CLUSTER_DESC}}\",\r\n \"SHARD.shard_enabled\": \"true\",\r\n \"SHARD.bind_ip\": \"127.0.0.1\",\r\n \"SHARD.master_ip\": \"127.0.0.1\",\r\n \"SHARD.master_port\": \"11001\"\r\n }\r\n },\r\n \"DoNotStarveTogether\/config\/server\/Master\/server.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"NETWORK.server_port\": \"{{server.build.default.port}}\",\r\n \"SHARD.is_master\": \"true\"\r\n }\r\n },\r\n \"DoNotStarveTogether\/config\/server\/Caves\/server.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"NETWORK.server_port\": \"11000\",\r\n \"SHARD.is_master\": \"false\",\r\n \"SHARD.name\": \"Caves\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"Setting breakpad minidump AppID\",\r\n \"userInteraction\": []\r\n}", + "startup": "{\r\n \"done\": \"Setting breakpad minidump AppID\"\r\n}", "logs": "{}", "stop": "c_shutdown()" }, @@ -36,8 +34,9 @@ "env_variable": "MAX_PLAYERS", "default_value": "16", "user_viewable": true, - "user_editable": false, - "rules": "required|integer|between:1,31" + "user_editable": true, + "rules": "required|integer|between:1,31", + "field_type": "text" }, { "name": "Server Token", @@ -46,7 +45,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:64" + "rules": "required|string|max:64", + "field_type": "text" }, { "name": "App ID", @@ -55,7 +55,8 @@ "default_value": "343050", "user_viewable": true, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Auto-update server", @@ -64,7 +65,8 @@ "default_value": "0", "user_viewable": true, "user_editable": true, - "rules": "required|boolean" + "rules": "required|boolean", + "field_type": "text" }, { "name": "Game mode", @@ -73,7 +75,8 @@ "default_value": "survival", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { "name": "Cluster Name", @@ -82,7 +85,8 @@ "default_value": "A Pterodactyl Server", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { "name": "Cluster Description", @@ -91,7 +95,8 @@ "default_value": "A Pterodactyl Hosted Server", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { "name": "Master Worldgen Override", @@ -100,7 +105,8 @@ "default_value": "https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/dont_starve\/worldgenoverride.master.lua", "user_viewable": false, "user_editable": false, - "rules": "nullable|string" + "rules": "nullable|string", + "field_type": "text" }, { "name": "Master Worldgen Override", @@ -109,7 +115,8 @@ "default_value": "https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/dont_starve\/worldgenoverride.caves.lua", "user_viewable": false, "user_editable": false, - "rules": "nullable|string" + "rules": "nullable|string", + "field_type": "text" } ] -} +} \ No newline at end of file From 87f90f1fab236f9bcca551901164b5c8f383122a Mon Sep 17 00:00:00 2001 From: "Michael (Parker) Parker" Date: Sat, 7 Jan 2023 10:52:45 -0500 Subject: [PATCH 023/473] re-add steam disk feature --- .../dont_starve/egg-don-t-starve-together.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/dont_starve/egg-don-t-starve-together.json b/game_eggs/steamcmd_servers/dont_starve/egg-don-t-starve-together.json index 9e912bb4..5fe3a520 100644 --- a/game_eggs/steamcmd_servers/dont_starve/egg-don-t-starve-together.json +++ b/game_eggs/steamcmd_servers/dont_starve/egg-don-t-starve-together.json @@ -8,7 +8,9 @@ "name": "Don't Starve Together", "author": "parker@parkervcp.com", "description": "Don\u2019t Starve Together is an uncompromising wilderness survival game full of science and magic.", - "features": null, + "features": [ + "steam_disk_space" + ], "docker_images": { "ghcr.io\/parkervcp\/games:source": "ghcr.io\/parkervcp\/games:source" }, From 6e1bcea7e9f617066a23560dd09a15e2cb846cc9 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 8 Jan 2023 16:23:19 +0100 Subject: [PATCH 024/473] fixed openTTD --- .../openttd/egg-open-t-t-d-server.json | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/game_eggs/tycoon_games/openttd/egg-open-t-t-d-server.json b/game_eggs/tycoon_games/openttd/egg-open-t-t-d-server.json index 1915a265..1a5ef0bb 100644 --- a/game_eggs/tycoon_games/openttd/egg-open-t-t-d-server.json +++ b/game_eggs/tycoon_games/openttd/egg-open-t-t-d-server.json @@ -1,17 +1,17 @@ { "_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:27:03+03:00", + "exported_at": "2023-01-08T16:22:11+01:00", "name": "OpenTTD Server", "author": "admin@justmyrandomstuff.com", "description": "OpenTTD is an open source simulation game based upon the popular Microprose game \"Transport Tycoon Deluxe\", written by Chris Sawyer. It attempts to mimic the original game as closely as possible while extending it with new features.\r\n\r\nOpenTTD is modelled after the original Transport Tycoon game by Chris Sawyer and enhances the game experience dramatically. Many features were inspired by TTDPatch while others are original.", "features": null, - "images": [ - "quay.io\/parkervcp\/pterodactyl-images:base_ubuntu" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian" + }, "file_denylist": [], "startup": ".\/openttd -D", "config": { @@ -22,8 +22,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n\r\napk add --no-cache wget binutils xz curl\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"getting file from: https:\/\/proxy.binaries.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-ubuntu-bionic-amd64.deb\"\r\n\r\nwget https:\/\/proxy.binaries.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-ubuntu-bionic-amd64.deb -O openttd.deb\r\n\r\nar -x openttd.deb\r\n\r\ntar -xvf data.tar.*\r\n\r\nmv usr\/share\/games\/openttd\/* .\/\r\n\r\nmv usr\/games\/openttd .\/\r\n\r\nchmod +x openttd\r\n\r\nwget https:\/\/cdn.openttd.org\/opengfx-releases\/${OPENGFX_VERSION}\/opengfx-${OPENGFX_VERSION}-all.zip -O opengfx.zip\r\n\r\nunzip opengfx.zip \r\n\r\ntar --strip-components=1 -C baseset\/ -xvf opengfx*.tar\r\n\r\nrm open*zip open*tar open*gz debian-binary open*deb\r\n\r\n[ -f \/home\/container\/openttd.cfg ] || curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/tycoon_games\/openttd\/openttd.cfg > openttd.cfg", - "container": "alpine:3.10", + "script": "#!\/bin\/ash\r\napk add --no-cache wget binutils xz curl\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"getting file from: https:\/\/cdn.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-debian-bullseye-amd64.deb\"\r\nwget https:\/\/cdn.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-debian-bullseye-amd64.deb -O openttd.deb\r\nar -x openttd.deb\r\ntar -xvf data.tar.*\r\ncp -a usr\/share\/games\/openttd\/* .\/\r\ncp -a usr\/games\/openttd .\/\r\nchmod +x openttd\r\n\r\nrm -fR usr\/share\/games\/openttd\/\r\nrm -fR usr\/games\/openttd\r\n\r\nwget https:\/\/cdn.openttd.org\/opengfx-releases\/${OPENGFX_VERSION}\/opengfx-${OPENGFX_VERSION}-all.zip -O opengfx.zip\r\nunzip opengfx.zip \r\n\r\ntar --strip-components=1 -C baseset\/ -xvf opengfx*.tar\r\nrm -fR open*zip open*tar open*gz debian-binary open*deb\r\n\r\n[ -f \/home\/container\/openttd.cfg ] || curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/tycoon_games\/openttd\/openttd.cfg > openttd.cfg\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "alpine:3.16", "entrypoint": "ash" } }, @@ -35,7 +35,8 @@ "default_value": "OpenTTD Server", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Show in masterlist?", @@ -44,25 +45,28 @@ "default_value": "true", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:5" + "rules": "required|string|max:5", + "field_type": "text" }, { "name": "OpenTTD Version", "description": "The version of OpenTTD i.e. 1.10.1", "env_variable": "OPENTTD_VERSION", - "default_value": "1.11.0", + "default_value": "12.2", "user_viewable": true, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "OpenGFX Version", "description": "The OpenGFX Version i.e. 0.6.0", "env_variable": "OPENGFX_VERSION", - "default_value": "0.6.1", + "default_value": "7.1", "user_viewable": true, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" } ] } \ No newline at end of file From 02176fd9319225e5e6f399077b872c84ad6c7006 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ostoj=CE=BB?= Date: Mon, 9 Jan 2023 12:53:05 +0100 Subject: [PATCH 025/473] Updated for EXILED 6.0.0 and rewrote for better update handeling. --- .../steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json b/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json index efe895ce..a9adf724 100644 --- a/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json +++ b/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq file unzip wget\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\nchmod -R +rw \/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 ..\/.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 $HOME\/.config\r\n\r\n# Install Exiled\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\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)\r\n fi\r\nfi\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\nwget ${DOWNLOAD_LINK}\r\ntar xzvf Exiled.tar.gz\r\n\r\nmv -f Assembly-CSharp.dll \/mnt\/server\/SCPSL_Data\/Managed\r\nmv -f EXILED \/mnt\/server\/.config\/", + "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\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq file unzip wget\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\nchmod -R +rw \/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 ..\/.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 $HOME\/.config\r\n\r\n# Install Exiled\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\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)\r\n fi\r\nfi\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\nwget -O Exiled.tar.gz ${DOWNLOAD_LINK}\r\ntar xzvf Exiled.tar.gz\r\n\r\ncp -r \"SCP Secret Laboratory\" \/mnt\/server\/.config\/\r\nrm -rf \"SCP Secret Laboratory\"\r\ncp -r EXILED \/mnt\/server\/.config\/\r\nrm -rf EXILED", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } From 7180979b4e905c5ef79dd40c7110b983950e2de3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ostoj=CE=BB?= Date: Mon, 9 Jan 2023 13:23:16 +0100 Subject: [PATCH 026/473] Update --- .../scpsl/exiled/egg-s-c-p--s-l--exiled.json | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json b/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json index a9adf724..aad3dba2 100644 --- a/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json +++ b/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.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": "2021-11-14T10:56:47+01:00", + "exported_at": "2023-01-09T13:21:41+01:00", "name": "SCP:SL - Exiled", "author": "info@goover.de", "description": "Egg for SCP: Secret Laboratory Dedicated Linux Server with Exiled Plugin Framework", "features": [ "steam_disk_space" ], - "images": [ - "ghcr.io\/parkervcp\/yolks:mono_latest" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:mono_latest": "ghcr.io\/parkervcp\/yolks:mono_latest" + }, "file_denylist": [], "startup": ".\/LocalAdmin {{SERVER_PORT}}", "config": { @@ -37,7 +37,8 @@ "default_value": "996560", "user_viewable": true, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Dotnet Bundle", @@ -46,7 +47,8 @@ "default_value": ".\/dotnet-bundle", "user_viewable": false, "user_editable": false, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { "name": "Github Package", @@ -55,7 +57,8 @@ "default_value": "Exiled-Team\/EXILED", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:50" + "rules": "required|string|max:50", + "field_type": "text" }, { "name": "Version", @@ -64,7 +67,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Match", @@ -73,7 +77,8 @@ "default_value": "Exiled.tar.gz", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" } ] -} +} \ No newline at end of file From 0019689fe9906b72b6a90048c95b33dad3cd640a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ostoj=CE=BB?= Date: Mon, 9 Jan 2023 14:19:49 +0100 Subject: [PATCH 027/473] Added installation completed message and removed log configuration. --- .../scpsl/exiled/egg-s-c-p--s-l--exiled.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json b/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json index aad3dba2..80dacbd1 100644 --- a/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json +++ b/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-09T13:21:41+01:00", + "exported_at": "2023-01-09T14:18:18+01:00", "name": "SCP:SL - Exiled", "author": "info@goover.de", "description": "Egg for SCP: Secret Laboratory Dedicated Linux Server with Exiled Plugin Framework", @@ -19,12 +19,12 @@ "config": { "files": "{}", "startup": "{\r\n \"done\": \"Waiting for players..\"\r\n}", - "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "logs": "{}", "stop": "EXIT" }, "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\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq file unzip wget\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\nchmod -R +rw \/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 ..\/.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 $HOME\/.config\r\n\r\n# Install Exiled\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\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)\r\n fi\r\nfi\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\nwget -O Exiled.tar.gz ${DOWNLOAD_LINK}\r\ntar xzvf Exiled.tar.gz\r\n\r\ncp -r \"SCP Secret Laboratory\" \/mnt\/server\/.config\/\r\nrm -rf \"SCP Secret Laboratory\"\r\ncp -r EXILED \/mnt\/server\/.config\/\r\nrm -rf EXILED", + "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\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq file unzip wget\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\nchmod -R +rw \/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 ..\/.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 $HOME\/.config\r\n\r\n# Install Exiled\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\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)\r\n fi\r\nfi\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\nwget -O Exiled.tar.gz ${DOWNLOAD_LINK}\r\ntar xzvf Exiled.tar.gz\r\n\r\ncp -r \"SCP Secret Laboratory\" \/mnt\/server\/.config\/\r\nrm -rf \"SCP Secret Laboratory\"\r\ncp -r EXILED \/mnt\/server\/.config\/\r\nrm -rf EXILED\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } From 2c52e092c561b53d4fa1d90368a301a24db6a041 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ostoj=CE=BB?= Date: Mon, 9 Jan 2023 20:50:33 +0100 Subject: [PATCH 028/473] Updated install script --- .../scpsl/exiled/egg-s-c-p--s-l--exiled.json | 24 ++----------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json b/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json index 80dacbd1..d103e46d 100644 --- a/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json +++ b/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq file unzip wget\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\nchmod -R +rw \/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 ..\/.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 $HOME\/.config\r\n\r\n# Install Exiled\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\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)\r\n fi\r\nfi\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\nwget -O Exiled.tar.gz ${DOWNLOAD_LINK}\r\ntar xzvf Exiled.tar.gz\r\n\r\ncp -r \"SCP Secret Laboratory\" \/mnt\/server\/.config\/\r\nrm -rf \"SCP Secret Laboratory\"\r\ncp -r EXILED \/mnt\/server\/.config\/\r\nrm -rf EXILED\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# Image to install with is 'debian:buster-slim'\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}\" == \"\" ]; 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 +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\nmkdir -p $HOME\/.config\r\n\r\n# Install Exiled\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Exiled-Team\/EXILED\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Exiled-Team\/EXILED\/releases\")\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 Exiled.tar.gz)\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 Exiled.tar.gz)\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)\r\n fi\r\nfi\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -sSL -o Exiled.tar.gz ${DOWNLOAD_LINK}\r\ntar xzvf Exiled.tar.gz\r\nrm -rf Exiled.tar.gz\r\n\r\ncp -r \"SCP Secret Laboratory\" \/mnt\/server\/.config\/\r\nrm -rf \"SCP Secret Laboratory\"\r\ncp -r EXILED \/mnt\/server\/.config\/\r\nrm -rf EXILED\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -37,7 +37,7 @@ "default_value": "996560", "user_viewable": true, "user_editable": false, - "rules": "required|string|max:20", + "rules": "required|string|in:996560", "field_type": "text" }, { @@ -50,16 +50,6 @@ "rules": "required|string", "field_type": "text" }, - { - "name": "Github Package", - "description": "", - "env_variable": "GITHUB_PACKAGE", - "default_value": "Exiled-Team\/EXILED", - "user_viewable": false, - "user_editable": false, - "rules": "required|string|max:50", - "field_type": "text" - }, { "name": "Version", "description": "", @@ -69,16 +59,6 @@ "user_editable": true, "rules": "required|string|max:20", "field_type": "text" - }, - { - "name": "Match", - "description": "", - "env_variable": "MATCH", - "default_value": "Exiled.tar.gz", - "user_viewable": false, - "user_editable": false, - "rules": "required|string|max:20", - "field_type": "text" } ] } \ No newline at end of file From c757c1fcded963d387931aefad75fa4d2dfe69a2 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Fri, 13 Jan 2023 11:05:59 +0100 Subject: [PATCH 029/473] Update egg-squad.json --- .../steamcmd_servers/squad/egg-squad.json | 49 ++++++++++++------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/game_eggs/steamcmd_servers/squad/egg-squad.json b/game_eggs/steamcmd_servers/squad/egg-squad.json index 51264aac..5fbee199 100644 --- a/game_eggs/steamcmd_servers/squad/egg-squad.json +++ b/game_eggs/steamcmd_servers/squad/egg-squad.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-20T12:59:49-05:00", + "exported_at": "2023-01-13T11:04:16+01:00", "name": "Squad", "author": "brycea@terrahost.cloud", "description": "Squad is a 50 vs 50 multiplayer first-person shooter that aims to capture combat realism through communication and teamplay. Major features include vehicle-based combined arms gameplay, large scale environments, base building, and integrated positional VoIP for proximity talking & radio.", "features": [ "steam_disk_space" ], - "images": [ - "quay.io\/pterodactyl\/core:source" - ], + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" + }, "file_denylist": [], "startup": "\/home\/container\/SquadGame\/Binaries\/Linux\/SquadGameServer SquadGame Port={{SERVER_PORT}} QueryPort={{QUERY_PORT}}", "config": { @@ -24,8 +24,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n## install required packages to install squad\r\napt update\r\napt -y --no-install-recommends install curl unzip libstdc++6 lib32gcc1 ca-certificates\r\n\r\n## install steamcmd\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\nmkdir -p \/mnt\/server\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\ncd \/mnt\/server\/steam\r\n\r\n## needs to be used for steamcmd to operate correctly\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install squad\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} +quit\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\n\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\n\r\nchmod +x \/mnt\/server\/SquadGame\/Binaries\/Linux\/SquadGameServer", - "container": "ubuntu:18.04", + "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\nchmod +x \/mnt\/server\/SquadGame\/Binaries\/Linux\/SquadGameServer\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": "27165", "user_viewable": true, "user_editable": true, - "rules": "required|numeric" + "rules": "required|numeric", + "field_type": "text" }, { "name": "ld lib path", @@ -46,7 +47,8 @@ "default_value": "\/home\/container\/linux64\/", "user_viewable": false, "user_editable": false, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { "name": "Game ID", @@ -55,7 +57,8 @@ "default_value": "403240", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Server Name", @@ -64,7 +67,8 @@ "default_value": "Squad Server", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:30" + "rules": "required|string|max:30", + "field_type": "text" }, { "name": "Max Players", @@ -73,7 +77,8 @@ "default_value": "80", "user_viewable": true, "user_editable": true, - "rules": "required" + "rules": "required", + "field_type": "text" }, { "name": "Allow Team Change", @@ -82,7 +87,8 @@ "default_value": "true", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { "name": "Advertise Server", @@ -91,7 +97,8 @@ "default_value": "true", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { "name": "Reserved Slows", @@ -100,7 +107,8 @@ "default_value": "0", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { "name": "Prevent Team Change If Unbalanced", @@ -109,7 +117,8 @@ "default_value": "true", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { "name": "Enforce Team Balance", @@ -118,7 +127,8 @@ "default_value": "true", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { "name": "Record Demos", @@ -127,7 +137,8 @@ "default_value": "true", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" } ] -} +} \ No newline at end of file From 120b70f2736a4f9e3790531f943435056c2b1de2 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Fri, 13 Jan 2023 11:14:37 +0100 Subject: [PATCH 030/473] Update egg-v-rising.json --- .../v_rising/egg-v-rising.json | 38 +++++++++++++++++-- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/game_eggs/steamcmd_servers/v_rising/egg-v-rising.json b/game_eggs/steamcmd_servers/v_rising/egg-v-rising.json index 97162880..a03d61f4 100644 --- a/game_eggs/steamcmd_servers/v_rising/egg-v-rising.json +++ b/game_eggs/steamcmd_servers/v_rising/egg-v-rising.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-06-12T23:01:53+03:00", + "exported_at": "2023-01-13T11:14:11+01:00", "name": "V Rising", "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.", @@ -12,10 +12,10 @@ "steam_disk_space" ], "docker_images": { - "ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest" + "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" }, "file_denylist": [], - "startup": "wine64 .\/VRisingServer.exe -persistentDataPath save-data -address 0.0.0.0", + "startup": "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}", "startup": "{\r\n \"done\": \"Loaded ServerGameSettings\"\r\n}", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl V Rising Egg - egg-v-rising.json\r\n## Authors: David Wolfe (Red-Thirten), Kapatheus\r\n## Date: 2022\/05\/28\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n# Install packages. Default packages below are skipped if using image noted above, thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\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} +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## V Rising Setup\r\nmkdir -p $HOME\/save-data\/Settings && cd \"$_\"\r\ncat > ServerHostSettings.json << EOF\r\n{\r\n \"Name\": \"${SERVER_NAME}\",\r\n \"Description\": \"${DESCRIPTION}\",\r\n \"Port\": ${SERVER_PORT},\r\n \"QueryPort\": ${QUERY_PORT},\r\n \"MaxConnectedUsers\": ${MAX_PLAYERS},\r\n \"MaxConnectedAdmins\": ${MAX_ADMINS},\r\n \"ServerFps\": ${FPS},\r\n \"SaveName\": \"${SAVE_NAME}\",\r\n \"Password\": \"${SERVER_PASSWORD}\",\r\n \"Secure\": ${SERVER_SECURE},\r\n \"ListOnMasterServer\": ${SERVER_LIST},\r\n \"AutoSaveCount\": ${SAVE_COUNT},\r\n \"AutoSaveInterval\": ${SAVE_INTERVAL},\r\n \"GameSettingsPreset\": \"${GAME_SETTINGS_PRESET}\",\r\n \"AdminOnlyDebugEvents\": ${ADMIN_ONLY_DEBUG_EVENTS},\r\n \"DisableDebugEvents\": ${DEBUG_EVENTS},\r\n \"Rcon\": {\r\n \"Enabled\": ${RCON},\r\n \"Password\": \"${RCON_PASS}\",\r\n \"Port\": ${RCON_PORT}\r\n }\r\n}\r\nEOF", + "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl V Rising Egg - egg-v-rising.json\r\n## Authors: David Wolfe (Red-Thirten), Kapatheus\r\n## Date: 2022\/05\/28\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n# Install packages. Default packages below are skipped if using image noted above, 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# 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} +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## V Rising Setup\r\nmkdir -p $HOME\/save-data\/Settings && cd \"$_\"\r\ncat > ServerHostSettings.json << EOF\r\n{\r\n \"Name\": \"${SERVER_NAME}\",\r\n \"Description\": \"${DESCRIPTION}\",\r\n \"Port\": ${SERVER_PORT},\r\n \"QueryPort\": ${QUERY_PORT},\r\n \"MaxConnectedUsers\": ${MAX_PLAYERS},\r\n \"MaxConnectedAdmins\": ${MAX_ADMINS},\r\n \"ServerFps\": ${FPS},\r\n \"SaveName\": \"${SAVE_NAME}\",\r\n \"Password\": \"${SERVER_PASSWORD}\",\r\n \"Secure\": ${SERVER_SECURE},\r\n \"ListOnMasterServer\": ${SERVER_LIST},\r\n \"AutoSaveCount\": ${SAVE_COUNT},\r\n \"AutoSaveInterval\": ${SAVE_INTERVAL},\r\n \"GameSettingsPreset\": \"${GAME_SETTINGS_PRESET}\",\r\n \"AdminOnlyDebugEvents\": ${ADMIN_ONLY_DEBUG_EVENTS},\r\n \"DisableDebugEvents\": ${DEBUG_EVENTS},\r\n \"Rcon\": {\r\n \"Enabled\": ${RCON},\r\n \"Password\": \"${RCON_PASS}\",\r\n \"Port\": ${RCON_PORT}\r\n }\r\n}\r\nEOF\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/pterodactyl\/installers:debian", "entrypoint": "\/bin\/bash" } @@ -249,6 +249,36 @@ "user_editable": false, "rules": "required|string|in:1", "field_type": "text" + }, + { + "name": "[SYSTM] WINEDEBUG", + "description": "don't change", + "env_variable": "WINEDEBUG", + "default_value": "-all", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "[SYSTEM] WINEARCH", + "description": "don't change", + "env_variable": "WINEARCH", + "default_value": "win64", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "[SYSTEM] WINEPATH", + "description": "don't change", + "env_variable": "WINEPATH", + "default_value": "\/home\/container", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" } ] } \ No newline at end of file From 0d3fc1f9a3d243f425791892fc94ac9b9969c669 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Fri, 13 Jan 2023 12:18:51 +0100 Subject: [PATCH 031/473] fixed typo --- game_eggs/steamcmd_servers/v_rising/egg-v-rising.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/v_rising/egg-v-rising.json b/game_eggs/steamcmd_servers/v_rising/egg-v-rising.json index a03d61f4..e06cdbbc 100644 --- a/game_eggs/steamcmd_servers/v_rising/egg-v-rising.json +++ b/game_eggs/steamcmd_servers/v_rising/egg-v-rising.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-13T11:14:11+01:00", + "exported_at": "2023-01-13T12:18:05+01:00", "name": "V Rising", "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.", @@ -251,7 +251,7 @@ "field_type": "text" }, { - "name": "[SYSTM] WINEDEBUG", + "name": "[SYSTEM] WINEDEBUG", "description": "don't change", "env_variable": "WINEDEBUG", "default_value": "-all", From 2b279014f335d17d944d3f8bdb728a5d35529001 Mon Sep 17 00:00:00 2001 From: Attackwave Date: Fri, 13 Jan 2023 12:49:38 +0100 Subject: [PATCH 032/473] Core Keeper --- .../steamcmd_servers/core_keeper/README.md | 26 +++ .../core_keeper/egg-core-keeper.json | 162 ++++++++++++++++++ 2 files changed, 188 insertions(+) create mode 100644 game_eggs/steamcmd_servers/core_keeper/README.md create mode 100644 game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json diff --git a/game_eggs/steamcmd_servers/core_keeper/README.md b/game_eggs/steamcmd_servers/core_keeper/README.md new file mode 100644 index 00000000..3ca75455 --- /dev/null +++ b/game_eggs/steamcmd_servers/core_keeper/README.md @@ -0,0 +1,26 @@ +# Core Keeper + +## Game Info + +[Core Keeper] (https://store.steampowered.com/app/1621690/Core_Keeper/)is a sandbox survival game. + +Explore an endless cavern of creatures, relics and resources in a mining sandbox adventure for 1-8 players. Mine, build, fight, craft and farm to unravel the mystery of the ancient Core. + +## Dedicated Server + +[Steam DB] (https://steamdb.info/app/1963720/info/) + +## Parameters + +| Parameter | default | Description | +|---------|--------------------------|---------------------------------------------------| +| World Index | 0 | Which world index to use. Default: 0. | +| World Name | Core Keeper Server | The name to use for the server. Defaul: Core Keeper Server. | +| World Seed | 0 | The seed to use for a new world. Set to 0 to generate random seed. Default: 0. | +| Game ID | EMPTY | Game ID to use for the server. Needs to be at least 28 characters and alphanumeric, excluding Y,y,x,0,O. Empty or not valid means a new ID will be generated at start. Default: EMPTY. | +| Game Path | Dedicated Server | Save file location. Defaul: DedicatedServer. | +| Max Players | 100 | Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100, | +| World Mode | 0 | Whether to use normal (0) or hard (1) mode for world. Default: 0. | +| Auto Update | 1 | Enable automatic updates on boot: Default: true | + + diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json new file mode 100644 index 00000000..e127346a --- /dev/null +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -0,0 +1,162 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-01-13T12:30:55+01:00", + "name": "Core Keeper", + "author": "karsten@fiedleronline.net", + "description": "Core Keeper is a survival sandbox game.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---\r\n\r\nInfo: Query port ist server port + 1.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest" + }, + "file_denylist": [], + "startup": "DISPLAY=:0; rm .\/GameID.txt CoreKeeperServerLog.txt; touch CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} -gameid \"{{GAME_ID}}\" -datapath \"{{DATA_PATH}}\" -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq wget;\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit\r\n\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update 1007 ${INSTALL_FLAGS} validate +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "World Index", + "description": "Which world index to use. Default: 0.", + "env_variable": "WORLD_INDEX", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:0", + "field_type": "text" + }, + { + "name": "World Name", + "description": "The name to use for the server. Defaul: Core Keeper Server.", + "env_variable": "WORLD_NAME", + "default_value": "Core Keeper Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:100|min:3", + "field_type": "text" + }, + { + "name": "World Seed", + "description": "The seed to use for a new world. Set to 0 to generate random seed. Default: 0.", + "env_variable": "WORLD_SEED", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:0", + "field_type": "text" + }, + { + "name": "Game ID", + "description": "Game ID to use for the server. Needs to be at least 28 characters and alphanumeric, excluding Y,y,x,0,O. Empty or not valid means a new ID will be generated at start. Default: EMPTY.", + "env_variable": "GAME_ID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|min:28", + "field_type": "text" + }, + { + "name": "Data Path", + "description": "Save file location. Defaul: DedicatedServer.", + "env_variable": "DATA_PATH", + "default_value": "DedicatedServer", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:100", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100,", + "env_variable": "MAX_PLAYERS", + "default_value": "100", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:1|max:100", + "field_type": "text" + }, + { + "name": "World Mode", + "description": "Whether to use normal (0) or hard (1) mode for world. Default: 0.", + "env_variable": "WORLD_MODE", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:0|max:1", + "field_type": "text" + }, + { + "name": "Steam App ID", + "description": "Steam App ID of Core Keeper Dedicated Server. Found here: https:\/\/steamdb.info\/search\/?a=app&q=core+keeper&type=5&category=0", + "env_variable": "SRCDS_APPID", + "default_value": "1963720", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer|min:1", + "field_type": "text" + }, + { + "name": "Auto Update", + "description": "Enable automatic updates on boot: Default: true", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "XVFB", + "description": "Enable virtual framebuffer. Fix: 1", + "env_variable": "XVFB", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "DISPLAY_WIDTH", + "description": "Virtual display width. Fix:1.", + "env_variable": "DISPLAY_WIDTH", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "DISPLAY_HEIGHT", + "description": "Virtual display height. Fix:1.", + "env_variable": "DISPLAY_HEIGHT", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "DISPLAY_DEPTH", + "description": "Virtual display color depth. Fix: 1.", + "env_variable": "DISPLAY_DEPTH", + "default_value": "24", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer", + "field_type": "text" + } + ] +} \ No newline at end of file From f1a02247d2a56c64e5d1c89d5f6be04298dfeda6 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 12:56:29 +0100 Subject: [PATCH 033/473] Update README.md --- game_eggs/steamcmd_servers/core_keeper/README.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/README.md b/game_eggs/steamcmd_servers/core_keeper/README.md index 3ca75455..cbd6e867 100644 --- a/game_eggs/steamcmd_servers/core_keeper/README.md +++ b/game_eggs/steamcmd_servers/core_keeper/README.md @@ -2,18 +2,18 @@ ## Game Info -[Core Keeper] (https://store.steampowered.com/app/1621690/Core_Keeper/)is a sandbox survival game. +[Core Keeper](https://store.steampowered.com/app/1621690/Core_Keeper/) is a sandbox survival game. Explore an endless cavern of creatures, relics and resources in a mining sandbox adventure for 1-8 players. Mine, build, fight, craft and farm to unravel the mystery of the ancient Core. ## Dedicated Server -[Steam DB] (https://steamdb.info/app/1963720/info/) +[Steam DB](https://steamdb.info/app/1963720/info/) ## Parameters -| Parameter | default | Description | -|---------|--------------------------|---------------------------------------------------| +| Parameter | default | Description | +|----------------------|--------------------------|---------------------------------------------------| | World Index | 0 | Which world index to use. Default: 0. | | World Name | Core Keeper Server | The name to use for the server. Defaul: Core Keeper Server. | | World Seed | 0 | The seed to use for a new world. Set to 0 to generate random seed. Default: 0. | @@ -22,5 +22,3 @@ Explore an endless cavern of creatures, relics and resources in a mining sandbox | Max Players | 100 | Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100, | | World Mode | 0 | Whether to use normal (0) or hard (1) mode for world. Default: 0. | | Auto Update | 1 | Enable automatic updates on boot: Default: true | - - From 24a82aff2152a75d07227a7223e2d702a0285e0e Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 13:01:45 +0100 Subject: [PATCH 034/473] Update README.md Add Core Keeper --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bddab372..f82b1bb9 100644 --- a/README.md +++ b/README.md @@ -219,6 +219,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Black Mesa](game_eggs/steamcmd_servers/black_mesa) * [Citadel: Forged with Fire](game_eggs/steamcmd_servers/citadel) * [Conan Exiles](game_eggs/steamcmd_servers/conan_exiles) +* [Core Keeper](game_eggs/steamcmd_servers/core_keeper) * [Craftopia](game_eggs/steamcmd_servers/craftopia) * [Cryofall](game_eggs/steamcmd_servers/cryofall) * [DayZ (Experimental)](game_eggs/steamcmd_servers/dayz-experimental) From 6c33f45b57e3c16963628bdbe854d7425848434e Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 13:03:08 +0100 Subject: [PATCH 035/473] Update README.md Added Core Keeper --- game_eggs/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/game_eggs/README.md b/game_eggs/README.md index ddbf3123..9defcc26 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -119,6 +119,7 @@ * [Black Mesa](steamcmd_servers/black_mesa) * [Citadel: Forged with Fire](steamcmd_servers/citadel) * [Conan Exiles](steamcmd_servers/conan_exiles) +* [Core Keeper](steamcmd_servers/core_keeper) * [CryoFall](steamcmd_servers/cryofall) * [DayZ (Experimental)](steamcmd_servers/dayz-experimental) * [Don't Starve Together](steamcmd_servers/dont_starve) From 7d04da75868c4f02fd41e303399d0b3bbad7942c Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 13:04:06 +0100 Subject: [PATCH 036/473] Update README.md Added Core Keeper --- game_eggs/steamcmd_servers/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index ba85b43a..ad088cb2 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -40,6 +40,10 @@ This is a collection of servers that use SteamCMD to install. [Conan Exiles](conan_exiles) +## Core Keeper + +[Core Keeper](core_keeper) + ## Craftopia [Craftopia](craftopia) From a267a858d8ba1ca27711e579caf5c06cd7e8a93e Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 13:17:26 +0100 Subject: [PATCH 037/473] Update README.md Added server port info --- game_eggs/steamcmd_servers/core_keeper/README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/game_eggs/steamcmd_servers/core_keeper/README.md b/game_eggs/steamcmd_servers/core_keeper/README.md index cbd6e867..9dd78d49 100644 --- a/game_eggs/steamcmd_servers/core_keeper/README.md +++ b/game_eggs/steamcmd_servers/core_keeper/README.md @@ -22,3 +22,13 @@ Explore an endless cavern of creatures, relics and resources in a mining sandbox | Max Players | 100 | Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100, | | World Mode | 0 | Whether to use normal (0) or hard (1) mode for world. Default: 0. | | Auto Update | 1 | Enable automatic updates on boot: Default: true | + +## Game Ports + +The dedicated server uses two UDP Ports.\ +Game Port: Server Port\ +Query Port: Server Port + 1 + +Example:\ +Server Port = 4711\ +Make sure you open UDP ports 4711-4712 in your firewall and bind the allocations to the Core Keeper Server. From e3294ff7a65d583c7116154f9294fd9a957e41ef Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 21:39:02 +0100 Subject: [PATCH 038/473] Update egg-core-keeper.json - steamcmd default script - game port - xvfb display depth text fix - fixed startup script --- .../core_keeper/egg-core-keeper.json | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index e127346a..82fb9ae3 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -4,16 +4,18 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-13T12:30:55+01:00", + "exported_at": "2023-01-13T21:33:24+01:00", "name": "Core Keeper", "author": "karsten@fiedleronline.net", - "description": "Core Keeper is a survival sandbox game.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---\r\n\r\nInfo: Query port ist server port + 1.", - "features": null, + "description": "Core Keeper is a survival sandbox game for single or multiplayers.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---", + "features": [ + "steam_disk_space" + ], "docker_images": { - "ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest" + "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" }, "file_denylist": [], - "startup": "DISPLAY=:0; rm .\/GameID.txt CoreKeeperServerLog.txt; touch CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} -gameid \"{{GAME_ID}}\" -datapath \"{{DATA_PATH}}\" -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", + "startup": "DISPLAY=:0; rm .\/GameID.txt CoreKeeperServerLog.txt; touch CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} -gameid \"{{GAME_ID}}\" -datapath \"{{DATA_PATH}}\" -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{GAME_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", @@ -22,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq wget;\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit\r\n\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update 1007 ${INSTALL_FLAGS} validate +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## add below your custom commands if needed\r\n\r\n## install end\r\n#echo \"-----------------------------------------\"\r\n#echo \"Installation completed...\"\r\n#echo \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -150,13 +152,23 @@ }, { "name": "DISPLAY_DEPTH", - "description": "Virtual display color depth. Fix: 1.", + "description": "Virtual display color depth. Fix: 24.", "env_variable": "DISPLAY_DEPTH", "default_value": "24", "user_viewable": false, "user_editable": false, "rules": "required|integer", "field_type": "text" + }, + { + "name": "Game Port", + "description": "What UDP game port to bind to. Note that the UDP Query Port is automaticaly game port + 1. The clients will connect to the server directly and the ports needs to be open. Default: 27015 (27016).", + "env_variable": "GAME_PORT", + "default_value": "27015", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer", + "field_type": "text" } ] -} \ No newline at end of file +} From 66ec53f5594104b272119878d22b57603845f895 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Fri, 13 Jan 2023 21:46:13 +0100 Subject: [PATCH 039/473] Update game port and added game port table --- game_eggs/steamcmd_servers/core_keeper/README.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/README.md b/game_eggs/steamcmd_servers/core_keeper/README.md index 9dd78d49..1bd75bd9 100644 --- a/game_eggs/steamcmd_servers/core_keeper/README.md +++ b/game_eggs/steamcmd_servers/core_keeper/README.md @@ -12,23 +12,25 @@ Explore an endless cavern of creatures, relics and resources in a mining sandbox ## Parameters -| Parameter | default | Description | +| Parameter | Default | Description | |----------------------|--------------------------|---------------------------------------------------| | World Index | 0 | Which world index to use. Default: 0. | | World Name | Core Keeper Server | The name to use for the server. Defaul: Core Keeper Server. | | World Seed | 0 | The seed to use for a new world. Set to 0 to generate random seed. Default: 0. | | Game ID | EMPTY | Game ID to use for the server. Needs to be at least 28 characters and alphanumeric, excluding Y,y,x,0,O. Empty or not valid means a new ID will be generated at start. Default: EMPTY. | | Game Path | Dedicated Server | Save file location. Defaul: DedicatedServer. | +| Game Port | 27015 | What UDP game port to bind to. Note that the UDP Query Port is automaticaly game port + 1. The clients will connect to the server directly and the ports needs to be open. Default: 27015 (27016). | | Max Players | 100 | Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100, | | World Mode | 0 | Whether to use normal (0) or hard (1) mode for world. Default: 0. | | Auto Update | 1 | Enable automatic updates on boot: Default: true | ## Game Ports -The dedicated server uses two UDP Ports.\ -Game Port: Server Port\ -Query Port: Server Port + 1 +| Port | Default | Protocol | Description | +|---------|---------|----------|---------------------------------------------| +| Game | 27015 | UDP | | +| Query | 27016 | UDP | Automaticaly bind by the game server (Game port + 1) | Example:\ -Server Port = 4711\ +Game Port = 4711\ Make sure you open UDP ports 4711-4712 in your firewall and bind the allocations to the Core Keeper Server. From 30f6a092a911f1ce9582e3d4582524514b1c4d59 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 14 Jan 2023 11:59:46 +0100 Subject: [PATCH 040/473] Update fivem Update fivem as they removed their changelog page --- game_eggs/gta/fivem/egg-five-m.json | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/game_eggs/gta/fivem/egg-five-m.json b/game_eggs/gta/fivem/egg-five-m.json index 7d08e922..5b2eb2c4 100644 --- a/game_eggs/gta/fivem/egg-five-m.json +++ b/game_eggs/gta/fivem/egg-five-m.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-07-19T11:53:00-04:00", + "exported_at": "2023-01-14T11:57:46+01:00", "name": "FiveM", "author": "parker@parkervcp.com", "description": "A new FiveM egg for the latest builds due to recent changes in FiveM", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# FiveM Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update -y\r\napt install -y tar xz-utils file jq\r\n\r\nmkdir -p \/mnt\/server\/resources\r\n\r\ncd \/mnt\/server\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/\r\n\r\nRELEASE_PAGE=$(curl -sSL https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/)\r\nCHANGELOGS_PAGE=$(curl -sSL https:\/\/changelogs-live.fivem.net\/api\/changelog\/versions\/linux\/server)\r\n\r\nif [[ \"${FIVEM_VERSION}\" == \"recommended\" ]] || [[ -z ${FIVEM_VERSION} ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\nelif [[ \"${FIVEM_VERSION}\" == \"latest\" ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.latest_download')\r\nelse\r\n VERSION_LINK=$(echo -e \"${RELEASE_PAGE}\" | grep -Eo '\".*\/*.tar.xz\"' | grep -Eo '\".*\"' | sed 's\/\\\"\/\/g' | sed 's\/\\.\\\/\/\/1' | grep ${CFX_VERSION})\r\n if [[ \"${VERSION_LINK}\" == \"\" ]]; then\r\n echo -e \"defaulting to recommedned as the version requested was invalid.\"\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\n else\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${VERSION_LINK})\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then\r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\necho -e \"Running curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\necho \"Extracting fivem files\"\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2\r\nfi\r\n\r\nrm -rf ${DOWNLOAD_LINK##*\/} run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"Skipping downloading default server config file as one already exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/gta\/fivem\/server.cfg >>server.cfg\r\nfi\r\n\r\nmkdir -p logs\/\r\n\r\necho \"install complete\"", + "script": "#!\/bin\/bash\r\n# FiveM Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update -y\r\napt install -y tar xz-utils file jq\r\n\r\nmkdir -p \/mnt\/server\/resources\r\n\r\ncd \/mnt\/server\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/\r\n\r\n\r\nRELEASE_PAGE=$(curl -sSL https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/)\r\n\r\n\r\nif [[ \"${FIVEM_VERSION}\" == \"recommended\" ]] || [[ -z ${FIVEM_VERSION} ]]; then\r\n TEMP_LINK=$(echo $RELEASE_PAGE | grep -B 1 -i recommended | grep -o '' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n DOWNLOAD_URL=$(echo -n \"https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master$TEMP_LINK\")\r\nelif [[ \"${FIVEM_VERSION}\" == \"latest\" ]]; then\r\n TEMP_LINK=$(echo $RELEASE_PAGE | grep -B 1 -i latest | grep -o '' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n DOWNLOAD_URL=$(echo -n \"https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master$TEMP_LINK\")\r\nelse\r\n VERSION_LINK=$(echo $RELEASE_PAGE | grep -i ${FIVEM_VERSION} | grep -o 'href=\".*\"' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n if [[ \"${VERSION_LINK}\" == \"\" ]]; then\r\n echo -e \"defaulting to recommedned as the version requested was invalid.\"\r\n TEMP_LINK=$(echo $RELEASE_PAGE | grep -B 1 -i recommended | grep -o '' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n DOWNLOAD_URL=$(echo -n \"https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master$TEMP_LINK\")\r\n else\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${VERSION_LINK})\r\n fi\r\nfi\r\n\r\n# check if url is valid\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then\r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\n\r\necho -e \"Running curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\necho \"Extracting fivem files\"\r\n\r\n## Unpacking the download\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2\r\nfi\r\n\r\n## removing the compresed file and run.sh\r\nrm -rf ${DOWNLOAD_LINK##*\/} run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"Skipping downloading default server config file as one already exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/gta\/fivem\/server.cfg >>server.cfg\r\nfi\r\n\r\nmkdir -p logs\/\r\n\r\necho \"install complete\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -60,7 +60,7 @@ }, { "name": "fivem version", - "description": "The fivem version that is to be installed. Invalid versions will default to recommended.\r\n\r\nAn example is `1383-e5ea040353ce1b8bc86e37982bf5d888938e3096`\r\n\r\nYou can get the latest version from here - https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/", + "description": "The fivem version that is to be installed. Invalid versions will default to recommended.\r\n\r\nAn example is `6007-f9c407539e79a33772db3cbf47ab8d5e9d57e7a4`\r\n\r\nYou can get the latest version from here - https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/", "env_variable": "FIVEM_VERSION", "default_value": "recommended", "user_viewable": true, @@ -68,16 +68,6 @@ "rules": "required|string|max:50", "field_type": "text" }, - { - "name": "Download Link", - "description": "This is the link to download fivem from. This is only used in the install script.\r\n\r\nThe file you link to needs to be an fx.tar.zx file.\r\n\r\nExample:\r\nhttps:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/1626-8c06e8bc3ed7e6690c6c2d9e0b90e29df65b3ea6\/fx.tar.xz", - "env_variable": "DOWNLOAD_URL", - "default_value": "", - "user_viewable": false, - "user_editable": false, - "rules": "string|nullable", - "field_type": "text" - }, { "name": "Steam Web Api Key", "description": "Use your Steam WebApiKey or set to 'none'. Get your key at https:\/\/steamcommunity.com\/dev\/apikey\/", From db9d396ffdce8cccb241a05938c5085df44d9c51 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 14 Jan 2023 12:06:05 +0100 Subject: [PATCH 041/473] remove fivem comment + add finished echo --- game_eggs/gta/fivem/egg-five-m.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/gta/fivem/egg-five-m.json b/game_eggs/gta/fivem/egg-five-m.json index 5b2eb2c4..56cdc1c9 100644 --- a/game_eggs/gta/fivem/egg-five-m.json +++ b/game_eggs/gta/fivem/egg-five-m.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-14T11:57:46+01:00", + "exported_at": "2023-01-14T12:02:56+01:00", "name": "FiveM", "author": "parker@parkervcp.com", "description": "A new FiveM egg for the latest builds due to recent changes in FiveM", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# FiveM Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update -y\r\napt install -y tar xz-utils file jq\r\n\r\nmkdir -p \/mnt\/server\/resources\r\n\r\ncd \/mnt\/server\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/\r\n\r\n\r\nRELEASE_PAGE=$(curl -sSL https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/)\r\n\r\n\r\nif [[ \"${FIVEM_VERSION}\" == \"recommended\" ]] || [[ -z ${FIVEM_VERSION} ]]; then\r\n TEMP_LINK=$(echo $RELEASE_PAGE | grep -B 1 -i recommended | grep -o '' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n DOWNLOAD_URL=$(echo -n \"https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master$TEMP_LINK\")\r\nelif [[ \"${FIVEM_VERSION}\" == \"latest\" ]]; then\r\n TEMP_LINK=$(echo $RELEASE_PAGE | grep -B 1 -i latest | grep -o '' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n DOWNLOAD_URL=$(echo -n \"https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master$TEMP_LINK\")\r\nelse\r\n VERSION_LINK=$(echo $RELEASE_PAGE | grep -i ${FIVEM_VERSION} | grep -o 'href=\".*\"' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n if [[ \"${VERSION_LINK}\" == \"\" ]]; then\r\n echo -e \"defaulting to recommedned as the version requested was invalid.\"\r\n TEMP_LINK=$(echo $RELEASE_PAGE | grep -B 1 -i recommended | grep -o '' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n DOWNLOAD_URL=$(echo -n \"https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master$TEMP_LINK\")\r\n else\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${VERSION_LINK})\r\n fi\r\nfi\r\n\r\n# check if url is valid\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then\r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\n\r\necho -e \"Running curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\necho \"Extracting fivem files\"\r\n\r\n## Unpacking the download\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2\r\nfi\r\n\r\n## removing the compresed file and run.sh\r\nrm -rf ${DOWNLOAD_LINK##*\/} run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"Skipping downloading default server config file as one already exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/gta\/fivem\/server.cfg >>server.cfg\r\nfi\r\n\r\nmkdir -p logs\/\r\n\r\necho \"install complete\"", + "script": "#!\/bin\/bash\r\n# FiveM Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update -y\r\napt install -y tar xz-utils file jq\r\n\r\nmkdir -p \/mnt\/server\/resources\r\n\r\ncd \/mnt\/server\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/\r\n\r\n\r\nRELEASE_PAGE=$(curl -sSL https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/)\r\n\r\nif [[ \"${FIVEM_VERSION}\" == \"recommended\" ]] || [[ -z ${FIVEM_VERSION} ]]; then\r\n TEMP_LINK=$(echo $RELEASE_PAGE | grep -B 1 -i recommended | grep -o '' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n DOWNLOAD_URL=$(echo -n \"https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master$TEMP_LINK\")\r\nelif [[ \"${FIVEM_VERSION}\" == \"latest\" ]]; then\r\n TEMP_LINK=$(echo $RELEASE_PAGE | grep -B 1 -i latest | grep -o '' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n DOWNLOAD_URL=$(echo -n \"https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master$TEMP_LINK\")\r\nelse\r\n VERSION_LINK=$(echo $RELEASE_PAGE | grep -i ${FIVEM_VERSION} | grep -o 'href=\".*\"' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n if [[ \"${VERSION_LINK}\" == \"\" ]]; then\r\n echo -e \"defaulting to recommedned as the version requested was invalid.\"\r\n TEMP_LINK=$(echo $RELEASE_PAGE | grep -B 1 -i recommended | grep -o '' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n DOWNLOAD_URL=$(echo -n \"https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master$TEMP_LINK\")\r\n else\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${VERSION_LINK})\r\n fi\r\nfi\r\n\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then\r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\necho -e \"Running curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\necho \"Extracting fivem files\"\r\n\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2\r\nfi\r\n\r\n## removing the compresed file and run.sh\r\nrm -rf ${DOWNLOAD_LINK##*\/} run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"Skipping downloading default server config file as one already exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/gta\/fivem\/server.cfg >>server.cfg\r\nfi\r\n\r\nmkdir -p logs\/\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } From 9a6dc15a8293b7ba38d0f8728f9530e55efad228 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Sat, 14 Jan 2023 13:19:04 +0100 Subject: [PATCH 042/473] fix link --- generic/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generic/README.md b/generic/README.md index 22a8983a..ee032791 100644 --- a/generic/README.md +++ b/generic/README.md @@ -40,7 +40,7 @@ A nodemon JavaScript and TypeScript language egg for running and automatically r [python](https://www.python.org/) A generic Python language egg -### [Rust](python) +### [Rust](rust) [rust](https://www.rust-lang.org/) A generic Rust language egg From 89b50da56cd62b22d1a9d09a51c7b95eed4c1498 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 14 Jan 2023 17:27:19 +0100 Subject: [PATCH 043/473] Update ETS2 --- ...uro-truck-simulator2-dedicated-server.json | 46 +++++++++---------- .../truck-simulator/server_config.sii | 7 +-- 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/game_eggs/steamcmd_servers/truck-simulator/euro-truck-simulator2/egg-euro-truck-simulator2-dedicated-server.json b/game_eggs/steamcmd_servers/truck-simulator/euro-truck-simulator2/egg-euro-truck-simulator2-dedicated-server.json index 4fa22c48..a8d52c2c 100644 --- a/game_eggs/steamcmd_servers/truck-simulator/euro-truck-simulator2/egg-euro-truck-simulator2-dedicated-server.json +++ b/game_eggs/steamcmd_servers/truck-simulator/euro-truck-simulator2/egg-euro-truck-simulator2-dedicated-server.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-12-15T18:36:23+01:00", + "exported_at": "2023-01-14T17:26:13+01:00", "name": "Euro Truck Simulator 2 Dedicated server", "author": "josdekurk@gmail.com", "description": "Travel across Europe as king of the road, a trucker who delivers important cargo across impressive distances! With dozens of cities to explore, your endurance, skill and speed will all be pushed to their limits.", @@ -12,7 +12,7 @@ "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": ".\/bin\/linux_x64\/eurotrucks2_server", @@ -32,7 +32,7 @@ "variables": [ { "name": "Auto update", - "description": "", + "description": "Auto update the server on startup", "env_variable": "AUTO_UPDATE", "default_value": "1", "user_viewable": true, @@ -50,26 +50,6 @@ "rules": "required|string|in:1948160", "field_type": "text" }, - { - "name": "Steam password", - "description": "", - "env_variable": "STEAM_PASS", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string|max:64", - "field_type": "text" - }, - { - "name": "Steam username", - "description": "", - "env_variable": "STEAM_USER", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string|max:32", - "field_type": "text" - }, { "name": "Query port", "description": "By there readme of the game the query port must be between 27015-27020, but from our testing this port can be any port", @@ -99,6 +79,26 @@ "user_editable": true, "rules": "required|string|max:64", "field_type": "text" + }, + { + "name": "Steam password", + "description": "", + "env_variable": "STEAM_PASS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:64", + "field_type": "text" + }, + { + "name": "Steam username", + "description": "", + "env_variable": "STEAM_USER", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:32", + "field_type": "text" } ] } \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/truck-simulator/server_config.sii b/game_eggs/steamcmd_servers/truck-simulator/server_config.sii index b4b7ba31..f6bb06b6 100644 --- a/game_eggs/steamcmd_servers/truck-simulator/server_config.sii +++ b/game_eggs/steamcmd_servers/truck-simulator/server_config.sii @@ -1,6 +1,6 @@ SiiNunit { -server_config : _nameless.44c.eab0 { +server_config : _nameless.54e.4440 { lobby_name: "" description: "" welcome_message: "" @@ -8,7 +8,7 @@ server_config : _nameless.44c.eab0 { max_players: 8 max_vehicles_total: 100 max_ai_vehicles_player: 50 - max_ai_vehicles_player_spawn: 50 + max_ai_vehicles_player_spawn: 30 connection_virtual_port: 100 query_virtual_port: 101 connection_dedicated_port: 27015 @@ -20,6 +20,7 @@ server_config : _nameless.44c.eab0 { hide_colliding: true force_speed_limiter: false mods_optioning: false + timezones: 0 service_no_collision: false in_menu_ghosting: false name_tags: true @@ -28,4 +29,4 @@ server_config : _nameless.44c.eab0 { moderator_list: 0 } -} \ No newline at end of file +} From 62b2f4b43b3ec83ccbc9ee096bbb3570849b6788 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 14 Jan 2023 18:23:38 +0100 Subject: [PATCH 044/473] Fivem: add bock Download Link variable --- game_eggs/gta/fivem/egg-five-m.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/game_eggs/gta/fivem/egg-five-m.json b/game_eggs/gta/fivem/egg-five-m.json index 56cdc1c9..718d2950 100644 --- a/game_eggs/gta/fivem/egg-five-m.json +++ b/game_eggs/gta/fivem/egg-five-m.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-14T12:02:56+01:00", + "exported_at": "2023-01-14T18:22:52+01:00", "name": "FiveM", "author": "parker@parkervcp.com", "description": "A new FiveM egg for the latest builds due to recent changes in FiveM", @@ -97,6 +97,16 @@ "user_editable": true, "rules": "required|boolean", "field_type": "text" + }, + { + "name": "Download Link", + "description": "This is the link to download fivem from. This is only used in the install script.\r\n\r\nThe file you link to needs to be an fx.tar.zx file.\r\n\r\nExample:\r\nhttps:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/`6007-f9c407539e79a33772db3cbf47ab8d5e9d57e7a4\/fx.tar.xz", + "env_variable": "DOWNLOAD_URL", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "string|nullable", + "field_type": "text" } ] } From 5667d75f36e256f32b7ec1a0fb386034db1a65ad Mon Sep 17 00:00:00 2001 From: Loki <59907407+Loki-101@users.noreply.github.com> Date: Sat, 14 Jan 2023 11:46:13 -0800 Subject: [PATCH 045/473] Specify TCP or UDP for the defaults It should make it easier for the people who are newer to networking. --- .../crossplay/purpur-geysermc-floodgate/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/game_eggs/minecraft/crossplay/purpur-geysermc-floodgate/README.md b/game_eggs/minecraft/crossplay/purpur-geysermc-floodgate/README.md index d3a5e98c..cde2e340 100644 --- a/game_eggs/minecraft/crossplay/purpur-geysermc-floodgate/README.md +++ b/game_eggs/minecraft/crossplay/purpur-geysermc-floodgate/README.md @@ -11,9 +11,9 @@ Purpur-GeyserMC-Floodgate is a drop-in replacement for Paper servers designed fo ## Server Ports -The minecraft server requires a single port for access (default 25565). GeyserMC requires an additional port (default 19132). Any other plugins you add may require extra ports to enabled for the server. +The minecraft server requires a single port for access (default 25565 TCP). GeyserMC requires an additional port (default 19132 UDP). Any other plugins you add may require extra ports to enabled for the server. -| Port | default | -|----------|---------| -| Java | 25565 | -| Bedrock | 19132 | +| Port | default | Protocol | +|----------|---------|----------| +| Java | 25565 | TCP | +| Bedrock | 19132 | UDP | From c326efd20923dd9e5aceaba3dd8c1a749184fa31 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Sat, 14 Jan 2023 20:55:36 +0100 Subject: [PATCH 046/473] Updated Core Keeper README --- .../steamcmd_servers/core_keeper/README.md | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/README.md b/game_eggs/steamcmd_servers/core_keeper/README.md index 1bd75bd9..83d28fb2 100644 --- a/game_eggs/steamcmd_servers/core_keeper/README.md +++ b/game_eggs/steamcmd_servers/core_keeper/README.md @@ -17,9 +17,7 @@ Explore an endless cavern of creatures, relics and resources in a mining sandbox | World Index | 0 | Which world index to use. Default: 0. | | World Name | Core Keeper Server | The name to use for the server. Defaul: Core Keeper Server. | | World Seed | 0 | The seed to use for a new world. Set to 0 to generate random seed. Default: 0. | -| Game ID | EMPTY | Game ID to use for the server. Needs to be at least 28 characters and alphanumeric, excluding Y,y,x,0,O. Empty or not valid means a new ID will be generated at start. Default: EMPTY. | -| Game Path | Dedicated Server | Save file location. Defaul: DedicatedServer. | -| Game Port | 27015 | What UDP game port to bind to. Note that the UDP Query Port is automaticaly game port + 1. The clients will connect to the server directly and the ports needs to be open. Default: 27015 (27016). | +| Game ID | | Game ID to use for the server. Needs to be at least 28 characters and alphanumeric, excluding Y,y,x,0,O. Empty or not valid means a new ID will be generated at start. Default: EMPTY. | | Max Players | 100 | Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100, | | World Mode | 0 | Whether to use normal (0) or hard (1) mode for world. Default: 0. | | Auto Update | 1 | Enable automatic updates on boot: Default: true | @@ -28,9 +26,26 @@ Explore an endless cavern of creatures, relics and resources in a mining sandbox | Port | Default | Protocol | Description | |---------|---------|----------|---------------------------------------------| -| Game | 27015 | UDP | | +| Server | 27015 | UDP | | | Query | 27016 | UDP | Automaticaly bind by the game server (Game port + 1) | Example:\ -Game Port = 4711\ +Server Port = 4711\ Make sure you open UDP ports 4711-4712 in your firewall and bind the allocations to the Core Keeper Server. + +## Requirements of RAM and storage + +| Req | Minimum | Recommend | +|---------|---------|---------| +| RAM | 1.0GB | 1.5GB | +| Storage | 1.0GB | 1.5GB | + +## Important directories + +| Directory | Description | +|---------|---------| +| World Saves | /home/container/.config/unity3d/Pugstorm/Core Keeper/DedicatedServer/worlds | +| Server Settings | /home/container/.config/unity3d/Pugstorm/Core Keeper/DedicatedServer | + + + From c7528d4d017faac82825546dc86cafcaba03a934 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Sat, 14 Jan 2023 22:19:21 +0100 Subject: [PATCH 047/473] Update egg-core-keeper.json - Variable DATA_PATH (there is no need to set a different directory name) - Small fixes in startup script --- .../core_keeper/egg-core-keeper.json | 24 ++----------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index 82fb9ae3..1038261c 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-13T21:33:24+01:00", + "exported_at": "2023-01-14T22:17:05+01:00", "name": "Core Keeper", "author": "karsten@fiedleronline.net", "description": "Core Keeper is a survival sandbox game for single or multiplayers.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" }, "file_denylist": [], - "startup": "DISPLAY=:0; rm .\/GameID.txt CoreKeeperServerLog.txt; touch CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} -gameid \"{{GAME_ID}}\" -datapath \"{{DATA_PATH}}\" -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{GAME_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", + "startup": "DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", @@ -70,16 +70,6 @@ "rules": "nullable|string|min:28", "field_type": "text" }, - { - "name": "Data Path", - "description": "Save file location. Defaul: DedicatedServer.", - "env_variable": "DATA_PATH", - "default_value": "DedicatedServer", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|max:100", - "field_type": "text" - }, { "name": "Max Players", "description": "Maximum number of players that will be allowed to connect to server. Maximum is 100. Default: 100,", @@ -159,16 +149,6 @@ "user_editable": false, "rules": "required|integer", "field_type": "text" - }, - { - "name": "Game Port", - "description": "What UDP game port to bind to. Note that the UDP Query Port is automaticaly game port + 1. The clients will connect to the server directly and the ports needs to be open. Default: 27015 (27016).", - "env_variable": "GAME_PORT", - "default_value": "27015", - "user_viewable": true, - "user_editable": true, - "rules": "required|integer", - "field_type": "text" } ] } From bf1046f362647446b7b183dabda8659e62c72476 Mon Sep 17 00:00:00 2001 From: Loki <59907407+Loki-101@users.noreply.github.com> Date: Sun, 15 Jan 2023 00:57:26 -0800 Subject: [PATCH 048/473] Update README.md --- .../minecraft/crossplay/purpur-geysermc-floodgate/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/minecraft/crossplay/purpur-geysermc-floodgate/README.md b/game_eggs/minecraft/crossplay/purpur-geysermc-floodgate/README.md index cde2e340..43f41e5c 100644 --- a/game_eggs/minecraft/crossplay/purpur-geysermc-floodgate/README.md +++ b/game_eggs/minecraft/crossplay/purpur-geysermc-floodgate/README.md @@ -11,7 +11,7 @@ Purpur-GeyserMC-Floodgate is a drop-in replacement for Paper servers designed fo ## Server Ports -The minecraft server requires a single port for access (default 25565 TCP). GeyserMC requires an additional port (default 19132 UDP). Any other plugins you add may require extra ports to enabled for the server. +The minecraft server requires a single port for access (default 25565). GeyserMC requires an additional port (default 19132). Any other plugins you add may require extra ports to enabled for the server. | Port | default | Protocol | |----------|---------|----------| From 28b74a1f366c1cdba7ba05d814d4962553a34361 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 15 Jan 2023 11:45:35 +0100 Subject: [PATCH 049/473] updated Valheim Plus --- .../valheim/valheim_plus/README.md | 7 +- .../valheim_plus/egg-valheim-plus-mod.json | 166 ++++++++++++------ 2 files changed, 123 insertions(+), 50 deletions(-) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_plus/README.md b/game_eggs/steamcmd_servers/valheim/valheim_plus/README.md index feb0c1f7..66427737 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_plus/README.md +++ b/game_eggs/steamcmd_servers/valheim/valheim_plus/README.md @@ -1,5 +1,11 @@ # Valheim Plus Mod +## 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) | + + ## Valheim A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture. Battle, build, and conquer your way to a saga worthy of Odin’s patronage! @@ -12,7 +18,6 @@ Support: https://github.com/valheimPlus/ValheimPlus Discord: https://discord.gg/AmH6Va97GT ***!!! ATTENTION !!!*** - ***All (Server + Clients) need to have a installed Valheim Plus Mod !!!!*** ## Server Ports diff --git a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json index ee851234..17942ee4 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json @@ -4,18 +4,16 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-10-16T08:17:39+02:00", + "exported_at": "2023-01-15T11:43:15+01:00", "name": "Valheim Plus Mod", "author": "info@goover.de", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture.", - "features": [ - "steam_disk_space" - ], + "features": null, "docker_images": { "ghcr.io\/parkervcp\/games:valheim": "ghcr.io\/parkervcp\/games:valheim" }, "file_denylist": [], - "startup": "export DOORSTOP_ENABLE=TRUE; export DOORSTOP_INVOKE_DLL_PATH=.\/BepInEx\/core\/BepInEx.Preloader.dll; export DOORSTOP_CORLIB_OVERRIDE_PATH=.\/unstripped_corlib; export LD_LIBRARY_PATH=\".\/doorstop_libs:$LD_LIBRARY_PATH\"; export LD_PRELOAD=\"libdoorstop_x64.so:$LD_PRELOAD\"; export templdpath=$LD_LIBRARY_PATH; export LD_LIBRARY_PATH=\".\/linux64:$LD_LIBRARY_PATH\"; export SteamAppId=892970; export LD_LIBRARY_PATH=$templdpath; .\/valheim_server.x86_64 -nographics -batchmode -name \"{{SERVER_NAME}}\" -port {{SERVER_PORT}} -world \"{{WORLD}}\" -password \"{{PASSWORD}}\" -public ${PUBLIC} $( [[ ${ENABLE_CROSSPLAY} -eq 1 ]] && echo \" -crossplay \") > >(sed -uE \"{{FILTER}}\") & trap \"{{STOP}}\" 15; wait $!", + "startup": "export DOORSTOP_ENABLE=TRUE; export DOORSTOP_INVOKE_DLL_PATH=.\/BepInEx\/core\/BepInEx.Preloader.dll; export DOORSTOP_CORLIB_OVERRIDE_PATH=.\/unstripped_corlib; export LD_LIBRARY_PATH=\".\/doorstop_libs:$LD_LIBRARY_PATH\"; export LD_PRELOAD=\"libdoorstop_x64.so:$LD_PRELOAD\"; export templdpath=$LD_LIBRARY_PATH; export LD_LIBRARY_PATH=\".\/linux64:$LD_LIBRARY_PATH\"; export SteamAppId=892970; export LD_LIBRARY_PATH=$templdpath; .\/valheim_server.x86_64 -nographics -batchmode -name \"{{SERVER_NAME}}\" -port {{SERVER_PORT}} -world \"{{WORLD}}\" -password \"{{PASSWORD}}\" -public {{PUBLIC_SERVER}} -saveinterval {{BACKUP_INTERVAL}} -backups {{BACKUP_COUNT}} -backupshort {{BACKUP_SHORTTIME}} -backuplong {{BACKUP_LONGTIME}} $( [[ {{ENABLE_CROSSPLAY}} -eq 1 ]] && echo \" -crossplay \") > >(sed -uE \"{{CONSOLE_FILTER}}\") & trap \"{{STOP}}\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"DungeonDB Start\"\r\n}", @@ -24,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq wget\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## 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## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(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_LINK=$(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_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\ncd \/mnt\/server\r\nwget -N $DOWNLOAD_LINK\r\nunzip -o $MATCH\r\nrm -fR $MATCH", + "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\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}Valheim+ Installscript${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq wget\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}download and install steamcmd${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\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\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}install Valheim with SteamCMD${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\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\necho -e \"${GREEN}...done${NC}\"\r\n\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}downloading V+ from Github${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(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_LINK=$(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_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\ncd \/mnt\/server\r\nwget -N $DOWNLOAD_LINK\r\nunzip -o $MATCH\r\nrm -fR $MATCH\r\necho -e \"${GREEN}...done${NC}\"\r\n\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" } @@ -61,23 +59,13 @@ "field_type": "text" }, { - "name": "App ID", - "description": "Valheim steam app id for auto updates.", - "env_variable": "SRCDS_APPID", - "default_value": "896660", + "name": "Public Server", + "description": "Public visibility of your server. Set it to false to make the server invisible and only joinable via the 'Join IP'-button.", + "env_variable": "PUBLIC", + "default_value": "1", "user_viewable": true, - "user_editable": false, - "rules": "nullable|numeric", - "field_type": "text" - }, - { - "name": "LD Library Path", - "description": "Required to load server libraries.", - "env_variable": "LD_LIBRARY_PATH", - "default_value": ".\/linux64", - "user_viewable": false, - "user_editable": false, - "rules": "required|string", + "user_editable": true, + "rules": "boolean", "field_type": "text" }, { @@ -91,7 +79,107 @@ "field_type": "text" }, { - "name": "GITHUB_PACKAGE", + "name": "Enable Crossplay", + "description": "Enable crossplay support", + "env_variable": "ENABLE_CROSSPLAY", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Beta Branch", + "description": "", + "env_variable": "SRCDS_BETAID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "max:30", + "field_type": "text" + }, + { + "name": "Beta Password", + "description": "", + "env_variable": "SRCDS_BETAPASS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "max:30", + "field_type": "text" + }, + { + "name": "Backup Interval", + "description": "Change how often the world will save in seconds. Default: 1800 (30 minutes).", + "env_variable": "BACKUP_INTERVAL", + "default_value": "1800", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, + { + "name": "Backup Count", + "description": "Sets how many automatic backups will be kept. The first is the 'short' backup length, and the rest are the 'long' backup length. When default values are used means one backup that is 2 hours old, and 3 backups that are 12 hours apart. Default: 4.", + "env_variable": "BACKUP_COUNT", + "default_value": "4", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, + { + "name": "Backup Shorttime", + "description": "Sets the interval between the first automatic backups in seconds. Default: 7200 (2 hours).", + "env_variable": "BACKUP_SHORTTIME", + "default_value": "7200", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, + { + "name": "Backup Longtime", + "description": "Sets the interval between the subsequent automatic backups in seconds. Default: 43200 (12 hours).", + "env_variable": "BACKUP_LONGTIME", + "default_value": "43200", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, + { + "name": "[System] Console Filter", + "description": "Remove unwanted outputs from the console.", + "env_variable": "CONSOLE_FILTER", + "default_value": "\/^\\(Filename:.*Line:[[:space:]]+[[:digit:]]+\\)$\/d; \/^([[:space:]]+)?$\/d", + "user_viewable": false, + "user_editable": false, + "rules": "string", + "field_type": "text" + }, + { + "name": "[System] Steam AppID", + "description": "Valheim steam app id for auto updates.", + "env_variable": "SRCDS_APPID", + "default_value": "896660", + "user_viewable": true, + "user_editable": false, + "rules": "nullable|numeric", + "field_type": "text" + }, + { + "name": "[System] LD Library Path", + "description": "Required to load server libraries.", + "env_variable": "LD_LIBRARY_PATH", + "default_value": ".\/linux64", + "user_viewable": false, + "user_editable": false, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "[V+] Github Package", "description": "", "env_variable": "GITHUB_PACKAGE", "default_value": "valheimPlus\/ValheimPlus", @@ -101,17 +189,17 @@ "field_type": "text" }, { - "name": "Version", + "name": "[V+] Version", "description": "", "env_variable": "VERSION", "default_value": "latest", - "user_viewable": true, - "user_editable": true, + "user_viewable": false, + "user_editable": false, "rules": "required|string|max:20", "field_type": "text" }, { - "name": "MATCH", + "name": "[V+] MATCH", "description": "", "env_variable": "MATCH", "default_value": "UnixServer.zip", @@ -121,17 +209,7 @@ "field_type": "text" }, { - "name": "Public Server", - "description": "", - "env_variable": "PUBLIC", - "default_value": "1", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|max:20", - "field_type": "text" - }, - { - "name": "Filter", + "name": "[System] Filter", "description": "", "env_variable": "FILTER", "default_value": "\/^\\(Filename:.*Line:[[:space:]]+[[:digit:]]+\\)$\/d; \/^([[:space:]]+)?$\/d", @@ -141,7 +219,7 @@ "field_type": "text" }, { - "name": "Shutdown Command", + "name": "[System] Shutdown Command", "description": "", "env_variable": "STOP", "default_value": "kill -2 $!; wait;", @@ -149,16 +227,6 @@ "user_editable": false, "rules": "required|string", "field_type": "text" - }, - { - "name": "Enable Crossplay", - "description": "Enable crossplay support", - "env_variable": "ENABLE_CROSSPLAY", - "default_value": "0", - "user_viewable": true, - "user_editable": true, - "rules": "required|boolean", - "field_type": "text" } ] } \ No newline at end of file From 3881e44dd787390ce919c932a4cf37ab5b318fc8 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 15 Jan 2023 11:47:22 +0100 Subject: [PATCH 050/473] add missing steam feature --- .../valheim/valheim_plus/egg-valheim-plus-mod.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json index 17942ee4..5015436d 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json @@ -8,7 +8,9 @@ "name": "Valheim Plus Mod", "author": "info@goover.de", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture.", - "features": null, + "features": [ + "steam_disk_space" + ], "docker_images": { "ghcr.io\/parkervcp\/games:valheim": "ghcr.io\/parkervcp\/games:valheim" }, From 8e9a223051e00daa6dda0b36bab0060d669c3d9e Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 15 Jan 2023 13:54:45 +0100 Subject: [PATCH 051/473] add V Rising BepInex --- README.md | 2 + game_eggs/steamcmd_servers/README.md | 2 + .../v_rising/v_rising_bepinex/README.md | 122 +++++++ .../egg-v-rising-bep-in-ex.json | 304 ++++++++++++++++++ .../v_rising/{ => v_rising_vanilla}/README.md | 0 .../{ => v_rising_vanilla}/egg-v-rising.json | 0 6 files changed, 430 insertions(+) create mode 100644 game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/README.md create mode 100644 game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json rename game_eggs/steamcmd_servers/v_rising/{ => v_rising_vanilla}/README.md (100%) rename game_eggs/steamcmd_servers/v_rising/{ => v_rising_vanilla}/egg-v-rising.json (100%) diff --git a/README.md b/README.md index bddab372..37fe82fc 100644 --- a/README.md +++ b/README.md @@ -277,6 +277,8 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Euro Truck Simulator 2](game_eggs/steamcmd_servers/truck-simulator/euro-truck-simulator2/) * [Unturned](game_eggs/steamcmd_servers/unturned) * [V Rising](game_eggs/steamcmd_servers/v_rising) + * [V Rising Vanilla](game_eggs/steamcmd_servers/v_rising/v_rising_vanilla) + * [V Rising BepInex](game_eggs/steamcmd_servers/v_rising/v_rising_bepinex) * [Valheim](game_eggs/steamcmd_servers/valheim) * [Valheim Vanilla](game_eggs/steamcmd_servers/valheim/valheim_vanilla) * [Valheim Plus Mod](game_eggs/steamcmd_servers/valheim/valheim_plus) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index ba85b43a..a7ea2d16 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -228,6 +228,8 @@ This is a collection of servers that use SteamCMD to install. ## V Rising [V Rising](v_rising) + * [V Rising Vanilla](v_rising/v_rising_vanilla) + * [V Rising BepInex](v_rising/v_rising_bepinex) ## Valheim diff --git a/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/README.md b/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/README.md new file mode 100644 index 00000000..35021a4c --- /dev/null +++ b/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/README.md @@ -0,0 +1,122 @@ +# V Rising BepInEx + +**_NOTE: Server version currently marked as Early Access by the V Rising developers. Your mileage may vary as updates are released._** + +**_NOTE: Serverstart can take up to 15mins on first start!!!** +--- + +### Authors / Contributors + + + + + + + + + + +
+ +
Red-Thirten +
+
+ 💻 + 💡 +
+ +
Kapatheus +
+
+ 💻 + 💡 +
+ +
Upd4ting +
+
+ 💻 + 🔨 +
+ +
gOOvER +
+
+ 💻 + 🔨 +
+ + + +--- + +### Game Description + +From Stunlock Studios's [Website](https://playvrising.com/): + +> 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. + +--- + +### Egg Capabilities + +- Currently runs the Windows build of the server via Wine. This egg will be updated when a proper, native Linux server binary is released. +- Configurable to automatically check for server updates on start via SteamCMD. Forcing validation is also configurable. +- All `ServerHostSettings.json` settings can be automatically configured via Startup variables. + - This includes: Server name, game settings preset, password, max players, auto save settings, and more... +- RCON ready (\*requires extra port – see [Server Ports](#server-ports)). See the RCON section under [Manual Configuration Topics](#manual-configuration-topics) for more info. +- Load BepInEx so you can install mod on your server + +--- + +### Server Ports + +- Default server ports are listed below, but all three ports can be changed freely. +- The only _required_ port is the Game port, but the Query port is needed for the server to appear in the server list (Direct connect is still possible without the Query port). There have also been reports that servers only appear in the server list if they are popular, so consider this when troubleshooting. +- Clients connect via the Game port. +- The RCON port is optional and only required if the server owner enables/uses RCON. + +| Port | Default | Protocol | +| -------------------------------------- | ------- | -------- | +| **Game (Primary Port in Pterodactyl)** | 9876 | UDP | +| Query | 9877 | UDP | +| RCON | 25575 | TCP | + +--- + +### Installation/System Requirements + +| | Bare Minimum | Recommended | +| -------------- | -------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| Processor | Recent x86/64 (AMD/Intel) processor. No 32 bit or ARM support. | Unsubstantiated reports say that RCON uses significantly more CPU when enabled, but I have not been able to replicate myself. | +| RAM | 3072 MiB | 4096-6144 MiB | +| Storage | 3.5 GB | 5-10 GB (or more, depending on save size or frequency) | +| Game Ownership | Not required at all. | ---- | + +--- + +### Manual Configuration Topics + +The following are various topics covering manual configuration procedures the egg does not handle automatically that may be useful to server owners: + +#### Save File and Custom Settings Location + +You can find the game settings and saves in the `~/save-data/` directory. + +#### Server Game Settings + +Standardized game settings can be applied via the "Game Settings Preset" startup parameter. If you would like a more custom array of settings to adjust, you can copy the `ServerGameSettings.json` file located in `~/VRisingServer_Data/StreamingAssets/Settings/` to `~/save-data/Settings/` and adjust as needed. Also, ensure "Game Settings Preset" is set to empty/null. A list of settings, with a description of what each setting does and the min/max values where applicable, [can be found here](https://cdn.stunlock.com/blog/2022/05/25083113/Game-Server-Settings.pdf). + +#### Becoming an Administrator + +To become an administrator in the game you will first need to open the `adminlist.txt` file under `~/VRisingServer_Data/StreamingAssets/Settings/` and add your [steamID64](https://steamid.io/) (one steamID64 per line). This can be done without restarting your server. To become an administrator in the game you need to enable the console in the options menu, bring it down with `~` and authenticate using the `adminauth` console command. Once an administrator you can use a number of administrative commands like `banuser`, `bancharacter`, `banned`, `unban` and `kick`. + +If you ban users through the in-game console the server will automatically modify the `banlist.txt` file, but you can also modify this manually (one steamID64 per line). + +#### Transfer Local/Client Save to the Server + +[Follow these instructions by the developer very carefully](https://github.com/StunlockStudios/vrising-dedicated-server-instructions#transfer-localclient-save-to-a-dedicated-server). Note: The `-saveName ` command line parameter and `GameSettingsPreset` setting are handled automatically by the Egg's "Save Name" and "Game Settings Preset" startup parameters, respectively. Also, if a custom `ServerGameSettings.json` file exists for any reason in the `~/save-data/Settings` directory, delete it. + +#### RCON + +RCON can allow general and restart announcements to be made to the server remotely (functions which are not currently supported by the console command line). You can enable RCON by properly configuring the relevant variables under the Startup tab of your Pterodactyl server. The RCON port must be allocated to the server. [Click here for list of valid commands and recommended RCON client](https://github.com/StunlockStudios/vrising-dedicated-server-instructions#rcon). \ No newline at end of file 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 new file mode 100644 index 00000000..d76d07e1 --- /dev/null +++ b/game_eggs/steamcmd_servers/v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json @@ -0,0 +1,304 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-01-15T13:46:55+01: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.", + "features": [ + "steam_disk_space" + ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + }, + "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}", + "startup": "{\r\n \"done\": \"Loaded ServerGameSettings\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl V Rising Egg - egg-v-rising.json\r\n## Authors: David Wolfe (Red-Thirten), Kapatheus\r\n## Date: 2022\/05\/28\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\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\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}V Rising BepInex Installscript${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n\r\n# Install packages. Default packages below are skipped if using image noted above, thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl jq unzip wget\r\n# Download and install SteamCMD\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}download and install steamcmd${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n\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\necho -e \"${BLUE}----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}install V Rising with SteamCMD${NC}\"\r\necho -e \"${BLUE}----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n\r\n.\/steamcmd.sh +force_install_dir $HOME +login anonymous $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} +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\necho -e \"${GREEN}...done${NC}\"\r\n\r\n\r\n# Enable BEPINEX (Credits to: https:\/\/github.com\/ricin\/vrising-bepinex-linux\/blob\/main\/scripts\/start-server.sh)\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}installing BepInex${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n\r\n#variables\r\nBEPINEX_VR_TS_URL=https:\/\/v-rising.thunderstore.io\/package\/BepInEx\/BepInExPack_V_Rising\/\r\nCUR_V=\"$(find ${HOME} -maxdepth 1 -name \"BepInEx-*\" | cut -d '-' -f2)\"\r\nBEPINEX_VR_API_DATA=\"$(curl -s -X GET https:\/\/thunderstore.io\/c\/v-rising\/api\/v1\/package\/b86fcaaf-297a-45c8-82a0-fcbd7806fdc4\/ -H \"accept: application\/json\")\"\r\nLAT_V=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].version_number')\"\r\n\r\nif [ -z \"${LAT_V}\" ] && [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Can't get latest version of BepInEx for V Rising!${NC}\"\r\n echo -e \"${RED}Please try to run without BepInEx for V Rising. Exiting.${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n \r\n exit 1\r\nfi\r\n\r\nif [ -f ${HOME}\/BepInEx.zip ]; then\r\n rm -rf ${HOME}\/BepInEx.zip\r\nfi\r\nif [ -f ${HOME}\/doorstop_config.ini ]; then\r\n sed -i \"\/enabled=false\/c\\enabled=true\" ${HOME}\/doorstop_config.ini\r\nfi\r\n\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}BepInEx for V Rising Version Check${NC}\"\r\necho\r\necho -e \"${YELLOW}More info: ${BEPINEX_VR_TS_URL}${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho\r\n\r\nBEPINEX_VR_TS_DOWNLOAD_URL=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].download_url')\"\r\nif [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${YELLOW}BepInEx for V Rising not found, downloading and installing v${LAT_V} ...${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-*\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n else\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Something went wrong, can't download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n exit 1\r\n fi\r\n \r\n mkdir -p \/tmp\/BepInEx\r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx\r\n if [ $? -eq 0 ];then\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx\r\n else\r\n echo -e \"${BLUE}---------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n echo -e \"${BLUE}---------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n exit 1\r\n fi\r\nelif [ \"$CUR_V\" != \"${LAT_V}\" ]; then\r\n echo -e \"${BLUE}----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${YELLOW}Version missmatch, BepInEx v$CUR_V installed, downloading and installing v${LAT_V} ...${NC}\"\r\n echo -e \"${BLUE}----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-$CUR_V\r\n mkdir \/tmp\/Backup\r\n cp -R ${HOME}\/BepInEx\/config \/tmp\/Backup\/\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n else\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Unable to download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n exit 1\r\n fi\r\n \r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx \r\n \r\n if [ $? -eq 0 ];then\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -R \/tmp\/Backup\/config ${HOME}\/BepInEx\/\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx \/tmp\/Backup\r\n else\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n exit 1\r\n fi\r\nelif [ \"${CUR_V}\" == \"${LAT_V}\" ]; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${GREEN}BepInEx v$CUR_V up-to-date!${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\nfi\r\n\r\n## V Rising Setup\r\nmkdir -p $HOME\/save-data\/Settings && cd \"$_\"\r\ncat > ServerHostSettings.json << EOF\r\n{\r\n \"Name\": \"${SERVER_NAME}\",\r\n \"Description\": \"${DESCRIPTION}\",\r\n \"Port\": ${SERVER_PORT},\r\n \"QueryPort\": ${QUERY_PORT},\r\n \"MaxConnectedUsers\": ${MAX_PLAYERS},\r\n \"MaxConnectedAdmins\": ${MAX_ADMINS},\r\n \"ServerFps\": ${FPS},\r\n \"SaveName\": \"${SAVE_NAME}\",\r\n \"Password\": \"${SERVER_PASSWORD}\",\r\n \"Secure\": ${SERVER_SECURE},\r\n \"ListOnMasterServer\": ${SERVER_LIST},\r\n \"AutoSaveCount\": ${SAVE_COUNT},\r\n \"AutoSaveInterval\": ${SAVE_INTERVAL},\r\n \"GameSettingsPreset\": \"${GAME_SETTINGS_PRESET}\",\r\n \"AdminOnlyDebugEvents\": ${ADMIN_ONLY_DEBUG_EVENTS},\r\n \"DisableDebugEvents\": ${DEBUG_EVENTS},\r\n \"Rcon\": {\r\n \"Enabled\": ${RCON},\r\n \"Password\": \"${RCON_PASS}\",\r\n \"Port\": ${RCON_PORT}\r\n }\r\n}\r\nEOF\r\n\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${GREEN}Installation completed${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "\/bin\/bash" + } + }, + "variables": [ + { + "name": "[REQUIRED] Server Query Port", + "description": "UDP port for Steam server list features.", + "env_variable": "QUERY_PORT", + "default_value": "9877", + "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.", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "boolean", + "field_type": "text" + }, + { + "name": "Game Settings Preset", + "description": "What preset of game settings the server should run. Some settings may not apply after the save file is first created. Leave empty\/null if you are using a single-player uploaded save or a custom ServerGameSettings.json file in the `~\/save-data\/Settings\/` directory.", + "env_variable": "GAME_SETTINGS_PRESET", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|in:,DuoPvP,HardcorePvP,Level30PvE,Level30PvP,Level50PvE,Level50PvP,Level70PvE,Level70PvP,SoloPvP,StandardPvE_Easy,StandardPvE_Hard,StandardPvE,StandardPvP_Easy,StandardPvP_Hard,StandardPVP", + "field_type": "text" + }, + { + "name": "Server Name", + "description": "Name of the server that will appear in the server list.", + "env_variable": "SERVER_NAME", + "default_value": "V Rising Dedicated Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Server Description", + "description": "Short description of server purpose, rules, and the message of the day.", + "env_variable": "DESCRIPTION", + "default_value": "Welcome to the server!", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Max Connected Users", + "description": "Max number of concurrent players on the server.", + "env_variable": "MAX_PLAYERS", + "default_value": "40", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:1", + "field_type": "text" + }, + { + "name": "Max Connected Admins", + "description": "Max number of admins to allow connection even when the server is full.", + "env_variable": "MAX_ADMINS", + "default_value": "4", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:0", + "field_type": "text" + }, + { + "name": "Server Password", + "description": "Password required to join the server. Leave blank to have no password.", + "env_variable": "SERVER_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Save Name", + "description": "Name of save file \/ directory.", + "env_variable": "SAVE_NAME", + "default_value": "world1", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Auto Save Count", + "description": "Number of autosaves to keep.", + "env_variable": "SAVE_COUNT", + "default_value": "50", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:0", + "field_type": "text" + }, + { + "name": "Auto Save Interval", + "description": "Interval in seconds between each autosave.", + "env_variable": "SAVE_INTERVAL", + "default_value": "600", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:1", + "field_type": "text" + }, + { + "name": "List On Master Server", + "description": "Set to true to list on the server list, else set to false.", + "env_variable": "SERVER_LIST", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "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": "[Advanced] Server FPS", + "description": "How often the server refreshes. (Default: 30)", + "env_variable": "FPS", + "default_value": "30", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:1", + "field_type": "text" + }, + { + "name": "[Advanced] Enable RCON", + "description": "See the following link for info on how to connect and use RCON: https:\/\/github.com\/StunlockStudios\/vrising-dedicated-server-instructions#rcon", + "env_variable": "RCON", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[Advanced] RCON Password", + "description": "Password required to connect to RCON if it is enabled.", + "env_variable": "RCON_PASS", + "default_value": "somepassword", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "[Advanced] RCON Port", + "description": "Port used to connect to RCON. Must be allocated to the server for RCON to work.", + "env_variable": "RCON_PORT", + "default_value": "25575", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1024,65536", + "field_type": "text" + }, + { + "name": "[Advanced] Secure Server", + "description": "(true or false)", + "env_variable": "SERVER_SECURE", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[Advanced] Admin Only Debug Events", + "description": "(true or false)", + "env_variable": "ADMIN_ONLY_DEBUG_EVENTS", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[Advanced] Disable Debug Events", + "description": "(true or false)", + "env_variable": "DEBUG_EVENTS", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[Advanced] V Rising Dedicated Server App ID", + "description": "Used for installation and updates. Rarely needs to be changed.", + "env_variable": "SRCDS_APPID", + "default_value": "1829350", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "[Advanced] 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": "[Wine] WINEDEBUG", + "description": "dont change", + "env_variable": "WINEDEBUG", + "default_value": "-all", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "[Wine] WINEPATH", + "description": "dont change", + "env_variable": "WINEPATH", + "default_value": "\/home\/container", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "[Wine] WINEARCH", + "description": "dont change", + "env_variable": "WINEARCH", + "default_value": "win64", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "[Wine] WINETRICKS_RUN", + "description": "dont change", + "env_variable": "WINETRICKS_RUN", + "default_value": "vcrun2019 dotnet48", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "[Wine] XVFB", + "description": "dont change", + "env_variable": "XVFB", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "boolean", + "field_type": "text" + } + ] +} \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/v_rising/README.md b/game_eggs/steamcmd_servers/v_rising/v_rising_vanilla/README.md similarity index 100% rename from game_eggs/steamcmd_servers/v_rising/README.md rename to game_eggs/steamcmd_servers/v_rising/v_rising_vanilla/README.md diff --git a/game_eggs/steamcmd_servers/v_rising/egg-v-rising.json b/game_eggs/steamcmd_servers/v_rising/v_rising_vanilla/egg-v-rising.json similarity index 100% rename from game_eggs/steamcmd_servers/v_rising/egg-v-rising.json rename to game_eggs/steamcmd_servers/v_rising/v_rising_vanilla/egg-v-rising.json From 838ad5fc125e445dc84af82cc3245aa2a1c774cd Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 15 Jan 2023 14:01:38 +0100 Subject: [PATCH 052/473] missing 1 readme --- game_eggs/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/game_eggs/README.md b/game_eggs/README.md index ddbf3123..a1397d45 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -177,6 +177,8 @@ * [Euro Truck Simulator 2](steamcmd_servers/truck-simulator/euro-truck-simulator2/) * [Unturned](steamcmd_servers/unturned) * [V Rising](steamcmd_servers/v_rising) + * [V Rising Vanilla](steamcmd_servers/v_rising/v_rising_vanilla) + * [V Rising BepInex](steamcmd_servers/v_rising/v_rising_bepinex) * [Valheim](steamcmd_servers/valheim) * [Valheim Plus Mod](steamcmd_servers/valheim/valheim_plus) * [Valheim Vanilla](steamcmd_servers/valheim/valheim_vanilla) From 0a033d2888cc49d8ab5b81ab53c2c78e065ececb Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 15 Jan 2023 14:46:57 +0100 Subject: [PATCH 053/473] removed lines --- .../egg-v-rising-bep-in-ex.json | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 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 d76d07e1..c87ab7fc 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-15T13:46:55+01:00", + "exported_at": "2023-01-15T14:46:32+01: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.", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl V Rising Egg - egg-v-rising.json\r\n## Authors: David Wolfe (Red-Thirten), Kapatheus\r\n## Date: 2022\/05\/28\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\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\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}V Rising BepInex Installscript${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n\r\n# Install packages. Default packages below are skipped if using image noted above, thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl jq unzip wget\r\n# Download and install SteamCMD\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}download and install steamcmd${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n\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\necho -e \"${BLUE}----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}install V Rising with SteamCMD${NC}\"\r\necho -e \"${BLUE}----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n\r\n.\/steamcmd.sh +force_install_dir $HOME +login anonymous $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} +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\necho -e \"${GREEN}...done${NC}\"\r\n\r\n\r\n# Enable BEPINEX (Credits to: https:\/\/github.com\/ricin\/vrising-bepinex-linux\/blob\/main\/scripts\/start-server.sh)\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}installing BepInex${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n\r\n#variables\r\nBEPINEX_VR_TS_URL=https:\/\/v-rising.thunderstore.io\/package\/BepInEx\/BepInExPack_V_Rising\/\r\nCUR_V=\"$(find ${HOME} -maxdepth 1 -name \"BepInEx-*\" | cut -d '-' -f2)\"\r\nBEPINEX_VR_API_DATA=\"$(curl -s -X GET https:\/\/thunderstore.io\/c\/v-rising\/api\/v1\/package\/b86fcaaf-297a-45c8-82a0-fcbd7806fdc4\/ -H \"accept: application\/json\")\"\r\nLAT_V=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].version_number')\"\r\n\r\nif [ -z \"${LAT_V}\" ] && [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Can't get latest version of BepInEx for V Rising!${NC}\"\r\n echo -e \"${RED}Please try to run without BepInEx for V Rising. Exiting.${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n \r\n exit 1\r\nfi\r\n\r\nif [ -f ${HOME}\/BepInEx.zip ]; then\r\n rm -rf ${HOME}\/BepInEx.zip\r\nfi\r\nif [ -f ${HOME}\/doorstop_config.ini ]; then\r\n sed -i \"\/enabled=false\/c\\enabled=true\" ${HOME}\/doorstop_config.ini\r\nfi\r\n\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${YELLOW}BepInEx for V Rising Version Check${NC}\"\r\necho\r\necho -e \"${YELLOW}More info: ${BEPINEX_VR_TS_URL}${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho\r\n\r\nBEPINEX_VR_TS_DOWNLOAD_URL=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].download_url')\"\r\nif [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${YELLOW}BepInEx for V Rising not found, downloading and installing v${LAT_V} ...${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-*\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n else\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Something went wrong, can't download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n exit 1\r\n fi\r\n \r\n mkdir -p \/tmp\/BepInEx\r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx\r\n if [ $? -eq 0 ];then\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx\r\n else\r\n echo -e \"${BLUE}---------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n echo -e \"${BLUE}---------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n exit 1\r\n fi\r\nelif [ \"$CUR_V\" != \"${LAT_V}\" ]; then\r\n echo -e \"${BLUE}----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${YELLOW}Version missmatch, BepInEx v$CUR_V installed, downloading and installing v${LAT_V} ...${NC}\"\r\n echo -e \"${BLUE}----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-$CUR_V\r\n mkdir \/tmp\/Backup\r\n cp -R ${HOME}\/BepInEx\/config \/tmp\/Backup\/\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n else\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Unable to download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n exit 1\r\n fi\r\n \r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx \r\n \r\n if [ $? -eq 0 ];then\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -R \/tmp\/Backup\/config ${HOME}\/BepInEx\/\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx \/tmp\/Backup\r\n else\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\n exit 1\r\n fi\r\nelif [ \"${CUR_V}\" == \"${LAT_V}\" ]; then\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo -e \"${GREEN}BepInEx v$CUR_V up-to-date!${NC}\"\r\n echo -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\n echo\r\nfi\r\n\r\n## V Rising Setup\r\nmkdir -p $HOME\/save-data\/Settings && cd \"$_\"\r\ncat > ServerHostSettings.json << EOF\r\n{\r\n \"Name\": \"${SERVER_NAME}\",\r\n \"Description\": \"${DESCRIPTION}\",\r\n \"Port\": ${SERVER_PORT},\r\n \"QueryPort\": ${QUERY_PORT},\r\n \"MaxConnectedUsers\": ${MAX_PLAYERS},\r\n \"MaxConnectedAdmins\": ${MAX_ADMINS},\r\n \"ServerFps\": ${FPS},\r\n \"SaveName\": \"${SAVE_NAME}\",\r\n \"Password\": \"${SERVER_PASSWORD}\",\r\n \"Secure\": ${SERVER_SECURE},\r\n \"ListOnMasterServer\": ${SERVER_LIST},\r\n \"AutoSaveCount\": ${SAVE_COUNT},\r\n \"AutoSaveInterval\": ${SAVE_INTERVAL},\r\n \"GameSettingsPreset\": \"${GAME_SETTINGS_PRESET}\",\r\n \"AdminOnlyDebugEvents\": ${ADMIN_ONLY_DEBUG_EVENTS},\r\n \"DisableDebugEvents\": ${DEBUG_EVENTS},\r\n \"Rcon\": {\r\n \"Enabled\": ${RCON},\r\n \"Password\": \"${RCON_PASS}\",\r\n \"Port\": ${RCON_PORT}\r\n }\r\n}\r\nEOF\r\n\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"\r\necho -e \"${GREEN}Installation completed${NC}\"\r\necho -e \"${BLUE}-----------------------------------------------------------------------------------------------------------------------------------------${NC}\"", + "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl V Rising Egg - egg-v-rising.json\r\n## Authors: David Wolfe (Red-Thirten), Kapatheus\r\n## Date: 2022\/05\/28\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\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\n# Install packages. Default packages below are skipped if using image noted above, thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl jq unzip wget\r\n# Download and install SteamCMD\r\necho -e \"${YELLOW}download and install steamcmd${NC}\"\r\n\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\necho -e \"${YELLOW}install V Rising with SteamCMD${NC}\"\r\n\r\n.\/steamcmd.sh +force_install_dir $HOME +login anonymous $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} +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# Enable BEPINEX (Credits to: https:\/\/github.com\/ricin\/vrising-bepinex-linux\/blob\/main\/scripts\/start-server.sh)\r\necho -e \"${YELLOW}installing BepInex${NC}\"\r\n\r\n#variables\r\nBEPINEX_VR_TS_URL=https:\/\/v-rising.thunderstore.io\/package\/BepInEx\/BepInExPack_V_Rising\/\r\nCUR_V=\"$(find ${HOME} -maxdepth 1 -name \"BepInEx-*\" | cut -d '-' -f2)\"\r\nBEPINEX_VR_API_DATA=\"$(curl -s -X GET https:\/\/thunderstore.io\/c\/v-rising\/api\/v1\/package\/b86fcaaf-297a-45c8-82a0-fcbd7806fdc4\/ -H \"accept: application\/json\")\"\r\nLAT_V=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].version_number')\"\r\n\r\nif [ -z \"${LAT_V}\" ] && [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${RED}Can't get latest version of BepInEx for V Rising!${NC}\"\r\n echo -e \"${RED}Please try to run without BepInEx for V Rising. Exiting.${NC}\"\r\n exit 1\r\nfi\r\n\r\nif [ -f ${HOME}\/BepInEx.zip ]; then\r\n rm -rf ${HOME}\/BepInEx.zip\r\nfi\r\nif [ -f ${HOME}\/doorstop_config.ini ]; then\r\n sed -i \"\/enabled=false\/c\\enabled=true\" ${HOME}\/doorstop_config.ini\r\nfi\r\n\r\necho -e \"${YELLOW}BepInEx for V Rising Version Check${NC}\"\r\necho -e \"${YELLOW}More info: ${BEPINEX_VR_TS_URL}${NC}\"\r\n\r\nBEPINEX_VR_TS_DOWNLOAD_URL=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].download_url')\"\r\nif [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${YELLOW}BepInEx for V Rising not found, downloading and installing v${LAT_V} ...${NC}\"\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-*\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n else\r\n echo -e \"${RED}Something went wrong, can't download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n exit 1\r\n fi\r\n \r\n mkdir -p \/tmp\/BepInEx\r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx\r\n if [ $? -eq 0 ];then\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx\r\n else\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n exit 1\r\n fi\r\nelif [ \"$CUR_V\" != \"${LAT_V}\" ]; then\r\n echo -e \"${YELLOW}Version missmatch, BepInEx v$CUR_V installed, downloading and installing v${LAT_V} ...${NC}\"\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-$CUR_V\r\n mkdir \/tmp\/Backup\r\n cp -R ${HOME}\/BepInEx\/config \/tmp\/Backup\/\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n else\r\n echo -e \"${RED}Unable to download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n exit 1\r\n fi\r\n \r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx \r\n \r\n if [ $? -eq 0 ];then\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -R \/tmp\/Backup\/config ${HOME}\/BepInEx\/\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx \/tmp\/Backup\r\n else\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n exit 1\r\n fi\r\nelif [ \"${CUR_V}\" == \"${LAT_V}\" ]; then\r\n echo -e \"${GREEN}BepInEx v$CUR_V up-to-date!${NC}\"\r\nfi\r\n\r\n## V Rising Setup\r\nmkdir -p $HOME\/save-data\/Settings && cd \"$_\"\r\ncat > ServerHostSettings.json << EOF\r\n{\r\n \"Name\": \"${SERVER_NAME}\",\r\n \"Description\": \"${DESCRIPTION}\",\r\n \"Port\": ${SERVER_PORT},\r\n \"QueryPort\": ${QUERY_PORT},\r\n \"MaxConnectedUsers\": ${MAX_PLAYERS},\r\n \"MaxConnectedAdmins\": ${MAX_ADMINS},\r\n \"ServerFps\": ${FPS},\r\n \"SaveName\": \"${SAVE_NAME}\",\r\n \"Password\": \"${SERVER_PASSWORD}\",\r\n \"Secure\": ${SERVER_SECURE},\r\n \"ListOnMasterServer\": ${SERVER_LIST},\r\n \"AutoSaveCount\": ${SAVE_COUNT},\r\n \"AutoSaveInterval\": ${SAVE_INTERVAL},\r\n \"GameSettingsPreset\": \"${GAME_SETTINGS_PRESET}\",\r\n \"AdminOnlyDebugEvents\": ${ADMIN_ONLY_DEBUG_EVENTS},\r\n \"DisableDebugEvents\": ${DEBUG_EVENTS},\r\n \"Rcon\": {\r\n \"Enabled\": ${RCON},\r\n \"Password\": \"${RCON_PASS}\",\r\n \"Port\": ${RCON_PORT}\r\n }\r\n}\r\nEOF\r\n\r\necho -e \"${BLUE}-----------------------${NC}\"\r\necho -e \"${GREEN}Installation completed${NC}\"\r\necho -e \"${BLUE}-----------------------${NC}\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "\/bin\/bash" } @@ -251,8 +251,8 @@ "field_type": "text" }, { - "name": "[Wine] WINEDEBUG", - "description": "dont change", + "name": "WINEDEBUG", + "description": "", "env_variable": "WINEDEBUG", "default_value": "-all", "user_viewable": false, @@ -261,8 +261,8 @@ "field_type": "text" }, { - "name": "[Wine] WINEPATH", - "description": "dont change", + "name": "WINEPATH", + "description": "", "env_variable": "WINEPATH", "default_value": "\/home\/container", "user_viewable": false, @@ -271,18 +271,18 @@ "field_type": "text" }, { - "name": "[Wine] WINEARCH", - "description": "dont change", - "env_variable": "WINEARCH", - "default_value": "win64", + "name": "XVFB", + "description": "", + "env_variable": "XVFB", + "default_value": "1", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:20", + "rules": "boolean", "field_type": "text" }, { - "name": "[Wine] WINETRICKS_RUN", - "description": "dont change", + "name": "WINETRICKS_RUN", + "description": "", "env_variable": "WINETRICKS_RUN", "default_value": "vcrun2019 dotnet48", "user_viewable": false, @@ -291,13 +291,13 @@ "field_type": "text" }, { - "name": "[Wine] XVFB", - "description": "dont change", - "env_variable": "XVFB", - "default_value": "1", + "name": "WINEARCH", + "description": "", + "env_variable": "WINEARCH", + "default_value": "win64", "user_viewable": false, "user_editable": false, - "rules": "boolean", + "rules": "required|string|max:20", "field_type": "text" } ] From 01c1a7ff63e1db3bc34b0f00e41540e0a55e0e05 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 15 Jan 2023 18:44:17 +0100 Subject: [PATCH 054/473] add empyrion --- game_eggs/steamcmd_servers/empyrion/README.md | 38 ++++ .../egg-empyrion--galactic-survival.json | 172 ++++++++++++++++++ 2 files changed, 210 insertions(+) create mode 100644 game_eggs/steamcmd_servers/empyrion/README.md create mode 100644 game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json diff --git a/game_eggs/steamcmd_servers/empyrion/README.md b/game_eggs/steamcmd_servers/empyrion/README.md new file mode 100644 index 00000000..57199df2 --- /dev/null +++ b/game_eggs/steamcmd_servers/empyrion/README.md @@ -0,0 +1,38 @@ +# Empyrion - Galactic Survival + +### Game Description + +Empyrion - Galactic Survival is a 3D open world, space survival adventure in which you can fly across space and land on planets. Build, explore, fight and survive in a hostile galaxy full of hidden dangers. The game uniquely combines elements from space simulations, construction games, survival games and ego-shooters. The game is currently under development by Eleon Game Studios + +### Usefull links + +Homepage: https://empyriongame.com/ +Steam: https://store.steampowered.com/app/383120/Empyrion__Galactic_Survival/ +Wiki: https://empyrion.fandom.com/wiki/Empyrion:_Galactic_Survival_Wiki +Discord: https://discord.gg/empyrion + +### 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) | + +### Special Note + +This server have NO Autoupdate. Dont change the AUTO_UPDATE Variable to 1, else server is broken. + +### Server Ports + +Empyrion requires up to 2 ports + +| Port | default | +|---------|---------------| +| Game | 27015 | +| Web | 27020 | + +### Installation/System Requirements + +| | Recommended | Extra info | +|-----------|--------------|-------------| +| Processor | Recent x86/64 (AMD/Intel) processor. No 32 bit or ARM support. |You need min 3 Cores for the Server. | +| RAM | 8-16 GB | +| Storage | 25 GB (or more, depending on save size or frequency) | \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json b/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json new file mode 100644 index 00000000..08471e24 --- /dev/null +++ b/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json @@ -0,0 +1,172 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-01-15T18:34:35+01:00", + "name": "Empyrion: Galactic Survival", + "author": "info@goover.de", + "description": "Empyrion: Galactic Survival dedicated server", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + }, + "file_denylist": [], + "startup": "cd empyrion; WINEDLLOVERRIDES=\"mscoree,mshtml=\" wine .\/DedicatedServer\/EmpyrionDedicated.exe -batchmode -log -logFile .\/logs\/current.log \"$@\" &> .\/logs\/wine.log | tail -f .\/logs\/current.log", + "config": { + "files": "{\r\n \"empyrion\/dedicated.yaml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"ServerConfig.Srv_Port\": \"{{server.build.default.port}}\",\r\n \"ServerConfig.Srv_Name\": \"{{env.SRV_NAME}}\",\r\n \"ServerConfig.Srv_Password\": \"{{env.SRV_PWD}}\",\r\n \"ServerConfig.Srv_MaxPlayers\": \"{{env.MAX_PLAYERS}}\",\r\n \"ServerConfig.Tel_Enabled\": \"{{env.TELNET_ENABLED}}\",\r\n \"ServerConfig.Tel_Port\": \"{{env.TELNET_PORT}}\",\r\n \"ServerConfig.Tel_Pwd\": \"{{env.TELNET_PWD}}\",\r\n \"ServerConfig.Srv_Description\": \"{{env.SRV_DESC}}\",\r\n \"GameConfig.Seed\": \"{{env.SEED}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"-LOG- Start Game\"\r\n}", + "logs": "{}", + "stop": "saveandexit 0" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# Empyrion Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napt update\r\napt -y install curl unzip\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\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\n\r\nexport HOME=\/mnt\/server\r\n\r\nmkdir -p \/mnt\/server\/empyrion\r\nmkdir -p \/mnt\/server\/Logs\r\nmkdir -p \/mnt\/server\/empyrion\/logs\r\ntouch \/mnt\/server\/empyrion\/logs\/current.log\r\n\r\ncd \/mnt\/server\/steam\r\nchown -R root:root \/mnt\r\n\r\nif [ \"${VERSION}\" == \"experimental\" ]; then\r\n .\/steamcmd.sh +force_install_dir \/mnt\/server\/empyrion +login anonymous +@sSteamCmdForcePlatformType windows 530870 +app_update 530870 -beta experimental validate +quit\r\nelse\r\n .\/steamcmd.sh +force_install_dir \/mnt\/server\/empyrion +login anonymous +@sSteamCmdForcePlatformType windows +app_update 530870 validate +quit\r\nfi\r\n\r\n## setup 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\n\r\n## setup 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v \/mnt\/server\/steam\/linux64\/steamclient.so \/mnt\/server\/.steam\/sdk64\/steamclient.so", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Server Name", + "description": "Name that will be shown in the Server Browser.", + "env_variable": "SRV_NAME", + "default_value": "My Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Server Password", + "description": "Password used to connect to the server - Optional, defaults to no password.", + "env_variable": "SRV_PWD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "Maximum number of player allowed to join simultaneously in the server. Defaults to 20.", + "env_variable": "MAX_PLAYERS", + "default_value": "20", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Enable Telnet", + "description": "Telnet access to control the server.", + "env_variable": "TELNET_ENABLED", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|regex:\/^(?:true)?(?:false)?\\b\/", + "field_type": "text" + }, + { + "name": "Telnet Port", + "description": "Telnet Server Port DO NOT EXPOSE THIS TO THE INTERNET.", + "env_variable": "TELNET_PORT", + "default_value": "30004", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Telnet Password", + "description": "Telnet server password.", + "env_variable": "TELNET_PWD", + "default_value": "Abc", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20", + "field_type": "text" + }, + { + "name": "Game Seed", + "description": "World generation seed. Numeric between 1 and 7 characters.", + "env_variable": "SEED", + "default_value": "1011345", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:1", + "field_type": "text" + }, + { + "name": "Server Description", + "description": "Server info between the \" \", can contain [b]bold[\/b] text or a [u][url=empyriongame.com]link[\/url][\/u] up to 127 chars.", + "env_variable": "SRV_DESC", + "default_value": "Empyrion Galactic Survival Dedicated Server running on Pterodactyl Panel", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:127", + "field_type": "text" + }, + { + "name": "Version", + "description": "Enable 'experimental'. Optional, defaults to public branch.", + "env_variable": "VERSION", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|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": "WINEDEBUG", + "description": "", + "env_variable": "WINEDEBUG", + "default_value": "-all", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "WINETRICKS_RUN", + "description": "", + "env_variable": "WINETRICKS_RUN", + "default_value": "vcrun2019 dotnet48", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Auto Update", + "description": "", + "env_variable": "AUTO_UPDATE", + "default_value": "0", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "SRCDS_APPID", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "530870", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + } + ] +} \ No newline at end of file From 14e7f0af8b2451beea4b4b90c1df395d7bca2309 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 15 Jan 2023 18:46:16 +0100 Subject: [PATCH 055/473] some fixes --- game_eggs/steamcmd_servers/empyrion/README.md | 2 +- .../empyrion/egg-empyrion--galactic-survival.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/empyrion/README.md b/game_eggs/steamcmd_servers/empyrion/README.md index 57199df2..d6efcce9 100644 --- a/game_eggs/steamcmd_servers/empyrion/README.md +++ b/game_eggs/steamcmd_servers/empyrion/README.md @@ -27,7 +27,7 @@ Empyrion requires up to 2 ports | Port | default | |---------|---------------| | Game | 27015 | -| Web | 27020 | +| Telnet | 27020 | ### Installation/System Requirements diff --git a/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json b/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json index 08471e24..a4ea22df 100644 --- a/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json +++ b/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-15T18:34:35+01:00", + "exported_at": "2023-01-15T18:45:27+01:00", "name": "Empyrion: Galactic Survival", "author": "info@goover.de", "description": "Empyrion: Galactic Survival dedicated server", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Empyrion Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napt update\r\napt -y install curl unzip\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\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\n\r\nexport HOME=\/mnt\/server\r\n\r\nmkdir -p \/mnt\/server\/empyrion\r\nmkdir -p \/mnt\/server\/Logs\r\nmkdir -p \/mnt\/server\/empyrion\/logs\r\ntouch \/mnt\/server\/empyrion\/logs\/current.log\r\n\r\ncd \/mnt\/server\/steam\r\nchown -R root:root \/mnt\r\n\r\nif [ \"${VERSION}\" == \"experimental\" ]; then\r\n .\/steamcmd.sh +force_install_dir \/mnt\/server\/empyrion +login anonymous +@sSteamCmdForcePlatformType windows 530870 +app_update 530870 -beta experimental validate +quit\r\nelse\r\n .\/steamcmd.sh +force_install_dir \/mnt\/server\/empyrion +login anonymous +@sSteamCmdForcePlatformType windows +app_update 530870 validate +quit\r\nfi\r\n\r\n## setup 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\n\r\n## setup 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v \/mnt\/server\/steam\/linux64\/steamclient.so \/mnt\/server\/.steam\/sdk64\/steamclient.so", + "script": "#!\/bin\/bash\r\n# Empyrion Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napt update\r\napt -y install curl unzip\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\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\n\r\nexport HOME=\/mnt\/server\r\n\r\nmkdir -p \/mnt\/server\/empyrion\r\nmkdir -p \/mnt\/server\/Logs\r\nmkdir -p \/mnt\/server\/empyrion\/logs\r\ntouch \/mnt\/server\/empyrion\/logs\/current.log\r\n\r\ncd \/mnt\/server\/steam\r\nchown -R root:root \/mnt\r\n\r\nif [ \"${VERSION}\" == \"experimental\" ]; then\r\n .\/steamcmd.sh +force_install_dir \/mnt\/server\/empyrion +login anonymous +@sSteamCmdForcePlatformType windows 530870 +app_update 530870 -beta experimental validate +quit\r\nelse\r\n .\/steamcmd.sh +force_install_dir \/mnt\/server\/empyrion +login anonymous +@sSteamCmdForcePlatformType windows +app_update 530870 validate +quit\r\nfi\r\n\r\n## setup 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\n\r\n## setup 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v \/mnt\/server\/steam\/linux64\/steamclient.so \/mnt\/server\/.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" } From 3ca09ec8596ea71757f76833c2dda0217e3cc268 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 15 Jan 2023 18:51:09 +0100 Subject: [PATCH 056/473] add readmes --- README.md | 1 + game_eggs/README.md | 1 + game_eggs/steamcmd_servers/README.md | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/README.md b/README.md index bddab372..9ab66f8e 100644 --- a/README.md +++ b/README.md @@ -224,6 +224,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [DayZ (Experimental)](game_eggs/steamcmd_servers/dayz-experimental) * [Don't Starve Together](game_eggs/steamcmd_servers/dont_starve) * [ECO](game_eggs/steamcmd_servers/eco) +* [Empyrion - Galactic Survival](game_eggs/steamcmd_servers/empyrion) * [Fistful of Frags](game_eggs/steamcmd_servers/fof) * [Frozen Flame](game_eggs/steamcmd_servers/frozen_flame) * [HLDS Server](game_eggs/steamcmd_servers/hlds_server) diff --git a/game_eggs/README.md b/game_eggs/README.md index ddbf3123..0851d96a 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -123,6 +123,7 @@ * [DayZ (Experimental)](steamcmd_servers/dayz-experimental) * [Don't Starve Together](steamcmd_servers/dont_starve) * [ECO](steamcmd_servers/eco) +* [Empyrion - Galactic Survival](steamcmd_servers/empyrion) * [Fistful of Frags](steamcmd_servers/fof) * [HLDS Server](steamcmd_servers/hlds_server) * [HLDS Vanilla](steamcmd_servers/hlds_server/vanilla) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index ba85b43a..c9a8d83a 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -60,6 +60,10 @@ This is a collection of servers that use SteamCMD to install. [ECO](eco) +## Empyrion + +[Empyrion - Galactic Survival](empyrion) + ## Frozen Flame [Frozen Flame](frozen_flame) From 88642f1f9645b274470c3f4a8aeb0ed3c15af2e8 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 15 Jan 2023 18:51:56 +0100 Subject: [PATCH 057/473] small fix --- game_eggs/steamcmd_servers/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index c9a8d83a..fb039375 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -65,6 +65,7 @@ This is a collection of servers that use SteamCMD to install. [Empyrion - Galactic Survival](empyrion) ## Frozen Flame + [Frozen Flame](frozen_flame) ## HLDS Server From e64ca8c49e5c128d268436d09810c1da40b24636 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Mon, 16 Jan 2023 17:26:39 +0100 Subject: [PATCH 058/473] Update egg-empyrion--galactic-survival.json --- .../empyrion/egg-empyrion--galactic-survival.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json b/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json index a4ea22df..78eef2b3 100644 --- a/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json +++ b/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-15T18:45:27+01:00", + "exported_at": "2023-01-16T17:24:48+01:00", "name": "Empyrion: Galactic Survival", "author": "info@goover.de", "description": "Empyrion: Galactic Survival dedicated server", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Empyrion Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napt update\r\napt -y install curl unzip\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\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\n\r\nexport HOME=\/mnt\/server\r\n\r\nmkdir -p \/mnt\/server\/empyrion\r\nmkdir -p \/mnt\/server\/Logs\r\nmkdir -p \/mnt\/server\/empyrion\/logs\r\ntouch \/mnt\/server\/empyrion\/logs\/current.log\r\n\r\ncd \/mnt\/server\/steam\r\nchown -R root:root \/mnt\r\n\r\nif [ \"${VERSION}\" == \"experimental\" ]; then\r\n .\/steamcmd.sh +force_install_dir \/mnt\/server\/empyrion +login anonymous +@sSteamCmdForcePlatformType windows 530870 +app_update 530870 -beta experimental validate +quit\r\nelse\r\n .\/steamcmd.sh +force_install_dir \/mnt\/server\/empyrion +login anonymous +@sSteamCmdForcePlatformType windows +app_update 530870 validate +quit\r\nfi\r\n\r\n## setup 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\n\r\n## setup 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v \/mnt\/server\/steam\/linux64\/steamclient.so \/mnt\/server\/.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 \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n# Empyrion Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napt update\r\napt -y install curl unzip\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\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\n\r\nexport HOME=\/mnt\/server\r\n\r\nmkdir -p \/mnt\/server\/empyrion\r\nmkdir -p \/mnt\/server\/Logs\r\nmkdir -p \/mnt\/server\/empyrion\/logs\r\ntouch \/mnt\/server\/empyrion\/logs\/current.log\r\n\r\ncd \/mnt\/server\/steam\r\nchown -R root:root \/mnt\r\n\r\nif [ \"${VERSION}\" == \"experimental\" ]; then\r\n .\/steamcmd.sh +force_install_dir \/mnt\/server\/empyrion +login anonymous +@sSteamCmdForcePlatformType windows +app_update 530870 -beta experimental validate +quit\r\nelse\r\n .\/steamcmd.sh +force_install_dir \/mnt\/server\/empyrion +login anonymous +@sSteamCmdForcePlatformType windows +app_update 530870 validate +quit\r\nfi\r\n\r\n## setup 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\n\r\n## setup 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v \/mnt\/server\/steam\/linux64\/steamclient.so \/mnt\/server\/.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" } From 648029a8ff13d85cb4a5380ca813daf4bb2c23c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ostoj=CE=BB?= Date: Mon, 16 Jan 2023 23:37:13 +0100 Subject: [PATCH 059/473] Update egg-s-c-p--s-l--exiled.json --- .../steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json b/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json index d103e46d..d9c8448f 100644 --- a/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json +++ b/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\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}\" == \"\" ]; 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 +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\nmkdir -p $HOME\/.config\r\n\r\n# Install Exiled\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Exiled-Team\/EXILED\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Exiled-Team\/EXILED\/releases\")\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 Exiled.tar.gz)\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 Exiled.tar.gz)\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)\r\n fi\r\nfi\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -sSL -o Exiled.tar.gz ${DOWNLOAD_LINK}\r\ntar xzvf Exiled.tar.gz\r\nrm -rf Exiled.tar.gz\r\n\r\ncp -r \"SCP Secret Laboratory\" \/mnt\/server\/.config\/\r\nrm -rf \"SCP Secret Laboratory\"\r\ncp -r EXILED \/mnt\/server\/.config\/\r\nrm -rf EXILED\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# Image to install with is 'debian:buster-slim'\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}\" == \"\" ]; 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 +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\nmkdir -p $HOME\/.config\r\n\r\n# Install Exiled\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Exiled-Team\/EXILED\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Exiled-Team\/EXILED\/releases\")\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 Exiled.tar.gz)\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 Exiled.tar.gz)\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)\r\n fi\r\nfi\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -sSL -o Exiled.tar.gz ${DOWNLOAD_LINK}\r\ntar xzvmf Exiled.tar.gz\r\nrm -rf Exiled.tar.gz\r\n\r\ncp -r \"SCP Secret Laboratory\" \/mnt\/server\/.config\/\r\nrm -rf \"SCP Secret Laboratory\"\r\ncp -r EXILED \/mnt\/server\/.config\/\r\nrm -rf EXILED\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -61,4 +61,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 64c20fa5b59002ee26115d83cd2d95bd8f29eaae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ostoj=CE=BB?= Date: Mon, 16 Jan 2023 23:39:56 +0100 Subject: [PATCH 060/473] Update egg-s-c-p--s-l--exiled.json --- .../steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json b/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json index d9c8448f..2a881b69 100644 --- a/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json +++ b/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\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}\" == \"\" ]; 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 +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\nmkdir -p $HOME\/.config\r\n\r\n# Install Exiled\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Exiled-Team\/EXILED\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Exiled-Team\/EXILED\/releases\")\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 Exiled.tar.gz)\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 Exiled.tar.gz)\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)\r\n fi\r\nfi\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -sSL -o Exiled.tar.gz ${DOWNLOAD_LINK}\r\ntar xzvmf Exiled.tar.gz\r\nrm -rf Exiled.tar.gz\r\n\r\ncp -r \"SCP Secret Laboratory\" \/mnt\/server\/.config\/\r\nrm -rf \"SCP Secret Laboratory\"\r\ncp -r EXILED \/mnt\/server\/.config\/\r\nrm -rf EXILED\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# Image to install with is 'debian:buster-slim'\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}\" == \"\" ]; 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 +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\nmkdir -p $HOME\/.config\r\n\r\n# Install Exiled\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Exiled-Team\/EXILED\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Exiled-Team\/EXILED\/releases\")\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 Exiled.tar.gz)\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 Exiled.tar.gz)\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)\r\n fi\r\nfi\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -sSL -o Exiled.tar.gz ${DOWNLOAD_LINK}\r\ntar -xzvmf Exiled.tar.gz\r\nrm -rf Exiled.tar.gz\r\n\r\ncp -r \"SCP Secret Laboratory\" \/mnt\/server\/.config\/\r\nrm -rf \"SCP Secret Laboratory\"\r\ncp -r EXILED \/mnt\/server\/.config\/\r\nrm -rf EXILED\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } From ae09cdb6ed0887e7b77b11fde17aa65adb012f18 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Tue, 17 Jan 2023 20:49:57 +0100 Subject: [PATCH 061/473] added arch info --- game_eggs/gta/fivem/README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/game_eggs/gta/fivem/README.md b/game_eggs/gta/fivem/README.md index 151897eb..b300c57f 100644 --- a/game_eggs/gta/fivem/README.md +++ b/game_eggs/gta/fivem/README.md @@ -1,5 +1,10 @@ # FiveM +## Supported architecture + +FiveM **ONLY** supports **amd64**. **arm64** is **NOT** supported (like Oracle free cloud) + + ## Note on FiveM support from Pteroadactyl Pterodactyl will not be providing support for FiveM. You are free to run a FiveM server but no support will be provided in the Pterodactyl Discord, check the discord annoucement below for details. From 4f1b0b0cc4d93207bc215fa391cb3d7d2be73225 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 18 Jan 2023 15:46:15 +0100 Subject: [PATCH 062/473] among_us: Imposter server add support for 1.8.0 --- .../egg-among-us--impostor-server.json | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json b/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json index 876b4a19..f49ff629 100644 --- a/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json +++ b/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json @@ -1,17 +1,18 @@ { "_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-23T12:00:05+03:00", + "exported_at": "2023-01-18T15:43:34+01:00", "name": "Among Us - Impostor Server", "author": "info@goover.de", - "description": "Impostor is one of the first Among Us private servers, written in C#.\r\n\r\nThe latest version supported is 2022.4.19, both desktop and mobile.\r\n\r\nThere are no special features at this moment, the goal is aiming to be as close as possible to the real server, for now. In a later stage, making modifications to game logic by modifying GameData packets can be looked at.", + "description": "Impostor is one of the first Among Us private servers, written in C#.\r\n\r\nThere are no special features at this moment, the goal is aiming to be as close as possible to the real server, for now. In a later stage, making modifications to game logic by modifying GameData packets can be looked at.", "features": null, - "images": [ - "ghcr.io/parkervcp/yolks:dotnet_6" - ], + "docker_images": { + "Dotnet_7": "ghcr.io\/parkervcp\/yolks:dotnet_7", + "Dotnet_6": "ghcr.io\/parkervcp\/yolks:dotnet_6" + }, "file_denylist": [], "startup": ".\/Impostor.Server", "config": { @@ -22,20 +23,21 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt -y update\r\napt -y --no-install-recommends install wget curl jq unzip tar redis-server file ca-certificates apt-utils\r\nGITHUB_PACKAGE=Impostor\/Impostor\r\nexport HOME=\/mnt\/server\r\ncd $HOME\r\n\r\n## get release info and download links\r\nLATEST_RELEASE=$(curl -L -s -H 'Accept: application\/json' https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/latest)\r\necho -e \"Latest release is $LATEST_RELEASE\"\r\nLATEST_VERSION_TAG=$(echo $LATEST_RELEASE | sed -e 's\/.*\"tag_name\":\"\\([^\"]*\\)\".*\/\\1\/')\r\n\r\n# Remove the first letter v from the version tag that is not present in the download URL\r\nLATEST_VERSION=$(echo $LATEST_VERSION_TAG | cut -c 2-)\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/v$LATEST_VERSION\/Impostor-Server_${LATEST_VERSION}_linux-x64.tar.gz\"\r\nelse \r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/v$VERSION\/Impostor-Server_${VERSION}_linux-x64.tar.gz\"\r\nfi\r\n\r\necho -e \"\\nDownloading from $DOWNLOAD_LINK\"\r\ncurl -L $DOWNLOAD_LINK -o Impostor-Server-linux-x64.tar.gz\r\n\r\ntar xvf Impostor-Server-linux-x64.tar.gz\r\nrm Impostor-Server-linux-x64.tar.gz\r\nchmod +x Impostor.Server\r\n\r\necho -e \"\\nInstall completed\"", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl jq tar\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Impostor\/Impostor\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Impostor\/Impostor\/releases\")\r\nMATCH=linux-x64\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} | head -1)\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} | head -1)\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 -i ${MATCH} | head -1)\r\n fi\r\nfi\r\n\r\necho -e \"\\nDownloading from ${DOWNLOAD_LINK}\"\r\ncurl sSL -o imposter-server.tar.gz ${DOWNLOAD_LINK}\r\n\r\ntar xvf imposter-server.tar.gz\r\nrm imposter-server.tar.gz\r\nchmod +x Impostor.Server\r\n\r\necho -e \"\\nInstall completed\"", + "container": "debian:bullseye-slim", "entrypoint": "bash" } }, "variables": [ { "name": "Download Version", - "description": "Version to Download. Leave latest for the latest release.\r\n\r\nFind all releases at https:\/\/github.com\/Impostor\/Impostor\/releases", + "description": "Version to Download. Leave latest for the latest release.\r\n\r\nFind all releases at https:\/\/github.com\/Impostor\/Impostor\/releases\r\nNote: versions start with a v, example: v1.8.0", "env_variable": "VERSION", "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:30" + "rules": "required|string|max:30", + "field_type": "text" } ] } From 58b405d709a4b104ea3dca844a717decc869ef68 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Fri, 20 Jan 2023 13:25:32 +0100 Subject: [PATCH 063/473] added deprecated note --- game_eggs/steamcmd_servers/tower_unite/README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/tower_unite/README.md b/game_eggs/steamcmd_servers/tower_unite/README.md index 06afcf0e..9c9c7432 100644 --- a/game_eggs/steamcmd_servers/tower_unite/README.md +++ b/game_eggs/steamcmd_servers/tower_unite/README.md @@ -1,6 +1,10 @@ # Tower Unite -Their desctiption: +## Attention !!!! + +**THIS EGG IS DEPRECATED, SINCE THEY REMOVED COMMUNITY SERVERS. ONLY OFFICIAL SERVERS ARE ALLOWED** + +## desctiption Every aspect of Tower Unite allows for online multiplayer interaction. It is a living and evolving online game world, driven by the community. Play games online with your friends, or make new friends from across the globe. ## Server Ports From e013699afc501efdbb93c00a001102baaa76a7ce Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Fri, 20 Jan 2023 13:26:27 +0100 Subject: [PATCH 064/473] Update README.md --- game_eggs/steamcmd_servers/tower_unite/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/tower_unite/README.md b/game_eggs/steamcmd_servers/tower_unite/README.md index 9c9c7432..3e72d0a0 100644 --- a/game_eggs/steamcmd_servers/tower_unite/README.md +++ b/game_eggs/steamcmd_servers/tower_unite/README.md @@ -1,7 +1,6 @@ # Tower Unite ## Attention !!!! - **THIS EGG IS DEPRECATED, SINCE THEY REMOVED COMMUNITY SERVERS. ONLY OFFICIAL SERVERS ARE ALLOWED** ## desctiption From d16aad63e65aca47e4d8cccf80108ccd84b72ced Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sat, 21 Jan 2023 14:33:26 +0100 Subject: [PATCH 065/473] add uptime kuma --- README.md | 4 ++ software/uptime-kuma/README.md | 25 +++++++ software/uptime-kuma/egg-uptime-kuma.json | 82 +++++++++++++++++++++++ 3 files changed, 111 insertions(+) create mode 100644 software/uptime-kuma/README.md create mode 100644 software/uptime-kuma/egg-uptime-kuma.json diff --git a/README.md b/README.md index 9ab66f8e..fd79355d 100644 --- a/README.md +++ b/README.md @@ -361,6 +361,10 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Reposilite](/software/reposilite) +### Uptime Kuma + +* [Uptime Kuma](/software/uptime-kuma) + ### Yarr * [yarr](/software/yarr) diff --git a/software/uptime-kuma/README.md b/software/uptime-kuma/README.md new file mode 100644 index 00000000..f07fa488 --- /dev/null +++ b/software/uptime-kuma/README.md @@ -0,0 +1,25 @@ +# Uptime Kuma + +## 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) | + +## Description +Uptime Kuma is an easy-to-use self-hosted monitoring tool +Egg is based on parkers generic nodejs egg + +## Links +Github: https://github.com/louislam/uptime-kuma + +## Admin & login + +After installation and successful start, browse to your : and setup the Admin. + +## Server Ports + +Uptime Kuma requires 1 port. You can choose every port you want + +| Port | default | +|---------|---------------| +| default | 3000 | diff --git a/software/uptime-kuma/egg-uptime-kuma.json b/software/uptime-kuma/egg-uptime-kuma.json new file mode 100644 index 00000000..4f66fd78 --- /dev/null +++ b/software/uptime-kuma/egg-uptime-kuma.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-01-21T14:27:28+01:00", + "name": "Uptime Kuma", + "author": "info@goover.de", + "description": "Uptime Kuma is an easy-to-use self-hosted monitoring tool.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:nodejs_14": "ghcr.io\/parkervcp\/yolks:nodejs_14" + }, + "file_denylist": [], + "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install; fi; \/usr\/local\/bin\/node \/home\/container\/{{JS_FILE}} --port={{SERVER_PORT}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"[SERVER] INFO: Listening on \"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# NodeJS 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 js 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\necho \"Installing nodejs packages\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\ncd \/mnt\/server\r\nnpm ci --production \r\nnpm run download-dist\r\n\r\necho -e \"install complete\"\r\nexit 0", + "container": "node:14-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": "https:\/\/github.com\/louislam\/uptime-kuma", + "user_viewable": false, + "user_editable": false, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Auto Update", + "description": "Pull the latest files on startup when using a GitHub repo.", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "JS file", + "description": "The file that starts the app", + "env_variable": "JS_FILE", + "default_value": "server\/server.js", + "user_viewable": false, + "user_editable": false, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Additional Node packages", + "description": "Install additional node packages.\r\n\r\nUse spaces to separate.", + "env_variable": "NODE_PACKAGES", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Uninstall Node packages", + "description": "Uninstall node packages.\r\n\r\nUse spaces to separate.", + "env_variable": "UNNODE_PACKAGES", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "nullable|string", + "field_type": "text" + } + ] +} \ No newline at end of file From 26a7797250cce1d80bbb3f6394758a8f7e72fc91 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sat, 21 Jan 2023 17:04:49 +0100 Subject: [PATCH 066/473] update readme for CF Tunnel --- software/uptime-kuma/README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/software/uptime-kuma/README.md b/software/uptime-kuma/README.md index f07fa488..a56eeee0 100644 --- a/software/uptime-kuma/README.md +++ b/software/uptime-kuma/README.md @@ -13,9 +13,16 @@ Egg is based on parkers generic nodejs egg Github: https://github.com/louislam/uptime-kuma ## Admin & login - After installation and successful start, browse to your : and setup the Admin. +## Integrated Cloudflare Tunnel service +If you want to use the integrated cloudflare Tunnel service, you need an other Image. Contakt me on Discord for the Image: + +gOOvER#9999 + +More infos: +https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy-with-Cloudflare-Tunnel + ## Server Ports Uptime Kuma requires 1 port. You can choose every port you want From fd5b3c266cd6ad26e0bf5048c2f315775ce94565 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sat, 21 Jan 2023 17:10:10 +0100 Subject: [PATCH 067/473] typo --- software/uptime-kuma/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/software/uptime-kuma/README.md b/software/uptime-kuma/README.md index a56eeee0..a82afad0 100644 --- a/software/uptime-kuma/README.md +++ b/software/uptime-kuma/README.md @@ -16,7 +16,7 @@ Github: https://github.com/louislam/uptime-kuma After installation and successful start, browse to your : and setup the Admin. ## Integrated Cloudflare Tunnel service -If you want to use the integrated cloudflare Tunnel service, you need an other Image. Contakt me on Discord for the Image: +If you want to use the integrated cloudflare Tunnel service, you need an other Image. Contact me on Discord for the Image: gOOvER#9999 From bab6aabe00143d60b3b85cc8db63e8adbc40edf6 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 22 Jan 2023 09:34:26 +0100 Subject: [PATCH 068/473] switch to nodejs16 --- software/uptime-kuma/egg-uptime-kuma.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/software/uptime-kuma/egg-uptime-kuma.json b/software/uptime-kuma/egg-uptime-kuma.json index 4f66fd78..a8ac9570 100644 --- a/software/uptime-kuma/egg-uptime-kuma.json +++ b/software/uptime-kuma/egg-uptime-kuma.json @@ -4,13 +4,13 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-21T14:27:28+01:00", + "exported_at": "2023-01-22T09:33:11+01:00", "name": "Uptime Kuma", "author": "info@goover.de", "description": "Uptime Kuma is an easy-to-use self-hosted monitoring tool.", "features": null, "docker_images": { - "ghcr.io\/parkervcp\/yolks:nodejs_14": "ghcr.io\/parkervcp\/yolks:nodejs_14" + "ghcr.io\/parkervcp\/yolks:nodejs_16": "ghcr.io\/parkervcp\/yolks:nodejs_16" }, "file_denylist": [], "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install; fi; \/usr\/local\/bin\/node \/home\/container\/{{JS_FILE}} --port={{SERVER_PORT}}", @@ -22,8 +22,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# NodeJS 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 js 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\necho \"Installing nodejs packages\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\ncd \/mnt\/server\r\nnpm ci --production \r\nnpm run download-dist\r\n\r\necho -e \"install complete\"\r\nexit 0", - "container": "node:14-bullseye-slim", + "script": "#!\/bin\/bash\r\n# NodeJS 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 js 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\necho \"Installing nodejs packages\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\ncd \/mnt\/server\r\nnpm ci --production \r\nnpm run download-dist\r\n\r\n## add below your custom commands if needed\r\n\r\n## install end\r\necho -e \"-----------------------------------------\"\r\necho -e \"Installation completed...\"\r\necho -e \"-----------------------------------------\"\r\nexit 0", + "container": "node:16-bullseye-slim", "entrypoint": "bash" } }, From eb0deee1f03a4011b7726b1e2f9335c78d37f844 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Mon, 23 Jan 2023 16:43:15 +0100 Subject: [PATCH 069/473] Update egg-gitea.json --- software/gitea/egg-gitea.json | 36 +++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/software/gitea/egg-gitea.json b/software/gitea/egg-gitea.json index f402222a..4b21a567 100644 --- a/software/gitea/egg-gitea.json +++ b/software/gitea/egg-gitea.json @@ -1,29 +1,29 @@ { "_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-05-16T16:53:24+02:00", + "exported_at": "2023-01-23T16:42:43+01:00", "name": "Gitea", "author": "mario.franze@gmail.com", "description": "Gitea is a community managed lightweight code hosting solution written in Go. It is published under the MIT license.", "features": null, - "images": [ - "ghcr.io\/parkervcp\/yolks:debian" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian" + }, "file_denylist": [], "startup": ".\/gitea web -p {{SERVER_PORT}} -c .\/app.ini", "config": { "files": "{\r\n \"custom\/app.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"DISABLE_SSH\": \"DISABLE_SSH: {{server.build.env.DISABLE_SSH}}\",\r\n \"SSH_PORT\": \"SSH_PORT: {{server.build.env.SSH_PORT}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"Listen: \",\r\n \"userInteraction\": []\r\n}", + "startup": "{\r\n \"done\": \"Listen: \"\r\n}", "logs": "{}", - "stop": "^C" + "stop": "^^C" }, "scripts": { "installation": { - "script": "apt update\r\napt install -y wget\r\n\r\ncd \/mnt\/server\r\n\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n\r\n\r\nwget -O gitea https:\/\/dl.gitea.io\/gitea\/main\/gitea-main-linux-${ARCH}\r\nchmod +x gitea\r\n\r\nmkdir custom\r\n\r\necho \"[server]\r\nLOCAL_ROOT_URL = http:\/\/localhost:${SERVER_PORT}\/\r\nDOMAIN = ${SERVER_IP}\r\nHTTP_PORT = ${SERVER_PORT}\r\nDISABLE_SSH = ${DISABLE_SSH}\r\nSSH_PORT = ${SSH_PORT}\" > \/mnt\/server\/custom\/app.ini\r\n\r\necho \"Install complete\"", - "container": "debian:buster-slim", + "script": "## Gitea Installscript\r\n\r\n## Variables\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\nLATEST=$(curl https:\/\/dl.gitea.io\/gitea\/version.json | echo $(jq -r \".latest.version\"))\r\n\r\n## update system\r\napt update\r\napt install -y --no-install-recommends wget jq curl\r\n\r\ncd \/mnt\/server\r\n\r\n## install gitea\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n echo -e \"downloading Gitea $LATEST\"\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/${LATEST}\/gitea-${LATEST}-linux-${ARCH}\r\nelif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"nightly\" ]; then\r\n echo -e \"downloading Gitea nightly\"\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/main\/gitea-main-linux-${ARCH}\r\nelse\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/${VERSION}\/gitea-${VERSION}-linux-${ARCH}\r\n echo -e \"downloading Gitea $VERSION\"\r\nfi\r\n\r\nchmod +x gitea\r\n\r\nmkdir -p custom\r\n\r\nif [ -f \"\/mnt\/server\/custom\/app.ini\" ]; then\r\n echo \"config file exists\"\r\nelse\r\n echo \"[server]\r\n LOCAL_ROOT_URL = http:\/\/localhost:${SERVER_PORT}\/\r\n DOMAIN = ${SERVER_IP}\r\n HTTP_PORT = ${SERVER_PORT}\r\n DISABLE_SSH = ${DISABLE_SSH}\r\n SSH_PORT = ${SSH_PORT}\" > \/mnt\/server\/custom\/app.ini\r\nfi\r\n\r\necho -e \"-------------------------------------------------\"\r\necho -e \"Installation completed\"\r\necho -e \"-------------------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } }, @@ -35,7 +35,8 @@ "default_value": "false", "user_viewable": true, "user_editable": false, - "rules": "required|string|in:true,false" + "rules": "required|string|in:true,false", + "field_type": "text" }, { "name": "SSH Port", @@ -44,7 +45,18 @@ "default_value": "2020", "user_viewable": true, "user_editable": false, - "rules": "required|integer|between:1024,65535" + "rules": "required|integer|between:1024,65535", + "field_type": "text" + }, + { + "name": "Version", + "description": "you can use latest, nightly or version (e.g. 1.18.1)", + "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 282d1dfb28f36f52628ec21a5647d7f1c66c7e21 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Mon, 23 Jan 2023 17:45:27 +0100 Subject: [PATCH 070/473] fixed url --- software/gitea/egg-gitea.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/software/gitea/egg-gitea.json b/software/gitea/egg-gitea.json index 4b21a567..b92e1fab 100644 --- a/software/gitea/egg-gitea.json +++ b/software/gitea/egg-gitea.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-23T16:42:43+01:00", + "exported_at": "2023-01-23T17:44:54+01:00", "name": "Gitea", "author": "mario.franze@gmail.com", "description": "Gitea is a community managed lightweight code hosting solution written in Go. It is published under the MIT license.", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "## Gitea Installscript\r\n\r\n## Variables\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\nLATEST=$(curl https:\/\/dl.gitea.io\/gitea\/version.json | echo $(jq -r \".latest.version\"))\r\n\r\n## update system\r\napt update\r\napt install -y --no-install-recommends wget jq curl\r\n\r\ncd \/mnt\/server\r\n\r\n## install gitea\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n echo -e \"downloading Gitea $LATEST\"\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/${LATEST}\/gitea-${LATEST}-linux-${ARCH}\r\nelif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"nightly\" ]; then\r\n echo -e \"downloading Gitea nightly\"\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/main\/gitea-main-linux-${ARCH}\r\nelse\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/${VERSION}\/gitea-${VERSION}-linux-${ARCH}\r\n echo -e \"downloading Gitea $VERSION\"\r\nfi\r\n\r\nchmod +x gitea\r\n\r\nmkdir -p custom\r\n\r\nif [ -f \"\/mnt\/server\/custom\/app.ini\" ]; then\r\n echo \"config file exists\"\r\nelse\r\n echo \"[server]\r\n LOCAL_ROOT_URL = http:\/\/localhost:${SERVER_PORT}\/\r\n DOMAIN = ${SERVER_IP}\r\n HTTP_PORT = ${SERVER_PORT}\r\n DISABLE_SSH = ${DISABLE_SSH}\r\n SSH_PORT = ${SSH_PORT}\" > \/mnt\/server\/custom\/app.ini\r\nfi\r\n\r\necho -e \"-------------------------------------------------\"\r\necho -e \"Installation completed\"\r\necho -e \"-------------------------------------------------\"", + "script": "## Gitea Installscript\r\n\r\n## Variables\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\nLATEST=$(curl https:\/\/dl.gitea.io\/gitea\/version.json | echo $(jq -r \".latest.version\"))\r\n\r\n## update system\r\napt update\r\napt install -y --no-install-recommends jq curl\r\n\r\ncd \/mnt\/server\r\n\r\n## install gitea\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n echo -e \"downloading Gitea $LATEST\"\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/${LATEST}\/gitea-${LATEST}-linux-${ARCH}\r\nelif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"nightly\" ]; then\r\n echo -e \"downloading Gitea nightly\"\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/main\/gitea-main-linux-${ARCH}\r\nelse\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/${VERSION}\/gitea-${VERSION}-linux-${ARCH}\r\n echo -e \"downloading Gitea $VERSION\"\r\nfi\r\n\r\nchmod +x gitea\r\n\r\nmkdir -p custom\r\n\r\nif [ -f \"\/mnt\/server\/custom\/app.ini\" ]; then\r\n echo \"config file exists\"\r\nelse\r\n echo \"[server]\r\n LOCAL_ROOT_URL = http:\/\/${SERVER_IP}:${SERVER_PORT}\/\r\n DOMAIN = ${SERVER_IP}\r\n HTTP_PORT = ${SERVER_PORT}\r\n ROOT_URL = http:\/\/${SERVER_IP}:${SERVER_PORT}\/\r\n DISABLE_SSH = ${DISABLE_SSH}\r\n SSH_PORT = ${SSH_PORT}\" > \/mnt\/server\/custom\/app.ini\r\nfi\r\n\r\necho -e \"-------------------------------------------------\"\r\necho -e \"Installation completed\"\r\necho -e \"-------------------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } From 0273a5da92b38fb042c180d03dbd8f1cea08f678 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Mon, 23 Jan 2023 17:49:23 +0100 Subject: [PATCH 071/473] added version notes --- software/gitea/README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/software/gitea/README.md b/software/gitea/README.md index 7f555ba8..83df8366 100644 --- a/software/gitea/README.md +++ b/software/gitea/README.md @@ -2,6 +2,13 @@ [Gitea](https://gitea.io/en-us/) is a community managed lightweight code hosting solution written in Go. It is published under the MIT license. +## Supported Versions +You can set the version in Version variable. You can use following values: + +latest - latest stable release +nightly - latest Github master branch +version - set the version according this page: https://dl.gitea.io/gitea + ## Server Ports Ports required to run the server in a table format. From 12cf261fae667c10c67c47ab95725bebb33f058f Mon Sep 17 00:00:00 2001 From: gOOvER Date: Mon, 23 Jan 2023 18:12:12 +0100 Subject: [PATCH 072/473] Update egg-gitea.json --- software/gitea/egg-gitea.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/software/gitea/egg-gitea.json b/software/gitea/egg-gitea.json index b92e1fab..650dda66 100644 --- a/software/gitea/egg-gitea.json +++ b/software/gitea/egg-gitea.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-23T17:44:54+01:00", + "exported_at": "2023-01-23T18:11:52+01:00", "name": "Gitea", "author": "mario.franze@gmail.com", "description": "Gitea is a community managed lightweight code hosting solution written in Go. It is published under the MIT license.", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "## Gitea Installscript\r\n\r\n## Variables\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\nLATEST=$(curl https:\/\/dl.gitea.io\/gitea\/version.json | echo $(jq -r \".latest.version\"))\r\n\r\n## update system\r\napt update\r\napt install -y --no-install-recommends jq curl\r\n\r\ncd \/mnt\/server\r\n\r\n## install gitea\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n echo -e \"downloading Gitea $LATEST\"\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/${LATEST}\/gitea-${LATEST}-linux-${ARCH}\r\nelif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"nightly\" ]; then\r\n echo -e \"downloading Gitea nightly\"\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/main\/gitea-main-linux-${ARCH}\r\nelse\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/${VERSION}\/gitea-${VERSION}-linux-${ARCH}\r\n echo -e \"downloading Gitea $VERSION\"\r\nfi\r\n\r\nchmod +x gitea\r\n\r\nmkdir -p custom\r\n\r\nif [ -f \"\/mnt\/server\/custom\/app.ini\" ]; then\r\n echo \"config file exists\"\r\nelse\r\n echo \"[server]\r\n LOCAL_ROOT_URL = http:\/\/${SERVER_IP}:${SERVER_PORT}\/\r\n DOMAIN = ${SERVER_IP}\r\n HTTP_PORT = ${SERVER_PORT}\r\n ROOT_URL = http:\/\/${SERVER_IP}:${SERVER_PORT}\/\r\n DISABLE_SSH = ${DISABLE_SSH}\r\n SSH_PORT = ${SSH_PORT}\" > \/mnt\/server\/custom\/app.ini\r\nfi\r\n\r\necho -e \"-------------------------------------------------\"\r\necho -e \"Installation completed\"\r\necho -e \"-------------------------------------------------\"", + "script": "## Gitea Installscript\r\n\r\n## Variables\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\nLATEST=$(curl https:\/\/dl.gitea.io\/gitea\/version.json | echo $(jq -r \".latest.version\"))\r\n\r\n## update system\r\napt update\r\napt install -y --no-install-recommends jq curl\r\n\r\ncd \/mnt\/server\r\n\r\n## install gitea\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n echo -e \"downloading Gitea $LATEST\"\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/${LATEST}\/gitea-${LATEST}-linux-${ARCH}\r\nelif [ \"${VERSION}\" == \"nightly\" ]; then\r\n echo -e \"downloading Gitea nightly\"\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/main\/gitea-main-linux-${ARCH}\r\nelse\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/${VERSION}\/gitea-${VERSION}-linux-${ARCH}\r\n echo -e \"downloading Gitea $VERSION\"\r\nfi\r\n\r\nchmod +x gitea\r\n\r\nmkdir -p custom\r\n\r\nif [ -f \"\/mnt\/server\/custom\/app.ini\" ]; then\r\n echo \"config file exists\"\r\nelse\r\n echo \"[server]\r\n LOCAL_ROOT_URL = http:\/\/${SERVER_IP}:${SERVER_PORT}\/\r\n DOMAIN = ${SERVER_IP}\r\n HTTP_PORT = ${SERVER_PORT}\r\n ROOT_URL = http:\/\/${SERVER_IP}:${SERVER_PORT}\/\r\n DISABLE_SSH = ${DISABLE_SSH}\r\n SSH_PORT = ${SSH_PORT}\" > \/mnt\/server\/custom\/app.ini\r\nfi\r\n\r\necho -e \"-------------------------------------------------\"\r\necho -e \"Installation completed\"\r\necho -e \"-------------------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } From 0788eeb4d64763aeab83f30296a896c187f709ef Mon Sep 17 00:00:00 2001 From: Techdude404 <25909830+Techdude404Gaming@users.noreply.github.com> Date: Tue, 24 Jan 2023 00:49:21 -0600 Subject: [PATCH 073/473] Fix default spelling issue --- game_eggs/gta/fivem/server.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/gta/fivem/server.cfg b/game_eggs/gta/fivem/server.cfg index 434e0859..3f2a5165 100644 --- a/game_eggs/gta/fivem/server.cfg +++ b/game_eggs/gta/fivem/server.cfg @@ -1,4 +1,4 @@ -### AUTOMATICALY SET BY PTERODACTYL ### +### AUTOMATICALLY SET BY PTERODACTYL ### # Only change the IP if you're using a server with multiple network interfaces, otherwise change the port only. endpoint_add_tcp "0.0.0.0:30120" endpoint_add_udp "0.0.0.0:30120" From 229a67d54c3a1a24c0838e4d1027be9e88e28d9c Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Tue, 24 Jan 2023 16:42:49 +0100 Subject: [PATCH 074/473] fix(pocketmine): New PHP binary download URL (#2085) --- .../minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json index add3021f..6f14d9f5 100644 --- a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json +++ b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-07-28T19:04:48+02:00", + "exported_at": "2023-01-24T16:28:27+01:00", "name": "PocketmineMP", "author": "info@swisscrafting.ch", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\n\r\napt update\r\napt install -y git curl wget jq file tar unzip zip\r\n\r\ncd \/mnt\/server\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n\r\n# Restrict versions to latest pm3 and pm4 for now.\r\nif [[ \"${VERSION}\" == \"pm4\" ]] || [[ \"${VERSION}\" == \"\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=stable | grep 'download_url' | cut -d '\"' -f 4)\r\n echo -e \"Downloading latest PocketMine 4 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelif [[ \"${VERSION}\" == \"pm3\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=pm3 | grep 'download_url' | cut -d '\"' -f 4)\r\n echo -e \"Downloading latest PocketMine 3 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelse\r\n echo -e \"Unknown version ${VERSION}\"\r\n exit 1\r\nfi\r\n\r\n\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\necho -e \"\\n downloading latest php build from PocketMine https:\/\/jenkins.pmmp.io\/job\/PHP-8.0-Aggregate\/lastStableBuild\/artifact\/PHP-8.0-Linux-x86_64.tar.gz\"\r\ncurl -sSL -o php.binary.tar.gz https:\/\/jenkins.pmmp.io\/job\/PHP-8.0-Aggregate\/lastStableBuild\/artifact\/PHP-8.0-Linux-x86_64.tar.gz\r\n\r\necho -e \"\\n unpacking php binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing php packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\nelse\r\napt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\n\r\nwget https:\/\/raw.githubusercontent.com\/pmmp\/php-build-scripts\/stable\/compile.sh -O compile.sh \r\nchmod +x compile.sh\r\n\r\necho \"please wait, this will take some time\"\r\n.\/compile.sh\r\nrm compile.sh\r\nrm -rf install_data\/\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n\r\nfi\r\n\r\n\r\nif [[ ! -f server.properties ]]; then\r\n echo -e \"\\n downloading default server.properties\"\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/bedrock\/pocketmine_mp\/server.properties >server.properties\r\nfi\r\n\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.txt banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs\r\n\r\necho -e \"\\n\\nInstall script completed. Enjoy!\"", + "script": "#!\/bin\/bash\r\n\r\n\r\napt update\r\napt install -y git curl wget jq file tar unzip zip\r\n\r\ncd \/mnt\/server\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n\r\n# Restrict versions to latest pm3 and pm4 for now.\r\nif [[ \"${VERSION}\" == \"pm4\" ]] || [[ \"${VERSION}\" == \"\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=stable | grep 'download_url' | cut -d '\"' -f 4)\r\n echo -e \"Downloading latest PocketMine 4 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelif [[ \"${VERSION}\" == \"pm3\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=pm3 | grep 'download_url' | cut -d '\"' -f 4)\r\n echo -e \"Downloading latest PocketMine 3 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelse\r\n echo -e \"Unknown version ${VERSION}\"\r\n exit 1\r\nfi\r\n\r\n\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\necho -e \"\\n downloading latest php build from PocketMine https:\/\/jenkins.pmmp.io\/job\/PHP-8.0-Aggregate\/lastSuccessfulBuild\/artifact\/PHP-8.0-Linux-x86_64-PM4.tar.gz\"\r\ncurl -sSL -o php.binary.tar.gz https:\/\/jenkins.pmmp.io\/job\/PHP-8.0-Aggregate\/lastSuccessfulBuild\/artifact\/PHP-8.0-Linux-x86_64-PM4.tar.gz\r\n\r\necho -e \"\\n unpacking php binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing php packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\nelse\r\napt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\n\r\nwget https:\/\/raw.githubusercontent.com\/pmmp\/php-build-scripts\/stable\/compile.sh -O compile.sh \r\nchmod +x compile.sh\r\n\r\necho \"please wait, this will take some time\"\r\n.\/compile.sh\r\nrm compile.sh\r\nrm -rf install_data\/\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n\r\nfi\r\n\r\n\r\nif [[ ! -f server.properties ]]; then\r\n echo -e \"\\n downloading default server.properties\"\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/bedrock\/pocketmine_mp\/server.properties >server.properties\r\nfi\r\n\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.txt banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs\r\n\r\necho -e \"\\n\\nInstall script completed. Enjoy!\"", "container": "ghcr.io\/pterodactyl\/installers:debian", "entrypoint": "bash" } From 71c93652a698db7d28447d11b1af64d977cf0252 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Thu, 26 Jan 2023 18:21:16 +0100 Subject: [PATCH 075/473] switch image --- software/gitea/egg-gitea.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/software/gitea/egg-gitea.json b/software/gitea/egg-gitea.json index 650dda66..cd140ac5 100644 --- a/software/gitea/egg-gitea.json +++ b/software/gitea/egg-gitea.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-23T18:11:52+01:00", + "exported_at": "2023-01-26T18:20:19+01:00", "name": "Gitea", "author": "mario.franze@gmail.com", "description": "Gitea is a community managed lightweight code hosting solution written in Go. It is published under the MIT license.", @@ -23,7 +23,7 @@ "scripts": { "installation": { "script": "## Gitea Installscript\r\n\r\n## Variables\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\nLATEST=$(curl https:\/\/dl.gitea.io\/gitea\/version.json | echo $(jq -r \".latest.version\"))\r\n\r\n## update system\r\napt update\r\napt install -y --no-install-recommends jq curl\r\n\r\ncd \/mnt\/server\r\n\r\n## install gitea\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n echo -e \"downloading Gitea $LATEST\"\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/${LATEST}\/gitea-${LATEST}-linux-${ARCH}\r\nelif [ \"${VERSION}\" == \"nightly\" ]; then\r\n echo -e \"downloading Gitea nightly\"\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/main\/gitea-main-linux-${ARCH}\r\nelse\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/${VERSION}\/gitea-${VERSION}-linux-${ARCH}\r\n echo -e \"downloading Gitea $VERSION\"\r\nfi\r\n\r\nchmod +x gitea\r\n\r\nmkdir -p custom\r\n\r\nif [ -f \"\/mnt\/server\/custom\/app.ini\" ]; then\r\n echo \"config file exists\"\r\nelse\r\n echo \"[server]\r\n LOCAL_ROOT_URL = http:\/\/${SERVER_IP}:${SERVER_PORT}\/\r\n DOMAIN = ${SERVER_IP}\r\n HTTP_PORT = ${SERVER_PORT}\r\n ROOT_URL = http:\/\/${SERVER_IP}:${SERVER_PORT}\/\r\n DISABLE_SSH = ${DISABLE_SSH}\r\n SSH_PORT = ${SSH_PORT}\" > \/mnt\/server\/custom\/app.ini\r\nfi\r\n\r\necho -e \"-------------------------------------------------\"\r\necho -e \"Installation completed\"\r\necho -e \"-------------------------------------------------\"", - "container": "ghcr.io\/parkervcp\/installers:debian", + "container": "debian:bullseye-slim", "entrypoint": "bash" } }, From 81c4de18ab14d8438cf3d649d851e713de94978e Mon Sep 17 00:00:00 2001 From: Panda260 Date: Fri, 27 Jan 2023 12:15:45 +0100 Subject: [PATCH 076/473] add: server startup password as variable --- .../teamspeak_ARM64/egg-teamspeak3-arm64-server.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json b/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json index 975baecb..1f6cf47e 100644 --- a/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json +++ b/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json @@ -13,7 +13,7 @@ "ghcr.io\/parkervcp\/yolks:box64": "ghcr.io\/parkervcp\/yolks:box64" }, "file_denylist": [], - "startup": "box64 .\/ts3server default_voice_port={{SERVER_PORT}} query_port={{QUERY_PORT}} filetransfer_ip=0.0.0.0 filetransfer_port={{FILE_TRANSFER}} license_accepted=1", + "startup": "box64 .\/ts3server default_voice_port={{SERVER_PORT}} query_port={{QUERY_PORT}} filetransfer_ip=0.0.0.0 filetransfer_port={{FILE_TRANSFER}} serveradmin_password={{SERVERADMIN_PASSWORD}} license_accepted=1", "config": { "files": "{}", "startup": "{\r\n \"done\": \"listening on 0.0.0.0:\"\r\n}", @@ -28,6 +28,16 @@ } }, "variables": [ + { + "name": "Server Query Admin Password", + "description": "The password for the server query admin user.", + "env_variable": "SERVERADMIN_PASSWORD", + "default_value": "changeme", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + }, { "name": "Server Version", "description": "The version of Teamspeak 3 to use when running the server.", From 13368cea3375f3bad7f0c05a45cd8f24cd5710a6 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Fri, 27 Jan 2023 16:50:37 +0100 Subject: [PATCH 077/473] removed cloudflare Tunnel --- software/uptime-kuma/README.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/software/uptime-kuma/README.md b/software/uptime-kuma/README.md index a82afad0..3ba818df 100644 --- a/software/uptime-kuma/README.md +++ b/software/uptime-kuma/README.md @@ -15,14 +15,6 @@ Github: https://github.com/louislam/uptime-kuma ## Admin & login After installation and successful start, browse to your : and setup the Admin. -## Integrated Cloudflare Tunnel service -If you want to use the integrated cloudflare Tunnel service, you need an other Image. Contact me on Discord for the Image: - -gOOvER#9999 - -More infos: -https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy-with-Cloudflare-Tunnel - ## Server Ports Uptime Kuma requires 1 port. You can choose every port you want From 2ea8c33d4ef5e70e1b61527ea36a98aa08812bea Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Fri, 27 Jan 2023 10:47:30 -0800 Subject: [PATCH 078/473] Add SFTP Storage Share Egg - Added egg - Added README - Updated directory README --- README.md | 4 ++ storage/sftp_storage_share/README.md | 40 +++++++++++++++++++ .../egg-sftp-storage-share.json | 13 +++--- 3 files changed, 51 insertions(+), 6 deletions(-) create mode 100644 storage/sftp_storage_share/README.md diff --git a/README.md b/README.md index fd79355d..4adacb26 100644 --- a/README.md +++ b/README.md @@ -323,6 +323,10 @@ If you are reading this it looks like you are looking to add an egg to your serv * [minio](/storage/minio) +### SFTP Storage Share ("Empty Egg") + +* [SFTP Storage Share](/storage/sftp_storage_share) + ## [Software](/software/) ### Code Server diff --git a/storage/sftp_storage_share/README.md b/storage/sftp_storage_share/README.md new file mode 100644 index 00000000..1a6fdc52 --- /dev/null +++ b/storage/sftp_storage_share/README.md @@ -0,0 +1,40 @@ +# SFTP Storage Share + +### Authors / Contributors + + + + + + + +
+ +
Red-Thirten +
+
+ 💻 + 🔨 +
+ + + +___ + +### Description + +A simple "empty" egg that acts as a private SFTP storage share by utilizing Pterodactyl's built in SFTP system for servers. Sub-users can be added to the server by the owner to allow additional people to access the share. "Starting" the server performs no actions and it should be left off. + +You can access the SFTP server using your favorite SFTP client and the SFTP login information found under the "Settings" tab of the server. + +___ + +### Server Ports + +Pterodactyl may force you to assign a port to the server but it will not be used and can be any port. The only port that will be used will be the SFTP port assigned to the node the server is running on. + +___ + +### Known Issues + +- Pterodactyl currently does not enforce server storage size when the server is not running. Therefore, because this "server" does not run, the Disk Space setting when creating the server will not be enforced and caution should be used when deploying this solution to un-trusted end-users. diff --git a/storage/sftp_storage_share/egg-sftp-storage-share.json b/storage/sftp_storage_share/egg-sftp-storage-share.json index 34b67947..26382219 100644 --- a/storage/sftp_storage_share/egg-sftp-storage-share.json +++ b/storage/sftp_storage_share/egg-sftp-storage-share.json @@ -1,16 +1,17 @@ { - "_comment": "Pterodactyl SFTP Storage Share Egg ~ David Wolfe (Red-Thirten) ~ 2022-03-14", + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1", + "version": "PTDL_v2", "update_url": null }, + "exported_at": "2023-01-27T18:29:17+00:00", "name": "SFTP Storage Share", "author": "rehlmgaming@gmail.com", "description": "A simple \"empty\" egg that acts as a private SFTP storage share by utilizing Pterodactyl's built in SFTP system for servers. Sub-users can be added to the server by the owner to allow additional people to access the share. \"Starting\" the server performs no actions and it should be left off.", "features": null, - "images": [ - "ghcr.io\/parkervcp\/yolks:alpine" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:alpine": "ghcr.io\/parkervcp\/yolks:alpine" + }, "file_denylist": [], "startup": "echo -e \"\\n\\n\\033[0;31mThere is no need to start this server. The SFTP service is always running. Feel free to stop the server now.\\n\\t\\033[0;36m(Sub-users can be added via the Users tab to add\/remove access to the share in real time)\\n\\n\"", "config": { @@ -21,7 +22,7 @@ }, "scripts": { "installation": { - "script": null, + "script": "# Pterodactyl SFTP Storage Share Egg ~ David Wolfe (Red-Thirten) ~ 2023-01-27", "container": "alpine:3.4", "entrypoint": "ash" } From b31d7288dcb7d83a138f8cd5b76bbf5bb5ebcebf Mon Sep 17 00:00:00 2001 From: gOOvER Date: Fri, 27 Jan 2023 20:19:52 +0100 Subject: [PATCH 079/473] added npm update to prevent errors --- generic/nodejs/egg-node-js-generic.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/generic/nodejs/egg-node-js-generic.json b/generic/nodejs/egg-node-js-generic.json index 4d525ceb..5b5dc27e 100644 --- a/generic/nodejs/egg-node-js-generic.json +++ b/generic/nodejs/egg-node-js-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-10-16T13:45:09+02:00", + "exported_at": "2023-01-27T20:19:13+01:00", "name": "node.js generic", "author": "parker@parkervcp.com", "description": "a generic node.js egg\r\n\r\nThis will clone a git repo. it defaults to master if no branch is specified.\r\n\r\nInstalls the node_modules on install. If you set user_upload then I assume you know what you are doing.", @@ -27,7 +27,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# NodeJS 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 js 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\necho \"Installing nodejs packages\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0", + "script": "#!\/bin\/bash\r\n# NodeJS 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\necho -e \"updating npm. please wait...\"\r\nnpm install npm@latest -g\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 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\necho \"Installing nodejs packages\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0", "container": "node:14-buster-slim", "entrypoint": "bash" } From 1eb8b8929d3d5835b1939bee47601936b68d7a61 Mon Sep 17 00:00:00 2001 From: Panda260 Date: Fri, 27 Jan 2023 21:45:22 +0100 Subject: [PATCH 080/473] changed the password rule from required to nullable --- voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json b/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json index 1f6cf47e..8d74bb7a 100644 --- a/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json +++ b/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json @@ -35,7 +35,7 @@ "default_value": "changeme", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:32", + "rules": "nullable|string|max:32", "field_type": "text" }, { From 5b462c28f8ebaf174d7a66370f31a3c8e4d3f9c2 Mon Sep 17 00:00:00 2001 From: Panda260 Date: Fri, 27 Jan 2023 22:12:50 +0100 Subject: [PATCH 081/473] remove default value --- voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json b/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json index 8d74bb7a..3cb31542 100644 --- a/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json +++ b/voice_servers/teamspeak_ARM64/egg-teamspeak3-arm64-server.json @@ -32,7 +32,7 @@ "name": "Server Query Admin Password", "description": "The password for the server query admin user.", "env_variable": "SERVERADMIN_PASSWORD", - "default_value": "changeme", + "default_value": "", "user_viewable": true, "user_editable": true, "rules": "nullable|string|max:32", From e84db802876c692949333f7b791462d54d17df9a Mon Sep 17 00:00:00 2001 From: Green <77177015+GreenDiscord@users.noreply.github.com> Date: Fri, 27 Jan 2023 21:26:29 +0000 Subject: [PATCH 082/473] Adds support for steam accounts, Added due to the fact that some hlds depenendent games require the user to log into an account --- .../egg-custom-re-h-l-d-s-engine-game.json | 36 +++++++++++++++++-- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json b/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json index d54856d7..4a30885e 100644 --- a/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json +++ b/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-10-19T16:26:34+11:00", + "exported_at": "2023-01-27T22:24:50+01:00", "name": "Custom ReHLDS Engine Game", "author": "shigbeard@ndlee.com", "description": "This option allows modifying the startup arguments and other details to run a custom HLDS based game on the panel, substituting the official Valve engine binaries with the ReHLDS binaries.", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates jq unzip wget\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# Github Release Grabber script\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\")\r\nMATCH=\"rehlds-bin\"\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 -Ei ${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)\r\n fi\r\nfi\r\n\r\ncd \/tmp\r\nwget -N $DOWNLOAD_URL -O rehlds-bin.zip\r\nunzip -q -o rehlds-bin.zip\r\n\r\ncp -r \/tmp\/bin\/linux32\/* \/mnt\/server\r\ncd \/mnt\/server\r\necho \"install complete\"", + "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates jq unzip wget\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_set_config 90 mod ${HLDS_GAME} +app_update ${SRCDS_APPID} validate +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n# Github Release Grabber script\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\")\r\nMATCH=\"rehlds-bin\"\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 -Ei ${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)\r\n fi\r\nfi\r\n\r\ncd \/tmp\r\nwget -N $DOWNLOAD_URL -O rehlds-bin.zip\r\nunzip -q -o rehlds-bin.zip\r\n\r\ncp -r \/tmp\/bin\/linux32\/* \/mnt\/server\r\ncd \/mnt\/server\r\necho \"install complete\"", "container": "ubuntu:18.04", "entrypoint": "bash" } @@ -89,6 +89,36 @@ "user_editable": false, "rules": "required|boolean", "field_type": "text" + }, + { + "name": "Steam Username", + "description": "Username associated wanted to be used. Not needed.", + "env_variable": "STEAM_USER", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Steam Password", + "description": "Steam Password for account.", + "env_variable": "STEAM_PASS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Steam Auth", + "description": "Steam authenticator code for the account", + "env_variable": "STEAM_AUTH", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" } ] -} \ No newline at end of file +} From bdafec5f1e3a68be86d224e3472d19f6c01598d0 Mon Sep 17 00:00:00 2001 From: Green <77177015+GreenDiscord@users.noreply.github.com> Date: Fri, 27 Jan 2023 22:04:09 +0000 Subject: [PATCH 083/473] Update egg-custom-re-h-l-d-s-engine-game.json --- .../hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json b/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json index 4a30885e..460886eb 100644 --- a/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json +++ b/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-27T22:24:50+01:00", + "exported_at": "2023-01-27T23:04:00+01:00", "name": "Custom ReHLDS Engine Game", "author": "shigbeard@ndlee.com", "description": "This option allows modifying the startup arguments and other details to run a custom HLDS based game on the panel, substituting the official Valve engine binaries with the ReHLDS binaries.", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates jq unzip wget\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_set_config 90 mod ${HLDS_GAME} +app_update ${SRCDS_APPID} validate +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n# Github Release Grabber script\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\")\r\nMATCH=\"rehlds-bin\"\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 -Ei ${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)\r\n fi\r\nfi\r\n\r\ncd \/tmp\r\nwget -N $DOWNLOAD_URL -O rehlds-bin.zip\r\nunzip -q -o rehlds-bin.zip\r\n\r\ncp -r \/tmp\/bin\/linux32\/* \/mnt\/server\r\ncd \/mnt\/server\r\necho \"install complete\"", + "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates jq unzip wget\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\nif [ \"${STEAM_USER}\" == \"\" ] || [ \"${STEAM_PASS}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +force_install_dir \"\/mnt\/server\" +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_set_config 90 mod ${HLDS_GAME} +app_update ${SRCDS_APPID} validate +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n# Github Release Grabber script\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\")\r\nMATCH=\"rehlds-bin\"\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 -Ei ${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)\r\n fi\r\nfi\r\n\r\ncd \/tmp\r\nwget -N $DOWNLOAD_URL -O rehlds-bin.zip\r\nunzip -q -o rehlds-bin.zip\r\n\r\ncp -r \/tmp\/bin\/linux32\/* \/mnt\/server\r\ncd \/mnt\/server\r\necho \"install complete\"", "container": "ubuntu:18.04", "entrypoint": "bash" } From efe282f729a442c3a84b865e8a7289483bb01c80 Mon Sep 17 00:00:00 2001 From: Panda260 Date: Fri, 27 Jan 2023 23:45:30 +0100 Subject: [PATCH 084/473] Removed dead link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fd79355d..12f6e8a0 100644 --- a/README.md +++ b/README.md @@ -148,7 +148,7 @@ If you are reading this it looks like you are looking to add an egg to your serv [Minetest](game_eggs/minetest) (including MTG) -* [Minetest](game_eggs/minetest/minetest) +* [Minetest](game_eggs/minetest) [Minecraft](game_eggs/minecraft) From a423a1c02cad17d1b173bd5c45919558366d6dd0 Mon Sep 17 00:00:00 2001 From: Loki <59907407+Loki-101@users.noreply.github.com> Date: Fri, 27 Jan 2023 23:52:10 -0800 Subject: [PATCH 085/473] Add Python 11 Yolk (#2100) Python: Add Python 11 image --- generic/python/egg-python-generic.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/generic/python/egg-python-generic.json b/generic/python/egg-python-generic.json index 06fd6dd3..deb33f8d 100644 --- a/generic/python/egg-python-generic.json +++ b/generic/python/egg-python-generic.json @@ -4,12 +4,13 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-11-28T13:21:01-05:00", + "exported_at": "2023-01-27T23:37:50-08: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", "features": null, "docker_images": { + "Python 3.11": "ghcr.io\/parkervcp\/yolks:python_3.11", "Python 3.10": "ghcr.io\/parkervcp\/yolks:python_3.10", "Python 3.9": "ghcr.io\/parkervcp\/yolks:python_3.9", "Python 3.8": "ghcr.io\/parkervcp\/yolks:python_3.8", From f8cc420adefcbabd00ef717357781fcb64aed98e Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sat, 28 Jan 2023 11:38:48 +0100 Subject: [PATCH 086/473] Update egg-the-forest.json --- .../the_forest/egg-the-forest.json | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/game_eggs/steamcmd_servers/the_forest/egg-the-forest.json b/game_eggs/steamcmd_servers/the_forest/egg-the-forest.json index f0b2f4a8..f0249938 100644 --- a/game_eggs/steamcmd_servers/the_forest/egg-the-forest.json +++ b/game_eggs/steamcmd_servers/the_forest/egg-the-forest.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-08-08T17:51:35+02:00", + "exported_at": "2023-01-28T11:38:05+01:00", "name": "The Forest", "author": "admin@softwarenoob.com", "description": "As the lone survivor of a passenger jet crash, you find yourself in a mysterious forest battling to stay alive against a society of cannibalistic mutants. Build, explore, survive in this terrifying first-person survival horror simulator.", @@ -15,16 +15,16 @@ "ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest" }, "file_denylist": [], - "startup": "winetricks sound=disabled; export WINEDEBUG=-all; xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32' wine64 \/home\/container\/TheForestDedicatedServer.exe -batchmode -nographics -nosteamclient -savefolderpath \/home\/container\/TheForestDedicatedServer_Data -configfilepath \/home\/container\/TheForestDedicatedServer_Data\/forest\/config\/config.cfg |grep -v 'RenderTexture.Create failed: format unsupported - 2.'", + "startup": "winetricks sound=disabled; xvfb-run --auto-servernum --server-args='-screen 0 640x480x24:32' wine .\/TheForestDedicatedServer.exe -batchmode -nographics -nosteamclient -savefolderpath \/home\/container\/TheForestDedicatedServer_Data -configfilepath \/home\/container\/TheForestDedicatedServer_Data\/forest\/config\/config.cfg |grep -v 'RenderTexture.Create failed: format unsupported - 2.'", "config": { "files": "{\r\n \"\/TheForestDedicatedServer_Data\/forest\/config\/config.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"serverIP\": \"serverIP 0.0.0.0\",\r\n \"serverSteamPort\": \"serverSteamPort {{server.build.env.STEAM_PORT}}\",\r\n \"serverGamePort\": \"serverGamePort {{server.build.default.port}}\",\r\n \"serverQueryPort\": \"serverQueryPort {{server.build.env.QUERY_PORT}}\",\r\n \"serverName\": \"serverName {{server.build.env.SERVER_NAME}}\",\r\n \"serverPlayers\": \"serverPlayers {{server.build.env.MAX_PLAYERS}}\",\r\n \"serverPassword\": \"serverPassword {{server.build.env.SERVER_PASS}}\",\r\n \"serverPasswordAdmin\": \"serverPasswordAdmin {{server.build.env.ADMIN_PASS}}\",\r\n \"serverSteamAccount\": \"serverSteamAccount {{server.build.env.STEAM_ACC}}\",\r\n \"enableVAC\": \"enableVAC {{server.build.env.VAC}}\",\r\n \"difficulty\": \"difficulty {{server.build.env.SERVER_DIFFICULTY}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Game autosave started\"\r\n}", "logs": "{}", - "stop": "^C" + "stop": "^^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Installation Script\r\n#\r\n# Install dependencies\r\napt -y --no-install-recommends install libstdc++6 lib32gcc-s1 ca-certificates\r\n\r\nexport WINEARCH=win64\r\nexport WINEPREFIX=\/home\/container\/.wine64\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\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## Install game using steamcmd\r\n.\/steamcmd.sh +login anonymous +@sSteamCmdForcePlatformType windows +force_install_dir \/mnt\/server +app_update ${APPID} ${EXTRA_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## Configure wine and server startup config\r\nmkdir -p \/home\/container\/.wine64\r\nexport WINEARCH=win64\r\nexport WINEPREFIX=\/home\/container\/.wine64\r\n\r\n## Create Config\r\n\r\nmkdir -p $HOME\/TheForestDedicatedServer_Data\/forest\/config\/\r\n#rm -fR $HOME\/TheForestDedicatedServer_Data\/forest\/config\/config.cfg\r\ncat < $HOME\/TheForestDedicatedServer_Data\/forest\/config\/config.cfg\r\n\/\/ Dedicated Server Settings.\r\n\/\/ Server IP address - Note: If you have a router, this address is the internal address, and you need to configure ports forwarding, append the current game port here as well\r\nserverIP\r\n\/\/ Steam Communication Port - Note: If you have a router you will need to open this port.\r\nserverSteamPort\r\n\/\/ Game Communication Port - Note: If you have a router you will need to open this port.\r\nserverGamePort\r\n\/\/ Query Communication Port - Note: If you have a router you will need to open this port.\r\nserverQueryPort\r\n\/\/ Server display name\r\nserverName\r\n\/\/ Maximum number of players\r\nserverPlayers 5\r\n\/\/ Server password. blank means no password\r\nserverPassword\r\n\/\/ Server administration password. blank means no password\r\nserverPasswordAdmin\r\n\/\/ Your Steam account name. blank means anonymous (see Steam server account bellow)\r\nserverSteamAccount\r\n\/\/ Enable VAC (Valve Anti Cheat) on the server. off by default, uncomment to enable\r\nenableVAC on\r\n\/\/ Time between server auto saves in minutes\r\nserverAutoSaveInterval 15\r\n\/\/ Game difficulty mode. Must be set to \"Peaceful\" \"Normal\" or \"Hard\"\r\ndifficulty Normal\r\n\/\/ New or continue a game. Must be set to \"New\" or \"Continue\"\r\ninitType New\r\n\/\/ Slot to save the game. Must be set 1 2 3 4 or 5\r\nslot 1\r\n\/\/ Show event log. Must be set \"off\" or \"on\"\r\nshowLogs off\r\n\/\/ Contact email for server admin\r\nserverContact email@gmail.com\r\n\/\/ No enemies. Must be set to \"on\" or \"off\"\r\nveganMode off\r\n\/\/ No enemies during day time. Must be set to \"on\" or \"off\"\r\nvegetarianMode off\r\n\/\/ Reset all structure holes when loading a save. Must be set to \"on\" or \"off\"\r\nresetHolesMode off\r\n\/\/ Regrow 10% of cut down trees when sleeping. Must be set to \"on\" or \"off\"\r\ntreeRegrowMode off\r\n\/\/ Allow building destruction. Must be set to \"on\" or \"off\"\r\nallowBuildingDestruction on\r\n\/\/ Allow enemies in creative games. Must be set to \"on\" or \"off\"\r\nallowEnemiesCreativeMode off\r\n\/\/ Allow clients to use the built in development console. Must be set to \"on\" or \"off\"\r\nallowCheats off\r\n\/\/ Allows defining a custom folder for save slots, leave empty to use the default location\r\nsaveFolderPath\r\n\/\/ Target FPS when no client is connected\r\ntargetFpsIdle 5\r\n\/\/ Target FPS when there is at least one client connected\r\ntargetFpsActive 60\r\nEOT", + "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## Create Config\r\n\r\nmkdir -p $HOME\/TheForestDedicatedServer_Data\/forest\/config\/\r\n#rm -fR $HOME\/TheForestDedicatedServer_Data\/forest\/config\/config.cfg\r\ncat < $HOME\/TheForestDedicatedServer_Data\/forest\/config\/config.cfg\r\n\/\/ Dedicated Server Settings.\r\n\/\/ Server IP address - Note: If you have a router, this address is the internal address, and you need to configure ports forwarding, append the current game port here as well\r\nserverIP\r\n\/\/ Steam Communication Port - Note: If you have a router you will need to open this port.\r\nserverSteamPort\r\n\/\/ Game Communication Port - Note: If you have a router you will need to open this port.\r\nserverGamePort\r\n\/\/ Query Communication Port - Note: If you have a router you will need to open this port.\r\nserverQueryPort\r\n\/\/ Server display name\r\nserverName\r\n\/\/ Maximum number of players\r\nserverPlayers 5\r\n\/\/ Server password. blank means no password\r\nserverPassword\r\n\/\/ Server administration password. blank means no password\r\nserverPasswordAdmin\r\n\/\/ Your Steam account name. blank means anonymous (see Steam server account bellow)\r\nserverSteamAccount\r\n\/\/ Enable VAC (Valve Anti Cheat) on the server. off by default, uncomment to enable\r\nenableVAC on\r\n\/\/ Time between server auto saves in minutes\r\nserverAutoSaveInterval 15\r\n\/\/ Game difficulty mode. Must be set to \"Peaceful\" \"Normal\" or \"Hard\"\r\ndifficulty Normal\r\n\/\/ New or continue a game. Must be set to \"New\" or \"Continue\"\r\ninitType New\r\n\/\/ Slot to save the game. Must be set 1 2 3 4 or 5\r\nslot 1\r\n\/\/ Show event log. Must be set \"off\" or \"on\"\r\nshowLogs off\r\n\/\/ Contact email for server admin\r\nserverContact email@gmail.com\r\n\/\/ No enemies. Must be set to \"on\" or \"off\"\r\nveganMode off\r\n\/\/ No enemies during day time. Must be set to \"on\" or \"off\"\r\nvegetarianMode off\r\n\/\/ Reset all structure holes when loading a save. Must be set to \"on\" or \"off\"\r\nresetHolesMode off\r\n\/\/ Regrow 10% of cut down trees when sleeping. Must be set to \"on\" or \"off\"\r\ntreeRegrowMode off\r\n\/\/ Allow building destruction. Must be set to \"on\" or \"off\"\r\nallowBuildingDestruction on\r\n\/\/ Allow enemies in creative games. Must be set to \"on\" or \"off\"\r\nallowEnemiesCreativeMode off\r\n\/\/ Allow clients to use the built in development console. Must be set to \"on\" or \"off\"\r\nallowCheats off\r\n\/\/ Allows defining a custom folder for save slots, leave empty to use the default location\r\nsaveFolderPath\r\n\/\/ Target FPS when no client is connected\r\ntargetFpsIdle 5\r\n\/\/ Target FPS when there is at least one client connected\r\ntargetFpsActive 60\r\nEOT\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -149,6 +149,26 @@ "user_editable": true, "rules": "required|boolean", "field_type": "text" + }, + { + "name": "[SYSTEM] WINEDEBUG", + "description": "don't change this !!!", + "env_variable": "WINEDEBUG", + "default_value": "-all", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "[SYSTEM] WINEARCH", + "description": "", + "env_variable": "WINEARCH", + "default_value": "win64", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" } ] -} +} \ No newline at end of file From 58c023b6276784724099370f570a80357e00b08f Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 28 Jan 2023 11:50:23 +0100 Subject: [PATCH 087/473] cleanup Iosocer --- .../iosoccer/eggs-iosoccer.json | 54 ++++++++++++------- 1 file changed, 35 insertions(+), 19 deletions(-) diff --git a/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json b/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json index 0936c2a4..70321271 100644 --- a/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json +++ b/game_eggs/steamcmd_servers/iosoccer/eggs-iosoccer.json @@ -1,30 +1,30 @@ { "_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-02-20T01:24:34+01:00", - "name": "IOSOCER-server", + "exported_at": "2023-01-28T11:45:54+01:00", + "name": "Iosoccer server", "author": "hyperbeats@raptorhost.fr", "description": "SERVER IOSOCCER", "features": [ "steam_disk_space" ], - "images": [ - "ghcr.io\/parkervcp\/games:source" - ], + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" + }, "file_denylist": [], - "startup": ".\/srcds_run -console -game iosoccer -condebug -port {{SERVER_PORT}} +maxplayers {{SLOTS}} +fps_max {{MAX_FPS}} -tickrate {{TICKRATE}} +map {{MAP}} +rcon_password {{RCON}}", + "startup": ".\/srcds_run -console -game iosoccer -condebug -port {{SERVER_PORT}} +maxplayers {{SLOTS}} +fps_max {{MAX_FPS}} -tickrate {{TICKRATE}} +map {{MAP}} +rcon_password {{RCON}} +ip 0.0.0.0", "config": { "files": "{}", - "startup": "{\r\n \"done\": \"Connection to Steam servers successful.\",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "startup": "{\r\n \"done\": \"Connection to Steam servers successful.\"\r\n}", + "logs": "{}", "stop": "quit" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -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 +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} validate +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} validate +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n\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": "673990", "user_viewable": true, "user_editable": false, - "rules": "required|regex:\/^(673990)$\/" + "rules": "required|in:673990", + "field_type": "text" }, { "name": "MAP", @@ -46,7 +47,8 @@ "default_value": "8v8_vienna", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:32", + "field_type": "text" }, { "name": "SLOTS", @@ -55,7 +57,8 @@ "default_value": "32", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "TICKRATE", @@ -64,7 +67,8 @@ "default_value": "100", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "MAX FPS", @@ -73,16 +77,28 @@ "default_value": "500", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|integer", + "field_type": "text" }, { - "name": "RCON", + "name": "RCON password", "description": "", "env_variable": "RCON", - "default_value": "pleasechangepassword", + "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:32", + "field_type": "text" + }, + { + "name": "Auto update", + "description": "Auto update the server on start", + "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 6be210e431d5b8ae9c31c513f8c77f22f54d9d99 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 28 Jan 2023 11:56:40 +0100 Subject: [PATCH 088/473] Iosoccer add basic readme --- README.md | 3 ++- game_eggs/README.md | 1 + game_eggs/steamcmd_servers/README.md | 4 ++++ game_eggs/steamcmd_servers/iosoccer/readme.md | 15 +++++++++++++++ 4 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 game_eggs/steamcmd_servers/iosoccer/readme.md diff --git a/README.md b/README.md index 58fbc2d9..502b9570 100644 --- a/README.md +++ b/README.md @@ -206,6 +206,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Holdfast: Nations At War](game_eggs/steamcmd_servers/holdfast) * [Hurtworld](game_eggs/steamcmd_servers/hurtworld) * [Insurgency: Sandstorm](game_eggs/steamcmd_servers/insurgency_sandstorm) +* [iosoccer](game_eggs/steamcmd_servers/iosoccer) * [Killing Floor 2](game_eggs/steamcmd_servers/killing_floor_2) * [Left 4 Dead](game_eggs/steamcmd_servers/left4dead) * [Left 4 Dead 2](game_eggs/steamcmd_servers/left4dead_2) @@ -243,7 +244,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Valheim](game_eggs/steamcmd_servers/valheim) * [Valheim Vanilla](game_eggs/steamcmd_servers/valheim/valheim_vanilla) * [Valheim Plus Mod](game_eggs/steamcmd_servers/valheim/valheim_plus) -* [iosoccer](game_eggs/steamcmd_servers/iosoccer) + [Teeworlds](game_eggs/teeworlds) diff --git a/game_eggs/README.md b/game_eggs/README.md index 1a62e6e1..97fb4d06 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -123,6 +123,7 @@ * [Holdfast: Nations At War](steamcmd_servers/holdfast) * [Hurtworld](steamcmd_servers/hurtworld) * [Insurgency: Sandstorm](steamcmd_servers/insurgency_sandstorm) +* [iosoccer](steamcmd_servers/iosoccer) * [Killing Floor 2](steamcmd_servers/killing_floor_2) * [Left 4 Dead](steamcmd_servers/left4dead) * [Left 4 Dead 2](steamcmd_servers/left4dead_2) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index d6085c8a..ef440c33 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -72,6 +72,10 @@ This is a collection of servers that use SteamCMD to install. [Insurgency: Sandstorm](insurgency_sandstorm) +## Iosoccer + +[iosoccer](iosoccer) + ## Killing Floor 2 [Killing Floor 2](killing_floor_2) diff --git a/game_eggs/steamcmd_servers/iosoccer/readme.md b/game_eggs/steamcmd_servers/iosoccer/readme.md new file mode 100644 index 00000000..6f78cfb5 --- /dev/null +++ b/game_eggs/steamcmd_servers/iosoccer/readme.md @@ -0,0 +1,15 @@ +# Iosoccer + +## [Steam](https://store.steampowered.com/app/673560/IOSoccer/) + + +IOSoccer is a free non-commercial competitive third-person online multiplayer soccer game that offers unparalleled freedom in ball control and gameplay depth + +## Server Ports + +These are the servers required ports + +| Port | default | +|---------|---------| +| Game | 27015 | + From 801db63fba2c595c8d787c66b5955bc9a2176de3 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sat, 28 Jan 2023 14:28:53 +0100 Subject: [PATCH 089/473] Update egg-7-days-to-die.json --- .../7_days_to_die/egg-7-days-to-die.json | 38 +++++++++++-------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json b/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json index 81309ccc..5bdda6f0 100644 --- a/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json +++ b/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.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": "2021-12-22T12:58:29+01:00", + "exported_at": "2023-01-28T14:28:16+01:00", "name": "7 Days To Die", "author": "kristoffer.norman@bahnhof.se", "description": "7 days to die server", "features": [ "steam_disk_space" ], - "images": [ - "ghcr.io\/parkervcp\/games:source" - ], + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" + }, "file_denylist": [], "startup": ".\/7DaysToDieServer.x86_64 -configfile=serverconfig.xml -quit -batchmode -nographics -dedicated -ServerPort=${SERVER_PORT} -ServerMaxPlayerCount=${MAX_PLAYERS} -GameDifficulty=${GAME_DIFFICULTY} -ControlPanelEnabled=false -TelnetEnabled=true -TelnetPort=${TELNET_PORT} -TelnetPassword=${PASSWORD} -logfile logs\/latest.log & echo -e \"Checking on telnet connection\" && until nc -z -v -w5 127.0.0.1 ${TELNET_PORT}; do echo \"Waiting for telnet connection...\"; sleep 5; done && $( [[ -z ${PASSWORD} ]] && printf %s \"telnet -E 127.0.0.1 ${TELNET_PORT}\" || printf %s \"rcon -t telnet -a 127.0.0.1:${TELNET_PORT} -p {{PASSWORD}}\" )", "config": { @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# 7 days to die Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napt -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 \r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## add below your custom commands if needed\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -37,7 +37,8 @@ "default_value": "8", "user_viewable": true, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Game Difficulty", @@ -46,7 +47,8 @@ "default_value": "2", "user_viewable": true, "user_editable": true, - "rules": "required|integer|between:0,5" + "rules": "required|integer|between:0,5", + "field_type": "text" }, { "name": "Source AppID", @@ -55,7 +57,8 @@ "default_value": "294420", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Auto Update", @@ -64,7 +67,8 @@ "default_value": "1", "user_viewable": true, "user_editable": true, - "rules": "required|boolean" + "rules": "required|boolean", + "field_type": "text" }, { "name": "ld lib path", @@ -73,7 +77,8 @@ "default_value": ".", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Beta Branch", @@ -82,7 +87,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:20" + "rules": "nullable|string|max:20", + "field_type": "text" }, { "name": "Telnet Password", @@ -91,7 +97,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:30" + "rules": "nullable|string|max:30", + "field_type": "text" }, { "name": "Telnet Port", @@ -100,7 +107,8 @@ "default_value": "8081", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" } ] -} +} \ No newline at end of file From 62f070e2f7a2342ff820405c58a8f09d2c181728 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sat, 28 Jan 2023 14:58:19 -0500 Subject: [PATCH 090/473] update contribution and pr docs Update contributing.md update pull_request_template.md --- .github/pull_request_template.md | 4 ++- CONTRIBUTING.md | 48 +++++++++++++++++++------------- 2 files changed, 31 insertions(+), 21 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 417c9009..45b0e976 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -4,9 +4,11 @@ ## Checklist for all submissions - + * [ ] Have you followed the guidelines in our [Contributing document](https://github.com/parkervcp/eggs/blob/master/CONTRIBUTING.md)? +* [ ] You verify that the start command applied does not use a shell script + * [ ] If some script is needed then it is part of a current yolk or a PR to add one * [ ] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change? * [ ] Have you tested and reviewed your changes with confidence that everything works? * [ ] Did you branch your changes and PR from that branch and not from your master branch? diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 783aad05..6d5a6a10 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,17 +4,25 @@ You can contribute by either creating a new pull request or testing [existing pu ## General rules for eggs -1. Keep it simple. +1. Don't be afraid to submit PR's to the egg repo. + I don't bite. I will work with you on the egg and the required things to run it. Feel free to open a draft PR if you don't quite have the egg finished yet by yourself. + +2. Keep it secure. + No start scripts that a user can edit. + If a start script is needed it should be part of a yolk. + +3. Keep it simple. We don't need 8 miles of the install script. -2. Keep it small. - Only use what is absolutely needed. The [Yolks install images](https://github.com/parkervcp/yolks#installation-images) already contain the most basic packages that speeds up the installation process. +4. Keep it small. + Only use what is absolutely needed. The [yolks install images](https://github.com/parkervcp/yolks#installation-images) already contain the most basic packages that speeds up the installation process. -3. Use the stock images. +5. Use the stock images. If you need something in an image, open a PR in [my yolks repo](https://github.com/parkervcp/yolks) where it can be reviewed and built. Self-hosted or third-party images won't be accepted for security reasons. -4. Don't be afraid to submit PR's to the egg repo. - I don't bite. I will work with you on the egg and the required things to run it. Feel free to open a draft PR if you don't quite have the egg finished yet by yourself. +6. Export eggs from the panel + We ask that you use the panel to manage and export eggs. + This keeps the egg format correctly ### Sources for working on a new egg @@ -31,30 +39,30 @@ We have a collection of [existing install script snippets](https://github.com/pa The Pterodactyl install process is fairly simple once you know it. ```md - 1. Spin up install container - Creates a new container using an install image that's run as root. - Uses a volume mount on `/mnt/server` for the server files, which is the working directory during installation. - The volume will be later mounted as `/home/container` for the server container. Any files outside of `/mnt/server` will be gone after installation. - Install script can pull files or set up all that is needed to run the server, such as writing files, directories or compiling apps. - It is regularly used to just download the files required. Such as server files and configs. +1. Spin up install container + Creates a new container using an install image that's run as root. + Uses a volume mount on `/mnt/server` for the server files, which is the working directory during installation. + The volume will be later mounted as `/home/container` for the server container. Any files outside of `/mnt/server` will be gone after installation. + Install script can pull files or set up all that is needed to run the server, such as writing files, directories or compiling apps. + It is regularly used to just download the files required. Such as server files and configs. - 2. Stop and destroy install container +2. Stop and destroy install container - 3. Start a new container with the server files in /home/container - This is where the server is actually run. No root privileges. - Any dependencies installed during the install process are gone. - The container that is started should have everything you need. - No packages can be installed. Any required dependencies must exist in the used Docker image. +3. Start a new container with the server files in /home/container + This is where the server is actually run. No root privileges. + Any dependencies installed during the install process are gone. + The container that is started should have everything you need. + No packages can be installed. Any required dependencies must exist in the used Docker image. ``` ## Step 2 ### Testing -Make sure your install process is rock solid as I will be testing eggs before they ever hit my repo. +Make sure your install process is rock solid as eggs will be tested before they are merged. -I will make suggestions and changes at will. +Suggestions and changes will be made at will. This is to maintain a clean repo that others can pull and be fully aware of what is being done. ## Step 3 From 67f4e74b7ff0096ffa829796c85a580de24c83ab Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sat, 28 Jan 2023 16:11:56 -0500 Subject: [PATCH 091/473] reorganize pull req template move start command and export message for updating an egg Add start command and export message for adding a new egg --- .github/pull_request_template.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 45b0e976..c6f9007d 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -7,13 +7,17 @@ * [ ] Have you followed the guidelines in our [Contributing document](https://github.com/parkervcp/eggs/blob/master/CONTRIBUTING.md)? -* [ ] You verify that the start command applied does not use a shell script - * [ ] If some script is needed then it is part of a current yolk or a PR to add one * [ ] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change? * [ ] Have you tested and reviewed your changes with confidence that everything works? * [ ] Did you branch your changes and PR from that branch and not from your master branch? * If not, why?: + + +* [ ] You verify that the start command applied does not use a shell script + * [ ] If some script is needed then it is part of a current yolk or a PR to add one +* [ ] The egg was exported from the panel + ## New egg Submissions @@ -24,3 +28,6 @@ * [ ] Did you PR the necessary changes to make it work? 3. [ ] Have you added the egg to the main README.md and any other README files in subdirectories of the egg (e.g /game_eggs) according to the alphabetical order? 4. [ ] Have you added a unique README.md for the egg you are adding according to the alphabetical order? +5. [ ] You verify that the start command applied does not use a shell script + * [ ] If some script is needed then it is part of a current yolk or a PR to add one +6. [ ] The egg was exported from the panel \ No newline at end of file From c4f3aba246b2034cf42214003dff8aebbbb6278d Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 29 Jan 2023 09:39:36 +0100 Subject: [PATCH 092/473] add Valheim BepInEx --- README.md | 1 + game_eggs/README.md | 3 +- game_eggs/steamcmd_servers/README.md | 1 + .../valheim/valheim_bepinex/README.md | 36 ++++ .../egg-valheim-bep-i-nex.json | 184 ++++++++++++++++++ 5 files changed, 224 insertions(+), 1 deletion(-) create mode 100644 game_eggs/steamcmd_servers/valheim/valheim_bepinex/README.md create mode 100644 game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json diff --git a/README.md b/README.md index 12f6e8a0..c9d4954e 100644 --- a/README.md +++ b/README.md @@ -280,6 +280,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [V Rising](game_eggs/steamcmd_servers/v_rising) * [Valheim](game_eggs/steamcmd_servers/valheim) * [Valheim Vanilla](game_eggs/steamcmd_servers/valheim/valheim_vanilla) + * [Valheim BepInEx](game_eggs/steamcmd_servers/valheim/valheim_bepinex) * [Valheim Plus Mod](game_eggs/steamcmd_servers/valheim/valheim_plus) [Teeworlds](game_eggs/teeworlds) diff --git a/game_eggs/README.md b/game_eggs/README.md index 0851d96a..08719f1e 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -179,8 +179,9 @@ * [Unturned](steamcmd_servers/unturned) * [V Rising](steamcmd_servers/v_rising) * [Valheim](steamcmd_servers/valheim) - * [Valheim Plus Mod](steamcmd_servers/valheim/valheim_plus) * [Valheim Vanilla](steamcmd_servers/valheim/valheim_vanilla) + * [Valheim BepInEx](steamcmd_servers/valheim/valheim_bepinex) + * [Valheim Plus Mod](steamcmd_servers/valheim/valheim_plus) [Teeworlds](teeworlds) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index fb039375..f3804959 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -238,4 +238,5 @@ This is a collection of servers that use SteamCMD to install. [Valheim](valheim) * [Valheim Vanilla](valheim/valheim_vanilla) + * [Valheim BepInEx](valheim/valheim_bepinex) * [Valheim Plus Mod](valheim/valheim_plus) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/README.md b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/README.md new file mode 100644 index 00000000..c8b1e400 --- /dev/null +++ b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/README.md @@ -0,0 +1,36 @@ +# Valheim BepInEx + +## 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) | + +## Valheim + +A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture. Battle, build, and conquer your way to a saga worthy of Odin’s patronage! +https://store.steampowered.com/app/892970/Valheim/ + +## BepInEx + +BepInEx is a general purpose framework for Unity modding. BepInEx includes tools and libraries to +- load custom code (hereafter plugins) into the game on launch; +- patch in-game methods, classes and even entire assemblies without touching original game files; +- configure plugins and log game to desired outputs like console or file; +- manage plugin dependencies. + +BepInEx is currently one of the most popular modding tools for Unity on GitHub. + +This pack is preconfigured and usable for Valheim modding. +In particular, the changes from base BepInEx releases are: + +- Added preconfigured BepInEx.cfg with console enabled. +- Added unstripped Unity + Mono BCL DLLs for current versions of the game. See this issue comment for more info. +- Updated Doorstop configuration and BepInEx to allow to load unstripped DLLs without having to overwrite game DLLs. +- Added scripts necessary to run both game and dedicated server on Linux machines + +## Server Ports + +| Port | default | +|-------|---------| +| Game | 2456 | +| Query | 2457 | diff --git a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json new file mode 100644 index 00000000..3698c861 --- /dev/null +++ b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json @@ -0,0 +1,184 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-01-29T09:34:58+01:00", + "name": "Valheim BepINex", + "author": "info@goover.de", + "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture incl the Plugin Framework BepInEx", + "features": [ + "steam_disk_space" + ], + "docker_images": { + "ghcr.io\/parkervcp\/games:valheim": "ghcr.io\/parkervcp\/games:valheim" + }, + "file_denylist": [], + "startup": "export DOORSTOP_ENABLE=TRUE; export DOORSTOP_INVOKE_DLL_PATH=.\/BepInEx\/core\/BepInEx.Preloader.dll; export DOORSTOP_CORLIB_OVERRIDE_PATH=.\/unstripped_corlib; export LD_LIBRARY_PATH=\".\/doorstop_libs:$LD_LIBRARY_PATH\"; export LD_PRELOAD=\"libdoorstop_x64.so:$LD_PRELOAD\"; export templdpath=$LD_LIBRARY_PATH; export LD_LIBRARY_PATH=\".\/linux64:$LD_LIBRARY_PATH\"; export SteamAppId=892970; export LD_LIBRARY_PATH=$templdpath; .\/valheim_server.x86_64 -nographics -batchmode -name \"{{SERVER_NAME}}\" -port {{SERVER_PORT}} -world \"{{WORLD}}\" -password \"{{PASSWORD}}\" -public {{PUBLIC_SERVER}} -saveinterval {{BACKUP_INTERVAL}} -backups {{BACKUP_COUNT}} -backupshort {{BACKUP_SHORTTIME}} -backuplong {{BACKUP_LONGTIME}} $( [[ {{ENABLE_CROSSPLAY}} -eq 1 ]] && echo \" -crossplay \") > >(sed -uE \"{{CONSOLE_FILTER}}\") & trap \"{{STOP}}\" 15; wait $!", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"DungeonDB Start\"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# Valheim Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install curl lib32gcc-s1 ca-certificates unzip jq wget\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 +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +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\necho \"-------------------------------------------------------\"\r\necho \"installing BepInEx...\"\r\necho \"-------------------------------------------------------\"\r\nif ! api_response=$(curl -sfSL -H \"accept: application\/json\" \"https:\/\/valheim.thunderstore.io\/api\/experimental\/package\/denikson\/BepInExPack_Valheim\/\"); then\r\n fatal \"Error: could not retrieve BepInEx release info from Thunderstore.io API\"\r\nfi\r\n\r\ndownload_url=$(jq -r \".latest.download_url\" <<< \"$api_response\" )\r\nversion_number=$(jq -r \".latest.version_number\" <<< \"$api_response\" )\r\n \r\ncd \/mnt\/server\r\n#echo $download_url\r\nwget --content-disposition $download_url\r\nunzip -o denikson-BepInExPack_Valheim-${version_number}.zip\r\ncp -r \/mnt\/server\/BepInExPack_Valheim\/* \/mnt\/server\r\n\r\n\r\n##cleanup\r\necho \"-------------------------------------------------------\"\r\necho \"cleanup files...\"\r\necho \"-------------------------------------------------------\"\r\nrm -fR BepInExPack_Valheim\r\nrm -fR icon.png\r\nrm -fR denikson-BepInExPack_Valheim-*\r\nrm -fR manifest.json\r\nrm -fR README.m\r\n\r\n#rm -fR start_*\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Installation completed\"\r\necho \"-------------------------------------------------------\"", + "container": "ghcr.io\/pteroforge\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Server Name", + "description": "Name that appears in server browser.", + "env_variable": "SERVER_NAME", + "default_value": "My Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:60", + "field_type": "text" + }, + { + "name": "Server Password", + "description": "Server password.", + "env_variable": "PASSWORD", + "default_value": "secret", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|min:5|max:20", + "field_type": "text" + }, + { + "name": "World Name", + "description": "Name to load if switching between multiple saved worlds.", + "env_variable": "WORLD", + "default_value": "Dedicated", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Public Server", + "description": "", + "env_variable": "PUBLIC", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "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": "Enable Crossplay", + "description": "Enable crossplay support", + "env_variable": "ENABLE_CROSSPLAY", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Beta Branch", + "description": "", + "env_variable": "SRCDS_BETAID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "max:30", + "field_type": "text" + }, + { + "name": "Beta Password", + "description": "", + "env_variable": "SRCDS_BETAPASS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "max:30", + "field_type": "text" + }, + { + "name": "Backup Interval", + "description": "Change how often the world will save in seconds. Default: 1800 (30 minutes).", + "env_variable": "BACKUP_INTERVAL", + "default_value": "1800", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, + { + "name": "Backup Count", + "description": "Sets how many automatic backups will be kept. The first is the 'short' backup length, and the rest are the 'long' backup length. When default values are used means one backup that is 2 hours old, and 3 backups that are 12 hours apart. Default: 4.", + "env_variable": "BACKUP_COUNT", + "default_value": "4", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, + { + "name": "Backup Shorttime", + "description": "Sets the interval between the first automatic backups in seconds. Default: 7200 (2 hours).", + "env_variable": "BACKUP_SHORTTIME", + "default_value": "7200", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, + { + "name": "Backup Longtime", + "description": "Sets the interval between the subsequent automatic backups in seconds. Default: 43200 (12 hours).", + "env_variable": "BACKUP_LONGTIME", + "default_value": "43200", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|min:0", + "field_type": "text" + }, + { + "name": "[System] Console Filter", + "description": "Remove unwanted outputs from the console.", + "env_variable": "CONSOLE_FILTER", + "default_value": "\/^\\(Filename:.*Line:[[:space:]]+[[:digit:]]+\\)$\/d; \/^([[:space:]]+)?$\/d", + "user_viewable": false, + "user_editable": false, + "rules": "string", + "field_type": "text" + }, + { + "name": "[System] App ID", + "description": "Valheim steam app id for auto updates.", + "env_variable": "SRCDS_APPID", + "default_value": "896660", + "user_viewable": true, + "user_editable": false, + "rules": "nullable|numeric", + "field_type": "text" + }, + { + "name": "[System] LD Library Path", + "description": "Required to load server libraries.", + "env_variable": "LD_LIBRARY_PATH", + "default_value": ".\/linux64", + "user_viewable": false, + "user_editable": false, + "rules": "required|string", + "field_type": "text" + } + ] +} \ No newline at end of file From a985670de37d0f3322974021a99a73a60bb2d5fa Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 29 Jan 2023 10:25:03 +0100 Subject: [PATCH 093/473] Update egg-valheim-bep-i-nex.json --- .../valheim/valheim_bepinex/egg-valheim-bep-i-nex.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json index 3698c861..3d3ba8bf 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-29T09:34:58+01:00", + "exported_at": "2023-01-29T10:24:39+01:00", "name": "Valheim BepINex", "author": "info@goover.de", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture incl the Plugin Framework BepInEx", @@ -24,8 +24,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Valheim Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install curl lib32gcc-s1 ca-certificates unzip jq wget\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 +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +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\necho \"-------------------------------------------------------\"\r\necho \"installing BepInEx...\"\r\necho \"-------------------------------------------------------\"\r\nif ! api_response=$(curl -sfSL -H \"accept: application\/json\" \"https:\/\/valheim.thunderstore.io\/api\/experimental\/package\/denikson\/BepInExPack_Valheim\/\"); then\r\n fatal \"Error: could not retrieve BepInEx release info from Thunderstore.io API\"\r\nfi\r\n\r\ndownload_url=$(jq -r \".latest.download_url\" <<< \"$api_response\" )\r\nversion_number=$(jq -r \".latest.version_number\" <<< \"$api_response\" )\r\n \r\ncd \/mnt\/server\r\n#echo $download_url\r\nwget --content-disposition $download_url\r\nunzip -o denikson-BepInExPack_Valheim-${version_number}.zip\r\ncp -r \/mnt\/server\/BepInExPack_Valheim\/* \/mnt\/server\r\n\r\n\r\n##cleanup\r\necho \"-------------------------------------------------------\"\r\necho \"cleanup files...\"\r\necho \"-------------------------------------------------------\"\r\nrm -fR BepInExPack_Valheim\r\nrm -fR icon.png\r\nrm -fR denikson-BepInExPack_Valheim-*\r\nrm -fR manifest.json\r\nrm -fR README.m\r\n\r\n#rm -fR start_*\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Installation completed\"\r\necho \"-------------------------------------------------------\"", - "container": "ghcr.io\/pteroforge\/installers:debian", + "script": "#!\/bin\/bash\r\n# Valheim Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install wget\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 +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +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\necho \"-------------------------------------------------------\"\r\necho \"installing BepInEx...\"\r\necho \"-------------------------------------------------------\"\r\nif ! api_response=$(curl -sfSL -H \"accept: application\/json\" \"https:\/\/valheim.thunderstore.io\/api\/experimental\/package\/denikson\/BepInExPack_Valheim\/\"); then\r\n fatal \"Error: could not retrieve BepInEx release info from Thunderstore.io API\"\r\nfi\r\n\r\ndownload_url=$(jq -r \".latest.download_url\" <<< \"$api_response\" )\r\nversion_number=$(jq -r \".latest.version_number\" <<< \"$api_response\" )\r\n \r\ncd \/mnt\/server\r\n#echo $download_url\r\nwget --content-disposition $download_url\r\nunzip -o denikson-BepInExPack_Valheim-${version_number}.zip\r\ncp -r \/mnt\/server\/BepInExPack_Valheim\/* \/mnt\/server\r\n\r\n\r\n##cleanup\r\necho \"-------------------------------------------------------\"\r\necho \"cleanup files...\"\r\necho \"-------------------------------------------------------\"\r\nrm -fR BepInExPack_Valheim\r\nrm -fR icon.png\r\nrm -fR denikson-BepInExPack_Valheim-*\r\nrm -fR manifest.json\r\nrm -fR README.m\r\n\r\n#rm -fR start_*\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Installation completed\"\r\necho \"-------------------------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } }, @@ -67,7 +67,7 @@ "default_value": "1", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20", + "rules": "required|boolean", "field_type": "text" }, { From 404a3f802878a74549afad1ce827551eacad1ad7 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 29 Jan 2023 11:28:38 +0100 Subject: [PATCH 094/473] add missing STOP Variable --- .../valheim_bepinex/egg-valheim-bep-i-nex.json | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json index 3d3ba8bf..aecfa657 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-29T10:24:39+01:00", + "exported_at": "2023-01-29T11:28:22+01:00", "name": "Valheim BepINex", "author": "info@goover.de", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture incl the Plugin Framework BepInEx", @@ -20,7 +20,7 @@ "files": "{}", "startup": "{\r\n \"done\": \"DungeonDB Start\"\r\n}", "logs": "{}", - "stop": "^^C" + "stop": "^C" }, "scripts": { "installation": { @@ -179,6 +179,16 @@ "user_editable": false, "rules": "required|string", "field_type": "text" + }, + { + "name": "Shutdown Command", + "description": "", + "env_variable": "STOP", + "default_value": "kill -2 $!; wait;", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" } ] } \ No newline at end of file From 41a9d44d2c4b47b7b0d05234003d341a2b781a7b Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 29 Jan 2023 11:39:07 +0100 Subject: [PATCH 095/473] small fix --- .../valheim/valheim_bepinex/egg-valheim-bep-i-nex.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json index aecfa657..da7b76cc 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-29T11:28:22+01:00", + "exported_at": "2023-01-29T11:38:42+01:00", "name": "Valheim BepINex", "author": "info@goover.de", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture incl the Plugin Framework BepInEx", @@ -181,7 +181,7 @@ "field_type": "text" }, { - "name": "Shutdown Command", + "name": "[System] Shutdown Command", "description": "", "env_variable": "STOP", "default_value": "kill -2 $!; wait;", From c392732c6e74489d68a00a615b971436ec30bf9a Mon Sep 17 00:00:00 2001 From: Edward Date: Mon, 30 Jan 2023 15:17:48 +1100 Subject: [PATCH 096/473] Fix rust staging branch variable not working --- .../steamcmd_servers/rust/rust_staging/egg-rust-staging.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/rust/rust_staging/egg-rust-staging.json b/game_eggs/steamcmd_servers/rust/rust_staging/egg-rust-staging.json index dcb0e2b2..ef5298f5 100644 --- a/game_eggs/steamcmd_servers/rust/rust_staging/egg-rust-staging.json +++ b/game_eggs/steamcmd_servers/rust/rust_staging/egg-rust-staging.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-11-26T11:35:36+01:00", + "exported_at": "2023-01-30T15:13:30+11:00", "name": "Rust Staging", "author": "root@smc.li", "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.", @@ -143,7 +143,7 @@ { "name": "Branch", "description": "Select the branch to install, such as staging or workcart", - "env_variable": "BRANCH", + "env_variable": "SRCDS_BETAID", "default_value": "staging", "user_viewable": true, "user_editable": true, From d446b380ea152e0ad780f4bc5f9b9c1e4dc2f5ac Mon Sep 17 00:00:00 2001 From: gOOvER Date: Tue, 31 Jan 2023 12:00:36 +0100 Subject: [PATCH 097/473] Update egg-FoundryVTT.json --- game_eggs/FoundryVTT/egg-FoundryVTT.json | 25 +++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/game_eggs/FoundryVTT/egg-FoundryVTT.json b/game_eggs/FoundryVTT/egg-FoundryVTT.json index a61725ca..8613756b 100644 --- a/game_eggs/FoundryVTT/egg-FoundryVTT.json +++ b/game_eggs/FoundryVTT/egg-FoundryVTT.json @@ -1,28 +1,28 @@ { "_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-13T13:06:21-08:00", + "exported_at": "2023-01-31T11:59:34+01:00", "name": "Foundry VTT", "author": "pterodactyl@demi.cloud", "description": "Foundry VTT is a standalone application built for experiencing multiplayer tabletop RPGs using a feature-rich and modern self-hosted application where your players connect directly through the browser.", "features": null, - "images": [ - "ghcr.io\/parkervcp\/yolks:nodejs_17" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:nodejs_18": "ghcr.io\/parkervcp\/yolks:nodejs_18" + }, "file_denylist": [], "startup": "node .\/app\/resources\/app\/main.js --dataPath=\"\/home\/container\/data\"", "config": { "files": "{\r\n \"data\/Config\/options.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"port\": \"{{server.build.default.port}}\",\r\n \"language\": \"{{server.build.env.FOUNDRY_LANGUAGE}}\",\r\n \"updateChannel\": \"{{server.build.env.UPDATE_CHANNEL}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Server started and listening on port\"\r\n}", "logs": "{}", - "stop": "^c" + "stop": "^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# FoundryVTT install script\r\n#\r\n# Server Files: \/mnt\/server\r\ndeclare -r DIR_ROOT=\"\/mnt\/server\"\r\ndeclare -r DIR_APP=\"${DIR_ROOT}\/app\"\r\ndeclare -r DIR_DATA=\"${DIR_ROOT}\/data\"\r\ndeclare -r ZIP_FILE_NAME=\"foundryvtt.zip\"\r\n\r\nmain() {\r\n apt update\r\n apt install -y unzip\r\n\r\n printf \"\\nBuilding directory structure...\\n\"\r\n mkdir -p \"${DIR_ROOT}\/data\/Config\"\r\n mkdir -p \"${DIR_ROOT}\/app\"\r\n # shellcheck disable=SC2164\r\n cd \"${DIR_APP}\"\r\n printf \"\\nDownloading FoundryVTT files...\\n\"\r\n wget \"${TIMED_URL}\" -O \"${ZIP_FILE_NAME}\"\r\n printf \"\\nunzipping FoundryVTT files...\\n\"\r\n unzip \"${ZIP_FILE_NAME}\" -d \"${DIR_APP}\"\r\n rm \"${ZIP_FILE_NAME}\"\r\n\r\n printf \"\\nGenerating default configuration...\\n\"\r\n cat <\"${DIR_DATA}\/Config\/options.json\"\r\n{\r\n \"port\": 30000,\r\n \"upnp\": false,\r\n \"fullscreen\": false,\r\n \"hostname\": null,\r\n \"localHostname\": null,\r\n \"routePrefix\": null,\r\n \"sslCert\": null,\r\n \"sslKey\": null,\r\n \"awsConfig\": null,\r\n \"dataPath\": \"\/home\/container\/data\",\r\n \"passwordSalt\": null,\r\n \"proxySSL\": false,\r\n \"proxyPort\": null,\r\n \"minifyStaticFiles\": true,\r\n \"updateChannel\": \"release\",\r\n \"language\": \"en.core\",\r\n \"upnpLeaseDuration\": null,\r\n \"world\": null\r\n} \r\nEOF\r\n printf \"Installation Done.\\n\"\r\n}\r\nmain \"@\"", + "script": "#!\/bin\/bash\r\n# FoundryVTT install script\r\n#\r\n# Server Files: \/mnt\/server\r\ndeclare -r DIR_ROOT=\"\/mnt\/server\"\r\ndeclare -r DIR_APP=\"${DIR_ROOT}\/app\"\r\ndeclare -r DIR_DATA=\"${DIR_ROOT}\/data\"\r\ndeclare -r ZIP_FILE_NAME=\"foundryvtt.zip\"\r\n\r\nmain() {\r\n apt update\r\n apt install -y unzip\r\n\r\n printf \"\\nBuilding directory structure...\\n\"\r\n mkdir -p \"${DIR_ROOT}\/data\/Config\"\r\n mkdir -p \"${DIR_ROOT}\/app\"\r\n # shellcheck disable=SC2164\r\n cd \"${DIR_APP}\"\r\n printf \"\\nDownloading FoundryVTT files...\\n\"\r\n wget \"${TIMED_URL}\" -O \"${ZIP_FILE_NAME}\"\r\n printf \"\\nunzipping FoundryVTT files...\\n\"\r\n unzip \"${ZIP_FILE_NAME}\" -d \"${DIR_APP}\"\r\n #rm \"${ZIP_FILE_NAME}\"\r\n\r\n printf \"\\nGenerating default configuration...\\n\"\r\n cat <\"${DIR_DATA}\/Config\/options.json\"\r\n{\r\n \"port\": 30000,\r\n \"upnp\": false,\r\n \"fullscreen\": false,\r\n \"hostname\": null,\r\n \"localHostname\": null,\r\n \"routePrefix\": null,\r\n \"sslCert\": null,\r\n \"sslKey\": null,\r\n \"awsConfig\": null,\r\n \"dataPath\": \"\/home\/container\/data\",\r\n \"passwordSalt\": null,\r\n \"proxySSL\": false,\r\n \"proxyPort\": null,\r\n \"minifyStaticFiles\": true,\r\n \"updateChannel\": \"release\",\r\n \"language\": \"en.core\",\r\n \"upnpLeaseDuration\": null,\r\n \"world\": null\r\n} \r\nEOF\r\n printf \"Installation Done.\\n\"\r\n}\r\nmain \"@\"", "container": "ghcr.io\/pterodactyl\/installers:debian", "entrypoint": "bash" } @@ -35,7 +35,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|url" + "rules": "required|url", + "field_type": "text" }, { "name": "Language", @@ -44,7 +45,8 @@ "default_value": "en.core", "user_viewable": true, "user_editable": true, - "rules": "string|max:20" + "rules": "string|max:20", + "field_type": "text" }, { "name": "Update Channel", @@ -53,7 +55,8 @@ "default_value": "release", "user_viewable": true, "user_editable": true, - "rules": "string|max:256" + "rules": "string|max:256", + "field_type": "text" } ] -} +} \ No newline at end of file From 9b53b2057dbba2758350855861d8546c893361a5 Mon Sep 17 00:00:00 2001 From: Wapriaily Date: Fri, 3 Feb 2023 13:02:29 +0800 Subject: [PATCH 098/473] Update Rust and frozen flame --- .../frozen_flame/egg-frozen-flame.json | 2 +- .../rust/rust_autowipe/egg-rust-autowipe.json | 60 ++++++++++++------- 2 files changed, 41 insertions(+), 21 deletions(-) diff --git a/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json b/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json index 6ed35e80..fccb2201 100644 --- a/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json +++ b/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json @@ -50,7 +50,7 @@ }, { "name": "Server Name", - "description": "The server nane", + "description": "The server name", "env_variable": "SERVER_NAME", "default_value": "My Frozen Flame Server", "user_viewable": true, 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 cb002c52..1534f0f2 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,9 +4,9 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-11-26T11:35:12+01:00", + "exported_at": "2023-02-03T13:00:17+08:00", "name": "Rust Autowipe", - "author": "support@pterodactyl.io", + "author": "kano@wapriaily.com", "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.", "features": [ "steam_disk_space" @@ -15,7 +15,7 @@ "ghcr.io\/pterodactyl\/games:rust": "ghcr.io\/pterodactyl\/games:rust" }, "file_denylist": [], - "startup": "\".\/RustDedicated -batchmode +server.port {{SERVER_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}}\\\" +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.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}}\"", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Server startup complete\"\r\n}", @@ -30,6 +30,26 @@ } }, "variables": [ + { + "name": "SRCDS_APPID", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "258550", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "The maximum amount of players allowed in the server at once.", + "env_variable": "MAX_PLAYERS", + "default_value": "40", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer", + "field_type": "text" + }, { "name": "Server Name", "description": "The name of your server in the public server list.", @@ -100,16 +120,6 @@ "rules": "nullable|string", "field_type": "text" }, - { - "name": "Max Players", - "description": "The maximum amount of players allowed in the server at once.", - "env_variable": "MAX_PLAYERS", - "default_value": "40", - "user_viewable": true, - "user_editable": true, - "rules": "required|integer", - "field_type": "text" - }, { "name": "Server Image", "description": "The header image for the top of your server listing.", @@ -181,13 +191,23 @@ "field_type": "text" }, { - "name": "SRCDS_APPID", - "description": "", - "env_variable": "SRCDS_APPID", - "default_value": "258550", - "user_viewable": false, - "user_editable": false, - "rules": "required|string|max:20", + "name": "QUERY PORT", + "description": "Port for QUERY connections.", + "env_variable": "QUERY_PORT", + "default_value": "28017", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "APP PORT", + "description": "Port for Rust+ applications. -1 to disable.", + "env_variable": "APP_PORT", + "default_value": "28082", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer", "field_type": "text" } ] From 4f77e5a7fdb1c9dc13ec32c47b10b5b1ba7fb740 Mon Sep 17 00:00:00 2001 From: Wapriaily Date: Fri, 3 Feb 2023 14:34:50 +0800 Subject: [PATCH 099/473] Update --- .../frozen_flame/egg-frozen-flame.json | 44 +++++++++---------- .../rust/rust_autowipe/egg-rust-autowipe.json | 2 +- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json b/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json index fccb2201..cb229f4d 100644 --- a/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json +++ b/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json @@ -4,9 +4,9 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-11-19T18:35:39+01:00", + "exported_at": "2023-02-03T14:32:26+08:00", "name": "Frozen Flame", - "author": "theblitzbat@gmail.com", + "author": "parker@parkervcp.com", "description": "Frozen Flame Dedicated Server", "features": null, "docker_images": { @@ -38,6 +38,26 @@ "rules": "nullable|numeric", "field_type": "text" }, + { + "name": "Max Players", + "description": "Maximum player count", + "env_variable": "MAX_PLAYERS", + "default_value": "10", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Query Port", + "description": "The query port.", + "env_variable": "QUERY_PORT", + "default_value": "27015", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|between:1024,65536", + "field_type": "text" + }, { "name": "Additional Arguments", "description": "Specify additional launch parameters such as -crossplay. You must include a dash - and separate each parameter with space: -crossplay -exclusivejoin", @@ -68,16 +88,6 @@ "rules": "required|string|max:128", "field_type": "text" }, - { - "name": "Max Players", - "description": "Maximum player count", - "env_variable": "MAX_PLAYERS", - "default_value": "10", - "user_viewable": true, - "user_editable": true, - "rules": "required|numeric", - "field_type": "text" - }, { "name": "Auto Update", "description": "Auto update server software", @@ -87,16 +97,6 @@ "user_editable": true, "rules": "boolean", "field_type": "text" - }, - { - "name": "Query Port", - "description": "The query port.", - "env_variable": "QUERY_PORT", - "default_value": "27015", - "user_viewable": true, - "user_editable": true, - "rules": "required|integer|between:1024,65536", - "field_type": "text" } ] } \ No newline at end of file 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 1534f0f2..84e4032f 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 @@ -6,7 +6,7 @@ }, "exported_at": "2023-02-03T13:00:17+08:00", "name": "Rust Autowipe", - "author": "kano@wapriaily.com", + "author": "parker@parkervcp.com", "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.", "features": [ "steam_disk_space" From 1930eb72dc265375e697d0133fb2e0d311ed7e95 Mon Sep 17 00:00:00 2001 From: Wapriaily Date: Fri, 3 Feb 2023 14:37:50 +0800 Subject: [PATCH 100/473] Restore the author --- .../steamcmd_servers/rust/rust_autowipe/egg-rust-autowipe.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 84e4032f..eaa55f52 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 @@ -6,7 +6,7 @@ }, "exported_at": "2023-02-03T13:00:17+08:00", "name": "Rust Autowipe", - "author": "parker@parkervcp.com", + "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.", "features": [ "steam_disk_space" From 9f42e907ce34af601a02d3c1a2db1dd646a24402 Mon Sep 17 00:00:00 2001 From: Wapriaily Date: Fri, 3 Feb 2023 22:23:07 +0800 Subject: [PATCH 101/473] Restore the author --- game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json b/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json index cb229f4d..f76ca3ff 100644 --- a/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json +++ b/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-02-03T14:32:26+08:00", "name": "Frozen Flame", - "author": "parker@parkervcp.com", + "author": "theblitzbat@gmail.com", "description": "Frozen Flame Dedicated Server", "features": null, "docker_images": { From f2f76c26320f884d42b9e5a2491da179802c79b4 Mon Sep 17 00:00:00 2001 From: RADICALAdrift <57268573+RADICALAdrift@users.noreply.github.com> Date: Sat, 4 Feb 2023 04:49:47 +0000 Subject: [PATCH 102/473] Update README.md Updated the default game port to the correct default port 3979 --- game_eggs/tycoon_games/openttd/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/tycoon_games/openttd/README.md b/game_eggs/tycoon_games/openttd/README.md index c00a8280..d02d0c3a 100644 --- a/game_eggs/tycoon_games/openttd/README.md +++ b/game_eggs/tycoon_games/openttd/README.md @@ -6,5 +6,5 @@ OpenTTD is a business simulation game in which players try to earn money via tra | Port | Default | |---------|---------| -| Game | 3797 | +| Game | 3979 | | Admin | 3977 | From 49fa64da7204630f1e76f70ef6e9236ad611d890 Mon Sep 17 00:00:00 2001 From: BestRazer <65088083+BestRazer@users.noreply.github.com> Date: Sat, 4 Feb 2023 19:03:07 +0100 Subject: [PATCH 103/473] Added nodejs 18 support to the code server --- software/code-server/egg-code--server.json | 1 + 1 file changed, 1 insertion(+) diff --git a/software/code-server/egg-code--server.json b/software/code-server/egg-code--server.json index 30cdae39..9ed1ec63 100644 --- a/software/code-server/egg-code--server.json +++ b/software/code-server/egg-code--server.json @@ -10,6 +10,7 @@ "description": "Run VS Code on any machine anywhere and access it in the browser.", "features": null, "images": [ + "ghcr.io\/parkervcp\/yolks:nodejs_18", "ghcr.io\/parkervcp\/yolks:nodejs_17", "ghcr.io\/parkervcp\/yolks:nodejs_16", "ghcr.io\/parkervcp\/yolks:nodejs_14", From b1e16c4366178211556a12178d78f0d459520693 Mon Sep 17 00:00:00 2001 From: BestRazer <65088083+BestRazer@users.noreply.github.com> Date: Sat, 4 Feb 2023 23:07:31 +0100 Subject: [PATCH 104/473] Now exported from panel Upon request I have now exported the egg from the panel. --- software/code-server/egg-code--server.json | 24 ++++++++++++---------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/software/code-server/egg-code--server.json b/software/code-server/egg-code--server.json index 9ed1ec63..003341b0 100644 --- a/software/code-server/egg-code--server.json +++ b/software/code-server/egg-code--server.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": "2022-05-05T19:37:05+02:00", + "exported_at": "2023-02-04T23:01:25+01:00", "name": "Code-Server", "author": "mario.franze@gmail.com", "description": "Run VS Code on any machine anywhere and access it in the browser.", "features": null, - "images": [ - "ghcr.io\/parkervcp\/yolks:nodejs_18", - "ghcr.io\/parkervcp\/yolks:nodejs_17", - "ghcr.io\/parkervcp\/yolks:nodejs_16", - "ghcr.io\/parkervcp\/yolks:nodejs_14", - "ghcr.io\/parkervcp\/yolks:nodejs_12" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:nodejs_18": "ghcr.io\/parkervcp\/yolks:nodejs_18", + "ghcr.io\/parkervcp\/yolks:nodejs_17": "ghcr.io\/parkervcp\/yolks:nodejs_17", + "ghcr.io\/parkervcp\/yolks:nodejs_16": "ghcr.io\/parkervcp\/yolks:nodejs_16", + "ghcr.io\/parkervcp\/yolks:nodejs_14": "ghcr.io\/parkervcp\/yolks:nodejs_14", + "ghcr.io\/parkervcp\/yolks:nodejs_12": "ghcr.io\/parkervcp\/yolks:nodejs_12" + }, "file_denylist": [], "startup": "sh .local\/lib\/code-server-{{VERSION}}\/bin\/code-server", "config": { @@ -39,7 +39,8 @@ "default_value": "changeme", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:32" + "rules": "required|string|max:32", + "field_type": "text" }, { "name": "Version", @@ -48,7 +49,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "string|max:20" + "rules": "string|max:20", + "field_type": "text" } ] } From 99147504540d6890b615f1d6feca3ca8dad2576a Mon Sep 17 00:00:00 2001 From: TheLeCrafter <47987588+TheLeCrafter@users.noreply.github.com> Date: Mon, 6 Feb 2023 18:52:29 +0100 Subject: [PATCH 105/473] Fix egg-reposilite.json --- software/reposilite/egg-reposilite.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/software/reposilite/egg-reposilite.json b/software/reposilite/egg-reposilite.json index 585d78bc..9b1cb39a 100644 --- a/software/reposilite/egg-reposilite.json +++ b/software/reposilite/egg-reposilite.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-06-12T18:45:04+02:00", + "exported_at": "2023-02-06T18:51:07+01:00", "name": "Reposilite", "author": "mk@kcra.me", "description": "Lightweight and easy-to-use repository management software dedicated for Maven based artifacts in the JVM ecosystem.", @@ -25,7 +25,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/sh\r\n# Switch to mounted directory\r\ncd \/mnt\/server\r\n# Find latest Reposilite version, if needed\r\nif [ \"$REPOSILITE_VERSION\" == \"latest\" ]; then\r\n REPOSILITE_VERSION=$(grep -oPm1 \"(?<=)[^<]+\" <<< \"$(curl -s https:\/\/maven.reposilite.com\/releases\/org\/panda-lang\/reposilite\/maven-metadata.xml)\")\r\nfi\r\n# Check if -all suffixed jar is available\r\nstatus_code=$(curl --write-out '%{http_code}' -X HEAD -s -o \/dev\/null https:\/\/maven.reposilite.com\/releases\/org\/panda-lang\/reposilite\/${REPOSILITE_VERSION}\/reposilite-${REPOSILITE_VERSION}-all.jar)\r\n# Download new Reposilite\r\nif [ \"$status_code\" == 200 ]; then\r\n curl -o reposilite.jar https:\/\/maven.reposilite.com\/releases\/org\/panda-lang\/reposilite\/${REPOSILITE_VERSION}\/reposilite-${REPOSILITE_VERSION}-all.jar\r\nelse\r\n curl -o reposilite.jar https:\/\/maven.reposilite.com\/releases\/org\/panda-lang\/reposilite\/${REPOSILITE_VERSION}\/reposilite-${REPOSILITE_VERSION}.jar\r\nfi", + "script": "#!\/bin\/sh\r\n# Switch to mounted directory\r\ncd \/mnt\/server\r\n# Find latest Reposilite version, if needed\r\nif [ \"$REPOSILITE_VERSION\" == \"latest\" ]; then\r\n REPOSILITE_VERSION=$(grep -oPm1 \"(?<=)[^<]+\" <<< \"$(curl -s https:\/\/maven.reposilite.com\/releases\/com\/reposilite\/reposilite\/maven-metadata.xml)\")\r\nfi\r\n# Check if -all suffixed jar is available\r\nstatus_code=$(curl --write-out '%{http_code}' -X HEAD -s -o \/dev\/null https:\/\/maven.reposilite.com\/releases\/com\/reposilite\/reposilite\/${REPOSILITE_VERSION}\/reposilite-${REPOSILITE_VERSION}-all.jar)\r\n# Download new Reposilite\r\nif [ \"$status_code\" == 200 ]; then\r\n curl -o reposilite.jar https:\/\/maven.reposilite.com\/releases\/com\/reposilite\/reposilite\/${REPOSILITE_VERSION}\/reposilite-${REPOSILITE_VERSION}-all.jar\r\nelse\r\n curl -o reposilite.jar https:\/\/maven.reposilite.com\/releases\/com\/reposilite\/reposilite\/${REPOSILITE_VERSION}\/reposilite-${REPOSILITE_VERSION}.jar\r\nfi", "container": "ghcr.io\/pterodactyl\/installers:debian", "entrypoint": "bash" } @@ -42,4 +42,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 31e081775081dce14f7c9b3a1c58c4ae457c1c2d Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 8 Feb 2023 14:46:44 +0100 Subject: [PATCH 106/473] update samp --- game_eggs/gta/samp/egg-s-a--m-p.json | 44 ++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/game_eggs/gta/samp/egg-s-a--m-p.json b/game_eggs/gta/samp/egg-s-a--m-p.json index 0ef670ff..dddea0d1 100644 --- a/game_eggs/gta/samp/egg-s-a--m-p.json +++ b/game_eggs/gta/samp/egg-s-a--m-p.json @@ -1,26 +1,52 @@ { "_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-10-28T13:03:46+00:00", + "exported_at": "2023-02-08T14:46:07+01:00", "name": "SA-MP", "author": "bl4ckspr4y@protonmail.com", "description": "SA-MP is a free Massively Multiplayer Online game mod for the PC version of Rockstar Games Grand Theft Auto: San Andreas (tm).", - "image": "ghcr.io\/parkervcp\/games:samp", + "features": null, + "docker_images": { + "Samp": "ghcr.io\/parkervcp\/games:samp" + }, + "file_denylist": [], "startup": ".\/samp03svr", "config": { "files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"port\": \"port {{server.build.default.port}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"Started server on \",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": true,\r\n \"location\": \"samp.log\"\r\n}", - "stop": "^C" + "startup": "{\r\n \"done\": \"Started server on \"\r\n}", + "logs": "{}", + "stop": "^^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\napt -y update\r\napt -y --no-install-recommends install curl unzip lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSL -o samp.tar.gz http:\/\/files.sa-mp.com\/samp037svr_R2-1.tar.gz\r\n\r\nmkdir -p \/mnt\/server\r\ntar -xzvf samp.tar.gz -C \/mnt\/server\/\r\ncp -r \/mnt\/server\/samp03\/* \/mnt\/server\r\nrm -rf \/mnt\/server\/samp03\/\r\ncd \/mnt\/server\r\nsed -i '3d' \/mnt\/server\/server.cfg\r\necho \"rcon_password changemeplease\" >> \/mnt\/server\/server.cfg\r\n\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server", - "container": "ubuntu:16.04", + "script": "#!\/bin\/bash\r\n\r\ncd \/tmp || exit\r\necho \"running: curl -sSL -o samp.tar.gz http:\/\/files.sa-mp.com\/samp037svr_${VERSION}.tar.gz\"\r\ncurl -sSL -o samp.tar.gz http:\/\/files.sa-mp.com\/samp037svr_\"${VERSION}\".tar.gz\r\n\r\nmkdir -p \/mnt\/server\r\ntar -xzvf samp.tar.gz --strip-components=1 -C \/mnt\/server\/\r\n\r\ncd \/mnt\/server || exit\r\n\r\nsed -i '3d' \/mnt\/server\/server.cfg\r\necho \"rcon_password ${RCON_PASS}\" >> \/mnt\/server\/server.cfg\r\n\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } }, - "variables": [] + "variables": [ + { + "name": "Version", + "description": "example: if the download url is http:\/\/files.sa-mp.com\/samp037svr_R2-1.tar.gz then the variable should be: `R2-1`", + "env_variable": "Version", + "default_value": "R2-1", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + }, + { + "name": "Rcon password", + "description": "", + "env_variable": "RCON_PASS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + } + ] } From 8ecf1cfe90f9674e9d8eaaa83c731f6ecccde6b9 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 8 Feb 2023 15:14:49 +0100 Subject: [PATCH 107/473] samp: auto set rcon password in config --- game_eggs/gta/samp/egg-s-a--m-p.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/gta/samp/egg-s-a--m-p.json b/game_eggs/gta/samp/egg-s-a--m-p.json index dddea0d1..08465d94 100644 --- a/game_eggs/gta/samp/egg-s-a--m-p.json +++ b/game_eggs/gta/samp/egg-s-a--m-p.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-08T14:46:07+01:00", + "exported_at": "2023-02-08T14:50:39+01:00", "name": "SA-MP", "author": "bl4ckspr4y@protonmail.com", "description": "SA-MP is a free Massively Multiplayer Online game mod for the PC version of Rockstar Games Grand Theft Auto: San Andreas (tm).", @@ -15,7 +15,7 @@ "file_denylist": [], "startup": ".\/samp03svr", "config": { - "files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"port\": \"port {{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"port\": \"port {{server.build.default.port}}\",\r\n \"rcon_password\": \"rcon_password {{server.build.env.RCON_PASS}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Started server on \"\r\n}", "logs": "{}", "stop": "^^C" @@ -40,7 +40,7 @@ }, { "name": "Rcon password", - "description": "", + "description": "The password used for rcon", "env_variable": "RCON_PASS", "default_value": "", "user_viewable": true, From 11b9e4f6414d4fd98818f2c7c730c30afccfd300 Mon Sep 17 00:00:00 2001 From: "Michael (Parker) Parker" Date: Sat, 11 Feb 2023 21:54:55 -0500 Subject: [PATCH 108/473] use github release for php use the github release of php for pocketmine update version to pm4 and pm5 --- .../bedrock/pocketmine_mp/egg-pocketmine-m-p.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json index 6f14d9f5..21933091 100644 --- a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json +++ b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-24T16:28:27+01:00", + "exported_at": "2023-02-11T21:53:10-05:00", "name": "PocketmineMP", "author": "info@swisscrafting.ch", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\n\r\napt update\r\napt install -y git curl wget jq file tar unzip zip\r\n\r\ncd \/mnt\/server\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n\r\n# Restrict versions to latest pm3 and pm4 for now.\r\nif [[ \"${VERSION}\" == \"pm4\" ]] || [[ \"${VERSION}\" == \"\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=stable | grep 'download_url' | cut -d '\"' -f 4)\r\n echo -e \"Downloading latest PocketMine 4 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelif [[ \"${VERSION}\" == \"pm3\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=pm3 | grep 'download_url' | cut -d '\"' -f 4)\r\n echo -e \"Downloading latest PocketMine 3 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelse\r\n echo -e \"Unknown version ${VERSION}\"\r\n exit 1\r\nfi\r\n\r\n\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\necho -e \"\\n downloading latest php build from PocketMine https:\/\/jenkins.pmmp.io\/job\/PHP-8.0-Aggregate\/lastSuccessfulBuild\/artifact\/PHP-8.0-Linux-x86_64-PM4.tar.gz\"\r\ncurl -sSL -o php.binary.tar.gz https:\/\/jenkins.pmmp.io\/job\/PHP-8.0-Aggregate\/lastSuccessfulBuild\/artifact\/PHP-8.0-Linux-x86_64-PM4.tar.gz\r\n\r\necho -e \"\\n unpacking php binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing php packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\nelse\r\napt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\n\r\nwget https:\/\/raw.githubusercontent.com\/pmmp\/php-build-scripts\/stable\/compile.sh -O compile.sh \r\nchmod +x compile.sh\r\n\r\necho \"please wait, this will take some time\"\r\n.\/compile.sh\r\nrm compile.sh\r\nrm -rf install_data\/\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n\r\nfi\r\n\r\n\r\nif [[ ! -f server.properties ]]; then\r\n echo -e \"\\n downloading default server.properties\"\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/bedrock\/pocketmine_mp\/server.properties >server.properties\r\nfi\r\n\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.txt banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs\r\n\r\necho -e \"\\n\\nInstall script completed. Enjoy!\"", + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y git curl wget jq file tar unzip zip\r\n\r\nif [[ ! -f \/mnt\/server ]]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n\r\n# Restrict versions to latest pm4 and pm5 for now.\r\nif [[ \"${VERSION}\" == \"pm4\" ]] || [[ \"${VERSION}\" == \"\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=stable | grep 'download_url' | cut -d '\"' -f 4)\r\n PHP_URL=$(curl --silent \"https:\/\/api.github.com\/repos\/pmmp\/PHP-Binaries\/releases\/latest\" | jq .assets | jq -r .[].browser_download_url | grep -iE 'Linux' | grep PM4)\r\n echo -e \"Downloading latest PocketMine 4 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelif [[ \"${VERSION}\" == \"pm5\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=pm3 | grep 'download_url' | cut -d '\"' -f 4)\r\n PHP_URL=$(curl --silent \"https:\/\/api.github.com\/repos\/pmmp\/PHP-Binaries\/releases\/latest\" | jq .assets | jq -r .[].browser_download_url | grep -iE 'Linux' | grep PM5)\r\n echo -e \"Downloading latest PocketMine 5 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelse\r\n echo -e \"Unknown version ${VERSION}\"\r\n exit 1\r\nfi\r\n\r\n\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\necho -e \"\\n downloading latest php build from PocketMine ${PHP_URL}\"\r\ncurl -sSL -o php.binary.tar.gz ${PHP_URL}\r\n\r\necho -e \"\\n unpacking php binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing php packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\nelse\r\napt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\n\r\nwget https:\/\/raw.githubusercontent.com\/pmmp\/php-build-scripts\/stable\/compile.sh -O compile.sh \r\nchmod +x compile.sh\r\n\r\necho \"please wait, this will take some time\"\r\n.\/compile.sh\r\nrm compile.sh\r\nrm -rf install_data\/\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n\r\nfi\r\n\r\n\r\nif [[ ! -f server.properties ]]; then\r\n echo -e \"\\n downloading default server.properties\"\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/bedrock\/pocketmine_mp\/server.properties >server.properties\r\nfi\r\n\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.txt banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs\r\n\r\necho -e \"\\n\\nInstall script completed. Enjoy!\"", "container": "ghcr.io\/pterodactyl\/installers:debian", "entrypoint": "bash" } @@ -30,13 +30,13 @@ "variables": [ { "name": "Version to install [pm3 or pm4]", - "description": "Latest PocketMine version to install. Valid options: pm3 and pm4", + "description": "Latest PocketMine version to install (default: pm4). Valid options: pm4 and pm5", "env_variable": "VERSION", "default_value": "pm4", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:pm3,pm4", + "rules": "required|string|in:pm4,pm5", "field_type": "text" } ] -} +} \ No newline at end of file From b6166ac6276e802e2fd959ace2dc445387d6bdf7 Mon Sep 17 00:00:00 2001 From: "Michael (Parker) Parker" Date: Sat, 11 Feb 2023 22:30:46 -0500 Subject: [PATCH 109/473] remove pm5 support --- .../bedrock/pocketmine_mp/egg-pocketmine-m-p.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json index 21933091..8a1d513a 100644 --- a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json +++ b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-11T21:53:10-05:00", + "exported_at": "2023-02-11T22:30:05-05:00", "name": "PocketmineMP", "author": "info@swisscrafting.ch", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y git curl wget jq file tar unzip zip\r\n\r\nif [[ ! -f \/mnt\/server ]]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n\r\n# Restrict versions to latest pm4 and pm5 for now.\r\nif [[ \"${VERSION}\" == \"pm4\" ]] || [[ \"${VERSION}\" == \"\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=stable | grep 'download_url' | cut -d '\"' -f 4)\r\n PHP_URL=$(curl --silent \"https:\/\/api.github.com\/repos\/pmmp\/PHP-Binaries\/releases\/latest\" | jq .assets | jq -r .[].browser_download_url | grep -iE 'Linux' | grep PM4)\r\n echo -e \"Downloading latest PocketMine 4 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelif [[ \"${VERSION}\" == \"pm5\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=pm3 | grep 'download_url' | cut -d '\"' -f 4)\r\n PHP_URL=$(curl --silent \"https:\/\/api.github.com\/repos\/pmmp\/PHP-Binaries\/releases\/latest\" | jq .assets | jq -r .[].browser_download_url | grep -iE 'Linux' | grep PM5)\r\n echo -e \"Downloading latest PocketMine 5 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelse\r\n echo -e \"Unknown version ${VERSION}\"\r\n exit 1\r\nfi\r\n\r\n\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\necho -e \"\\n downloading latest php build from PocketMine ${PHP_URL}\"\r\ncurl -sSL -o php.binary.tar.gz ${PHP_URL}\r\n\r\necho -e \"\\n unpacking php binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing php packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\nelse\r\napt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\n\r\nwget https:\/\/raw.githubusercontent.com\/pmmp\/php-build-scripts\/stable\/compile.sh -O compile.sh \r\nchmod +x compile.sh\r\n\r\necho \"please wait, this will take some time\"\r\n.\/compile.sh\r\nrm compile.sh\r\nrm -rf install_data\/\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n\r\nfi\r\n\r\n\r\nif [[ ! -f server.properties ]]; then\r\n echo -e \"\\n downloading default server.properties\"\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/bedrock\/pocketmine_mp\/server.properties >server.properties\r\nfi\r\n\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.txt banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs\r\n\r\necho -e \"\\n\\nInstall script completed. Enjoy!\"", + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y git curl wget jq file tar unzip zip\r\n\r\nif [[ ! -f \/mnt\/server ]]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n\r\n# Restrict versions to latest pm4 and pm5 for now.\r\nif [[ \"${VERSION}\" == \"pm4\" ]] || [[ \"${VERSION}\" == \"\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=stable | grep 'download_url' | cut -d '\"' -f 4)\r\n PHP_URL=$(curl --silent \"https:\/\/api.github.com\/repos\/pmmp\/PHP-Binaries\/releases\/latest\" | jq .assets | jq -r .[].browser_download_url | grep -iE 'Linux' | grep PM4)\r\n echo -e \"Downloading latest PocketMine 4 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\n# elif [[ \"${VERSION}\" == \"pm5\" ]]; then\r\n# DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=pm5 | grep 'download_url' | cut -d '\"' -f 4)\r\n# PHP_URL=$(curl --silent \"https:\/\/api.github.com\/repos\/pmmp\/PHP-Binaries\/releases\/latest\" | jq .assets | jq -r .[].browser_download_url | grep -iE 'Linux' | grep PM5)\r\n# echo -e \"Downloading latest PocketMine 5 from ${DOWNLOAD_LINK}\"\r\n# curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelse\r\n echo -e \"Unknown version ${VERSION}\"\r\n exit 1\r\nfi\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\necho -e \"\\n downloading latest php build from PocketMine ${PHP_URL}\"\r\ncurl -sSL -o php.binary.tar.gz ${PHP_URL}\r\n\r\necho -e \"\\n unpacking php binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing php packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\nelse\r\napt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\n\r\nwget https:\/\/raw.githubusercontent.com\/pmmp\/php-build-scripts\/stable\/compile.sh -O compile.sh \r\nchmod +x compile.sh\r\n\r\necho \"please wait, this will take some time\"\r\n.\/compile.sh\r\nrm compile.sh\r\nrm -rf install_data\/\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n\r\nfi\r\n\r\nif [[ ! -f server.properties ]]; then\r\n echo -e \"\\n downloading default server.properties\"\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/bedrock\/pocketmine_mp\/server.properties >server.properties\r\nfi\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.txt banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs\r\n\r\necho -e \"\\n\\nInstall script completed. Enjoy!\"", "container": "ghcr.io\/pterodactyl\/installers:debian", "entrypoint": "bash" } @@ -30,12 +30,12 @@ "variables": [ { "name": "Version to install [pm3 or pm4]", - "description": "Latest PocketMine version to install (default: pm4). Valid options: pm4 and pm5", + "description": "Latest PocketMine version to install.", "env_variable": "VERSION", "default_value": "pm4", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:pm4,pm5", + "rules": "required|string|in:pm4", "field_type": "text" } ] From 44a2eed3c3f6c7e6417e06127dd463fc3f2f4fb3 Mon Sep 17 00:00:00 2001 From: softwarenoob Date: Sun, 12 Feb 2023 09:40:11 +0200 Subject: [PATCH 110/473] feat(pocketmine): rewrite egg for Github releases --- .../bedrock/pocketmine_mp/egg-pocketmine-m-p.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json index 8a1d513a..7409a5ce 100644 --- a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json +++ b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-11T22:30:05-05:00", + "exported_at": "2023-02-12T02:36:39-05:00", "name": "PocketmineMP", "author": "info@swisscrafting.ch", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", @@ -22,21 +22,21 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y git curl wget jq file tar unzip zip\r\n\r\nif [[ ! -f \/mnt\/server ]]; then\r\n mkdir \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\n\r\n# Restrict versions to latest pm4 and pm5 for now.\r\nif [[ \"${VERSION}\" == \"pm4\" ]] || [[ \"${VERSION}\" == \"\" ]]; then\r\n DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=stable | grep 'download_url' | cut -d '\"' -f 4)\r\n PHP_URL=$(curl --silent \"https:\/\/api.github.com\/repos\/pmmp\/PHP-Binaries\/releases\/latest\" | jq .assets | jq -r .[].browser_download_url | grep -iE 'Linux' | grep PM4)\r\n echo -e \"Downloading latest PocketMine 4 from ${DOWNLOAD_LINK}\"\r\n curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\n# elif [[ \"${VERSION}\" == \"pm5\" ]]; then\r\n# DOWNLOAD_LINK=$(curl -ssL https:\/\/update.pmmp.io\/api?channel=pm5 | grep 'download_url' | cut -d '\"' -f 4)\r\n# PHP_URL=$(curl --silent \"https:\/\/api.github.com\/repos\/pmmp\/PHP-Binaries\/releases\/latest\" | jq .assets | jq -r .[].browser_download_url | grep -iE 'Linux' | grep PM5)\r\n# echo -e \"Downloading latest PocketMine 5 from ${DOWNLOAD_LINK}\"\r\n# curl -ssL \"${DOWNLOAD_LINK}\" -o PocketMine-MP.phar\r\nelse\r\n echo -e \"Unknown version ${VERSION}\"\r\n exit 1\r\nfi\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\necho -e \"\\n downloading latest php build from PocketMine ${PHP_URL}\"\r\ncurl -sSL -o php.binary.tar.gz ${PHP_URL}\r\n\r\necho -e \"\\n unpacking php binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing php packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\nelse\r\napt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\n\r\nwget https:\/\/raw.githubusercontent.com\/pmmp\/php-build-scripts\/stable\/compile.sh -O compile.sh \r\nchmod +x compile.sh\r\n\r\necho \"please wait, this will take some time\"\r\n.\/compile.sh\r\nrm compile.sh\r\nrm -rf install_data\/\r\n\r\necho -e \"\\n configuring PHP extensions library directory\"\r\nEXTENSION_DIR=$(find \"bin\" -name *debug-zts*)\r\ngrep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n\r\nfi\r\n\r\nif [[ ! -f server.properties ]]; then\r\n echo -e \"\\n downloading default server.properties\"\r\n curl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/bedrock\/pocketmine_mp\/server.properties >server.properties\r\nfi\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.txt banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs\r\n\r\necho -e \"\\n\\nInstall script completed. Enjoy!\"", - "container": "ghcr.io\/pterodactyl\/installers:debian", + "script": "#!\/bin\/bash\r\n\r\napt-get update\r\napt-get install -y git curl wget jq file tar unzip zip\r\n\r\nmkdir -p \/mnt\/server\/ # Not required. Only here for parkervcp's local test setup\r\n\r\ncd \/mnt\/server || exit 1\r\n\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && printf \"amd64\" || printf \"arm64\")\r\n\r\n# Shouldn't be possible to be empty, but default to PM4 if it is and convert to uppercase\r\nVERSION=\"${VERSION:-PM4}\"\r\nVERSION=\"${VERSION^^}\"\r\n\r\n# Helper functions\r\n\r\ndownload_php_binary() {\r\n printf \"Downloading latest PHP %s binary for %s\\n\" \"$REQUIRED_PHP_VERSION\" \"$VERSION\"\r\n curl --location --progress-bar https:\/\/github.com\/pmmp\/PHP-Binaries\/releases\/download\/php-\"$REQUIRED_PHP_VERSION\"-latest\/PHP-Linux-x86_64-\"$VERSION\".tar.gz | tar -xzv\r\n}\r\n\r\nset_php_extension_dir() {\r\n printf \"Configuring php.ini\\n\"\r\n EXTENSION_DIR=$(find \"bin\" -name '*debug-zts*')\r\n grep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n}\r\n\r\ndownload_pmmp() {\r\n DOWNLOAD_LINK=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'download_url' | cut -d '\"' -f 4)\r\n printf \"Downloading %s from %s\\n\" \"$VERSION\" \"${DOWNLOAD_LINK}\"\r\n curl --location --progress-bar \"${DOWNLOAD_LINK}\" --output PocketMine-MP.phar\r\n}\r\n\r\n# We have to convert VERSION into an API channel\r\nif [[ \"${VERSION}\" == \"PM4\" ]]; then\r\n API_CHANNEL=\"stable\"\r\n\r\n# Disabled until PM5 is released and API channels or structure are decided for PM4\/PM5\r\n# elif [[ \"${VERSION}\" == \"PM5\" ]]; then\r\n# API_CHANNEL=\"alpha\"\r\nelse\r\n printf \"Unsupported version: %s\" \"${VERSION}\"\r\n exit 1\r\nfi\r\n\r\nREQUIRED_PHP_VERSION=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'php_version' | cut -d '\"' -f 4)\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\n download_php_binary\r\n\r\n# There are no ARM64 PHP binaries yet, so we have to compile them\r\nelse\r\n apt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\n\r\n # Each PHP version has its own compile script, so we have to download the correct one\r\n curl --location --progress-bar --remote-name https:\/\/raw.githubusercontent.com\/pmmp\/PHP-Binaries\/php\/\"$REQUIRED_PHP_VERSION\"\/compile.sh\r\n chmod +x compile.sh\r\n\r\n cat < Date: Sun, 12 Feb 2023 09:55:23 +0200 Subject: [PATCH 111/473] chore(pocketmine): use bullseye install image --- .../minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json index 7409a5ce..609ee1e3 100644 --- a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json +++ b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-12T02:36:39-05:00", + "exported_at": "2023-02-12T02:53:07-05:00", "name": "PocketmineMP", "author": "info@swisscrafting.ch", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", @@ -23,7 +23,7 @@ "scripts": { "installation": { "script": "#!\/bin\/bash\r\n\r\napt-get update\r\napt-get install -y git curl wget jq file tar unzip zip\r\n\r\nmkdir -p \/mnt\/server\/ # Not required. Only here for parkervcp's local test setup\r\n\r\ncd \/mnt\/server || exit 1\r\n\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && printf \"amd64\" || printf \"arm64\")\r\n\r\n# Shouldn't be possible to be empty, but default to PM4 if it is and convert to uppercase\r\nVERSION=\"${VERSION:-PM4}\"\r\nVERSION=\"${VERSION^^}\"\r\n\r\n# Helper functions\r\n\r\ndownload_php_binary() {\r\n printf \"Downloading latest PHP %s binary for %s\\n\" \"$REQUIRED_PHP_VERSION\" \"$VERSION\"\r\n curl --location --progress-bar https:\/\/github.com\/pmmp\/PHP-Binaries\/releases\/download\/php-\"$REQUIRED_PHP_VERSION\"-latest\/PHP-Linux-x86_64-\"$VERSION\".tar.gz | tar -xzv\r\n}\r\n\r\nset_php_extension_dir() {\r\n printf \"Configuring php.ini\\n\"\r\n EXTENSION_DIR=$(find \"bin\" -name '*debug-zts*')\r\n grep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n}\r\n\r\ndownload_pmmp() {\r\n DOWNLOAD_LINK=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'download_url' | cut -d '\"' -f 4)\r\n printf \"Downloading %s from %s\\n\" \"$VERSION\" \"${DOWNLOAD_LINK}\"\r\n curl --location --progress-bar \"${DOWNLOAD_LINK}\" --output PocketMine-MP.phar\r\n}\r\n\r\n# We have to convert VERSION into an API channel\r\nif [[ \"${VERSION}\" == \"PM4\" ]]; then\r\n API_CHANNEL=\"stable\"\r\n\r\n# Disabled until PM5 is released and API channels or structure are decided for PM4\/PM5\r\n# elif [[ \"${VERSION}\" == \"PM5\" ]]; then\r\n# API_CHANNEL=\"alpha\"\r\nelse\r\n printf \"Unsupported version: %s\" \"${VERSION}\"\r\n exit 1\r\nfi\r\n\r\nREQUIRED_PHP_VERSION=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'php_version' | cut -d '\"' -f 4)\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\n download_php_binary\r\n\r\n# There are no ARM64 PHP binaries yet, so we have to compile them\r\nelse\r\n apt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\n\r\n # Each PHP version has its own compile script, so we have to download the correct one\r\n curl --location --progress-bar --remote-name https:\/\/raw.githubusercontent.com\/pmmp\/PHP-Binaries\/php\/\"$REQUIRED_PHP_VERSION\"\/compile.sh\r\n chmod +x compile.sh\r\n\r\n cat < Date: Sun, 12 Feb 2023 22:27:24 -0500 Subject: [PATCH 112/473] add server query port egg was already updated on the panel repo. no further changes necessary --- stock_eggs/rust/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/stock_eggs/rust/README.md b/stock_eggs/rust/README.md index da38e57a..2761eb13 100644 --- a/stock_eggs/rust/README.md +++ b/stock_eggs/rust/README.md @@ -15,6 +15,7 @@ Ports required to run the server. | Port | default | |----------------|-----------| -| Game and Query | 28015 UDP | +| Game | 28015 UDP | | RCON | 28016 TCP | +| Query | 28017 UDP | | Rust+ App | 28082 TCP | 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 113/473] 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 114/473] 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 6f5871f18ecb8c16eb912bd779e6eb9cf2ab2066 Mon Sep 17 00:00:00 2001 From: tzanou Date: Sat, 18 Feb 2023 20:40:38 +0100 Subject: [PATCH 115/473] fix: add ServerDisabledNetworkProtocols in env variables to let user manage it if needed --- .../7_days_to_die/egg-7-days-to-die.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json b/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json index 5bdda6f0..03af959e 100644 --- a/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json +++ b/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], - "startup": ".\/7DaysToDieServer.x86_64 -configfile=serverconfig.xml -quit -batchmode -nographics -dedicated -ServerPort=${SERVER_PORT} -ServerMaxPlayerCount=${MAX_PLAYERS} -GameDifficulty=${GAME_DIFFICULTY} -ControlPanelEnabled=false -TelnetEnabled=true -TelnetPort=${TELNET_PORT} -TelnetPassword=${PASSWORD} -logfile logs\/latest.log & echo -e \"Checking on telnet connection\" && until nc -z -v -w5 127.0.0.1 ${TELNET_PORT}; do echo \"Waiting for telnet connection...\"; sleep 5; done && $( [[ -z ${PASSWORD} ]] && printf %s \"telnet -E 127.0.0.1 ${TELNET_PORT}\" || printf %s \"rcon -t telnet -a 127.0.0.1:${TELNET_PORT} -p {{PASSWORD}}\" )", + "startup": ".\/7DaysToDieServer.x86_64 -configfile=serverconfig.xml -quit -batchmode -nographics -dedicated -ServerPort=${SERVER_PORT} -ServerDisabledNetworkProtocols=${SERVER_DISABLED_NETWORK_PROTOCOLS} -ServerMaxPlayerCount=${MAX_PLAYERS} -GameDifficulty=${GAME_DIFFICULTY} -ControlPanelEnabled=false -TelnetEnabled=true -TelnetPort=${TELNET_PORT} -TelnetPassword=${PASSWORD} -logfile logs\/latest.log & echo -e \"Checking on telnet connection\" && until nc -z -v -w5 127.0.0.1 ${TELNET_PORT}; do echo \"Waiting for telnet connection...\"; sleep 5; done && $( [[ -z ${PASSWORD} ]] && printf %s \"telnet -E 127.0.0.1 ${TELNET_PORT}\" || printf %s \"rcon -t telnet -a 127.0.0.1:${TELNET_PORT} -p {{PASSWORD}}\" )", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Connected with 7DTD server\"\r\n}", @@ -109,6 +109,16 @@ "user_editable": true, "rules": "required|string|max:20", "field_type": "text" + }, + { + "name": "Network Protocols", + "description": "Networking protocols that should NOT be used. Separated by comma. Possible values: LiteNetLib, SteamNetworking. Dedicated servers should disable SteamNetworking if there is no NAT router in between your users and the server or when port-forwarding is set up correctly. lets it empty if you are connecting your self hosted server behind a NAT", + "env_variable": "SERVER_DISABLED_NETWORK_PROTOCOLS", + "default_value": "SteamNetworking", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" } ] } \ No newline at end of file From ea9e01076470cbd9e719631bdbf0032321abb80f Mon Sep 17 00:00:00 2001 From: tzanou Date: Sat, 18 Feb 2023 21:12:45 +0100 Subject: [PATCH 116/473] export egg from panel --- game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json b/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json index 03af959e..39c64524 100644 --- a/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json +++ b/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-28T14:28:16+01:00", + "exported_at": "2023-02-18T21:10:19+01:00", "name": "7 Days To Die", "author": "kristoffer.norman@bahnhof.se", "description": "7 days to die server", From 265b72bdc881165726e775024158cf2e4ff2313a Mon Sep 17 00:00:00 2001 From: "Michael (Parker) Parker" Date: Sat, 18 Feb 2023 23:01:55 -0500 Subject: [PATCH 117/473] update_parkertron update parkertronn to new install and run images --- bots/discord/parkertron/egg-parkertron.json | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/bots/discord/parkertron/egg-parkertron.json b/bots/discord/parkertron/egg-parkertron.json index ce098ba8..933582b1 100644 --- a/bots/discord/parkertron/egg-parkertron.json +++ b/bots/discord/parkertron/egg-parkertron.json @@ -1,13 +1,18 @@ { "_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-04-03T12:50:58-04:00", + "exported_at": "2023-02-18T22:37:44-05:00", "name": "parkertron", "author": "parker@parkervcp.com", "description": "The stupid chatbot parkertron by Parkervcp.\r\n\r\nhttps:\/\/github.com\/parkervcp\/parkertron", - "image": "quay.io\/parkervcp\/pterodactyl-images:bot_parkertron", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:bot_parkertron": "ghcr.io\/parkervcp\/yolks:bot_parkertron" + }, + "file_denylist": [], "startup": ".\/parkertron", "config": { "files": "{}", @@ -17,9 +22,9 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# parkertron Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nexport GOPATH=$HOME\/go\r\nexport PATH=$GOROOT\/bin:$GOPATH\/bin:$PATH\r\n\r\ncd\r\n\r\napk add --no-cache --update git curl lua-stdlib lua musl-dev g++ libc-dev tesseract-ocr tesseract-ocr-dev\r\n\r\necho \"pulling the parkertron pterodactyl branch\"\r\n\r\ngit clone https:\/\/github.com\/parkervcp\/parkertron.git\r\n\r\ncd parkertron\/\r\n\r\ngo mod download\r\n\r\necho \"building parkertron\"\r\n\r\ngo build \r\n\r\necho \"build complete copying parkertron and example configs over\"\r\n\r\ncp parkertron \/mnt\/server\/\r\n\r\nif [ -d \/mnt\/server\/configs ]; then\r\n echo \"Files exist already\"\r\nelse\r\n cp -r \/root\/parkertron\/configs\/ \/mnt\/server\/\r\nfi\r\n\r\necho \"Install complete. If you watched this. Congrats.\"", - "container": "golang:1.14-alpine", - "entrypoint": "ash" + "script": "#!\/bin\/bash\r\n# parkertron Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nexport GOPATH=$HOME\/go\r\nexport PATH=$GOROOT\/bin:$GOPATH\/bin:$PATH\r\n\r\ncd\r\n\r\napt update\r\n\r\napt install -y tesseract-ocr tesseract-ocr-eng libtesseract-dev\r\n\r\necho \"pulling the parkertron git repo\"\r\n\r\ngit clone https:\/\/github.com\/parkervcp\/parkertron.git\r\n\r\ncd parkertron\/\r\n\r\necho \"building parkertron\"\r\n\r\ngo build \r\n\r\necho \"build complete copying parkertron and example configs over\"\r\n\r\ncp parkertron \/mnt\/server\/\r\n\r\nif [ -d \/mnt\/server\/configs ]; then\r\n echo \"Files exist already\"\r\nelse\r\n cp -r \/root\/parkertron\/configs\/ \/mnt\/server\/\r\nfi\r\n\r\necho \"Install complete. If you watched this. Congrats.\"", + "container": "golang:1.19-bullseye", + "entrypoint": "bash" } }, "variables": [] From 98136fe20852e843a6680af2423223747994c2f8 Mon Sep 17 00:00:00 2001 From: Bas van den Boom Date: Sun, 19 Feb 2023 11:01:20 +0100 Subject: [PATCH 118/473] Create placeholder readme --- game_eggs/yuzu-emu/README.md | 46 ++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 game_eggs/yuzu-emu/README.md diff --git a/game_eggs/yuzu-emu/README.md b/game_eggs/yuzu-emu/README.md new file mode 100644 index 00000000..e20faa8f --- /dev/null +++ b/game_eggs/yuzu-emu/README.md @@ -0,0 +1,46 @@ +# Yuzu Emulator Dedicated Multiplayer Room + + + +## From their [Github](https://github.com/parkervcp/eggs) + +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 + + +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. + + + + +## 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. + +### Mods/Plugins may require ports to be added to the server From 55eac93fed6540574801f4079f54b5b89e952210 Mon Sep 17 00:00:00 2001 From: Bas van den Boom Date: Sun, 19 Feb 2023 12:37:18 +0100 Subject: [PATCH 119/473] Add egg definition --- game_eggs/yuzu-emu/yuzu-emu.json | 102 +++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 game_eggs/yuzu-emu/yuzu-emu.json diff --git a/game_eggs/yuzu-emu/yuzu-emu.json b/game_eggs/yuzu-emu/yuzu-emu.json new file mode 100644 index 00000000..bf104560 --- /dev/null +++ b/game_eggs/yuzu-emu/yuzu-emu.json @@ -0,0 +1,102 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-02-19T12:36:09+01:00", + "name": "YuzuEmu", + "author": "Z3r0byte", + "description": "Egg for hosting dedicated Yuzu multiplayer rooms.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian" + }, + "file_denylist": [], + "startup": ".\/yuzu-room --room-name \"{{ROOM_NAME}}\" --room-description \"{{ROOM_DESCRIPTION}}\" --preferred-game \"{{PREFERRED_GAME}}\" --preferred-game-id {{PREFERRED_GAME_ID}} --port {{SERVER_PORT}} --max_members {{MAX_MEMBERS}} --password \"{{PASSWORD}}\" --token \"{{YUZU_TOKEN}}\" --web-api-url \"https:\/\/api.yuzu-emu.org\/\"", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Room is open\"\r\n}", + "logs": "{}", + "stop": "Q" + }, + "scripts": { + "installation": { + "script": "# Install build tools\r\necho \"deb http:\/\/deb.debian.org\/debian bullseye-backports main\" >> \/etc\/apt\/sources.list && \\\r\n apt-get update && apt-get -y full-upgrade && \\\r\n apt-get install -y build-essential wget git ccache ninja-build libssl-dev pkg-config libarchive-tools \\\r\n cmake\/bullseye-backports cmake-data\/bullseye-backports \r\n\r\n\r\n# Shallow clone yuzu repository, since we delete the local copy afterwards\r\ngit clone --depth 1 -j4 --recursive --shallow-submodules https:\/\/github.com\/yuzu-emu\/yuzu-mainline.git \/mnt\/server\/yuzu-mainline\r\n\r\n# Download build tools and build\r\ngit clone --depth 1 https:\/\/github.com\/yuzu-emu\/yuzu-multiplayer-dedicated.git \/mnt\/server\/build-files\r\ncd \/mnt\/server\/yuzu-mainline && \/mnt\/server\/build-files\/.ci\/build.sh\r\n\r\n# Copy server binary to container root\r\ncp \/mnt\/server\/yuzu-mainline\/build\/bin\/yuzu-room \/mnt\/server\/yuzu-room\r\n\r\n# Delete git repo's to save disk space.\r\nrm -rf \/mnt\/server\/yuzu-mainline && rm -rf \/mnt\/server\/build-files", + "container": "ghcr.io\/pterodactyl\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Room name", + "description": "", + "env_variable": "ROOM_NAME", + "default_value": "My Yuzu Room", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Room description", + "description": "", + "env_variable": "ROOM_DESCRIPTION", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:60", + "field_type": "text" + }, + { + "name": "Preferred game", + "description": "", + "env_variable": "PREFERRED_GAME", + "default_value": "Mario Kart 8 Deluxe", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20", + "field_type": "text" + }, + { + "name": "Preferred game ID", + "description": "", + "env_variable": "PREFERRED_GAME_ID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20|alphanum", + "field_type": "text" + }, + { + "name": "Max members", + "description": "", + "env_variable": "MAX_MEMBERS", + "default_value": "4", + "user_viewable": true, + "user_editable": true, + "rules": "required|int|max:4|min:1", + "field_type": "text" + }, + { + "name": "Room password", + "description": "Room password. Leave empty for no password.", + "env_variable": "PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20", + "field_type": "text" + }, + { + "name": "Yuzu token", + "description": "Yuzu account token (retrieve yours at https:\/\/profile.yuzu-emu.org\/). Necessary when creating a public (listed) room. Leave empty to create a private room.", + "env_variable": "YUZU_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20", + "field_type": "text" + } + ] +} \ No newline at end of file From 7d7a15dc2d99d0a43178a49bee7320f8ad09cd16 Mon Sep 17 00:00:00 2001 From: Bas van den Boom Date: Sun, 19 Feb 2023 12:45:37 +0100 Subject: [PATCH 120/473] Update README.md --- game_eggs/yuzu-emu/README.md | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/game_eggs/yuzu-emu/README.md b/game_eggs/yuzu-emu/README.md index e20faa8f..516501f4 100644 --- a/game_eggs/yuzu-emu/README.md +++ b/game_eggs/yuzu-emu/README.md @@ -1,34 +1,27 @@ # Yuzu Emulator Dedicated Multiplayer Room - -## From their [Github](https://github.com/parkervcp/eggs) +## From their [Github](https://github.com/yuzu-emu/yuzu-mainline) -A link to the site that you download the server files from. +## Description -## [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. - +This egg can be used to host dedicated multiplayer rooms for the Yuzu emulator. ## Install notes - -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. +Running this server requires almost no resources, but the installation involves compiling the binary. This is needed because yuzu unfortunately does not release their server binaries for Linux. Depending on your configuration, the installation part may take 5 minutes or more. + +To update, simply run the installer again. ## Minimum RAM warning -Minimum required memory to run the server. - +8 MiB is enough, but 16 MiB is recommended ## Minumim Sorage warning -Minimum required storage to run the server. - +1MiB is required, but 50 MiB is recommended to have some spare space for core dumps/logs - +Note: the install part requires ~ 5GiB of free space ## Server Ports @@ -36,11 +29,9 @@ Ports required to run the server in a table format. | Port | default | |---------|---------| -| Game | 25565 | +| Game | 24872 | ### Notes - -25565 is the default port, but any port can be used. - -### Mods/Plugins may require ports to be added to the server +- 24872 is the default port, but any port can be used. +- Banlist is currently not supported. Upon startup, an error will be shown about the missing banlist, but the server will work regardless. From b1b1d13e70402e96b96ca153dbb5126e05f9b264 Mon Sep 17 00:00:00 2001 From: Bas van den Boom Date: Sun, 19 Feb 2023 12:48:31 +0100 Subject: [PATCH 121/473] Add entry to main readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 31401c12..64daca88 100644 --- a/README.md +++ b/README.md @@ -310,6 +310,8 @@ If you are reading this it looks like you are looking to add an egg to your serv [Xonotic](game_eggs/xonotic/xonotic) +[YuzuEmu](game_eggs/yuzu-emu) + [FoundryVTT](game_eggs/FoundryVTT) ## [Monitoring](/monitoring/) From 0a5e0ba3c8b50d6d07f020e1256f1f661fff7f2a Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 19 Feb 2023 12:50:23 +0100 Subject: [PATCH 122/473] FiveM: go back to using changelog page Go back to using the FiveM changelog page as specific versions download currently does not work. and it will always download the recommended even if version is set to latest --- game_eggs/gta/fivem/egg-five-m.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/game_eggs/gta/fivem/egg-five-m.json b/game_eggs/gta/fivem/egg-five-m.json index 718d2950..5be211df 100644 --- a/game_eggs/gta/fivem/egg-five-m.json +++ b/game_eggs/gta/fivem/egg-five-m.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-14T18:22:52+01:00", + "exported_at": "2023-02-19T12:48:20+01:00", "name": "FiveM", "author": "parker@parkervcp.com", "description": "A new FiveM egg for the latest builds due to recent changes in FiveM", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# FiveM Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update -y\r\napt install -y tar xz-utils file jq\r\n\r\nmkdir -p \/mnt\/server\/resources\r\n\r\ncd \/mnt\/server\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/\r\n\r\n\r\nRELEASE_PAGE=$(curl -sSL https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/)\r\n\r\nif [[ \"${FIVEM_VERSION}\" == \"recommended\" ]] || [[ -z ${FIVEM_VERSION} ]]; then\r\n TEMP_LINK=$(echo $RELEASE_PAGE | grep -B 1 -i recommended | grep -o '
' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n DOWNLOAD_URL=$(echo -n \"https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master$TEMP_LINK\")\r\nelif [[ \"${FIVEM_VERSION}\" == \"latest\" ]]; then\r\n TEMP_LINK=$(echo $RELEASE_PAGE | grep -B 1 -i latest | grep -o '' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n DOWNLOAD_URL=$(echo -n \"https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master$TEMP_LINK\")\r\nelse\r\n VERSION_LINK=$(echo $RELEASE_PAGE | grep -i ${FIVEM_VERSION} | grep -o 'href=\".*\"' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n if [[ \"${VERSION_LINK}\" == \"\" ]]; then\r\n echo -e \"defaulting to recommedned as the version requested was invalid.\"\r\n TEMP_LINK=$(echo $RELEASE_PAGE | grep -B 1 -i recommended | grep -o '' | grep -Eo \"\/[a-zA-Z0-9.\/?=_%:-]*\" | head -1)\r\n DOWNLOAD_URL=$(echo -n \"https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master$TEMP_LINK\")\r\n else\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${VERSION_LINK})\r\n fi\r\nfi\r\n\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then\r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\necho -e \"Running curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\necho \"Extracting fivem files\"\r\n\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2\r\nfi\r\n\r\n## removing the compresed file and run.sh\r\nrm -rf ${DOWNLOAD_LINK##*\/} run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"Skipping downloading default server config file as one already exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/gta\/fivem\/server.cfg >>server.cfg\r\nfi\r\n\r\nmkdir -p logs\/\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n# FiveM Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update -y\r\napt install -y tar xz-utils file jq\r\n\r\nmkdir -p \/mnt\/server\/resources\r\n\r\ncd \/mnt\/server\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/\r\n\r\nRELEASE_PAGE=$(curl -sSL https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/)\r\nCHANGELOGS_PAGE=$(curl -sSL https:\/\/changelogs-live.fivem.net\/api\/changelog\/versions\/linux\/server)\r\n\r\nif [[ \"${FIVEM_VERSION}\" == \"recommended\" ]] || [[ -z ${FIVEM_VERSION} ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\nelif [[ \"${FIVEM_VERSION}\" == \"latest\" ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.latest_download')\r\nelse\r\n VERSION_LINK=$(echo -e \"${RELEASE_PAGE}\" | grep -Eo '\".*\/*.tar.xz\"' | grep -Eo '\".*\/*.tar.xz\"' | sed 's\/\\\"\/\/g' | sed 's\/\\.\\\/\/\/1' | grep -i \"${FIVEM_VERSION}\" | grep -o =.* | tr -d '=')\r\n if [[ \"${VERSION_LINK}\" == \"\" ]]; then\r\n echo -e \"defaulting to recommedned as the version requested was invalid.\"\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\n else\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${VERSION_LINK})\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then\r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\necho -e \"Running curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\necho \"Extracting fivem files\"\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2\r\nfi\r\n\r\nrm -rf ${DOWNLOAD_LINK##*\/} run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"Skipping downloading default server config file as one already exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/gta\/fivem\/server.cfg >>server.cfg\r\nfi\r\n\r\nmkdir -p logs\/\r\n\r\necho \"install complete\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -60,7 +60,7 @@ }, { "name": "fivem version", - "description": "The fivem version that is to be installed. Invalid versions will default to recommended.\r\n\r\nAn example is `6007-f9c407539e79a33772db3cbf47ab8d5e9d57e7a4`\r\n\r\nYou can get the latest version from here - https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/", + "description": "The fivem version that is to be installed. Invalid versions will default to recommended.\r\n\r\nAn example is `6013-d8ae399d15680da569022f57ab7f2474d307c821`\r\n\r\nYou can get the latest version from here - https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/", "env_variable": "FIVEM_VERSION", "default_value": "recommended", "user_viewable": true, @@ -68,6 +68,16 @@ "rules": "required|string|max:50", "field_type": "text" }, + { + "name": "Download Link", + "description": "This is the link to download fivem from. This is only used in the install script.\r\n\r\nThe file you link to needs to be an fx.tar.zx file.\r\n\r\nExample:\r\nhttps:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/5848-4f71128ee48b07026d6d7229a60ebc5f40f2b9db\/fx.tar.xz", + "env_variable": "DOWNLOAD_URL", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "string|nullable", + "field_type": "text" + }, { "name": "Steam Web Api Key", "description": "Use your Steam WebApiKey or set to 'none'. Get your key at https:\/\/steamcommunity.com\/dev\/apikey\/", @@ -97,16 +107,6 @@ "user_editable": true, "rules": "required|boolean", "field_type": "text" - }, - { - "name": "Download Link", - "description": "This is the link to download fivem from. This is only used in the install script.\r\n\r\nThe file you link to needs to be an fx.tar.zx file.\r\n\r\nExample:\r\nhttps:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/`6007-f9c407539e79a33772db3cbf47ab8d5e9d57e7a4\/fx.tar.xz", - "env_variable": "DOWNLOAD_URL", - "default_value": "", - "user_viewable": false, - "user_editable": false, - "rules": "string|nullable", - "field_type": "text" } ] } From c3895b0a57f485b6d2db8d504945fb35c6ae90c0 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 19 Feb 2023 12:55:14 +0100 Subject: [PATCH 123/473] FiveM: update example download link --- game_eggs/gta/fivem/egg-five-m.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/gta/fivem/egg-five-m.json b/game_eggs/gta/fivem/egg-five-m.json index 5be211df..8d68d168 100644 --- a/game_eggs/gta/fivem/egg-five-m.json +++ b/game_eggs/gta/fivem/egg-five-m.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-19T12:48:20+01:00", + "exported_at": "2023-02-19T12:54:36+01:00", "name": "FiveM", "author": "parker@parkervcp.com", "description": "A new FiveM egg for the latest builds due to recent changes in FiveM", @@ -70,7 +70,7 @@ }, { "name": "Download Link", - "description": "This is the link to download fivem from. This is only used in the install script.\r\n\r\nThe file you link to needs to be an fx.tar.zx file.\r\n\r\nExample:\r\nhttps:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/5848-4f71128ee48b07026d6d7229a60ebc5f40f2b9db\/fx.tar.xz", + "description": "This is the link to download fivem from. This is only used in the install script.\r\n\r\nThe file you link to needs to be an fx.tar.zx file.\r\n\r\nExample:\r\nhttps:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/6013-d8ae399d15680da569022f57ab7f2474d307c821\/fx.tar.xz", "env_variable": "DOWNLOAD_URL", "default_value": "", "user_viewable": false, From 471b9f5537b921e78ddeb2b861dd7be9f7d39cb8 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 19 Feb 2023 13:10:15 +0100 Subject: [PATCH 124/473] parkertron: remove logs Remove logs part as it is not more used --- bots/discord/parkertron/egg-parkertron.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bots/discord/parkertron/egg-parkertron.json b/bots/discord/parkertron/egg-parkertron.json index 933582b1..dca1b5ec 100644 --- a/bots/discord/parkertron/egg-parkertron.json +++ b/bots/discord/parkertron/egg-parkertron.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-18T22:37:44-05:00", + "exported_at": "2023-02-19T13:09:14+01:00", "name": "parkertron", "author": "parker@parkervcp.com", "description": "The stupid chatbot parkertron by Parkervcp.\r\n\r\nhttps:\/\/github.com\/parkervcp\/parkertron", @@ -17,7 +17,7 @@ "config": { "files": "{}", "startup": "{\r\n \"done\": \"Bot is now running\"\r\n}", - "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "logs": "{}", "stop": "shutdown" }, "scripts": { @@ -28,4 +28,4 @@ } }, "variables": [] -} \ No newline at end of file +} From 49e5009b0dd601697ee8e9a262bbef5b68dfb21a Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 19 Feb 2023 13:16:57 +0100 Subject: [PATCH 125/473] remove FlameCord --- README.md | 1 - game_eggs/README.md | 1 - game_eggs/minecraft/README.md | 1 - game_eggs/minecraft/proxy/README.md | 1 - game_eggs/minecraft/proxy/java/README.md | 4 -- .../minecraft/proxy/java/flamecord/README.md | 10 ---- .../proxy/java/flamecord/egg-flamecord.json | 48 ------------------- 7 files changed, 66 deletions(-) delete mode 100644 game_eggs/minecraft/proxy/java/flamecord/README.md delete mode 100644 game_eggs/minecraft/proxy/java/flamecord/egg-flamecord.json diff --git a/README.md b/README.md index 31401c12..fe144bb1 100644 --- a/README.md +++ b/README.md @@ -182,7 +182,6 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Proxies](game_eggs/minecraft/proxy) Minecraft Server Proxies * [Java](game_eggs/minecraft/proxy/java) - * [FlameCord](game_eggs/minecraft/proxy/java/flamecord) * [Travertine](game_eggs/minecraft/proxy/java/travertine) * [Velocity](game_eggs/minecraft/proxy/java/velocity) * [Waterfall](game_eggs/minecraft/proxy/java/waterfall) diff --git a/game_eggs/README.md b/game_eggs/README.md index 20fdab71..8a483c0e 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -84,7 +84,6 @@ * [GeyserMC](minecraft/proxy/cross_platform/geyser) * [Waterdog](minecraft/proxy/cross_platform/waterdog) * [Java](minecraft/proxy/java) - * [FlameCord](minecraft/proxy/java/flamecord) * [Travertine](minecraft/proxy/java/travertine) * [Velocity](minecraft/proxy/java/velocity) * [VIAaas](minecraft/proxy/java/viaaas) diff --git a/game_eggs/minecraft/README.md b/game_eggs/minecraft/README.md index 1cf5d596..f8834dbb 100644 --- a/game_eggs/minecraft/README.md +++ b/game_eggs/minecraft/README.md @@ -42,7 +42,6 @@ It’s set in infinitely-generated worlds of wide open terrain - icy mountains, * [GeyserMC](proxy/cross_platform/geyser) * [Waterdog](proxy/cross_platform/waterdog) * [Java](proxy/java) - * [FlameCord](proxy/java/flamecord) * [Travertine](proxy/java/travertine) * [Velocity](proxy/java/velocity) * [VIAaas](proxy/java/viaaas) diff --git a/game_eggs/minecraft/proxy/README.md b/game_eggs/minecraft/proxy/README.md index ff97f822..a1c5b84f 100644 --- a/game_eggs/minecraft/proxy/README.md +++ b/game_eggs/minecraft/proxy/README.md @@ -1,7 +1,6 @@ # Minecraft Proxies * [Java](/game_eggs/minecraft/proxy/java/) - * [FlameCord](/game_eggs/minecraft/proxy/java/flamecord) * [Travertine](/game_eggs/minecraft/proxy/java/travertine) * [Velocity](/game_eggs/minecraft/proxy/java/velocity) * [VIAaaS](/game_eggs/minecraft/proxy/java/viaaas) diff --git a/game_eggs/minecraft/proxy/java/README.md b/game_eggs/minecraft/proxy/java/README.md index 0b736419..6cb3bc02 100644 --- a/game_eggs/minecraft/proxy/java/README.md +++ b/game_eggs/minecraft/proxy/java/README.md @@ -1,10 +1,6 @@ # Minecraft Java Proxies -#### FlameCord -[FlameCord](https://github.com/2lstudios-mc/FlameCord) -FlameCord is a patch for Travertine to fix possible exploits and add useful functionalities. - #### Travertine [Travertine](https://papermc.io/downloads#Travertine) Waterfall, with additional support for Minecraft 1.7.10. diff --git a/game_eggs/minecraft/proxy/java/flamecord/README.md b/game_eggs/minecraft/proxy/java/flamecord/README.md deleted file mode 100644 index 8c9f93d8..00000000 --- a/game_eggs/minecraft/proxy/java/flamecord/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Flamecord server -FlameCord is a fork of Travertine that fixes Netty Exploits, keeps your console clean from unnecessary messages and orders your BungeeCord modules in a simpler way. - -## Server Ports -The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. - - -| Port | default | -|-------|---------| -| Game | 25565 | \ No newline at end of file diff --git a/game_eggs/minecraft/proxy/java/flamecord/egg-flamecord.json b/game_eggs/minecraft/proxy/java/flamecord/egg-flamecord.json deleted file mode 100644 index 73312781..00000000 --- a/game_eggs/minecraft/proxy/java/flamecord/egg-flamecord.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v2", - "update_url": null - }, - "exported_at": "2022-12-19T17:57:16+01:00", - "name": "Flamecord", - "author": "admin@softwarenoob.com", - "description": "FlameCord is a patch for Travertine to fix possible exploits and add useful functionalities. FlameCord aims to fix Netty related exploits to keep your server safe from attacks.", - "features": [ - "eula", - "java_version", - "pid_limit" - ], - "docker_images": { - "ghcr.io\/pterodactyl\/yolks:java_17": "ghcr.io\/pterodactyl\/yolks:java_17", - "ghcr.io\/pterodactyl\/yolks:java_16": "ghcr.io\/pterodactyl\/yolks:java_16", - "ghcr.io\/pterodactyl\/yolks:java_11": "ghcr.io\/pterodactyl\/yolks:java_11" - }, - "file_denylist": [], - "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}", - "config": { - "files": "{\r\n \"config.yml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"listeners[0].host\": \"0.0.0.0:{{server.build.default.port}}\",\r\n \"servers.*.address\": {\r\n \"127.0.0.1\": \"{{config.docker.interface}}\",\r\n \"localhost\": \"{{config.docker.interface}}\"\r\n }\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"Listening on \"\r\n}", - "logs": "{}", - "stop": "end" - }, - "scripts": { - "installation": { - "script": "#!\/bin\/bash\r\n# FlameCord Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl git \r\n\r\nmkdir -p \/mnt\/server\/tmp\r\ncd \/mnt\/server\/tmp\r\n\r\nrm \/mnt\/server\/${SERVER_JARFILE}\r\n# set some needed variables\r\ngit config --global user.email \"you@example.com\"\r\ngit config --global user.name \"Your Name\"\r\n\r\n# Clone the repo \r\necho \"git clone https:\/\/github.com\/2lstudios-mc\/FlameCord.git\"\r\ngit clone https:\/\/github.com\/2lstudios-mc\/FlameCord.git \r\ncd FlameCord\/\r\nchmod +x scripts\/build.sh\r\n\r\n#build the jar\r\necho \"start building\"\r\n.\/scripts\/build.sh --jar\r\n\r\n# Find the jar file and move it\r\nJAR_PATH=$(find . -name FlameCord.jar)\r\nmv ${JAR_PATH} \/mnt\/server\/${SERVER_JARFILE}\r\nrm -rf \/mnt\/server\/tmp\r\n\r\necho \"Install complete\"", - "container": "maven:3.8.6-openjdk-11-slim", - "entrypoint": "bash" - } - }, - "variables": [ - { - "name": "FlameCord Jar File", - "description": "The name of the jar file to use when running FlameCord.", - "env_variable": "SERVER_JARFILE", - "default_value": "flamecord.jar", - "user_viewable": true, - "user_editable": true, - "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/", - "field_type": "text" - } - ] -} \ No newline at end of file From 30cbd107bdd57b597f3a197543ae63041c158ec7 Mon Sep 17 00:00:00 2001 From: Bas van den Boom Date: Sun, 19 Feb 2023 13:21:44 +0100 Subject: [PATCH 126/473] Update README.md --- game_eggs/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/game_eggs/README.md b/game_eggs/README.md index 20fdab71..018fa0ac 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -205,4 +205,6 @@ [Xonotic](xonotic/xonotic) +[YuzuEmu](yuzu-emu) + [FoundryVTT](FoundryVTT) From 35012b41506238be06ee20fa1adeaa8cbb9f8ae3 Mon Sep 17 00:00:00 2001 From: Bas van den Boom Date: Sun, 19 Feb 2023 15:18:02 +0100 Subject: [PATCH 127/473] Requested changes --- game_eggs/yuzu-emu/yuzu-emu.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/yuzu-emu/yuzu-emu.json b/game_eggs/yuzu-emu/yuzu-emu.json index bf104560..26a24c14 100644 --- a/game_eggs/yuzu-emu/yuzu-emu.json +++ b/game_eggs/yuzu-emu/yuzu-emu.json @@ -4,9 +4,9 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-19T12:36:09+01:00", + "exported_at": "2023-02-19T15:16:38+01:00", "name": "YuzuEmu", - "author": "Z3r0byte", + "author": "me@basvandenboom.dev", "description": "Egg for hosting dedicated Yuzu multiplayer rooms.", "features": null, "docker_images": { @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "# Install build tools\r\necho \"deb http:\/\/deb.debian.org\/debian bullseye-backports main\" >> \/etc\/apt\/sources.list && \\\r\n apt-get update && apt-get -y full-upgrade && \\\r\n apt-get install -y build-essential wget git ccache ninja-build libssl-dev pkg-config libarchive-tools \\\r\n cmake\/bullseye-backports cmake-data\/bullseye-backports \r\n\r\n\r\n# Shallow clone yuzu repository, since we delete the local copy afterwards\r\ngit clone --depth 1 -j4 --recursive --shallow-submodules https:\/\/github.com\/yuzu-emu\/yuzu-mainline.git \/mnt\/server\/yuzu-mainline\r\n\r\n# Download build tools and build\r\ngit clone --depth 1 https:\/\/github.com\/yuzu-emu\/yuzu-multiplayer-dedicated.git \/mnt\/server\/build-files\r\ncd \/mnt\/server\/yuzu-mainline && \/mnt\/server\/build-files\/.ci\/build.sh\r\n\r\n# Copy server binary to container root\r\ncp \/mnt\/server\/yuzu-mainline\/build\/bin\/yuzu-room \/mnt\/server\/yuzu-room\r\n\r\n# Delete git repo's to save disk space.\r\nrm -rf \/mnt\/server\/yuzu-mainline && rm -rf \/mnt\/server\/build-files", + "script": "#!\/bin\/bash\r\n\r\n# Install build tools\r\necho \"deb http:\/\/deb.debian.org\/debian bullseye-backports main\" >> \/etc\/apt\/sources.list && \\\r\napt-get update && apt-get -y full-upgrade && \\\r\n apt-get install -y build-essential wget git ccache ninja-build libssl-dev pkg-config libarchive-tools \\\r\n cmake\/bullseye-backports cmake-data\/bullseye-backports\r\n\r\n\r\n# Shallow clone yuzu repository, since we delete the local copy afterwards\r\ngit clone --depth 1 -j4 --recursive --shallow-submodules https:\/\/github.com\/yuzu-emu\/yuzu-mainline.git \/mnt\/server\/yuzu-mainline\r\n\r\n# Download build tools and build\r\ngit clone --depth 1 https:\/\/github.com\/yuzu-emu\/yuzu-multiplayer-dedicated.git \/mnt\/server\/build-files\r\ncd \/mnt\/server\/yuzu-mainline && \/mnt\/server\/build-files\/.ci\/build.sh\r\n\r\n# Copy server binary to container root\r\ncp \/mnt\/server\/yuzu-mainline\/build\/bin\/yuzu-room \/mnt\/server\/yuzu-room\r\n\r\n# Delete git repo's to save disk space.\r\nrm -rf \/mnt\/server\/yuzu-mainline && rm -rf \/mnt\/server\/build-files", "container": "ghcr.io\/pterodactyl\/installers:debian", "entrypoint": "bash" } @@ -99,4 +99,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 8e456d0b4f06fa92958d29243681549c699b229e Mon Sep 17 00:00:00 2001 From: tzanou Date: Mon, 20 Feb 2023 02:34:47 +0100 Subject: [PATCH 128/473] make SERVER_DISABLED_NETWORK_PROTOCOLS default value nothing and make it nullable --- .../steamcmd_servers/7_days_to_die/egg-7-days-to-die.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json b/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json index 39c64524..1be67d76 100644 --- a/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json +++ b/game_eggs/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-18T21:10:19+01:00", + "exported_at": "2023-02-20T02:33:05+01:00", "name": "7 Days To Die", "author": "kristoffer.norman@bahnhof.se", "description": "7 days to die server", @@ -114,10 +114,10 @@ "name": "Network Protocols", "description": "Networking protocols that should NOT be used. Separated by comma. Possible values: LiteNetLib, SteamNetworking. Dedicated servers should disable SteamNetworking if there is no NAT router in between your users and the server or when port-forwarding is set up correctly. lets it empty if you are connecting your self hosted server behind a NAT", "env_variable": "SERVER_DISABLED_NETWORK_PROTOCOLS", - "default_value": "SteamNetworking", + "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20", + "rules": "nullable|string|max:20", "field_type": "text" } ] From 0fa2df4879a0bcaa837221b18f7396bf0171b378 Mon Sep 17 00:00:00 2001 From: melethainiel Date: Mon, 20 Feb 2023 10:10:39 +0100 Subject: [PATCH 129/473] Add astroneer egg from panel --- .../egg-astroneer-dedicated-server.json | 122 ++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 game_eggs/steamcmd_servers/astroneer/egg-astroneer-dedicated-server.json diff --git a/game_eggs/steamcmd_servers/astroneer/egg-astroneer-dedicated-server.json b/game_eggs/steamcmd_servers/astroneer/egg-astroneer-dedicated-server.json new file mode 100644 index 00000000..be9cdba6 --- /dev/null +++ b/game_eggs/steamcmd_servers/astroneer/egg-astroneer-dedicated-server.json @@ -0,0 +1,122 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-02-20T09:47:43+01:00", + "name": "Astroneer Dedicated Server", + "author": "melethainiel.aerin@gmail.com", + "description": "A game of aerospace industry and interplanetary exploration.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" + }, + "file_denylist": [], + "startup": "proton run .\/Astro\/Binaries\/Win64\/AstroServer-Win64-Shipping.exe", + "config": { + "files": "{\r\n \"Astro\/Saved\/Config\/WindowsServer\/Engine.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"url.Port\": \"{{server.build.default.port}}\",\r\n \"[SystemSettings].net.AllowEncryption\":\"false\"\r\n }\r\n },\r\n \"Astro\/Saved\/Config\/WindowsServer\/AstroServerSettings.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"[\/Script\/Astro.AstroServerSettings].PublicIP\": \"{{env.PUBLIC_IP}}\",\r\n \"[\/Script\/Astro.AstroServerSettings].OwnerName\": \"{{env.OWNER_NAME}}\",\r\n \"[\/Script\/Astro.AstroServerSettings].OwnerGuid\": \"{{env.OWNER_GUID}}\",\r\n \"[\/Script\/Astro.AstroServerSettings].PlayerProperties\": \"(PlayerFirstJoinName=\\\"{{env.OWNER_NAME}}\\\",PlayerCategory=Admin,PlayerGuid=\\\"{{env.OWNER_GUID}}\\\",PlayerRecentJoinName=\\\"\\\")\",\r\n \"[\/Script\/Astro.AstroServerSettings].ServerPassword\": \"{{env.SERVER_PWD}}\",\r\n \"[\/Script\/Astro.AstroServerSettings].ServerName\": \"{{env.SERVER_NAME}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"nable to use setpriority safely\"\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# 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## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\necho -e \"steam user is not set.\\n\"\r\necho -e \"Using anonymous user.\\n\"\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nelse\r\necho -e \"user set to ${STEAM_USER}\"\r\nfi\r\n## download and install steamcmd\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Install steamcmd\"\r\necho \"-----------------------------------------\"\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## install end\r\necho \"-----------------------------------------\"\r\necho \"Install game\"\r\necho \"-----------------------------------------\"\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## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\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## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Public IP", + "description": "Public IP to connect to the server.", + "env_variable": "PUBLIC_IP", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Server Owner Name", + "description": "Steam username of the server owner", + "env_variable": "OWNER_NAME", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Server Owner Guid", + "description": "Steam id of the server owner", + "env_variable": "OWNER_GUID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Server Password", + "description": "If specified, players must provide this password to join the server.", + "env_variable": "SERVER_PWD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|alpha_dash|between:1,100", + "field_type": "text" + }, + { + "name": "Automatic Updates", + "description": "Quickly checks for any server updates on startup, and updates if necessary. (1 Enable | 0 Disable)", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "[Advanced] Windows Install", + "description": "Windows Install", + "env_variable": "WINDOWS_INSTALL", + "default_value": "1", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "[Advanced] Steam App ID", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "728470", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "PROTON_LOG", + "description": "", + "env_variable": "PROTON_LOG", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|boolean", + "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" + } + ] +} \ No newline at end of file From 103a2de34c75375ed9e9989098519a8ec77753d8 Mon Sep 17 00:00:00 2001 From: melethainiel Date: Mon, 20 Feb 2023 10:11:03 +0100 Subject: [PATCH 130/473] updated readme to add astroneer to the list --- game_eggs/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/game_eggs/README.md b/game_eggs/README.md index 20fdab71..53bdf883 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -114,6 +114,7 @@ * [Arma 3](steamcmd_servers/arma/arma3) * [Arma Reforger](steamcmd_servers/arma/arma_reforger) * [Assetto Corsa](steamcmd_servers/assetto_corsa) +* [Astroneer](steamcmd_servers/astroneer) * [Avorion](steamcmd_servers/avorion) * [Barotrauma](steamcmd_servers/barotrauma) * [Black Mesa](steamcmd_servers/black_mesa) From afac38768d46432b2aca2dd0347eda372f0a975e Mon Sep 17 00:00:00 2001 From: melethainiel Date: Mon, 20 Feb 2023 10:11:17 +0100 Subject: [PATCH 131/473] add readme for the egg --- .../steamcmd_servers/astroneer/README.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 game_eggs/steamcmd_servers/astroneer/README.md diff --git a/game_eggs/steamcmd_servers/astroneer/README.md b/game_eggs/steamcmd_servers/astroneer/README.md new file mode 100644 index 00000000..ea3ee017 --- /dev/null +++ b/game_eggs/steamcmd_servers/astroneer/README.md @@ -0,0 +1,40 @@ +# Astroneer + +Steam description : Explore and reshape distant worlds! Astroneer is set during the gold rush of the 25th century: players must explore the farthest reaches of space, risking their lives and resources in a hostile environment for a chance to become a millionaire. + +## Install notes + +The following variables are required to prevent the server to crash on startup : +* Public IP : Used to register the server. Must be the IP used to join the server. +* Server Owner Name : Steam username of the server owner. It also set the given user as owner and administrator of the server. +* Server Owner Guid : Steam id of the server owner. It also set the given user as owner and administrator of the server. ((Steam FAQ)[https://help.steampowered.com/en/faqs/view/2816-BE67-5B69-0FEC]) + +## Minimum RAM warning + +Astroneer required at least 700MiB to run. If more than one player will connect, 1GiB seems to be a minimum. + +## Minumim Sorage warning + +Astroneer required at least 3GiB. The size may increase with larger save file. + +## Server Ports + +Astroneer requires a single port to run. + +| Port | default | +|-------------|---------| +| Game | 27000 | + +### Notes + +27000 is the default port, but any port can be used. + + +## Client Configuration + +To be able to connect to the server you need to edit Engine.ini (located at %LocalAppData%\Astro\Saved\Config\WindowsNoEditor\Engine.ini) on every player's computer by adding the following : + +``` +[SystemSettings] +net.AllowEncryption=False +``` \ No newline at end of file From fd804a1d4fba03a8a09b7a7c1c8d460c1735dff5 Mon Sep 17 00:00:00 2001 From: melethainiel Date: Mon, 20 Feb 2023 19:40:25 +0100 Subject: [PATCH 132/473] added link into the main readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 31401c12..935db02a 100644 --- a/README.md +++ b/README.md @@ -214,6 +214,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Arma 3](game_eggs/steamcmd_servers/arma/arma3) * [Arma Reforger](game_eggs/steamcmd_servers/arma/arma_reforger) * [Assetto Corsa](game_eggs/steamcmd_servers/assetto_corsa) +* [Astroneer](game_eggs/steamcmd_servers/astroneer) * [Avorion](game_eggs/steamcmd_servers/avorion) * [Barotrauma](game_eggs/steamcmd_servers/barotrauma) * [Black Mesa](game_eggs/steamcmd_servers/black_mesa) From 368c4e3a7c1e4c25e3ef51a9b7ab014d4f3700a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lker=20ARICI?= <34978332+ilkerbey-01@users.noreply.github.com> Date: Thu, 23 Feb 2023 10:25:24 +0300 Subject: [PATCH 133/473] Update egg-tachyon.json fixed some bugs and server not running, cleaned useless files. --- game_eggs/ftl/tachyon/egg-tachyon.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/game_eggs/ftl/tachyon/egg-tachyon.json b/game_eggs/ftl/tachyon/egg-tachyon.json index a2b299d5..3bf25ed7 100644 --- a/game_eggs/ftl/tachyon/egg-tachyon.json +++ b/game_eggs/ftl/tachyon/egg-tachyon.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": "2021-02-09T11:53:05-08:00", + "exported_at": "2023-02-23T08:24:07+01:00", "name": "Tachyon", "author": "alex.chang-lam@protonmail.com", "description": "A multiplayer version of FTL.", "features": null, - "images": [ - "quay.io\/pterodactyl\/core:java-11" - ], - "file_denylist": "", - "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar TachyonsCEServer.jar", + "docker_images": { + "quay.io\/pterodactyl\/core:java-11": "quay.io\/pterodactyl\/core:java-11" + }, + "file_denylist": [], + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar server\/TachyonsCEServer.jar", "config": { "files": "{}", "startup": "{\r\n \"done\": \"[Server] SERVER STARTED.\",\r\n \"userInteraction\": []\r\n}", @@ -22,10 +22,10 @@ }, "scripts": { "installation": { - "script": "#! \/bin\/bash\r\n\r\nGITHUB_PACKAGE=Dav-Edward\/TachyonsCE\r\nMATCH=TachyonsCE\r\n\r\napt update\r\napt install -y curl jq file unzip\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" != \"Not Found\" ] && [[ -z \"${VERSION}\" || \"${VERSION}\" == \"latest\" ]]; then\r\n echo -e \"grabbing latest version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" == \"Not Found\" ]; then\r\n ## emergency fallback if latest isn't found\r\n ## grabs the latest release even it it's a pre-release\r\n echo -e \"grabbing latest pre-release\"\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r '.[0].assets[].browser_download_url' | grep -i ${MATCH})\r\nelse\r\n echo -e \"grabbing version $VERSION\"\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)\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n VALIDATED_URL=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -sSL -o ${VALIDATED_URL##*\/} ${VALIDATED_URL}\r\n\r\nFILETYPE=$(file -F ',' ${VALIDATED_URL##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${VALIDATED_URL##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${VALIDATED_URL##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${VALIDATED_URL##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n # exit 2 \r\nfi\r\n\r\n#pull version and format folder name for renaming\r\nFOLDER=$(echo ${LATEST_JSON} | jq .tag_name | tr -d 'v\"')\r\n\r\n#move all server files out\r\ncp -r .\/TachyonsCE_${FOLDER}\/server\/* \/mnt\/server\r\n\r\n#remove zip and unneeded client-side and dev files\r\nrm -rf TachyonsCE_${FOLDER}\r\nrm ${VALIDATED_URL##*\/}\r\n\r\nchmod +x TachyonsCEServer.jar", + "script": "#! \/bin\/bash\r\n\r\nGITHUB_PACKAGE=Dav-Edward\/TachyonsCE\r\nMATCH=TachyonsCE\r\n\r\napt update\r\napt install -y curl jq file unzip\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" != \"Not Found\" ] && [[ -z \"${VERSION}\" || \"${VERSION}\" == \"latest\" ]]; then\r\n echo -e \"grabbing latest version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" == \"Not Found\" ]; then\r\n ## emergency fallback if latest isn't found\r\n ## grabs the latest release even it it's a pre-release\r\n echo -e \"grabbing latest pre-release\"\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r '.[0].assets[].browser_download_url' | grep -i ${MATCH})\r\nelse\r\n echo -e \"grabbing version $VERSION\"\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)\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n VALIDATED_URL=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -sSL -o ${VALIDATED_URL##*\/} ${VALIDATED_URL}\r\n\r\nFILETYPE=$(file -F ',' ${VALIDATED_URL##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${VALIDATED_URL##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${VALIDATED_URL##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${VALIDATED_URL##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n # exit 2 \r\nfi\r\n\r\n#pull version and format folder name for renaming\r\nFOLDER=$(echo ${LATEST_JSON} | jq .tag_name | tr -d 'v\"')\r\n\r\n#move all server files out\r\nmv .\/server\/* .\/\r\n\r\n#remove zip and unneeded client-side and dev files\r\nrm -rf TachyonsCE_${FOLDER}\r\nrm ${VALIDATED_URL##*\/}\r\nrm -r .\/client\r\nrm -r .\/JRE\r\nrm -r .\/server\r\n\r\nchmod +x .\/TachyonsCEServer.jar", "container": "debian:buster-slim", "entrypoint": "bash" } }, "variables": [] -} \ No newline at end of file +} From cf6ac8596c21cc9a9ed15e1dbf23d22221671c42 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 23 Feb 2023 17:52:53 +0100 Subject: [PATCH 134/473] rewrite Tachyon --- game_eggs/ftl/tachyon/egg-tachyon.json | 29 ++++++++++++++++++-------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/game_eggs/ftl/tachyon/egg-tachyon.json b/game_eggs/ftl/tachyon/egg-tachyon.json index 3bf25ed7..975fb6fc 100644 --- a/game_eggs/ftl/tachyon/egg-tachyon.json +++ b/game_eggs/ftl/tachyon/egg-tachyon.json @@ -4,28 +4,39 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-23T08:24:07+01:00", + "exported_at": "2023-02-23T17:52:24+01:00", "name": "Tachyon", "author": "alex.chang-lam@protonmail.com", "description": "A multiplayer version of FTL.", "features": null, "docker_images": { - "quay.io\/pterodactyl\/core:java-11": "quay.io\/pterodactyl\/core:java-11" + "Java_11": "ghcr.io\/pterodactyl\/yolks:java_11" }, "file_denylist": [], - "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar server\/TachyonsCEServer.jar", + "startup": "java -Xms128M -XX:MaxRAMPercentage=95.0 -Dterminal.jline=false -Dterminal.ansi=true -jar TachyonsCEServer.jar", "config": { - "files": "{}", - "startup": "{\r\n \"done\": \"[Server] SERVER STARTED.\",\r\n \"userInteraction\": []\r\n}", + "files": "{\r\n \"config.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"SERVER_PORT=\": \"SERVER_PORT={{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"[Server] SERVER STARTED.\"\r\n}", "logs": "{}", "stop": "\/exit" }, "scripts": { "installation": { - "script": "#! \/bin\/bash\r\n\r\nGITHUB_PACKAGE=Dav-Edward\/TachyonsCE\r\nMATCH=TachyonsCE\r\n\r\napt update\r\napt install -y curl jq file unzip\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" != \"Not Found\" ] && [[ -z \"${VERSION}\" || \"${VERSION}\" == \"latest\" ]]; then\r\n echo -e \"grabbing latest version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" == \"Not Found\" ]; then\r\n ## emergency fallback if latest isn't found\r\n ## grabs the latest release even it it's a pre-release\r\n echo -e \"grabbing latest pre-release\"\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r '.[0].assets[].browser_download_url' | grep -i ${MATCH})\r\nelse\r\n echo -e \"grabbing version $VERSION\"\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)\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n VALIDATED_URL=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -sSL -o ${VALIDATED_URL##*\/} ${VALIDATED_URL}\r\n\r\nFILETYPE=$(file -F ',' ${VALIDATED_URL##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${VALIDATED_URL##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${VALIDATED_URL##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${VALIDATED_URL##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n # exit 2 \r\nfi\r\n\r\n#pull version and format folder name for renaming\r\nFOLDER=$(echo ${LATEST_JSON} | jq .tag_name | tr -d 'v\"')\r\n\r\n#move all server files out\r\nmv .\/server\/* .\/\r\n\r\n#remove zip and unneeded client-side and dev files\r\nrm -rf TachyonsCE_${FOLDER}\r\nrm ${VALIDATED_URL##*\/}\r\nrm -r .\/client\r\nrm -r .\/JRE\r\nrm -r .\/server\r\n\r\nchmod +x .\/TachyonsCEServer.jar", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y curl jq file unzip\r\n\r\nif [ ! -d \/mnt\/server\/ ]; then\r\n mkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Dav-Edward\/TachyonsCE\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Dav-Edward\/TachyonsCE\/releases\")\r\nMATCH=TachyonsCE\r\n\r\nif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" != \"Not Found\" ] && [[ -z \"${VERSION}\" || \"${VERSION}\" == \"latest\" ]]; then\r\n echo -e \"grabbing latest version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\nelif [ \"$(echo ${LATEST_JSON} | jq -r '.message')\" == \"Not Found\" ]; then\r\n ## emergency fallback if latest isn't found\r\n ## grabs the latest release even it it's a pre-release\r\n echo -e \"grabbing latest pre-release\"\r\n DOWNLOAD_URL=$(echo ${RELEASES} | jq -r '.[0].assets[].browser_download_url' | grep -i ${MATCH})\r\nelse\r\n echo -e \"grabbing version $VERSION\"\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)\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl --progress-bar -sSL -o ${DOWNLOAD_URL##*\/} ${DOWNLOAD_URL}\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip -o ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exeting\"\r\n exit 2 \r\nfi\r\n\r\n#move all server files out\r\nmv .\/server\/* .\/\r\n\r\n#remove zip and unneeded client-side and dev files\r\nrm -rf server\/ JRE\/ client\/ *.zip\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "debian:bullseye-slim", "entrypoint": "bash" } }, - "variables": [] -} + "variables": [ + { + "name": "Version", + "description": "", + "env_variable": "VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + } + ] +} \ No newline at end of file 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 135/473] 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 a0aa66f4eded34e34d51cbb02157cc66e1a1fc69 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Fri, 24 Feb 2023 16:19:16 +0100 Subject: [PATCH 136/473] update gitea --- software/gitea/egg-gitea.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/software/gitea/egg-gitea.json b/software/gitea/egg-gitea.json index cd140ac5..fb7f0c88 100644 --- a/software/gitea/egg-gitea.json +++ b/software/gitea/egg-gitea.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-26T18:20:19+01:00", + "exported_at": "2023-02-24T16:18:35+01:00", "name": "Gitea", "author": "mario.franze@gmail.com", "description": "Gitea is a community managed lightweight code hosting solution written in Go. It is published under the MIT license.", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "## Gitea Installscript\r\n\r\n## Variables\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\nLATEST=$(curl https:\/\/dl.gitea.io\/gitea\/version.json | echo $(jq -r \".latest.version\"))\r\n\r\n## update system\r\napt update\r\napt install -y --no-install-recommends jq curl\r\n\r\ncd \/mnt\/server\r\n\r\n## install gitea\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n echo -e \"downloading Gitea $LATEST\"\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/${LATEST}\/gitea-${LATEST}-linux-${ARCH}\r\nelif [ \"${VERSION}\" == \"nightly\" ]; then\r\n echo -e \"downloading Gitea nightly\"\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/main\/gitea-main-linux-${ARCH}\r\nelse\r\n curl -Lo gitea https:\/\/dl.gitea.io\/gitea\/${VERSION}\/gitea-${VERSION}-linux-${ARCH}\r\n echo -e \"downloading Gitea $VERSION\"\r\nfi\r\n\r\nchmod +x gitea\r\n\r\nmkdir -p custom\r\n\r\nif [ -f \"\/mnt\/server\/custom\/app.ini\" ]; then\r\n echo \"config file exists\"\r\nelse\r\n echo \"[server]\r\n LOCAL_ROOT_URL = http:\/\/${SERVER_IP}:${SERVER_PORT}\/\r\n DOMAIN = ${SERVER_IP}\r\n HTTP_PORT = ${SERVER_PORT}\r\n ROOT_URL = http:\/\/${SERVER_IP}:${SERVER_PORT}\/\r\n DISABLE_SSH = ${DISABLE_SSH}\r\n SSH_PORT = ${SSH_PORT}\" > \/mnt\/server\/custom\/app.ini\r\nfi\r\n\r\necho -e \"-------------------------------------------------\"\r\necho -e \"Installation completed\"\r\necho -e \"-------------------------------------------------\"", + "script": "## Gitea Installscript\r\n\r\n## update system\r\napt update\r\napt -y install --no-install-recommends jq curl ca-certificates\r\n\r\n## Variables\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"arm64\")\r\nLATEST=$(curl -sSL https:\/\/dl.gitea.io\/gitea\/version.json | jq -r .latest.version)\r\n\r\n\r\ncd \/mnt\/server\r\n\r\n## install gitea\r\necho -e \"Download url: https:\/\/dl.gitea.io\/gitea\/${LATEST}\/gitea-${LATEST}-linux-${ARCH}\"\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n echo -e \"downloading Gitea $LATEST\"\r\n curl -sSL -o gitea https:\/\/dl.gitea.io\/gitea\/${LATEST}\/gitea-${LATEST}-linux-${ARCH}\r\nelif [ \"${VERSION}\" == \"nightly\" ]; then\r\n echo -e \"downloading Gitea nightly\"\r\n curl -sSL -o gitea https:\/\/dl.gitea.io\/gitea\/main\/gitea-main-linux-${ARCH}\r\nelse\r\n curl -sSL -o gitea https:\/\/dl.gitea.io\/gitea\/${VERSION}\/gitea-${VERSION}-linux-${ARCH}\r\n echo -e \"downloading Gitea $VERSION\"\r\nfi\r\n\r\nchmod +x gitea\r\n\r\nmkdir -p custom\r\n\r\nif [ -f \"\/mnt\/server\/custom\/app.ini\" ]; then\r\n echo \"config file exists\"\r\nelse\r\n echo \"[server]\r\n LOCAL_ROOT_URL = http:\/\/${SERVER_IP}:${SERVER_PORT}\/\r\n DOMAIN = ${SERVER_IP}\r\n HTTP_PORT = ${SERVER_PORT}\r\n ROOT_URL = http:\/\/${SERVER_IP}:${SERVER_PORT}\/\r\n DISABLE_SSH = ${DISABLE_SSH}\r\n SSH_PORT = ${SSH_PORT}\" > \/mnt\/server\/custom\/app.ini\r\nfi\r\n\r\necho -e \"-------------------------------------------------\"\r\necho -e \"Installation completed\"\r\necho -e \"-------------------------------------------------\"", "container": "debian:bullseye-slim", "entrypoint": "bash" } @@ -59,4 +59,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From acaa89a612945210e000e8495b3d822aed42743f Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Fri, 24 Feb 2023 17:59:32 +0100 Subject: [PATCH 137/473] Dart: add 2.18 and 2.18 image as an option --- generic/dart/egg-dart-generic.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/generic/dart/egg-dart-generic.json b/generic/dart/egg-dart-generic.json index 07daec89..5e012d50 100644 --- a/generic/dart/egg-dart-generic.json +++ b/generic/dart/egg-dart-generic.json @@ -4,13 +4,15 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-07-07T16:11:46-07:00", + "exported_at": "2023-02-24T17:58:34+01:00", "name": "dart generic", "author": "alden@knoban.com", "description": "A generic dart CLI egg.\r\n\r\nThis will clone a dart CLI application. it defaults to master if no branch is specified.\r\n\r\nInstalls the pubspec.yaml packages on run. If you set user_upload then I assume you know what you are doing.", "features": null, "docker_images": { - "ghcr.io/parkervcp/yolks:dart_2.17": "ghcr.io/parkervcp/yolks:dart_2.17" + "Dart_2.19": "ghcr.io\/parkervcp\/yolks:dart_2.19", + "Dart_2.18": "ghcr.io\/parkervcp\/yolks:dart_2.18", + "Dart_2.17": "ghcr.io\/parkervcp\/yolks:dart_2.17" }, "file_denylist": [], "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; dart pub get; dart run", 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 138/473] 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 139/473] 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 0a48aed141886f03fa0d03824f8baf8bc29d45d6 Mon Sep 17 00:00:00 2001 From: Filippo Scatigna Date: Sun, 26 Feb 2023 13:19:07 +0100 Subject: [PATCH 140/473] Changed max members and token field Updated to 12 max members and 60 for token length --- game_eggs/yuzu-emu/yuzu-emu.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/yuzu-emu/yuzu-emu.json b/game_eggs/yuzu-emu/yuzu-emu.json index 26a24c14..09fe54b4 100644 --- a/game_eggs/yuzu-emu/yuzu-emu.json +++ b/game_eggs/yuzu-emu/yuzu-emu.json @@ -75,7 +75,7 @@ "default_value": "4", "user_viewable": true, "user_editable": true, - "rules": "required|int|max:4|min:1", + "rules": "required|int|max:12|min:1", "field_type": "text" }, { @@ -95,7 +95,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:20", + "rules": "nullable|string|max:60", "field_type": "text" } ] From e489860750b4235050d853f662dc6a32b0a3f765 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 26 Feb 2023 13:58:39 +0100 Subject: [PATCH 141/473] export from panel --- game_eggs/yuzu-emu/yuzu-emu.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/yuzu-emu/yuzu-emu.json b/game_eggs/yuzu-emu/yuzu-emu.json index 09fe54b4..aa571676 100644 --- a/game_eggs/yuzu-emu/yuzu-emu.json +++ b/game_eggs/yuzu-emu/yuzu-emu.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-19T15:16:38+01:00", + "exported_at": "2023-02-26T13:57:20+01:00", "name": "YuzuEmu", "author": "me@basvandenboom.dev", "description": "Egg for hosting dedicated Yuzu multiplayer rooms.", @@ -99,4 +99,4 @@ "field_type": "text" } ] -} +} \ No newline at end of file From 4f00a8de167859a0774b46fe0b7ec55f1723191a Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Sun, 26 Feb 2023 14:38:44 +0100 Subject: [PATCH 142/473] remove cod4x from readme --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index a1959f88..230c8bef 100644 --- a/README.md +++ b/README.md @@ -108,8 +108,6 @@ If you are reading this it looks like you are looking to add an egg to your serv * [MCGalaxy](game_eggs/classicube/mcgalaxy) -[Call of Duty 4X](game_eggs/cod/cod4x) - [Doom](game_eggs/doom) * [Zandronum](game_eggs/doom/zandronum) From e7ed62d1a4b43a6db52265f270a32cf4cbbef712 Mon Sep 17 00:00:00 2001 From: "Michael (Parker) Parker" Date: Tue, 28 Feb 2023 10:10:15 -0500 Subject: [PATCH 143/473] fix readmes fixes the readmes for nanolimbo and removes other eggs that have been removed. --- README.md | 2 +- game_eggs/README.md | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 230c8bef..6827d897 100644 --- a/README.md +++ b/README.md @@ -166,7 +166,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Glowstone](game_eggs/minecraft/java/glowstone) * [Magma](game_eggs/minecraft/java/magma) * [Mohist](game_eggs/minecraft/java/mohist) - * [NanoLimbo](/game_eggs/minecraft/java/nanolimbo) + * [NanoLimbo](game_eggs/minecraft/java/nanolimbo) * [Paper](game_eggs/minecraft/java/paper) * [Purpur](game_eggs/minecraft/java/purpur) * [Spigot](game_eggs/minecraft/java/spigot) diff --git a/game_eggs/README.md b/game_eggs/README.md index 4033d169..8c66cdf4 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -23,7 +23,7 @@ * [Vanilla](factorio/factorio) * [ModUpdate](factorio/factorio-modupdate) -* [Clusterio](game_eggs/factorio/clusterio) +* [Clusterio](factorio/clusterio) [FTL: Tachyon](ftl/tachyon) @@ -53,22 +53,20 @@ * [Bedrock](minecraft/bedrock) Servers for Bedrock Minecraft (Windows 10, mobile, console) * [Bedrock](minecraft/bedrock/bedrock) * [gomint](minecraft/bedrock/gomint) - * [LiteLoaderBDS](minecraft/bedrock/LiteLoader-bedrock) + * [LiteLoaderBDS](bedrock/LiteLoader-bedrock) * [Nukkit](minecraft/bedrock/nukkit) * [PocketMine MP](minecraft/bedrock/pocketmine_mp) * [Java](minecraft/java) Servers for Java Minecraft * [Cuberite](minecraft/java/cuberite) - * [CusreForge Generic](minecraft/java/forge/curseforge-generic) * [Fabric](minecraft/java/fabric) * [Feather](minecraft/java/feather) + * [Feed The Beast](minecraft/java/ftb) * [Forge](minecraft/java/forge) * [Glowstone](minecraft/java/glowstone) - * [Feed The Beast](minecraft/java/ftb) - * [Krypton](/minecraft/java/krypton) * [Magma](minecraft/java/magma) * [Mohist](minecraft/java/mohist) - * [NanoLimbo](/minecraft/java/nanolimbo) + * [NanoLimbo](minecraft/java/nanolimbo) * [Paper](minecraft/java/paper) * [Purpur](minecraft/java/purpur) * [Spigot](minecraft/java/spigot) @@ -77,17 +75,19 @@ * [Technic](minecraft/java/technic) * [VanillaCord](minecraft/java/vanillacord) +* [Crossplay](minecraft/crossplay/) servers for crossplay between Bedrock and Java edition + * [Purpur-GeyserMC-Floodgate](minecraft/crossplay/purpur-geysermc-floodgate/) + * [Proxies](minecraft/proxy) Minecraft Server Proxies + * [Java](minecraft/proxy/java) + * [Travertine](minecraft/proxy/java/travertine) + * [Velocity](minecraft/proxy/java/velocity) + * [Waterfall](minecraft/proxy/java/waterfall) * [Bedrock](minecraft/proxy/bedrock) * [Waterdog PE](minecraft/proxy/bedrock/waterdog_pe) * [Cross Platform](minecraft/proxy/cross_platform) * [GeyserMC](minecraft/proxy/cross_platform/geyser) * [Waterdog](minecraft/proxy/cross_platform/waterdog) - * [Java](minecraft/proxy/java) - * [Travertine](minecraft/proxy/java/travertine) - * [Velocity](minecraft/proxy/java/velocity) - * [VIAaas](minecraft/proxy/java/viaaas) - * [Waterfall](minecraft/proxy/java/waterfall) [Minetest](minetest) (including MTG) From 027eff735a94e40eb316a13a918418ee6b0c333b Mon Sep 17 00:00:00 2001 From: manyrandomthings <42223559+manyrandomthings@users.noreply.github.com> Date: Tue, 28 Feb 2023 14:40:26 -0500 Subject: [PATCH 144/473] Update egg-ftb-modpacksch-server.json --- .../java/ftb/egg-ftb-modpacksch-server.json | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json b/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json index ad59555a..f428bb1e 100644 --- a/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json +++ b/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json @@ -1,10 +1,10 @@ { "_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-06-14T21:28:54+03:00", + "exported_at": "2023-02-28T14:35:03-05:00", "name": "FTB-modpacks.ch Server", "author": "runemaster580@gmail.com", "description": "Since the release of the FTB APP, FTB modpacks are now distributed through modpacks.ch. This egg was developed for support for modpacks that are distributed through this.", @@ -13,23 +13,23 @@ "java_version", "pid_limit" ], - "images": [ - "ghcr.io\/pterodactyl\/yolks:java_8", - "ghcr.io\/pterodactyl\/yolks:java_11", - "ghcr.io\/pterodactyl\/yolks:java_16", - "ghcr.io\/pterodactyl\/yolks:java_17" - ], + "docker_images": { + "Java 17": "ghcr.io\/pterodactyl\/yolks:java_17", + "Java 16": "ghcr.io\/pterodactyl\/yolks:java_16", + "Java 11": "ghcr.io\/pterodactyl\/yolks:java_11", + "Java 8": "ghcr.io\/pterodactyl\/yolks:java_8" + }, "file_denylist": [], - "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar forge-server.jar", + "startup": "java -javaagent:log4jfix\/Log4jPatcher-1.0.0.jar -Xms128M -XX:MaxRAMPercentage=95.0 -Dterminal.jline=false -Dterminal.ansi=true $( [[ ! -f unix_args.txt ]] && printf %s \"-jar start-server.jar\" || printf %s \"@unix_args.txt\" )", "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 \"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}", + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\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\n# FTB Pack Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir -p \/mnt\/server\r\nfi\r\n\r\n# Download needed software.\r\nfunction install_required {\r\n apt update\r\n apt install -y curl jq dos2unix\r\n}\r\n\r\n\r\nfunction get_download {\r\n # if no modpack id is set and modpack search term is set.\r\n if [ -z ${FTB_MODPACK_ID} ] && [ \"${FTB_SEARCH_TERM}\" != \"\" ]; then\r\n JSON_DATA=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/search\/8?term=${FTB_SEARCH_TERM})\r\n \r\n # grabs the first modpack in array.\r\n FTB_MODPACK_ID=$(echo -e ${JSON_DATA} | jq -r \".packs[]\")\r\n fi\r\n \r\n if [ -z ${FTB_MODPACK_VERSION_ID} ] && [ \"${FTB_VERSION_STRING}\" != \"\" ]; then\r\n # grabs the correct version id matching the string.\r\n FTB_MODPACK_VERSION_ID=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/${FTB_MODPACK_ID} | jq -r --arg VSTRING ${FTB_VERSION_STRING} '.versions[] | select(.name == $VSTRING) | .id')\r\n fi\r\n \r\n echo -e \"ID: ${FTB_MODPACK_ID} VersionID: ${FTB_MODPACK_VERSION_ID}\"\r\n \r\n cd \/mnt\/server\r\n \r\n curl https:\/\/api.modpacks.ch\/public\/modpack\/${FTB_MODPACK_ID}\/${FTB_MODPACK_VERSION_ID}\/server\/linux --output serversetup\r\n chmod +x .\/serversetup\r\n .\/serversetup ${FTB_MODPACK_ID} ${FTB_MODPACK_VERSION_ID} --auto\r\n}\r\n\r\nfunction cleanup {\r\n rm -rf serversetup\r\n mv forge-*.jar forge-server.jar\r\n}\r\n\r\ninstall_required\r\nget_download\r\ncleanup", + "script": "#!\/bin\/bash\r\n# FTB Pack Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n# Download needed software.\r\napt update\r\napt install -y curl jq\r\n\r\n\r\n# if no modpack id is set and modpack search term is set.\r\nif [ -z ${FTB_MODPACK_ID} ] && [ ! -z ${FTB_SEARCH_TERM} ]; then\r\n JSON_DATA=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/search\/8?term=${FTB_SEARCH_TERM})\r\n\r\n # grabs the first modpack in array.\r\n FTB_MODPACK_ID=$(echo -e ${JSON_DATA} | jq -r \".packs[]\")\r\nfi\r\n\r\nif [ -z ${FTB_MODPACK_VERSION_ID} ] && [ ! -z ${FTB_VERSION_STRING} ]; then\r\n # grabs the correct version id matching the string.\r\n FTB_MODPACK_VERSION_ID=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/${FTB_MODPACK_ID} | jq -r --arg VSTRING ${FTB_VERSION_STRING} '.versions[] | select(.name == $VSTRING) | .id')\r\nfi\r\n\r\n# get architecture for installer\r\nINSTALLER_TYPE=$([ \"$(uname -m)\" == \"x86_64\" ] && echo \"linux\" || echo \"arm\/linux\")\r\n\r\necho \"ModpackID: ${FTB_MODPACK_ID} VersionID: ${FTB_MODPACK_VERSION_ID} InstallerType: ${INSTALLER_TYPE}\"\r\n\r\n# download installer\r\ncurl -L https:\/\/api.modpacks.ch\/public\/modpack\/0\/0\/server\/${INSTALLER_TYPE} --output serversetup\r\nchmod +x .\/serversetup\r\n\r\n\r\n# remove old forge files (to allow updating)\r\nrm -rf libraries\/net\/minecraftforge\/forge\r\nrm -f unix_args.txt\r\n\r\n# run installer\r\n.\/serversetup ${FTB_MODPACK_ID} ${FTB_MODPACK_VERSION_ID} --auto --noscript --nojava\r\n\r\n# create symlink for forge unix_args.txt if exists\r\nif compgen -G \"libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt\"; then\r\n ln -sf libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt unix_args.txt\r\nfi\r\n\r\n# move forge\/fabric jar file to start-server.jar if exists\r\nif compgen -G \"forge-*.jar\"; then\r\n mv -f forge-*.jar start-server.jar\r\nelif compgen -G \"fabric-*.jar\"; then\r\n mv -f fabric-*.jar start-server.jar\r\nfi\r\n\r\n# installer cleanup\r\nrm serversetup\r\nrm -f run.bat\r\nrm -f run.sh\r\n\r\necho \"Finished installing FTB modpack\"", "container": "openjdk:8-jdk-slim", "entrypoint": "bash" } @@ -42,7 +42,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:99|min:4" + "rules": "nullable|string|max:99|min:4", + "field_type": "text" }, { "name": "FTB modpack ID", @@ -51,7 +52,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:20" + "rules": "nullable|integer|min:1", + "field_type": "text" }, { "name": "FTB Pack Version", @@ -60,7 +62,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:20" + "rules": "nullable|string|max:20", + "field_type": "text" }, { "name": "FTB Pack Version ID", @@ -69,7 +72,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:20" + "rules": "nullable|integer|min:1", + "field_type": "text" } ] } From 2559d89a267406217930562c4d718be6cfe21e41 Mon Sep 17 00:00:00 2001 From: Enozi <54645039+enozii@users.noreply.github.com> Date: Thu, 2 Mar 2023 17:54:27 +0100 Subject: [PATCH 145/473] Updated to latest version --- .../the_isle/evrima/egg-the-isle.json | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 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 964631b3..1be4183e 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,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-07-18T08:34:37+02:00", + "exported_at": "2023-03-02T17:52:48+01: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.", @@ -15,14 +15,14 @@ "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", "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 }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"Queue system listening on\"\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 \"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 }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"r.EyeAdaptation.BlackHistogramBucketInfluence =\"\r\n}", "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", - "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 curl lib32gcc-s1 ca-certificates\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\necho -e \"steam user is not set.\\n\"\r\necho -e \"Using anonymous user.\\n\"\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nelse\r\necho -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\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 Anonymous +app_update 412680 -beta evrima validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\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## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\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\/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\nLocalChatRange=20000.f\r\nQueuePort=${QUEUE_PORT}\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", + "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 curl lib32gcc-s1 ca-certificates\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\necho -e \"steam user is not set.\\n\"\r\necho -e \"Using anonymous user.\\n\"\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nelse\r\necho -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\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 Anonymous +app_update 412680 -beta evrima validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\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## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\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\/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\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", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -35,7 +35,7 @@ "default_value": "Norden", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:40", + "rules": "required|string|max:70", "field_type": "text" }, { @@ -48,24 +48,14 @@ "rules": "required|numeric|digits_between:1,100", "field_type": "text" }, - { - "name": "Server admin", - "description": "", - "env_variable": "ADMINSTEAMID", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable", - "field_type": "text" - }, { "name": "RCON", - "description": "", + "description": "true or false", "env_variable": "RCON", "default_value": "false", "user_viewable": true, "user_editable": true, - "rules": "required|in:true,false", + "rules": "required|string", "field_type": "text" }, { @@ -97,6 +87,16 @@ "user_editable": true, "rules": "required|numeric", "field_type": "text" + }, + { + "name": "Discord", + "description": "", + "env_variable": "DISCORD", + "default_value": "norden", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20", + "field_type": "text" } ] } From 6d9b42b8880c453330ab8fd4fa4326efd5c1d12e Mon Sep 17 00:00:00 2001 From: Enozi <54645039+enozii@users.noreply.github.com> Date: Fri, 3 Mar 2023 09:35:24 +0100 Subject: [PATCH 146/473] Updated Evrima egg to latest version added humans --- .../the_isle/evrima/egg-the-isle.json | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 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 1be4183e..f21a3a6b 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,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-02T17:52:48+01:00", + "exported_at": "2023-03-03T09:34:18+01: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.", @@ -15,14 +15,14 @@ "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", "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 }\r\n }\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 \"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}", "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", "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 curl lib32gcc-s1 ca-certificates\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\necho -e \"steam user is not set.\\n\"\r\necho -e \"Using anonymous user.\\n\"\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nelse\r\necho -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\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 Anonymous +app_update 412680 -beta evrima validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\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## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\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\/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\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", + "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 curl lib32gcc-s1 ca-certificates\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\necho -e \"steam user is not set.\\n\"\r\necho -e \"Using anonymous user.\\n\"\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nelse\r\necho -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\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 Anonymous +app_update 412680 -beta evrima validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\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## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\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\/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", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -32,7 +32,7 @@ "name": "Server Name", "description": "Sets the name for the server", "env_variable": "SERVER_NAME", - "default_value": "Norden", + "default_value": "A Pterodactyl server", "user_viewable": true, "user_editable": true, "rules": "required|string|max:70", @@ -52,10 +52,10 @@ "name": "RCON", "description": "true or false", "env_variable": "RCON", - "default_value": "false", + "default_value": "=false", "user_viewable": true, "user_editable": true, - "rules": "required|string", + "rules": "required|in:=true,=false", "field_type": "text" }, { @@ -97,6 +97,16 @@ "user_editable": true, "rules": "nullable|string|max:20", "field_type": "text" + }, + { + "name": "Humans", + "description": "Enable or disable humans. true or false", + "env_variable": "HUMANS", + "default_value": "=false", + "user_viewable": true, + "user_editable": true, + "rules": "required|in:=true,=false", + "field_type": "text" } ] } From 3d64fb4b80e096a4e64888719d81a005d55d02d3 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Fri, 3 Mar 2023 16:16:28 +0100 Subject: [PATCH 147/473] fixed public Server variable --- .../valheim/valheim_bepinex/egg-valheim-bep-i-nex.json | 4 ++-- .../valheim/valheim_plus/egg-valheim-plus-mod.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json index da7b76cc..b2f3879f 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-29T11:38:42+01:00", + "exported_at": "2023-03-03T16:16:01+01:00", "name": "Valheim BepINex", "author": "info@goover.de", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture incl the Plugin Framework BepInEx", @@ -63,7 +63,7 @@ { "name": "Public Server", "description": "", - "env_variable": "PUBLIC", + "env_variable": "PUBLIC_SERVER", "default_value": "1", "user_viewable": true, "user_editable": true, diff --git a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json index 5015436d..82968fc1 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-15T11:43:15+01:00", + "exported_at": "2023-03-03T16:15:23+01:00", "name": "Valheim Plus Mod", "author": "info@goover.de", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture.", @@ -63,7 +63,7 @@ { "name": "Public Server", "description": "Public visibility of your server. Set it to false to make the server invisible and only joinable via the 'Join IP'-button.", - "env_variable": "PUBLIC", + "env_variable": "PUBLIC_SERVER", "default_value": "1", "user_viewable": true, "user_editable": true, From a7a592351b50c7069d0b148132ae9d8d0ad45edc Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 4 Mar 2023 15:05:57 +0100 Subject: [PATCH 148/473] Update egg-among-us--impostor-server.json --- .../impostor_server/egg-among-us--impostor-server.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json b/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json index f49ff629..ba3d3b54 100644 --- a/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json +++ b/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-18T15:43:34+01:00", + "exported_at": "2023-03-04T15:04:21+01:00", "name": "Among Us - Impostor Server", "author": "info@goover.de", "description": "Impostor is one of the first Among Us private servers, written in C#.\r\n\r\nThere are no special features at this moment, the goal is aiming to be as close as possible to the real server, for now. In a later stage, making modifications to game logic by modifying GameData packets can be looked at.", @@ -23,7 +23,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl jq tar\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Impostor\/Impostor\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Impostor\/Impostor\/releases\")\r\nMATCH=linux-x64\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} | head -1)\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} | head -1)\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 -i ${MATCH} | head -1)\r\n fi\r\nfi\r\n\r\necho -e \"\\nDownloading from ${DOWNLOAD_LINK}\"\r\ncurl sSL -o imposter-server.tar.gz ${DOWNLOAD_LINK}\r\n\r\ntar xvf imposter-server.tar.gz\r\nrm imposter-server.tar.gz\r\nchmod +x Impostor.Server\r\n\r\necho -e \"\\nInstall completed\"", + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt -y install curl jq tar\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Impostor\/Impostor\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Impostor\/Impostor\/releases\")\r\nMATCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux-x64\" || echo \"linux-arm64\")\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)\r\n fi\r\nfi\r\n\r\necho -e \"\\nDownloading from $DOWNLOAD_URL\"\r\ncurl -sSL -o imposter-server.tar.gz $DOWNLOAD_URL\r\n\r\n\r\necho -e \"\\nUnpacking .tar.gz\"\r\ntar xvf imposter-server.tar.gz\r\n\r\nrm imposter-server.tar.gz\r\nchmod +x Impostor.Server\r\n\r\necho -e \"\\nInstall completed\"", "container": "debian:bullseye-slim", "entrypoint": "bash" } From 706e84fc9d402a70a45f8fb9600e8338c9798160 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 5 Mar 2023 16:14:13 +0100 Subject: [PATCH 149/473] add Portal Knights --- README.md | 1 + game_eggs/README.md | 1 + game_eggs/steamcmd_servers/README.md | 4 + .../steamcmd_servers/portal_knights/README.md | 22 +++ .../portal_knights/egg-portal-knights.json | 164 ++++++++++++++++++ 5 files changed, 192 insertions(+) create mode 100644 game_eggs/steamcmd_servers/portal_knights/README.md create mode 100644 game_eggs/steamcmd_servers/portal_knights/egg-portal-knights.json diff --git a/README.md b/README.md index 6827d897..6d5d9350 100644 --- a/README.md +++ b/README.md @@ -243,6 +243,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Open Fortress](game_eggs/steamcmd_servers/open_fortress) * [Pavlov VR](game_eggs/steamcmd_servers/pavlov_vr) * [PixARK](game_eggs/steamcmd_servers/pixark) +* [Portal Knights](game_eggs/steamcmd_servers/portal_knights) * [Post Scriptum](game_eggs/steamcmd_servers/post_scriptum) * [Project Zomboid](game_eggs/steamcmd_servers/project_zomboid) * [Quake Live](game_eggs/steamcmd_servers/quake_live) diff --git a/game_eggs/README.md b/game_eggs/README.md index 8c66cdf4..9ee98e57 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -143,6 +143,7 @@ * [Open Fortress](steamcmd_servers/open_fortress) * [Pavlov VR](steamcmd_servers/pavlov_vr) * [PixARK](steamcmd_servers/pixark) +* [Portal Knights](steamcmd_servers/portal_knights) * [Post Scriptum](steamcmd_servers/post_scriptum) * [Project Zomboid](steamcmd_servers/project_zomboid) * [Quake Live](steamcmd_servers/quake_live) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index 5ddce746..e46946c7 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -130,6 +130,10 @@ This is a collection of servers that use SteamCMD to install. [PixARK](pixark) +## Portal Knights + +[Portal Knights](portal_knights) + ## Post Scriptum [Post Scriptum](post_scriptum) diff --git a/game_eggs/steamcmd_servers/portal_knights/README.md b/game_eggs/steamcmd_servers/portal_knights/README.md new file mode 100644 index 00000000..24cf948c --- /dev/null +++ b/game_eggs/steamcmd_servers/portal_knights/README.md @@ -0,0 +1,22 @@ +# Portal Knights + +The world of Elysia needs YOU! Join this cooperative, 3D sandbox action RPG to level up your character, craft epic weapons, conquer enemies in real-time, and build almost anything! Craft your adventure. Forge your hero. Become the ultimate Portal Knight! + +## Server + +Because the server files are not in a dedicated Steam app id this egg installs the whole game and then unpacks the .zip with the dedicated server files. + +**Because of this a steam account is required that own the game and has Steam guard off** + +## WineHQ + +The server is running with wine. So the console output can be a litte strange but it does work. + +## Server Ports + +Portal Knights requires 1 port + +| Port | default | +|-------|---------| +| Game | 16365 | + diff --git a/game_eggs/steamcmd_servers/portal_knights/egg-portal-knights.json b/game_eggs/steamcmd_servers/portal_knights/egg-portal-knights.json new file mode 100644 index 00000000..076d1ba4 --- /dev/null +++ b/game_eggs/steamcmd_servers/portal_knights/egg-portal-knights.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-03-05T15:53:22+01:00", + "name": "Portal Knights", + "author": "josdekurk@gmail.com", + "description": "The world of Elysia needs YOU! Join this cooperative, 3D sandbox action RPG to level up your character, craft epic weapons, conquer enemies in real-time, and build almost anything! Craft your adventure. Forge your hero. Become the ultimate Portal Knight!", + "features": [ + "steam_disk_space" + ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + }, + "file_denylist": [], + "startup": "cd \/home\/container\/dedicated_server; xvfb-run --auto-servernum wine pk_dedicated_server.exe -config server_config.json -log server.log", + "config": { + "files": "{\r\n \"dedicated_server\/server_config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"basicServerData.name\":\"{{server.build.env.SERVER_NAME}}\",\r\n \"basicServerData.ipv4\":\"0.0.0.0\",\r\n \"basicServerData.port\":\"{{server.build.default.port}}\",\r\n \"basicServerData.saveFolderPath\":\".\/savedata\",\r\n \"admins.credentials.password\":\"{{server.build.env.ADMIN_PASS}}\",\r\n \"users.credentials.password\":\"{{server.build.env.USER_PASS}}\",\r\n \"guests.credentials.password\":\"{{server.build.env.GUEST_PASS}}\",\r\n \"gameplayMode\":\"{{server.build.env.GAMEMODE}}\",\r\n \"universeSize\":\"{{server.build.env.UNIVERSE_SIZE}}\",\r\n \"hideConsoleWindow\":\"true\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Listening on\"\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## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} validate +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## add below your custom commands if needed\r\ncd \/mnt\/server\r\nunzip -o dedicated_server.zip\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 user", + "description": "", + "env_variable": "STEAM_USER", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Steam password", + "description": "", + "env_variable": "STEAM_PASS", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Install windows version", + "description": "", + "env_variable": "WINDOWS_INSTALL", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "boolean", + "field_type": "text" + }, + { + "name": "App id", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "374040", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:374040", + "field_type": "text" + }, + { + "name": "Auto update", + "description": "Auto update server on startup.", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "boolean", + "field_type": "text" + }, + { + "name": "WINEARCH", + "description": "", + "env_variable": "WINEARCH", + "default_value": "win64", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:win32,win64", + "field_type": "text" + }, + { + "name": "WINEDEBUG", + "description": "", + "env_variable": "WINEDEBUG", + "default_value": "-all", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:64", + "field_type": "text" + }, + { + "name": "Server Name", + "description": "The name off the server", + "env_variable": "SERVER_NAME", + "default_value": "Servername", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + }, + { + "name": "Admin password", + "description": "", + "env_variable": "ADMIN_PASS", + "default_value": "admin_password_please_change", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:64", + "field_type": "text" + }, + { + "name": "User password", + "description": "", + "env_variable": "USER_PASS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:64", + "field_type": "text" + }, + { + "name": "Guest password", + "description": "", + "env_variable": "GUEST_PASS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:64", + "field_type": "text" + }, + { + "name": "Game mode", + "description": "The game play mode for the dedicated server.", + "env_variable": "GAMEMODE", + "default_value": "Adventure", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:Adventure,Creative", + "field_type": "text" + }, + { + "name": "Universe size", + "description": "The universe size for the dedicated server.", + "env_variable": "UNIVERSE_SIZE", + "default_value": "Normal", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:Small,Normal,Large", + "field_type": "text" + } + ] +} \ No newline at end of file From 0908ad2fbbd2b9435077d00f27007039526fa5b7 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 5 Mar 2023 17:29:33 +0100 Subject: [PATCH 150/473] fix unzip + add storage to readme --- game_eggs/steamcmd_servers/portal_knights/README.md | 4 ++++ .../portal_knights/egg-portal-knights.json | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/game_eggs/steamcmd_servers/portal_knights/README.md b/game_eggs/steamcmd_servers/portal_knights/README.md index 24cf948c..0692eef2 100644 --- a/game_eggs/steamcmd_servers/portal_knights/README.md +++ b/game_eggs/steamcmd_servers/portal_knights/README.md @@ -12,6 +12,10 @@ Because the server files are not in a dedicated Steam app id this egg installs t The server is running with wine. So the console output can be a litte strange but it does work. +## Storage + +This server will at least needs 12GB of storage allocated to be able to start + ## Server Ports Portal Knights requires 1 port diff --git a/game_eggs/steamcmd_servers/portal_knights/egg-portal-knights.json b/game_eggs/steamcmd_servers/portal_knights/egg-portal-knights.json index 076d1ba4..064cbe10 100644 --- a/game_eggs/steamcmd_servers/portal_knights/egg-portal-knights.json +++ b/game_eggs/steamcmd_servers/portal_knights/egg-portal-knights.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-05T15:53:22+01:00", + "exported_at": "2023-03-05T17:26:48+01:00", "name": "Portal Knights", "author": "josdekurk@gmail.com", "description": "The world of Elysia needs YOU! Join this cooperative, 3D sandbox action RPG to level up your character, craft epic weapons, conquer enemies in real-time, and build almost anything! Craft your adventure. Forge your hero. Become the ultimate Portal Knight!", @@ -17,14 +17,14 @@ "file_denylist": [], "startup": "cd \/home\/container\/dedicated_server; xvfb-run --auto-servernum wine pk_dedicated_server.exe -config server_config.json -log server.log", "config": { - "files": "{\r\n \"dedicated_server\/server_config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"basicServerData.name\":\"{{server.build.env.SERVER_NAME}}\",\r\n \"basicServerData.ipv4\":\"0.0.0.0\",\r\n \"basicServerData.port\":\"{{server.build.default.port}}\",\r\n \"basicServerData.saveFolderPath\":\".\/savedata\",\r\n \"admins.credentials.password\":\"{{server.build.env.ADMIN_PASS}}\",\r\n \"users.credentials.password\":\"{{server.build.env.USER_PASS}}\",\r\n \"guests.credentials.password\":\"{{server.build.env.GUEST_PASS}}\",\r\n \"gameplayMode\":\"{{server.build.env.GAMEMODE}}\",\r\n \"universeSize\":\"{{server.build.env.UNIVERSE_SIZE}}\",\r\n \"hideConsoleWindow\":\"true\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"Listening on\"\r\n}", + "files": "{\r\n \"dedicated_server\/server_config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"basicServerData.name\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"basicServerData.ipv4\": \"0.0.0.0\",\r\n \"basicServerData.port\": \"{{server.build.default.port}}\",\r\n \"basicServerData.saveFolderPath\": \".\/savedata\",\r\n \"admins.credentials.password\": \"{{server.build.env.ADMIN_PASS}}\",\r\n \"users.credentials.password\": \"{{server.build.env.USER_PASS}}\",\r\n \"guests.credentials.password\": \"{{server.build.env.GUEST_PASS}}\",\r\n \"gameplayMode\": \"{{server.build.env.GAMEMODE}}\",\r\n \"universeSize\": \"{{server.build.env.UNIVERSE_SIZE}}\",\r\n \"hideConsoleWindow\": \"true\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\":[\r\n \"Listening on\",\r\n \"ReadyToServe\",\r\n \"has started\"\r\n ]\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## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} validate +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## add below your custom commands if needed\r\ncd \/mnt\/server\r\nunzip -o dedicated_server.zip\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# 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} 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\ndir=\/mnt\/server\/dedicated_server\r\nif [[ ! -e $dir ]]; then\r\n mkdir -p $dir\r\nfi\r\n\r\ncd \/mnt\/server\/dedicated_server\r\nunzip -o ..\/dedicated_server.zip\r\ncurl -sSL -o server_config.json https:\/\/pteropaste.com\/f8p6yx0yj07d\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } From e26fc57b989e69e3b0beda8156f5d40d98bf2104 Mon Sep 17 00:00:00 2001 From: manyrandomthings <42223559+manyrandomthings@users.noreply.github.com> Date: Sun, 5 Mar 2023 13:38:27 -0500 Subject: [PATCH 151/473] Implement suggested fixes --- .../java/ftb/egg-ftb-modpacksch-server.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json b/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json index f428bb1e..76b1adeb 100644 --- a/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json +++ b/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-28T14:35:03-05:00", + "exported_at": "2023-03-05T13:37:42-05:00", "name": "FTB-modpacks.ch Server", "author": "runemaster580@gmail.com", "description": "Since the release of the FTB APP, FTB modpacks are now distributed through modpacks.ch. This egg was developed for support for modpacks that are distributed through this.", @@ -29,7 +29,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# FTB Pack Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n# Download needed software.\r\napt update\r\napt install -y curl jq\r\n\r\n\r\n# if no modpack id is set and modpack search term is set.\r\nif [ -z ${FTB_MODPACK_ID} ] && [ ! -z ${FTB_SEARCH_TERM} ]; then\r\n JSON_DATA=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/search\/8?term=${FTB_SEARCH_TERM})\r\n\r\n # grabs the first modpack in array.\r\n FTB_MODPACK_ID=$(echo -e ${JSON_DATA} | jq -r \".packs[]\")\r\nfi\r\n\r\nif [ -z ${FTB_MODPACK_VERSION_ID} ] && [ ! -z ${FTB_VERSION_STRING} ]; then\r\n # grabs the correct version id matching the string.\r\n FTB_MODPACK_VERSION_ID=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/${FTB_MODPACK_ID} | jq -r --arg VSTRING ${FTB_VERSION_STRING} '.versions[] | select(.name == $VSTRING) | .id')\r\nfi\r\n\r\n# get architecture for installer\r\nINSTALLER_TYPE=$([ \"$(uname -m)\" == \"x86_64\" ] && echo \"linux\" || echo \"arm\/linux\")\r\n\r\necho \"ModpackID: ${FTB_MODPACK_ID} VersionID: ${FTB_MODPACK_VERSION_ID} InstallerType: ${INSTALLER_TYPE}\"\r\n\r\n# download installer\r\ncurl -L https:\/\/api.modpacks.ch\/public\/modpack\/0\/0\/server\/${INSTALLER_TYPE} --output serversetup\r\nchmod +x .\/serversetup\r\n\r\n\r\n# remove old forge files (to allow updating)\r\nrm -rf libraries\/net\/minecraftforge\/forge\r\nrm -f unix_args.txt\r\n\r\n# run installer\r\n.\/serversetup ${FTB_MODPACK_ID} ${FTB_MODPACK_VERSION_ID} --auto --noscript --nojava\r\n\r\n# create symlink for forge unix_args.txt if exists\r\nif compgen -G \"libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt\"; then\r\n ln -sf libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt unix_args.txt\r\nfi\r\n\r\n# move forge\/fabric jar file to start-server.jar if exists\r\nif compgen -G \"forge-*.jar\"; then\r\n mv -f forge-*.jar start-server.jar\r\nelif compgen -G \"fabric-*.jar\"; then\r\n mv -f fabric-*.jar start-server.jar\r\nfi\r\n\r\n# installer cleanup\r\nrm serversetup\r\nrm -f run.bat\r\nrm -f run.sh\r\n\r\necho \"Finished installing FTB modpack\"", + "script": "#!\/bin\/bash\r\n# FTB Pack Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir -p \/mnt\/server\r\nfi\r\ncd \/mnt\/server\r\n\r\n\r\n# Download needed software.\r\nfunction install_required {\r\n apt update\r\n apt install -y curl jq\r\n}\r\n\r\nfunction get_modpack_id {\r\n # if no modpack id is set and modpack search term is set.\r\n if [ -z ${FTB_MODPACK_ID} ] && [ ! -z ${FTB_SEARCH_TERM} ]; then\r\n JSON_DATA=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/search\/8?term=${FTB_SEARCH_TERM})\r\n \r\n # grabs the first modpack in array.\r\n FTB_MODPACK_ID=$(echo -e ${JSON_DATA} | jq -r \".packs[]\")\r\n fi\r\n \r\n if [ -z ${FTB_MODPACK_VERSION_ID} ] && [ ! -z ${FTB_VERSION_STRING} ]; then\r\n # grabs the correct version id matching the string.\r\n FTB_MODPACK_VERSION_ID=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/${FTB_MODPACK_ID} | jq -r --arg VSTRING ${FTB_VERSION_STRING} '.versions[] | select(.name == $VSTRING) | .id')\r\n fi\r\n}\r\n\r\nfunction run_installer {\r\n # get architecture for installer\r\n INSTALLER_TYPE=$([ \"$(uname -m)\" == \"x86_64\" ] && echo \"linux\" || echo \"arm\/linux\")\r\n echo \"ModpackID: ${FTB_MODPACK_ID} VersionID: ${FTB_MODPACK_VERSION_ID} InstallerType: ${INSTALLER_TYPE}\"\r\n\r\n # download installer\r\n curl -L https:\/\/api.modpacks.ch\/public\/modpack\/0\/0\/server\/${INSTALLER_TYPE} --output serversetup\r\n chmod +x .\/serversetup\r\n \r\n # remove old forge files (to allow updating)\r\n rm -rf libraries\/net\/minecraftforge\/forge\r\n rm -f unix_args.txt\r\n \r\n # run installer\r\n .\/serversetup ${FTB_MODPACK_ID} ${FTB_MODPACK_VERSION_ID} --auto --noscript --nojava\r\n}\r\n\r\n# allows startup command to work\r\nfunction move_startup_files {\r\n # create symlink for forge unix_args.txt if exists\r\n if compgen -G \"libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt\"; then\r\n ln -sf libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt unix_args.txt\r\n fi\r\n \r\n # move forge\/fabric jar file to start-server.jar if exists\r\n if compgen -G \"forge-*.jar\"; then\r\n mv -f forge-*.jar start-server.jar\r\n elif compgen -G \"fabric-*.jar\"; then\r\n mv -f fabric-*.jar start-server.jar\r\n fi\r\n}\r\n\r\n# installer cleanup\r\nfunction installer_cleanup {\r\n rm serversetup\r\n rm -f run.bat\r\n rm -f run.sh\r\n}\r\n\r\n# run installation steps\r\ninstall_required\r\nget_modpack_id\r\nrun_installer\r\nmove_startup_files\r\ninstaller_cleanup\r\n\r\necho \"Finished installing FTB modpack\"", "container": "openjdk:8-jdk-slim", "entrypoint": "bash" } @@ -42,7 +42,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:99|min:4", + "rules": "nullable|string", "field_type": "text" }, { @@ -52,7 +52,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|integer|min:1", + "rules": "nullable|integer", "field_type": "text" }, { @@ -62,7 +62,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:20", + "rules": "nullable|string", "field_type": "text" }, { @@ -72,7 +72,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|integer|min:1", + "rules": "nullable|integer", "field_type": "text" } ] From 3b484aba36a67436df7ef0ed000c16824f20f82c Mon Sep 17 00:00:00 2001 From: Kamisoi Date: Wed, 8 Mar 2023 22:14:39 +0100 Subject: [PATCH 152/473] feat: add support for unstable and pre --- game_eggs/vintage_story/README.md | 2 + .../vintage_story/egg-vintage-story.json | 52 +++++++++++++------ 2 files changed, 37 insertions(+), 17 deletions(-) diff --git a/game_eggs/vintage_story/README.md b/game_eggs/vintage_story/README.md index 827a8b9c..8770402d 100644 --- a/game_eggs/vintage_story/README.md +++ b/game_eggs/vintage_story/README.md @@ -4,6 +4,8 @@ The server supports mods +Egg supports following branches for server files: [pre](http://api.vintagestory.at/pre.json), [unstable](http://api.vintagestory.at/unstable.json), [stable](http://api.vintagestory.at/stable.json) + ### from the developers Vintage Story is an uncompromising wilderness survival sandbox game inspired by lovecraftian horror themes. diff --git a/game_eggs/vintage_story/egg-vintage-story.json b/game_eggs/vintage_story/egg-vintage-story.json index 0538ec60..b389d0d7 100644 --- a/game_eggs/vintage_story/egg-vintage-story.json +++ b/game_eggs/vintage_story/egg-vintage-story.json @@ -1,13 +1,18 @@ { "_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-03-20T23:54:00+01:00", - "name": "Vintage Story", - "author": "mail@wuffy.eu", + "exported_at": "2023-03-08T21:10:40+00:00", + "name": "Vintage Story - Custom", + "author": "kamisoi@meowstard.cat", "description": "Vintage Story is an uncompromising wilderness survival sandbox game inspired by lovecraftian horror themes. Find yourself in a ruined world reclaimed by nature and permeated by unnerving temporal disturbances. Relive the advent of human civilization, or take your own path.", - "image": "quay.io\/parkervcp\/pterodactyl-images:debian_mono-6-complete", + "features": null, + "docker_images": { + "quay.io\/parkervcp\/pterodactyl-images:debian_mono-6-complete": "quay.io\/parkervcp\/pterodactyl-images:debian_mono-6-complete" + }, + "file_denylist": [], "startup": "mono VintagestoryServer.exe --dataPath .\/data --port={{SERVER_PORT}} --maxclients={{MAX_CLIENTS}} {{OPTIONS}}", "config": { "files": "{}", @@ -17,38 +22,51 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Vintage Story Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y screen wget curl jq\r\n\r\n# Fetching latest stable server release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=`curl -s 'http:\/\/api.vintagestory.at\/stable.json' | jq -r '[.[]] | .[0].server.urls.cdn'`;\r\n# Use specified server release\r\nelse\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\ncurl -o vs_server.tar.gz ${DOWNLOAD_URL}\r\ntar -xzf vs_server.tar.gz\r\n\r\nrm vs_server.tar.gz", + "script": "#!\/bin\/bash\r\n# Vintage Story Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nDEBIAN_FRONTEND=noninteractive apt update\r\nDEBIAN_FRONTEND=noninteractive apt install -y screen wget curl jq\r\n\r\nBRANCH=\"${FILES_BRANCH}\"\r\n\r\n# Fetching latest stable server release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n \"unstable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/unstable.json\"\r\n ;;\r\n \"pre\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/pre.json\"\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n esac\r\n DOWNLOAD_URL=`curl -s \"$API_URL\" | jq -r 'if ([.[]] | .[0].server.urls.cdn) != null then [.[]] | .[0].server.urls.cdn else [.[]] | .[0].server.urls.local end'`;\r\n# Use specified server release\r\nelse\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"unstable\")\r\n DOWNLOAD_URL=https:\/\/account.vintagestory.at\/files\/unstable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"pre\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/pre\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n esac\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\ncurl -o vs_server.tar.gz ${DOWNLOAD_URL}\r\ntar -xzf vs_server.tar.gz\r\n\r\nrm vs_server.tar.gz", "container": "debian:buster-slim", "entrypoint": "bash" } }, "variables": [ { - "name": "Start Options", + "name": "Start options", "description": "", "env_variable": "OPTIONS", "default_value": "", - "user_viewable": 1, - "user_editable": 1, - "rules": "max:200" + "user_viewable": true, + "user_editable": true, + "rules": "max:200", + "field_type": "text" + }, + { + "name": "Release branch", + "description": "", + "env_variable": "FILES_BRANCH", + "default_value": "stable", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:stable,unstable,pre", + "field_type": "text" }, { "name": "Version", "description": "", "env_variable": "RELEASE_VERSION", "default_value": "latest", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:20" + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Max Clients", "description": "", "env_variable": "MAX_CLIENTS", "default_value": "16", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|integer|max:2000" + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|max:256", + "field_type": "text" } ] -} +} \ No newline at end of file From 4f0da38cdf4dc3e4e42f469831d88268f29d5b23 Mon Sep 17 00:00:00 2001 From: Kamisoi Date: Wed, 8 Mar 2023 22:53:22 +0100 Subject: [PATCH 153/473] fix: address collaborator comments --- game_eggs/vintage_story/egg-vintage-story.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/game_eggs/vintage_story/egg-vintage-story.json b/game_eggs/vintage_story/egg-vintage-story.json index b389d0d7..7284489f 100644 --- a/game_eggs/vintage_story/egg-vintage-story.json +++ b/game_eggs/vintage_story/egg-vintage-story.json @@ -4,13 +4,13 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-08T21:10:40+00:00", - "name": "Vintage Story - Custom", - "author": "kamisoi@meowstard.cat", + "exported_at": "2023-03-08T21:52:27+00:00", + "name": "Vintage Story", + "author": "mail@wuffy.eu", "description": "Vintage Story is an uncompromising wilderness survival sandbox game inspired by lovecraftian horror themes. Find yourself in a ruined world reclaimed by nature and permeated by unnerving temporal disturbances. Relive the advent of human civilization, or take your own path.", "features": null, "docker_images": { - "quay.io\/parkervcp\/pterodactyl-images:debian_mono-6-complete": "quay.io\/parkervcp\/pterodactyl-images:debian_mono-6-complete" + "ghcr.io\/parkervcp\/yolks:mono_latest": "ghcr.io\/parkervcp\/yolks:mono_latest" }, "file_denylist": [], "startup": "mono VintagestoryServer.exe --dataPath .\/data --port={{SERVER_PORT}} --maxclients={{MAX_CLIENTS}} {{OPTIONS}}", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Vintage Story Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nDEBIAN_FRONTEND=noninteractive apt update\r\nDEBIAN_FRONTEND=noninteractive apt install -y screen wget curl jq\r\n\r\nBRANCH=\"${FILES_BRANCH}\"\r\n\r\n# Fetching latest stable server release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n \"unstable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/unstable.json\"\r\n ;;\r\n \"pre\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/pre.json\"\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n esac\r\n DOWNLOAD_URL=`curl -s \"$API_URL\" | jq -r 'if ([.[]] | .[0].server.urls.cdn) != null then [.[]] | .[0].server.urls.cdn else [.[]] | .[0].server.urls.local end'`;\r\n# Use specified server release\r\nelse\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"unstable\")\r\n DOWNLOAD_URL=https:\/\/account.vintagestory.at\/files\/unstable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"pre\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/pre\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n esac\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\ncurl -o vs_server.tar.gz ${DOWNLOAD_URL}\r\ntar -xzf vs_server.tar.gz\r\n\r\nrm vs_server.tar.gz", + "script": "#!\/bin\/bash\r\n# Vintage Story Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\nDEBIAN_FRONTEND=noninteractive apt install -y screen wget curl jq\r\n\r\nBRANCH=\"${FILES_BRANCH}\"\r\n\r\n# Fetching latest stable server release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n \"unstable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/unstable.json\"\r\n ;;\r\n \"pre\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/pre.json\"\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n esac\r\n DOWNLOAD_URL=`curl -s \"$API_URL\" | jq -r 'if ([.[]] | .[0].server.urls.cdn) != null then [.[]] | .[0].server.urls.cdn else [.[]] | .[0].server.urls.local end'`;\r\n# Use specified server release\r\nelse\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"unstable\")\r\n DOWNLOAD_URL=https:\/\/account.vintagestory.at\/files\/unstable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"pre\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/pre\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n esac\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\ncurl -o vs_server.tar.gz ${DOWNLOAD_URL}\r\ntar -xzf vs_server.tar.gz\r\n\r\nrm vs_server.tar.gz", "container": "debian:buster-slim", "entrypoint": "bash" } @@ -49,7 +49,7 @@ "field_type": "text" }, { - "name": "Version", + "name": "Release version", "description": "", "env_variable": "RELEASE_VERSION", "default_value": "latest", From 68dd5da9d5cd750647fa39e9642de681ffbdee32 Mon Sep 17 00:00:00 2001 From: Kamisoi Date: Thu, 9 Mar 2023 19:24:27 +0100 Subject: [PATCH 154/473] fix: address collaborator comments --- game_eggs/vintage_story/egg-vintage-story.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/vintage_story/egg-vintage-story.json b/game_eggs/vintage_story/egg-vintage-story.json index 7284489f..3772ad33 100644 --- a/game_eggs/vintage_story/egg-vintage-story.json +++ b/game_eggs/vintage_story/egg-vintage-story.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-08T21:52:27+00:00", + "exported_at": "2023-03-09T18:23:31+00:00", "name": "Vintage Story", "author": "mail@wuffy.eu", "description": "Vintage Story is an uncompromising wilderness survival sandbox game inspired by lovecraftian horror themes. Find yourself in a ruined world reclaimed by nature and permeated by unnerving temporal disturbances. Relive the advent of human civilization, or take your own path.", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Vintage Story Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\nDEBIAN_FRONTEND=noninteractive apt install -y screen wget curl jq\r\n\r\nBRANCH=\"${FILES_BRANCH}\"\r\n\r\n# Fetching latest stable server release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n \"unstable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/unstable.json\"\r\n ;;\r\n \"pre\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/pre.json\"\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n esac\r\n DOWNLOAD_URL=`curl -s \"$API_URL\" | jq -r 'if ([.[]] | .[0].server.urls.cdn) != null then [.[]] | .[0].server.urls.cdn else [.[]] | .[0].server.urls.local end'`;\r\n# Use specified server release\r\nelse\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"unstable\")\r\n DOWNLOAD_URL=https:\/\/account.vintagestory.at\/files\/unstable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"pre\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/pre\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n esac\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\ncurl -o vs_server.tar.gz ${DOWNLOAD_URL}\r\ntar -xzf vs_server.tar.gz\r\n\r\nrm vs_server.tar.gz", + "script": "#!\/bin\/bash\r\n# Vintage Story Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt -y install wget curl jq\r\n\r\nBRANCH=\"${FILES_BRANCH}\"\r\n\r\n# Fetching latest stable server release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n \"unstable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/unstable.json\"\r\n ;;\r\n \"pre\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/pre.json\"\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n esac\r\n DOWNLOAD_URL=$(curl -SsL \"$API_URL\" | jq -r 'if ([.[]] | .[0].server.urls.cdn) != null then [.[]] | .[0].server.urls.cdn else [.[]] | .[0].server.urls.local end');\r\n# Use specified server release\r\nelse\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"unstable\")\r\n DOWNLOAD_URL=https:\/\/account.vintagestory.at\/files\/unstable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"pre\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/pre\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n esac\r\nfi\r\n\r\ncd \/mnt\/server\/ || exit\r\n\r\ncurl -o vs_server.tar.gz \"${DOWNLOAD_URL}\"\r\ntar -xzf vs_server.tar.gz\r\n\r\nrm vs_server.tar.gz\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "debian:buster-slim", "entrypoint": "bash" } From 33d7b802a040a8c32fcb0c25660ca07a6c6857d8 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 9 Mar 2023 19:42:16 +0100 Subject: [PATCH 155/473] Vintage_Story: cleanup --- game_eggs/vintage_story/egg-vintage-story.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/game_eggs/vintage_story/egg-vintage-story.json b/game_eggs/vintage_story/egg-vintage-story.json index 3772ad33..aad82472 100644 --- a/game_eggs/vintage_story/egg-vintage-story.json +++ b/game_eggs/vintage_story/egg-vintage-story.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-09T18:23:31+00:00", + "exported_at": "2023-03-09T19:41:11+01:00", "name": "Vintage Story", "author": "mail@wuffy.eu", "description": "Vintage Story is an uncompromising wilderness survival sandbox game inspired by lovecraftian horror themes. Find yourself in a ruined world reclaimed by nature and permeated by unnerving temporal disturbances. Relive the advent of human civilization, or take your own path.", @@ -16,14 +16,14 @@ "startup": "mono VintagestoryServer.exe --dataPath .\/data --port={{SERVER_PORT}} --maxclients={{MAX_CLIENTS}} {{OPTIONS}}", "config": { "files": "{}", - "startup": "{\r\n \"done\": \"Dedicated Server now running on Port \",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": false,\r\n \"location\": \".\/data\/Logs\/server-debug.txt\"\r\n}", + "startup": "{\r\n \"done\": \"Dedicated Server now running on Port \"\r\n}", + "logs": "{}", "stop": "\/stop" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Vintage Story Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt -y install wget curl jq\r\n\r\nBRANCH=\"${FILES_BRANCH}\"\r\n\r\n# Fetching latest stable server release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n \"unstable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/unstable.json\"\r\n ;;\r\n \"pre\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/pre.json\"\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n esac\r\n DOWNLOAD_URL=$(curl -SsL \"$API_URL\" | jq -r 'if ([.[]] | .[0].server.urls.cdn) != null then [.[]] | .[0].server.urls.cdn else [.[]] | .[0].server.urls.local end');\r\n# Use specified server release\r\nelse\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"unstable\")\r\n DOWNLOAD_URL=https:\/\/account.vintagestory.at\/files\/unstable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"pre\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/pre\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n esac\r\nfi\r\n\r\ncd \/mnt\/server\/ || exit\r\n\r\ncurl -o vs_server.tar.gz \"${DOWNLOAD_URL}\"\r\ntar -xzf vs_server.tar.gz\r\n\r\nrm vs_server.tar.gz\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\n# Vintage Story Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt -y install curl jq\r\n\r\nBRANCH=\"${FILES_BRANCH}\"\r\n\r\n# Fetching latest stable server release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n \"unstable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/unstable.json\"\r\n ;;\r\n \"pre\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/pre.json\"\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n esac\r\n DOWNLOAD_URL=$(curl -SsL \"$API_URL\" | jq -r 'if ([.[]] | .[0].server.urls.cdn) != null then [.[]] | .[0].server.urls.cdn else [.[]] | .[0].server.urls.local end');\r\n# Use specified server release\r\nelse\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"unstable\")\r\n DOWNLOAD_URL=https:\/\/account.vintagestory.at\/files\/unstable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"pre\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/pre\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n esac\r\nfi\r\n\r\ncd \/mnt\/server\/ || exit\r\n\r\ncurl -o vs_server.tar.gz \"${DOWNLOAD_URL}\"\r\ntar -xzf vs_server.tar.gz\r\n\r\nrm vs_server.tar.gz\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "debian:bullseye-slim", "entrypoint": "bash" } }, @@ -35,7 +35,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "max:200", + "rules": "nullable|string|max:200", "field_type": "text" }, { From a11ef1d92bdac08e40a07736b0ebedc093dfa9ac Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 9 Mar 2023 20:07:50 +0100 Subject: [PATCH 156/473] cleanup: The Isle --- .../the_isle/evrima/egg-the-isle.json | 52 +++++++++++++++---- 1 file changed, 41 insertions(+), 11 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 f21a3a6b..cee68026 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,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-03T09:34:18+01:00", + "exported_at": "2023-03-09T20:07:00+01: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.", @@ -15,14 +15,14 @@ "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", "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}", + "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}", - "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\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#\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 curl lib32gcc-s1 ca-certificates\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\necho -e \"steam user is not set.\\n\"\r\necho -e \"Using anonymous user.\\n\"\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nelse\r\necho -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\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 Anonymous +app_update 412680 -beta evrima validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\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## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\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\/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", + "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 \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -50,12 +50,12 @@ }, { "name": "RCON", - "description": "true or false", + "description": "Enable RCON", "env_variable": "RCON", - "default_value": "=false", + "default_value": "false", "user_viewable": true, "user_editable": true, - "rules": "required|in:=true,=false", + "rules": "required|string|in:true,false", "field_type": "text" }, { @@ -100,13 +100,43 @@ }, { "name": "Humans", - "description": "Enable or disable humans. true or false", + "description": "Enable humans", "env_variable": "HUMANS", - "default_value": "=false", + "default_value": "false", "user_viewable": true, "user_editable": true, - "rules": "required|in:=true,=false", + "rules": "required|string|in:true,false", + "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" + }, + { + "name": "App id", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "412680", + "user_viewable": false, + "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 8525389fd5a69906b88337e524d67d14c5098de0 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 11 Mar 2023 20:06:00 +0100 Subject: [PATCH 157/473] add Operation Harsh Doorstop --- README.md | 1 + game_eggs/README.md | 1 + game_eggs/steamcmd_servers/README.md | 4 + .../operation_harsh_doorstop/README.md | 15 +++ .../egg-operation-harsh-doorstop.json | 124 ++++++++++++++++++ 5 files changed, 145 insertions(+) create mode 100644 game_eggs/steamcmd_servers/operation_harsh_doorstop/README.md create mode 100644 game_eggs/steamcmd_servers/operation_harsh_doorstop/egg-operation-harsh-doorstop.json diff --git a/README.md b/README.md index 6d5d9350..a929f12b 100644 --- a/README.md +++ b/README.md @@ -241,6 +241,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [No More Room in Hell](game_eggs/steamcmd_servers/nmrih) * [Onset](game_eggs/steamcmd_servers/onset) * [Open Fortress](game_eggs/steamcmd_servers/open_fortress) +* [Operation Harsh Doorstop](game_eggs/steamcmd_servers/operation_harsh_doorstop) * [Pavlov VR](game_eggs/steamcmd_servers/pavlov_vr) * [PixARK](game_eggs/steamcmd_servers/pixark) * [Portal Knights](game_eggs/steamcmd_servers/portal_knights) diff --git a/game_eggs/README.md b/game_eggs/README.md index 9ee98e57..b2d89e21 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -141,6 +141,7 @@ * [No More Room in Hell](steamcmd_servers/nmrih) * [Onset](steamcmd_servers/onset) * [Open Fortress](steamcmd_servers/open_fortress) +* [Operation Harsh Doorstop](steamcmd_servers/operation_harsh_doorstop) * [Pavlov VR](steamcmd_servers/pavlov_vr) * [PixARK](steamcmd_servers/pixark) * [Portal Knights](steamcmd_servers/portal_knights) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index e46946c7..a9c101f4 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -122,6 +122,10 @@ This is a collection of servers that use SteamCMD to install. [Open Fortress](open_fortress) +## Operation Harsh Doorstop + +[Operation Harsh Doorstop](operation_harsh_doorstop) + ## Pavlov VR [Pavlov VR](pavlov_vr) diff --git a/game_eggs/steamcmd_servers/operation_harsh_doorstop/README.md b/game_eggs/steamcmd_servers/operation_harsh_doorstop/README.md new file mode 100644 index 00000000..b012c094 --- /dev/null +++ b/game_eggs/steamcmd_servers/operation_harsh_doorstop/README.md @@ -0,0 +1,15 @@ +# Operation Harsh Doorstop + +[Steam](https://store.steampowered.com/app/736590/Operation_Harsh_Doorstop/) + +Operation: Harsh Doorstop is an Unreal Engine powered shooter sandbox similar to mod-friendly games like Ravenfield and Garry's Mod but with roots in tactical shooters like Squad and Arma III. Our game is entirely donation funded, completely free, and has full Steam workshop support! + +## Server Ports + +Operation Harsh Doorstop servers require 3 ports to be open + +| Port | default | +|-----------|---------| +| Game | 7777 | +| Query | 27005 | +| RCON | 7779 | \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/operation_harsh_doorstop/egg-operation-harsh-doorstop.json b/game_eggs/steamcmd_servers/operation_harsh_doorstop/egg-operation-harsh-doorstop.json new file mode 100644 index 00000000..d43d1178 --- /dev/null +++ b/game_eggs/steamcmd_servers/operation_harsh_doorstop/egg-operation-harsh-doorstop.json @@ -0,0 +1,124 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-03-11T19:59:13+01:00", + "name": "Operation Harsh Doorstop", + "author": "josdekurk@gmail.com", + "description": "Operation: Harsh Doorstop is an Unreal Engine powered shooter sandbox similar to mod-friendly games like Ravenfield and Garry's Mod but with roots in tactical shooters like Squad and Arma III. Our game is entirely donation funded, completely free, and has full Steam workshop support!", + "features": [ + "steam_disk_space" + ], + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" + }, + "file_denylist": [], + "startup": ".\/HarshDoorstop\/Binaries\/Linux\/HarshDoorstopServer-Linux-Shipping HarshDoorstop AAS-TestMap?MaxPlayers={{MAX_PLAYERS}} -SteamServerName=\"{{SERVER_NAME}}\" -Port={{SERVER_PORT}} -MULTIHOME=0.0.0.0 -QueryPort={{QUERY_PORT}} -RCONPort={{RCON_PORT}} -EnableRCON -RCONMaxAuthAttempts={{RCON_MAX_AUTH_ATTEMPTS}} -RCONPassword=\"{{RCON_PASSWORD}}\" -RCONMaxActiveConnections={{RCON_MAX_CONNECTIONS}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"LogRCON: RCON server listening on\"\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## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} validate +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## add below your custom commands if needed\r\nmkdir -p \/mnt\/server\/HarshDoorstop\/Saved\/Config\/LinuxServer\/\r\ncd \/mnt\/server\/HarshDoorstop\/Saved\/Config\/LinuxServer\/\r\ntouch Game.ini\r\ntee -a mnt\/server\/HarshDoorstop\/Saved\/Config\/LinuxServer\/Game.ini << END\r\n[\/Script\/RCON.RCONServerSystem]\r\nbEnabled=True\r\nListenPort=7779\r\nPassword=\"LetMeIn\"\r\nMaxActiveConnections=5\r\nMaxAuthAttempts=3\r\n\r\n[\/Script\/Engine.GameSession]\r\nMaxPlayers=32\r\nServerName=\"My Awesome Server\"\r\nPassword=\"cookies\"\r\nEND\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Autop update", + "description": "Auto update the server on startup", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "boolean", + "field_type": "text" + }, + { + "name": "app id", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "950900", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:950900", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "Maximum number of players allowed by this server.", + "env_variable": "MAX_PLAYERS", + "default_value": "32", + "user_viewable": true, + "user_editable": false, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Server name", + "description": "Defines the display or host name of the game server when listed in a server browser", + "env_variable": "SERVER_NAME", + "default_value": "Harsh Doorstop Dedicated Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:200", + "field_type": "text" + }, + { + "name": "Query port", + "description": "Defines port for Steam master server traffic", + "env_variable": "QUERY_PORT", + "default_value": "27005", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|", + "field_type": "text" + }, + { + "name": "Rcon Port", + "description": "Defines port for RCON server traffic", + "env_variable": "RCON_PORT", + "default_value": "7779", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|", + "field_type": "text" + }, + { + "name": "Rcon Max Auth Attempts", + "description": "Defines the maximum number of authentication attempts an RCON connection can make before being forcibly disconnected", + "env_variable": "RCON_MAX_AUTH_ATTEMPTS", + "default_value": "3", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Rcon Password", + "description": "Defines the password used for authenticating with the RCON server", + "env_variable": "RCON_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + }, + { + "name": "Rcon Max Connections", + "description": "Maximum number of concurrent RCON connections", + "env_variable": "RCON_MAX_CONNECTIONS", + "default_value": "5", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + } + ] +} \ No newline at end of file From 7c4436e97b69928fa6f0d17fb4b4742451e4a771 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Mon, 13 Mar 2023 17:47:20 +0100 Subject: [PATCH 158/473] Xfvb and steamcmd image update --- .../core_keeper/egg-core-keeper.json | 50 ++++++++----------- 1 file changed, 20 insertions(+), 30 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index 1038261c..62c9f95d 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-14T22:17:05+01:00", + "exported_at": "2023-03-13T17:15:33+01:00", "name": "Core Keeper", "author": "karsten@fiedleronline.net", "description": "Core Keeper is a survival sandbox game for single or multiplayers.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---", @@ -12,10 +12,10 @@ "steam_disk_space" ], "docker_images": { - "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], - "startup": "DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", + "startup": "Xvfb :0 -screen 0 ${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}x${DISPLAY_DEPTH}; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## add below your custom commands if needed\r\n\r\n## install end\r\n#echo \"-----------------------------------------\"\r\n#echo \"Installation completed...\"\r\n#echo \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} validate +quit\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## add below your custom commands if needed\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -82,42 +82,32 @@ }, { "name": "World Mode", - "description": "Whether to use normal (0) or hard (1) mode for world. Default: 0.", + "description": "Whether to use normal (0) or hard (1) mode for world.", "env_variable": "WORLD_MODE", "default_value": "0", "user_viewable": true, "user_editable": true, - "rules": "required|integer|min:0|max:1", - "field_type": "text" - }, - { - "name": "Steam App ID", - "description": "Steam App ID of Core Keeper Dedicated Server. Found here: https:\/\/steamdb.info\/search\/?a=app&q=core+keeper&type=5&category=0", - "env_variable": "SRCDS_APPID", - "default_value": "1963720", - "user_viewable": false, - "user_editable": false, - "rules": "required|integer|min:1", - "field_type": "text" - }, - { - "name": "Auto Update", - "description": "Enable automatic updates on boot: Default: true", - "env_variable": "AUTO_UPDATE", - "default_value": "1", - "user_viewable": true, - "user_editable": true, "rules": "required|boolean", "field_type": "text" }, { - "name": "XVFB", - "description": "Enable virtual framebuffer. Fix: 1", - "env_variable": "XVFB", - "default_value": "1", + "name": "Steam App ID", + "description": "Steam App ID of Core Keeper Dedicated Server", + "env_variable": "SRCDS_APPID", + "default_value": "1963720", "user_viewable": false, "user_editable": false, - "rules": "required|integer", + "rules": "required|string|in:1963720", + "field_type": "text" + }, + { + "name": "Auto Update", + "description": "Enable automatic updates on boot", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", "field_type": "text" }, { From 500e04a6777aa47d059639f76554a86c1c4f14fe Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Mon, 13 Mar 2023 17:52:47 +0100 Subject: [PATCH 159/473] Updated startup cmd because auf Xvfb --- game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index 62c9f95d..e1bc2c2c 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], - "startup": "Xvfb :0 -screen 0 ${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}x${DISPLAY_DEPTH}; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", + "startup": "Xvfb :99 -screen 0 ${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}x${DISPLAY_DEPTH} -nolisten tcp &; DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", From 60311fba32c980ba464d4f117f305410c0b5cf2e Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Mon, 13 Mar 2023 19:05:08 +0100 Subject: [PATCH 160/473] Startcmd changed --- game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index e1bc2c2c..19bcbf68 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-13T17:15:33+01:00", + "exported_at": "2023-03-13T19:04:07+01:00", "name": "Core Keeper", "author": "karsten@fiedleronline.net", "description": "Core Keeper is a survival sandbox game for single or multiplayers.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], - "startup": "Xvfb :99 -screen 0 ${DISPLAY_WIDTH}x${DISPLAY_HEIGHT}x${DISPLAY_DEPTH} -nolisten tcp &; DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill $CKPID; wait $CKPID; kill $LOGPID; wait $LOGPID\" 15; wait $!", + "startup": "export DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; xvfb-run -s \"-screen 0 {{DISPLAY_WIDTH}}x{{DISPLAY_HEIGHT}}x{{DISPLAY_DEPTH}} -ac -nolisten tcp -nolisten unix\" .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill ${CKPID}; wait ${CKPID}; kill ${LOGPID}; wait ${LOGPID}\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", From 48cbcd53da1b1e85f9bb74e628a17d42b02dd382 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Mon, 13 Mar 2023 19:21:12 +0100 Subject: [PATCH 161/473] Startup command updated --- game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index 19bcbf68..97cdf1fa 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-13T19:04:07+01:00", + "exported_at": "2023-03-13T19:20:35+01:00", "name": "Core Keeper", "author": "karsten@fiedleronline.net", "description": "Core Keeper is a survival sandbox game for single or multiplayers.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], - "startup": "export DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; xvfb-run -s \"-screen 0 {{DISPLAY_WIDTH}}x{{DISPLAY_HEIGHT}}x{{DISPLAY_DEPTH}} -ac -nolisten tcp -nolisten unix\" .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid \\\"{{GAME_ID}}\\\"\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill ${CKPID}; wait ${CKPID}; kill ${LOGPID}; wait ${LOGPID}\" 15; wait $!", + "startup": "export DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; xvfb-run -s \"-screen 0 {{DISPLAY_WIDTH}}x{{DISPLAY_HEIGHT}}x{{DISPLAY_DEPTH}} -ac -nolisten tcp -nolisten unix\" .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid {{GAME_ID}}\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill ${CKPID}; wait ${CKPID}; kill ${LOGPID}; wait ${LOGPID}\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", From 9f74453f8de9b06f37b8e89567c5c5c3f01e6c33 Mon Sep 17 00:00:00 2001 From: Tim Slager <41442518+Timtendo12@users.noreply.github.com> Date: Thu, 16 Mar 2023 22:29:31 +0100 Subject: [PATCH 162/473] Update README.md --- software/rabbitmq/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/software/rabbitmq/README.md b/software/rabbitmq/README.md index 8679398e..35eb863f 100644 --- a/software/rabbitmq/README.md +++ b/software/rabbitmq/README.md @@ -12,6 +12,8 @@ When setting up a server, the latest RabbitMQ version will be used by default. With pretty new and old versions of RabbitMQ, you might have to adjust the used Erlang version. This can be archived by adjusting the version number of the used image (e. g. `ghcr.io/pterodactyl/yolks:erlang_22` instead of `ghcr.io/parkervcp/yolks:erlang_24`). +The latest version as of now requires you to use atleast ghcr.io/pterodactyl/yolks:erlang_25 + ## Configuration Configuring RabbitMQ in Pterodactyl is only possible using the config files. From 9df35627fc398a8cc358086c7242670288a82c3f Mon Sep 17 00:00:00 2001 From: Tim Slager <41442518+Timtendo12@users.noreply.github.com> Date: Thu, 16 Mar 2023 22:30:58 +0100 Subject: [PATCH 163/473] Update egg-rabbit-m-q.json --- software/rabbitmq/egg-rabbit-m-q.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/software/rabbitmq/egg-rabbit-m-q.json b/software/rabbitmq/egg-rabbit-m-q.json index 41125ca4..f00a6a7a 100644 --- a/software/rabbitmq/egg-rabbit-m-q.json +++ b/software/rabbitmq/egg-rabbit-m-q.json @@ -10,6 +10,8 @@ "description": "RabbitMQ is a feature rich, multi-protocol messaging broker.", "features": null, "images": [ + "ghcr.io\/parkervcp\/yolks:erlang_26", + "ghcr.io\/parkervcp\/yolks:erlang_25", "ghcr.io\/parkervcp\/yolks:erlang_24", "ghcr.io\/parkervcp\/yolks:erlang_23", "ghcr.io\/parkervcp\/yolks:erlang_22" From bb2425abf2b83c5618936d39e0eefbe8ef0016e2 Mon Sep 17 00:00:00 2001 From: Imad <63809553+imadqadri@users.noreply.github.com> Date: Thu, 16 Mar 2023 17:02:42 -0700 Subject: [PATCH 164/473] fix: 'variabe' typo --- game_eggs/steamcmd_servers/rust/rust_autowipe/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/rust/rust_autowipe/README.md b/game_eggs/steamcmd_servers/rust/rust_autowipe/README.md index d2e8763b..828c2636 100644 --- a/game_eggs/steamcmd_servers/rust/rust_autowipe/README.md +++ b/game_eggs/steamcmd_servers/rust/rust_autowipe/README.md @@ -6,7 +6,7 @@ Adds variables to wipe files based on a list you set. Reinstall to perform the w The variable `REGEN_SERVER` was added, default 0, set to 1 to generate a random seed and remove old files on reinstall. -Files listed in the `REMOVE_FILES` variabe, space separated, will be removed. +Files listed in the `REMOVE_FILES` variable, space separated, will be removed. ## Minimum RAM warning From cb56d8795e244a8a48e77487363d2a8e72a3e221 Mon Sep 17 00:00:00 2001 From: Tim Slager <41442518+Timtendo12@users.noreply.github.com> Date: Fri, 17 Mar 2023 19:25:12 +0100 Subject: [PATCH 165/473] exported via panel. --- software/rabbitmq/egg-rabbit-m-q.json | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/software/rabbitmq/egg-rabbit-m-q.json b/software/rabbitmq/egg-rabbit-m-q.json index f00a6a7a..57a785f8 100644 --- a/software/rabbitmq/egg-rabbit-m-q.json +++ b/software/rabbitmq/egg-rabbit-m-q.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-08-02T15:24:45+02:00", + "exported_at": "2023-03-17T19:22:21+01:00", "name": "RabbitMQ", "author": "p.zarrad@outlook.de", "description": "RabbitMQ is a feature rich, multi-protocol messaging broker.", "features": null, - "images": [ - "ghcr.io\/parkervcp\/yolks:erlang_26", - "ghcr.io\/parkervcp\/yolks:erlang_25", - "ghcr.io\/parkervcp\/yolks:erlang_24", - "ghcr.io\/parkervcp\/yolks:erlang_23", - "ghcr.io\/parkervcp\/yolks:erlang_22" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:erlang_26": "ghcr.io\/parkervcp\/yolks:erlang_26", + "ghcr.io\/parkervcp\/yolks:erlang_25": "ghcr.io\/parkervcp\/yolks:erlang_25", + "ghcr.io\/parkervcp\/yolks:erlang_24": "ghcr.io\/parkervcp\/yolks:erlang_24", + "ghcr.io\/parkervcp\/yolks:erlang_23": "ghcr.io\/parkervcp\/yolks:erlang_23", + "ghcr.io\/parkervcp\/yolks:erlang_22": "ghcr.io\/parkervcp\/yolks:erlang_22" + }, "file_denylist": [], "startup": ".\/sbin\/rabbitmq-server", "config": { @@ -39,7 +39,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" } ] } From 4704ee86acda2ca998a53361fa1ab0fc530da607 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 19 Mar 2023 08:36:51 +0100 Subject: [PATCH 166/473] update tshock for arm64 --- game_eggs/terraria/tshock/egg-tshock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/terraria/tshock/egg-tshock.json b/game_eggs/terraria/tshock/egg-tshock.json index c82cb557..8d34c3ab 100644 --- a/game_eggs/terraria/tshock/egg-tshock.json +++ b/game_eggs/terraria/tshock/egg-tshock.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-11-06T14:39:45+01:00", + "exported_at": "2023-03-19T08:36:18+01:00", "name": "tshock", "author": "parker@parkervcp.com", "description": "The t-shock modded terraria server.\r\n\r\nhttps:\/\/tshock.co\/", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Vanilla tModloader Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n## install packages to get version and download links\r\napt update\r\napt install -y curl wget jq file unzip\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Pryaxis\/TShock\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Pryaxis\/TShock\/releases\")\r\n\r\nif [ -z \"$TSHOCK_VERSION\" ] || [ \"$TSHOCK_VERSION\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i \"linux-x64\" | head -1 )\r\nelse\r\n VERSION_CHECK=$(echo $RELEASES | jq -r --arg VERSION \"$TSHOCK_VERSION\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"$TSHOCK_VERSION\" == \"$VERSION_CHECK\" ]; then\r\n DOWNLOAD_LINK=$(echo $RELEASES | jq -r --arg VERSION \"$TSHOCK_VERSION\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i \"linux-x64\" | head -1 )\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i \"linux-x64\" | head -1)\r\n fi\r\nfi\r\n\r\n## mkdir and cd to \/mnt\/server\/\r\nmkdir -p \/mnt\/server\r\n\r\ncd \/mnt\/server\r\n\r\n## download release\r\necho -e \"running: wget $DOWNLOAD_LINK\"\r\nwget $DOWNLOAD_LINK -O TShock.zip\r\n\r\nunzip -o TShock.zip\r\n\r\ntar xvf TShock-*.tar\r\n\r\nrm TShock.zip TShock-*.tar\r\n\r\nchmod +x TShock.Server\r\n\r\necho -e \"install complete\"", + "script": "#!\/bin\/bash\r\n# Vanilla tModloader Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n## install packages to get version and download links\r\napt update\r\napt install -y curl wget jq file unzip\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Pryaxis\/TShock\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Pryaxis\/TShock\/releases\")\r\nMATCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux-x64\" || echo \"linux-arm64\")\r\n\r\necho ${MATCH}\r\n\r\nif [ -z \"$TSHOCK_VERSION\" ] || [ \"$TSHOCK_VERSION\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH} | head -1 )\r\nelse\r\n VERSION_CHECK=$(echo $RELEASES | jq -r --arg VERSION \"$TSHOCK_VERSION\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"$TSHOCK_VERSION\" == \"$VERSION_CHECK\" ]; then\r\n DOWNLOAD_LINK=$(echo $RELEASES | jq -r --arg VERSION \"$TSHOCK_VERSION\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH} | head -1 )\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH} | head -1)\r\n fi\r\nfi\r\n\r\n## mkdir and cd to \/mnt\/server\/\r\nmkdir -p \/mnt\/server\r\n\r\ncd \/mnt\/server\r\n\r\n## download release\r\necho -e \"running: wget $DOWNLOAD_LINK\"\r\nwget $DOWNLOAD_LINK -O TShock.zip\r\n\r\nunzip -o TShock.zip\r\n\r\ntar xvf TShock-*.tar\r\n\r\nrm TShock.zip TShock-*.tar\r\n\r\nchmod +x TShock.Server\r\n\r\necho -e \"install complete\"", "container": "debian:bullseye-slim", "entrypoint": "\/bin\/bash" } @@ -69,4 +69,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 02362c996f48d6837ae4aded88aca9b8e46aa787 Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Sun, 19 Mar 2023 13:38:24 +0100 Subject: [PATCH 167/473] Core-Keeper: Updated startup check after server update (#2192) Core-Keeper: Updated startup check after server update --- game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index 97cdf1fa..87a087c4 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-13T19:20:35+01:00", + "exported_at": "2023-03-18T23:18:52+01:00", "name": "Core Keeper", "author": "karsten@fiedleronline.net", "description": "Core Keeper is a survival sandbox game for single or multiplayers.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---", @@ -18,7 +18,7 @@ "startup": "export DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; xvfb-run -s \"-screen 0 {{DISPLAY_WIDTH}}x{{DISPLAY_HEIGHT}}x{{DISPLAY_DEPTH}} -ac -nolisten tcp -nolisten unix\" .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid {{GAME_ID}}\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill ${CKPID}; wait ${CKPID}; kill ${LOGPID}; wait ${LOGPID}\" 15; wait $!", "config": { "files": "{}", - "startup": "{\r\n \"done\": \"Started server process with pid\"\r\n}", + "startup": "{\r\n \"done\": \"Started session\"\r\n}", "logs": "{}", "stop": "^C" }, From 94428fa05f9e7cff7890c784b62609fb4509408a Mon Sep 17 00:00:00 2001 From: Miku <26039249+xMikux@users.noreply.github.com> Date: Tue, 21 Mar 2023 13:28:15 +0800 Subject: [PATCH 168/473] Add Limbo egg (#2128) Add Limbo egg --- README.md | 1 + game_eggs/README.md | 3 +- game_eggs/minecraft/README.md | 1 + game_eggs/minecraft/java/README.md | 5 +++ game_eggs/minecraft/java/limbo/README.md | 13 ++++++ game_eggs/minecraft/java/limbo/egg-limbo.json | 42 +++++++++++++++++++ 6 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 game_eggs/minecraft/java/limbo/README.md create mode 100644 game_eggs/minecraft/java/limbo/egg-limbo.json diff --git a/README.md b/README.md index 35d1433e..e51d46de 100644 --- a/README.md +++ b/README.md @@ -164,6 +164,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Feed The Beast](game_eggs/minecraft/java/ftb) * [Forge](game_eggs/minecraft/java/forge) * [Glowstone](game_eggs/minecraft/java/glowstone) + * [Limbo](game_eggs/minecraft/java/limbo) * [Magma](game_eggs/minecraft/java/magma) * [Mohist](game_eggs/minecraft/java/mohist) * [NanoLimbo](game_eggs/minecraft/java/nanolimbo) diff --git a/game_eggs/README.md b/game_eggs/README.md index 7d4822b0..f1a566b2 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -1,4 +1,4 @@ -# Game Eggs +# Game Eggs [Among Us](among_us) @@ -64,6 +64,7 @@ * [Feed The Beast](minecraft/java/ftb) * [Forge](minecraft/java/forge) * [Glowstone](minecraft/java/glowstone) + * [Limbo](minecraft/java/limbo) * [Magma](minecraft/java/magma) * [Mohist](minecraft/java/mohist) * [NanoLimbo](minecraft/java/nanolimbo) diff --git a/game_eggs/minecraft/README.md b/game_eggs/minecraft/README.md index f8834dbb..49a74135 100644 --- a/game_eggs/minecraft/README.md +++ b/game_eggs/minecraft/README.md @@ -22,6 +22,7 @@ It’s set in infinitely-generated worlds of wide open terrain - icy mountains, * [CusreForge Generic](java/forge/curseforge-generic) * [Feed The Beast](java/ftb) * [Glowstone](java/glowstone) +* [Limbo](java/limbo) * [Krypton](java/krypton) * [Magma](java/magma) * [Mohist](java/mohist) diff --git a/game_eggs/minecraft/java/README.md b/game_eggs/minecraft/java/README.md index a2bde658..2990a645 100644 --- a/game_eggs/minecraft/java/README.md +++ b/game_eggs/minecraft/java/README.md @@ -88,6 +88,11 @@ Please restart the server after first launch to fix this.** [NanoLimbo GitHub](https://github.com/Nan1t/NanoLimbo) A lightweight minecraft limbo server, written on Java with Netty. The main goal of the project is maximum simplicity with a minimum number of sent and processed packets. +## [Limbo](limbo) + +[Limbo GitHub](https://github.com/LOOHP/Limbo) +Standalone server program Limbo. + ## Spigot Based A collection of spigot and forked spigot eggs. diff --git a/game_eggs/minecraft/java/limbo/README.md b/game_eggs/minecraft/java/limbo/README.md new file mode 100644 index 00000000..88718474 --- /dev/null +++ b/game_eggs/minecraft/java/limbo/README.md @@ -0,0 +1,13 @@ +# Limbo + +Standalone server program Limbo. + +[Limbo Github](https://github.com/LOOHP/Limbo) + +## Server Ports + +The Limbo server requires a single port for access (default 25565). + +| Port | default | +|-------|---------| +| Game | 25565 | diff --git a/game_eggs/minecraft/java/limbo/egg-limbo.json b/game_eggs/minecraft/java/limbo/egg-limbo.json new file mode 100644 index 00000000..a00c6580 --- /dev/null +++ b/game_eggs/minecraft/java/limbo/egg-limbo.json @@ -0,0 +1,42 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-03-21T04:56:57+08:00", + "name": "Limbo", + "author": "xEfinax@protonmail.com", + "description": "Standalone server program Limbo.", + "features": null, + "docker_images": { + "ghcr.io\/pterodactyl\/yolks:java_17": "ghcr.io\/pterodactyl\/yolks:java_17" + }, + "file_denylist": [], + "startup": "java -Xms128M -XX:MaxRAMPercentage=95.0 -jar {{SERVER_JARFILE}}", + "config": { + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"server-port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Limbo server listening on \"\r\n}", + "logs": "{}", + "stop": "stop" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\r\n# Limbo Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nmkdir -p \/mnt\/server\r\n\r\nLATEST_LIMBO_NAME=$(curl -s https:\/\/ci.loohpjames.com\/job\/Limbo\/lastSuccessfulBuild\/api\/json | jq -r .artifacts[1].displayPath)\r\n\r\ncd \/mnt\/server || exit\r\n\r\nif [ -f \"${SERVER_JARFILE}\" ]; then\r\n\tmv \"${SERVER_JARFILE}\" \"${SERVER_JARFILE}\".old\r\nfi\r\n\r\necho \"Downloading Limbo server jar...\"\r\ncurl -o \"${SERVER_JARFILE}\" https:\/\/ci.loohpjames.com\/job\/Limbo\/lastSuccessfulBuild\/artifact\/target\/$LATEST_LIMBO_NAME\r\n\r\nif [ ! -f server.properties ]; then\r\n echo \"Downloading Limbo server.properties\"\r\n curl -o server.properties https:\/\/raw.githubusercontent.com\/LOOHP\/Limbo\/master\/src\/main\/resources\/server.properties\r\nfi", + "container": "ghcr.io\/pterodactyl\/installers:alpine", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Server Jar File", + "description": "The name of the server jarfile to run the Limbo server with.", + "env_variable": "SERVER_JARFILE", + "default_value": "Limbo.jar", + "user_viewable": true, + "user_editable": true, + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/", + "field_type": "text" + } + ] +} \ No newline at end of file From 1abfacbec5bf9d55568d34b07eb3dab8ebfb8b6a Mon Sep 17 00:00:00 2001 From: Brandon Pendleton <22108519+bitbucket90@users.noreply.github.com> Date: Tue, 21 Mar 2023 15:10:58 -0400 Subject: [PATCH 169/473] Update readme.md with correct ports To correctly query the server from funcoms master we need to allow port 7778. Once done this will show the correct age & ping. --- game_eggs/steamcmd_servers/conan_exiles/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/game_eggs/steamcmd_servers/conan_exiles/README.md b/game_eggs/steamcmd_servers/conan_exiles/README.md index 32017867..d0236fee 100644 --- a/game_eggs/steamcmd_servers/conan_exiles/README.md +++ b/game_eggs/steamcmd_servers/conan_exiles/README.md @@ -15,6 +15,7 @@ Ports required to run the server in a table format. | Port | default | |---------|---------| | Game | 7777 | +| UDP Query | 7778 | | Steam Query | 27015 | ## More information can be found [here](https://forums.funcom.com/t/conan-exiles-dedicated-server-app-latest-version-1-0-21/21699) From 8364b489847adf7e73918b8d7897a47412222f0b Mon Sep 17 00:00:00 2001 From: skittles-fivem <57036758+skittles-fivem@users.noreply.github.com> Date: Sat, 25 Mar 2023 05:57:18 -0500 Subject: [PATCH 170/473] Fixes BeamMP server not shutting down (#2201) BeamMP: Fix server not shutting down --- .../{egg-beam-m-p-servers.json => egg-beam-m-p-server.json} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename game_eggs/beamng/beammp/{egg-beam-m-p-servers.json => egg-beam-m-p-server.json} (99%) diff --git a/game_eggs/beamng/beammp/egg-beam-m-p-servers.json b/game_eggs/beamng/beammp/egg-beam-m-p-server.json similarity index 99% rename from game_eggs/beamng/beammp/egg-beam-m-p-servers.json rename to game_eggs/beamng/beammp/egg-beam-m-p-server.json index 220812c5..f6e282e3 100644 --- a/game_eggs/beamng/beammp/egg-beam-m-p-servers.json +++ b/game_eggs/beamng/beammp/egg-beam-m-p-server.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-11-07T17:26:47+01:00", + "exported_at": "2023-03-24T22:19:45+01:00", "name": "BeamMP Servers", "author": "noah@noahserver.online", "description": "This is the server for the multiplayer mod BeamMP for the game BeamNG.drive. The server is the point through which all clients communicate. You can write lua mods for the server, detailed instructions on the BeamMP Wiki.", @@ -18,7 +18,7 @@ "files": "{\r\n \"ServerConfig.toml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"Name =\": \"Name = \\\"{{env.NAME}}\\\"\",\r\n \"Port =\": \"Port = {{server.build.default.port}}\",\r\n \"AuthKey =\": \"AuthKey = \\\"{{env.AUTHKEY}}\\\"\",\r\n \"Private =\": \"Private = {{env.PRIVATE}}\",\r\n \"MaxPlayers =\": \"MaxPlayers = {{server.build.env.MAX_PLAYERS}}\",\r\n \"Description =\": \"Description = \\\"{{env.NAME}}\\\"\",\r\n \"MaxCars =\": \"MaxCars = {{env.MAX_CARS}}\",\r\n \"Map =\": \"Map = \\\"{{env.MAP}}\\\"\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"[INFO] Vehicle data network online\"\r\n}", "logs": "{}", - "stop": "^C" + "stop": "exit" }, "scripts": { "installation": { From 812e9a75c10cd4ac72008185948cc0f71760b665 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 26 Mar 2023 16:14:31 +0200 Subject: [PATCH 171/473] fix: OpenTTD for version 1.13.x and up --- .../openttd/egg-open-t-t-d-server.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/game_eggs/tycoon_games/openttd/egg-open-t-t-d-server.json b/game_eggs/tycoon_games/openttd/egg-open-t-t-d-server.json index 1a5ef0bb..23a8a486 100644 --- a/game_eggs/tycoon_games/openttd/egg-open-t-t-d-server.json +++ b/game_eggs/tycoon_games/openttd/egg-open-t-t-d-server.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-08T16:22:11+01:00", + "exported_at": "2023-03-26T16:13:26+02:00", "name": "OpenTTD Server", "author": "admin@justmyrandomstuff.com", "description": "OpenTTD is an open source simulation game based upon the popular Microprose game \"Transport Tycoon Deluxe\", written by Chris Sawyer. It attempts to mimic the original game as closely as possible while extending it with new features.\r\n\r\nOpenTTD is modelled after the original Transport Tycoon game by Chris Sawyer and enhances the game experience dramatically. Many features were inspired by TTDPatch while others are original.", @@ -22,8 +22,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\napk add --no-cache wget binutils xz curl\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"getting file from: https:\/\/cdn.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-debian-bullseye-amd64.deb\"\r\nwget https:\/\/cdn.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-debian-bullseye-amd64.deb -O openttd.deb\r\nar -x openttd.deb\r\ntar -xvf data.tar.*\r\ncp -a usr\/share\/games\/openttd\/* .\/\r\ncp -a usr\/games\/openttd .\/\r\nchmod +x openttd\r\n\r\nrm -fR usr\/share\/games\/openttd\/\r\nrm -fR usr\/games\/openttd\r\n\r\nwget https:\/\/cdn.openttd.org\/opengfx-releases\/${OPENGFX_VERSION}\/opengfx-${OPENGFX_VERSION}-all.zip -O opengfx.zip\r\nunzip opengfx.zip \r\n\r\ntar --strip-components=1 -C baseset\/ -xvf opengfx*.tar\r\nrm -fR open*zip open*tar open*gz debian-binary open*deb\r\n\r\n[ -f \/home\/container\/openttd.cfg ] || curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/tycoon_games\/openttd\/openttd.cfg > openttd.cfg\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", - "container": "alpine:3.16", + "script": "#!\/bin\/ash\r\napk add --no-cache xz curl tar unzip\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\necho -e \"\\ncurl -SsL -o openttd-linux.tar.xz https:\/\/cdn.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-generic-amd64.tar.xz\"\r\ncurl -SsL -o openttd-linux.tar.xz https:\/\/cdn.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-generic-amd64.tar.xz \r\n\r\necho -e \"\\nUnpacking tar\"\r\ntar -xf openttd-linux.tar.xz --strip-components=1\r\nrm openttd-linux.tar.xz\r\nchmod +x openttd\r\n\r\necho -e \"\\nRunning curl -sSL -o opengfx.zip https:\/\/cdn.openttd.org\/opengfx-releases\/${OPENGFX_VERSION}\/opengfx-${OPENGFX_VERSION}-all.zip\"\r\ncurl -sSL -o opengfx.zip https:\/\/cdn.openttd.org\/opengfx-releases\/${OPENGFX_VERSION}\/opengfx-${OPENGFX_VERSION}-all.zip\r\nunzip opengfx.zip \r\n\r\ntar --strip-components=1 -C baseset\/ -xvf opengfx*.tar\r\nrm -fR open*zip open*tar open*gz\r\n\r\n[ -f \/home\/container\/openttd.cfg ] || curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/tycoon_games\/openttd\/openttd.cfg > openttd.cfg\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "alpine:latest", "entrypoint": "ash" } }, @@ -45,14 +45,14 @@ "default_value": "true", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:5", + "rules": "required|string|in:true,false", "field_type": "text" }, { "name": "OpenTTD Version", - "description": "The version of OpenTTD i.e. 1.10.1", + "description": "The version of OpenTTD i.e. 12.2", "env_variable": "OPENTTD_VERSION", - "default_value": "12.2", + "default_value": "13.0-RC2", "user_viewable": true, "user_editable": false, "rules": "required|string|max:20", @@ -60,7 +60,7 @@ }, { "name": "OpenGFX Version", - "description": "The OpenGFX Version i.e. 0.6.0", + "description": "The OpenGFX Version i.e. 7.1", "env_variable": "OPENGFX_VERSION", "default_value": "7.1", "user_viewable": true, @@ -69,4 +69,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 0ad633db887b203314a1bf1218953b0ac64599f6 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 29 Mar 2023 10:35:02 +0200 Subject: [PATCH 172/473] bastion: new ENV variables --- bots/discord/bastion/egg-bastion.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bots/discord/bastion/egg-bastion.json b/bots/discord/bastion/egg-bastion.json index 37356c98..038d1707 100644 --- a/bots/discord/bastion/egg-bastion.json +++ b/bots/discord/bastion/egg-bastion.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-12-18T11:27:40+01:00", + "exported_at": "2023-03-29T10:33:50+02:00", "name": "Bastion", "author": "parker@parkervcp.com", "description": "Bastion is a multi-purpose Discord Bot that can help you automate most tasks in your server, from administration and moderation to keeping the members active through various incentives, games and other fun activities", @@ -31,7 +31,7 @@ { "name": "Bot Token", "description": "The Bot Token you get from https:\/\/discordapp.com\/developers\/applications\/", - "env_variable": "TESSERACT_BOT_TOKEN", + "env_variable": "BOT_TOKEN", "default_value": "GETABOTTOKEN", "user_viewable": true, "user_editable": true, @@ -41,7 +41,7 @@ { "name": "Bot Client ID", "description": "The Bot ID you get from https:\/\/discordapp.com\/developers\/applications\/", - "env_variable": "TESSERACT_BOT_ID", + "env_variable": "BOT_ID", "default_value": "", "user_viewable": true, "user_editable": true, @@ -51,7 +51,7 @@ { "name": "Mongo URL", "description": "use `mongodb:\/\/127.0.0.1:27017\/bastion` for using the build in mongodb server", - "env_variable": "TESSERACT_MONGO_URI", + "env_variable": "MONGO_URI", "default_value": "mongodb:\/\/127.0.0.1:27017\/bastion", "user_viewable": true, "user_editable": true, @@ -81,7 +81,7 @@ { "name": "Safe Mode", "description": "When enabled, this disables usage of unsafe commands like `exec` and `eval`.", - "env_variable": "TESSERACT_UNSAFE_MODE", + "env_variable": "UNSAFE_MODE", "default_value": "false", "user_viewable": true, "user_editable": true, @@ -119,4 +119,4 @@ "field_type": "text" } ] -} +} \ No newline at end of file From 8eff93e509f1939397ce27db6ef5d08d5f649c0b Mon Sep 17 00:00:00 2001 From: Steven Date: Wed, 29 Mar 2023 14:42:59 +0200 Subject: [PATCH 173/473] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e51d46de..8495c2bb 100644 --- a/README.md +++ b/README.md @@ -150,7 +150,7 @@ If you are reading this it looks like you are looking to add an egg to your serv [Minecraft](game_eggs/minecraft) -* [Bedrock](game_eggs/minecraft/bedrock) Servers for Bedrock Minecraft (Windows 10, mobile, console) +* [Bedrock](game_eggs/minecraft/bedrock) Servers for Bedrock Minecraft (Windows 10/11, mobile, console) * [Bedrock](game_eggs/minecraft/bedrock/bedrock) * [gomint](game_eggs/minecraft/bedrock/gomint) * [LiteLoaderBDS](game_eggs/bedrock/LiteLoader-bedrock) From 65959c283f55a9863dc2630a04be8668783326ab Mon Sep 17 00:00:00 2001 From: Steven Date: Wed, 29 Mar 2023 14:54:49 +0200 Subject: [PATCH 174/473] Update README Only Windows in MC Bedrock --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8495c2bb..2b07e1aa 100644 --- a/README.md +++ b/README.md @@ -150,7 +150,7 @@ If you are reading this it looks like you are looking to add an egg to your serv [Minecraft](game_eggs/minecraft) -* [Bedrock](game_eggs/minecraft/bedrock) Servers for Bedrock Minecraft (Windows 10/11, mobile, console) +* [Bedrock](game_eggs/minecraft/bedrock) Servers for Bedrock Minecraft (Windows, mobile, console) * [Bedrock](game_eggs/minecraft/bedrock/bedrock) * [gomint](game_eggs/minecraft/bedrock/gomint) * [LiteLoaderBDS](game_eggs/bedrock/LiteLoader-bedrock) From febbedfa83267e532b80b582cc7dadb446c3e44a Mon Sep 17 00:00:00 2001 From: Attackwave <51136146+Attackwave@users.noreply.github.com> Date: Thu, 30 Mar 2023 08:21:20 +0200 Subject: [PATCH 175/473] Update egg-core-keeper.json (#2205) --- game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json index 87a087c4..4ab04d56 100644 --- a/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json +++ b/game_eggs/steamcmd_servers/core_keeper/egg-core-keeper.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-18T23:18:52+01:00", + "exported_at": "2023-03-28T22:32:36+02:00", "name": "Core Keeper", "author": "karsten@fiedleronline.net", "description": "Core Keeper is a survival sandbox game for single or multiplayers.\r\n\r\n--- Drawn towards a mysterious relic, you are an explorer who awakens in an ancient cavern of creatures, resources and trinkets. Trapped deep underground will your survival skills be up to the task? Mine relics and resources to build your base, craft new equipment, survive, and power up the Core. ---", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], - "startup": "export DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; xvfb-run -s \"-screen 0 {{DISPLAY_WIDTH}}x{{DISPLAY_HEIGHT}}x{{DISPLAY_DEPTH}} -ac -nolisten tcp -nolisten unix\" .\/CoreKeeperServer -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid {{GAME_ID}}\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt & LOGPID=$!; trap \"kill ${CKPID}; wait ${CKPID}; kill ${LOGPID}; wait ${LOGPID}\" 15; wait $!", + "startup": "export DISPLAY=:0; rm .\/GameID.txt .\/CoreKeeperServerLog.txt; touch .\/CoreKeeperServerLog.txt; xvfb-run -s \"-screen 0 {{DISPLAY_WIDTH}}x{{DISPLAY_HEIGHT}}x{{DISPLAY_DEPTH}} -ac -nolisten tcp -nolisten unix\" .\/CoreKeeperServer -batchmode -logfile CoreKeeperServerLog.txt -world {{WORLD_INDEX}} -worldname \"{{WORLD_NAME}}\" -worldseed {{WORLD_SEED}} $([[ \"{{GAME_ID}}\" != \"\" ]] && echo -n \" -gameid {{GAME_ID}}\") -maxplayers {{MAX_PLAYERS}} -worldmode {{WORLD_MODE}} -port {{SERVER_PORT}} & CKPID=$!; tail -f CoreKeeperServerLog.txt | grep -e '^\\[userid:[0-9]*\\] player' -e '^[^\\[]' & LOGPID=$!; trap \"kill ${CKPID}; wait ${CKPID}; kill ${LOGPID}; wait ${LOGPID}\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started session\"\r\n}", From a4e8095a4bb27bb5af2c86dc8683972a585e74ae Mon Sep 17 00:00:00 2001 From: Jcodeerd <68161666+Jcodeerd@users.noreply.github.com> Date: Mon, 3 Apr 2023 17:59:22 +0200 Subject: [PATCH 176/473] Update the velocity egg (#2210) Update the velocity --- .../proxy/java/velocity/egg-velocity.json | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/game_eggs/minecraft/proxy/java/velocity/egg-velocity.json b/game_eggs/minecraft/proxy/java/velocity/egg-velocity.json index 25cf326e..544ca2b6 100644 --- a/game_eggs/minecraft/proxy/java/velocity/egg-velocity.json +++ b/game_eggs/minecraft/proxy/java/velocity/egg-velocity.json @@ -1,10 +1,10 @@ { "_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-12-02T16:47:41+00:00", + "exported_at": "2023-04-03T16:55:25+02:00", "name": "Velocity", "author": "parker@parkervcp.com", "description": "Velocity is a Minecraft server proxy with unparalleled server support, scalability, and flexibility.", @@ -13,12 +13,12 @@ "java_version", "pid_limit" ], - "images": [ - "ghcr.io\/pterodactyl\/yolks:java_17", - "ghcr.io\/pterodactyl\/yolks:java_16", - "ghcr.io\/pterodactyl\/yolks:java_11", - "ghcr.io\/pterodactyl\/yolks:java_8" - ], + "docker_images": { + "Java 17": "ghcr.io\/pterodactyl\/yolks:java_17", + "Java 16": "ghcr.io\/pterodactyl\/yolks:java_16", + "Java 11": "ghcr.io\/pterodactyl\/yolks:java_11", + "Java 8": "ghcr.io\/pterodactyl\/yolks:java_8" + }, "file_denylist": [], "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -XX:MaxInlineLevel=15 -jar {{SERVER_JARFILE}}", "config": { @@ -29,7 +29,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Velocity Proxy Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nPROJECT=velocity\r\nif [[ -z ${VELOCITY_VERSION} ]] || [[ ${VELOCITY_VERSION} == \"latest\" ]]; then\r\nVELOCITY_VERSION=\"latest\"\r\nfi\r\nif [[ -n \"${DOWNLOAD_LINK}\" ]]; then\r\necho -e \"Using supplied download url: ${DOWNLOAD_LINK}\"\r\nDOWNLOAD_URL=$(eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g'))\r\nelse\r\nVER_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r --arg VERSION $VELOCITY_VERSION '.versions[] | contains($VERSION)' | grep true)\r\nLATEST_VERSION=$(curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r '.versions' | jq -r '.[-1]')\r\nif [[ \"${VER_EXISTS}\" == \"true\" ]]; then\r\necho -e \"Version is valid. Using version ${VELOCITY_VERSION}\"\r\nelse\r\necho -e \"Using the latest ${PROJECT} version\"\r\nVELOCITY_VERSION=${LATEST_VERSION}\r\nfi\r\nBUILD_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${VELOCITY_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep true)\r\nLATEST_BUILD=$(curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${VELOCITY_VERSION} | jq -r '.builds' | jq -r '.[-1]')\r\nif [[ \"${BUILD_EXISTS}\" == \"true\" ]]; then\r\necho -e \"Build is valid for version ${VELOCITY_VERSION}. Using build ${BUILD_NUMBER}\"\r\nelse\r\necho -e \"Using the latest ${PROJECT} build for version ${VELOCITY_VERSION}\"\r\nBUILD_NUMBER=${LATEST_BUILD}\r\nfi\r\nJAR_NAME=${PROJECT}-${VELOCITY_VERSION}-${BUILD_NUMBER}.jar\r\necho \"Version being downloaded\"\r\necho -e \"Velocity Version: ${VELOCITY_VERSION}\"\r\necho -e \"Build: ${BUILD_NUMBER}\"\r\necho -e \"JAR Name of Build: ${JAR_NAME}\"\r\nDOWNLOAD_URL=https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${VELOCITY_VERSION}\/builds\/${BUILD_NUMBER}\/downloads\/${JAR_NAME}\r\nfi\r\ncd \/mnt\/server\r\necho -e \"Running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\nif [[ -f ${SERVER_JARFILE} ]]; then\r\nmv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\nif [[ -f velocity.toml ]]; then\r\necho -e \"velocity config file exists\"\r\nelse\r\necho -e \"downloading velocity config file.\"\r\ncurl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/proxy\/java\/velocity\/velocity.toml -o velocity.toml\r\nfi\r\nif [[ -f forwarding.secret ]]; then\r\necho -e \"velocity forwarding secret file already exists\"\r\nelse\r\necho -e \"creating forwarding secret file\"\r\ntouch forwarding.secret\r\ndate +%s | sha256sum | base64 | head -c 12 > forwarding.secret\r\nfi\r\necho -e \"install complete\"", + "script": "#!\/bin\/ash\r\n# Velocity Proxy Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nPROJECT=velocity\r\n\r\nif [[ -z ${VELOCITY_VERSION} ]] || [[ ${VELOCITY_VERSION} == \"latest\" ]]; then\r\n VELOCITY_VERSION=\"latest\"\r\nfi\r\n\r\nif [[ -n \"${DOWNLOAD_LINK}\" ]]; then\r\n echo -e \"Using supplied download url: ${DOWNLOAD_LINK}\"\r\n DOWNLOAD_URL=$(eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g'))\r\nelse\r\n VER_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r --arg VERSION $VELOCITY_VERSION '.versions[] | contains($VERSION)' | grep true)\r\n LATEST_VERSION=$(curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r '.versions' | jq -r '.[-1]')\r\n\r\nif [[ \"${VER_EXISTS}\" == \"true\" ]]; then\r\n echo -e \"Version is valid. Using version ${VELOCITY_VERSION}\"\r\nelse\r\n echo -e \"Using the latest ${PROJECT} version\"\r\n VELOCITY_VERSION=${LATEST_VERSION}\r\nfi\r\n\r\nBUILD_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${VELOCITY_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep true)\r\nLATEST_BUILD=$(curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${VELOCITY_VERSION} | jq -r '.builds' | jq -r '.[-1]')\r\n\r\nif [[ \"${BUILD_EXISTS}\" == \"true\" ]]; then\r\n echo -e \"Build is valid for version ${VELOCITY_VERSION}. Using build ${BUILD_NUMBER}\"\r\nelse\r\n echo -e \"Using the latest ${PROJECT} build for version ${VELOCITY_VERSION}\"\r\n BUILD_NUMBER=${LATEST_BUILD}\r\nfi\r\n\r\nJAR_NAME=${PROJECT}-${VELOCITY_VERSION}-${BUILD_NUMBER}.jar\r\necho \"Version being downloaded\"\r\necho -e \"Velocity Version: ${VELOCITY_VERSION}\"\r\necho -e \"Build: ${BUILD_NUMBER}\"\r\necho -e \"JAR Name of Build: ${JAR_NAME}\"\r\nDOWNLOAD_URL=https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${VELOCITY_VERSION}\/builds\/${BUILD_NUMBER}\/downloads\/${JAR_NAME}\r\n\r\nfi\r\ncd \/mnt\/server\r\necho -e \"Running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\nif [[ -f ${SERVER_JARFILE} ]]; then\r\nmv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [[ -f velocity.toml ]]; then\r\n echo -e \"velocity config file exists\"\r\nelse\r\n echo -e \"downloading velocity config file.\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/proxy\/java\/velocity\/velocity.toml -o velocity.toml\r\nfi\r\n\r\nif [[ -f forwarding.secret ]]; then\r\n echo -e \"velocity forwarding secret file already exists\"\r\nelse\r\n echo -e \"creating forwarding secret file\"\r\n touch forwarding.secret\r\n date +%s | sha256sum | base64 | head -c 12 > forwarding.secret\r\nfi\r\n\r\necho -e \"install complete\"", "container": "ghcr.io\/pterodactyl\/installers:alpine", "entrypoint": "ash" } @@ -42,7 +42,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Server Jar File", @@ -51,7 +52,8 @@ "default_value": "velocity.jar", "user_viewable": true, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:32|regex:\/^([\\w\\d._-]+)(\\.jar)$\/", + "field_type": "text" }, { "name": "Download Path", @@ -60,7 +62,8 @@ "default_value": "", "user_viewable": false, "user_editable": false, - "rules": "nullable|string" + "rules": "nullable|string", + "field_type": "text" }, { "name": "Build Number", @@ -69,7 +72,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" } ] } \ No newline at end of file From 590646d1136aac22fca036311de161763f83acb1 Mon Sep 17 00:00:00 2001 From: DropAwpPlss <85845965+DropAwpPlss@users.noreply.github.com> Date: Mon, 3 Apr 2023 23:16:17 +0000 Subject: [PATCH 177/473] Fixed typo in README.md --- game_eggs/minecraft/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/minecraft/README.md b/game_eggs/minecraft/README.md index 49a74135..d4661d98 100644 --- a/game_eggs/minecraft/README.md +++ b/game_eggs/minecraft/README.md @@ -19,7 +19,7 @@ It’s set in infinitely-generated worlds of wide open terrain - icy mountains, * [Feather](java/feather) * [Forge](java/forge) * [Forge](java/forge/forge) - * [CusreForge Generic](java/forge/curseforge-generic) + * [CurseForge Generic](java/forge/curseforge-generic) * [Feed The Beast](java/ftb) * [Glowstone](java/glowstone) * [Limbo](java/limbo) From abba28331d11459e5021b1a350d07a1eb27d7e62 Mon Sep 17 00:00:00 2001 From: MarcoCoreDuo <90222533+MarcoCoreDuo@users.noreply.github.com> Date: Sun, 9 Apr 2023 04:50:22 +0200 Subject: [PATCH 178/473] Tmodloader fix config not being loaded at startup This fixes the issue of the difficulty not being applied when the world is generated. --- game_eggs/terraria/tmodloader/egg-t-modloader.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/terraria/tmodloader/egg-t-modloader.json b/game_eggs/terraria/tmodloader/egg-t-modloader.json index ccbee327..43af8d20 100755 --- a/game_eggs/terraria/tmodloader/egg-t-modloader.json +++ b/game_eggs/terraria/tmodloader/egg-t-modloader.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-04T11:17:39+01:00", + "exported_at": "2023-04-09T04:34:42+02:00", "name": "tModloader", "author": "parker@parkervcp.com", "description": "tModLoader is essentially a mod that provides a way to load your own mods without having to work directly with Terraria's source code itself. This means you can easily make mods that are compatible with other people's mods, save yourself the trouble of having to decompile and recompile Terraria.exe, and escape from having to understand all of the obscure \"intricacies\" of Terraria's source code. It is made to work for Terraria 1.3+.", @@ -13,7 +13,7 @@ "Dotnet 6": "ghcr.io\/parkervcp\/yolks:dotnet_6" }, "file_denylist": [], - "startup": ".\/tModLoaderServer -ip 0.0.0.0 -port {{SERVER_PORT}} -maxplayers {{MAX_PLAYERS}} -password \"{{SERVER_PASSWORD}}\" -motd \"{{MOTD}}\" -lang {{LANGUAGE}} -world ~\/saves\/Worlds\/{{WORLD_NAME}}.wld -worldname {{WORLD_NAME}} -autocreate {{WORLD_SIZE}} -savedirectory ~\/ -tmlsavedirectory ~\/saves -modpath ~\/mods", + "startup": ".\/tModLoaderServer -ip 0.0.0.0 -port {{SERVER_PORT}} -maxplayers {{MAX_PLAYERS}} -password \"{{SERVER_PASSWORD}}\" -motd \"{{MOTD}}\" -lang {{LANGUAGE}} -world ~\/saves\/Worlds\/{{WORLD_NAME}}.wld -worldname {{WORLD_NAME}} -autocreate {{WORLD_SIZE}} -config serverconfig.txt -savedirectory ~\/ -tmlsavedirectory ~\/saves -modpath ~\/mods", "config": { "files": "{\r\n \"serverconfig.txt\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"difficulty\": \"difficulty={{server.build.env.DIFFICULTY}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Type 'help' for a list of commands\"\r\n}", @@ -129,4 +129,4 @@ "field_type": "text" } ] -} +} \ No newline at end of file From 184064d311f70b82a4e72d0e21929c71e04a5dcb Mon Sep 17 00:00:00 2001 From: Panda260 <52088459+Panda260@users.noreply.github.com> Date: Tue, 11 Apr 2023 10:55:55 +0200 Subject: [PATCH 179/473] purpur: add startup variable as it is recommended in the console (#2218) purpur: add startup variable as it is recommended in the console --- .../minecraft/java/purpur/egg-purpur.json | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/game_eggs/minecraft/java/purpur/egg-purpur.json b/game_eggs/minecraft/java/purpur/egg-purpur.json index 579bda6d..81b9fa1f 100644 --- a/game_eggs/minecraft/java/purpur/egg-purpur.json +++ b/game_eggs/minecraft/java/purpur/egg-purpur.json @@ -1,10 +1,10 @@ { "_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-12-18T19:20:26-05:00", + "exported_at": "2023-04-11T10:05:13+02:00", "name": "Purpur", "author": "purpur@birdflop.com", "description": "A drop-in replacement for Paper servers designed for configurability, and new fun and exciting gameplay features.", @@ -13,14 +13,14 @@ "java_version", "pid_limit" ], - "images": [ - "ghcr.io\/pterodactyl\/yolks:java_17", - "ghcr.io\/pterodactyl\/yolks:java_16", - "ghcr.io\/pterodactyl\/yolks:java_11", - "ghcr.io\/pterodactyl\/yolks:java_8" - ], + "docker_images": { + "ghcr.io\/pterodactyl\/yolks:java_17": "ghcr.io\/pterodactyl\/yolks:java_17", + "ghcr.io\/pterodactyl\/yolks:java_16": "ghcr.io\/pterodactyl\/yolks:java_16", + "ghcr.io\/pterodactyl\/yolks:java_11": "ghcr.io\/pterodactyl\/yolks:java_11", + "ghcr.io\/pterodactyl\/yolks:java_8": "ghcr.io\/pterodactyl\/yolks:java_8" + }, "file_denylist": [], - "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}", + "startup": "java --add-modules=jdk.incubator.vector -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}", "config": { "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"server-port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \")! For help, type \"\r\n}", @@ -42,7 +42,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Server Jar File", @@ -51,7 +52,8 @@ "default_value": "server.jar", "user_viewable": true, "user_editable": true, - "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/|max:80" + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/|max:80", + "field_type": "text" }, { "name": "Build Number", @@ -60,7 +62,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" } ] -} +} \ No newline at end of file From a486c73c69cd15c5bbda1fe9529388a13f4392d9 Mon Sep 17 00:00:00 2001 From: Jamis H Date: Tue, 11 Apr 2023 12:20:42 -0600 Subject: [PATCH 180/473] Squad: Fix typo (#2219) Squad: Fix typo --- game_eggs/steamcmd_servers/squad/egg-squad.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/squad/egg-squad.json b/game_eggs/steamcmd_servers/squad/egg-squad.json index 5fbee199..672a4957 100644 --- a/game_eggs/steamcmd_servers/squad/egg-squad.json +++ b/game_eggs/steamcmd_servers/squad/egg-squad.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-13T11:04:16+01:00", + "exported_at": "2023-04-11T11:41:50-06:00", "name": "Squad", "author": "brycea@terrahost.cloud", "description": "Squad is a 50 vs 50 multiplayer first-person shooter that aims to capture combat realism through communication and teamplay. Major features include vehicle-based combined arms gameplay, large scale environments, base building, and integrated positional VoIP for proximity talking & radio.", @@ -101,7 +101,7 @@ "field_type": "text" }, { - "name": "Reserved Slows", + "name": "Reserved Slots", "description": "The number of reserved slots for admins \/ mods", "env_variable": "reservedslots", "default_value": "0", From fd1f43012fb4be52c71125ef756c17c24df5f68a Mon Sep 17 00:00:00 2001 From: Daniel Barton Date: Thu, 13 Apr 2023 08:32:56 +0800 Subject: [PATCH 181/473] Update Open Fortress install script to use new domain Updates egg to use new domain and new version of muse --- .../steamcmd_servers/open_fortress/egg-open-fortress.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/open_fortress/egg-open-fortress.json b/game_eggs/steamcmd_servers/open_fortress/egg-open-fortress.json index c6c5740d..a9ae9030 100644 --- a/game_eggs/steamcmd_servers/open_fortress/egg-open-fortress.json +++ b/game_eggs/steamcmd_servers/open_fortress/egg-open-fortress.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-07-18T08:23:04-04:00", + "exported_at": "2023-04-13T00:19:22+00:00", "name": "Open Fortress", "author": "espeon@espeon.dev", "description": "Open Fortress is a free Team Fortress 2 mod that introduces new gamemodes, weapons, characters, maps, and more to the world of TF2.", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates p7zip-full wget\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\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\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 +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n## install tf2 content using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server\/tf2 +app_update 232250 ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\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## 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 OpenFortress\r\ncd \/mnt\/server\r\nmv bin bin_dontdeleteme\r\nwget https:\/\/git.sr.ht\/~welt\/murse\/refs\/download\/v0.2.1\/murse-v0.2.1-linux-amd64.tar.gz -O murse.tgz 2> \/dev\/null\r\ntar xvfz murse.tgz\r\nrm -rf murse.tgz\r\nchmod +x murse\r\n.\/murse upgrade -u https:\/\/toast1.openfortress.fun\/toast -c $(curl https:\/\/toast1.openfortress.fun\/toast\/reithreads) asdrggvead\/open_fortress\r\nmv \/mnt\/server\/asdrggvead\/open_fortress \/mnt\/server\/open_fortress\r\nrm -rf asdrggvead\r\nmv bin_dontdeleteme bin\r\n## add fixed gameinfo\r\ncd \/mnt\/server\/open_fortress\r\nrm -rf gameinfo.txt\r\ncat >> gameinfo.txt << EOF\r\n\"GameInfo\"\r\n{\r\ngame \"Open Fortress\"\r\ntitle \"\"\r\ntitle2 \"\"\r\ngamelogo \"1\"\r\ndeveloper \"https:\/\/github.com\/AgitationSkeleton\/open_fortress\/blob\/master\/credits.txt\"\r\ndeveloper_url\t\"https:\/\/github.com\/KaidemonLP\/Open-Fortress-Source\"\r\nmanual \"\"\r\ntype \"multiplayer_only\"\r\nhasportals \"0\" \/\/ gameui.dll\r\nhashdcontent\t\"0\" \/\/ gameui.dll\r\nnomodels \"0\" \/\/ gameui.dll\r\nnohimodel \"0\" \/\/ gameui.dll\r\nnocrosshair \"0\" \/\/ gameui.dll\r\nadvcrosshair \"1\" \/\/ gameui.dll\r\nnodifficulty\t\"1\" \/\/ gameui.dll\r\nsupportsvr \"0\" \/\/ engine.dll + gameui.dll\r\nbots \"0\" \/\/ gameui.dll\r\nnodegraph \"1\" \/\/ engine.dll\r\nperfwizard \"0\" \/\/ unused\r\nSupportsDX8 \"0\" \/\/ unused\r\nSupportsDX9 \"1\" \/\/ unused\r\nSupportsDX10\t\"0\" \/\/ unused\r\nSupportsDX11\t\"0\" \/\/ unused\r\nSupportsXbox\t\"0\" \/\/ unused\r\nSupportsXbox360\t\"0\" \/\/ unused\r\nSupportsXboxOne\t\"0\" \/\/ unused\r\nSupportsPS3 \"0\" \/\/ unused\r\nSupportsPS4 \"0\" \/\/ unused\r\nicon \"resource\/game\"\r\nGameData \"ofd_fic2.fgd\"\r\nInstancePath\t\"maps\/instances\/\"\r\nhidden_maps\r\n{\r\n\"test_speakers\" 1\r\n\"test_hardware\" 1\r\n\"background01\" 1\r\n\"background02\" 1\r\n\"background03\" 1\r\n\"background04\" 1\r\n\"background05\" 1\r\n\"background06\" 1\r\n\"background07\" 1\r\n\"background08\" 1\r\n\"background09\" 1\r\n\"background12\" 1\r\n\"background15\" 1\r\n\"ep1_c17_00\" 1\r\n\"ep1_c17_00a\" 1\r\n\"ep1_c17_01\" 1\r\n\"ep1_c17_01a\" 1\r\n\"ep1_c17_02\" 1\r\n\"ep1_c17_02a\" 1\r\n\"ep1_c17_02b\" 1\r\n\"ep1_c17_05\" 1\r\n\"ep1_c17_06\" 1\r\n\"ep1_citadel_00\"\t1\r\n\"ep1_citadel_00_demo\" 1\r\n\"ep1_citadel_01\"\t1\r\n\"ep1_citadel_02\"\t1\r\n\"ep1_citadel_02b\"\t1\r\n\"ep1_citadel_03\"\t1\r\n\"ep1_citadel_04\"\t1\r\n\"ep1_background01\"\t1\r\n\"ep1_background01a\"\t1\r\n\"ep1_background02\"\t1\r\n\"ep2_outland_01\"\t1\r\n\"ep2_outland_01a\"\t1\r\n\"ep2_outland_02\"\t1\r\n\"ep2_outland_03\"\t1\r\n\"ep2_outland_04\"\t1\r\n\"ep2_outland_05\"\t1\r\n\"ep2_outland_06\"\t1\r\n\"ep2_outland_06a\"\t1\r\n\"ep2_outland_07\"\t1\r\n\"ep2_outland_08\"\t1\r\n\"ep2_outland_09\"\t1\r\n\"ep2_outland_10\"\t1\r\n\"ep2_outland_10a\"\t1\r\n\"ep2_outland_11\"\t1\r\n\"ep2_outland_11a\"\t1\r\n\"ep2_outland_11b\"\t1\r\n\"ep2_outland_12\"\t1\r\n\"ep2_outland_12a\"\t1\r\n\"ep2_background01\"\t1\r\n\"ep2_background02\"\t1\r\n\"ep2_background02a\"\t1\r\n\"ep2_background03\"\t1\r\n\"credits\" 1\r\n\"vst_lostcoast\" 1\r\n\"test\" 1\r\n\"sdk_vehicles\" 1\r\n}\r\nFileSystem\r\n{\r\nSteamAppId 243750\r\nSearchPaths\r\n{\r\ngame+mod |gameinfo_path|custom\/*\r\ngame+game_write+mod+mod_write+default_write_path |gameinfo_path|.\r\ngamebin |gameinfo_path|bin\r\n\/\/ The lines below until the BREAK comment are responsible for the game resources to work properly\r\n\/\/ in Hammer and other Source tools. The default setup assumes that you have everything (Steam, TF2,\r\n\/\/ Source SDK and OF) in the same drive letter\/partition. If you have a different storage configuration,\r\n\/\/ feel free to modify the paths below between quotes (example: D:\\Steam\\steamapps\\common\\Team Fortress 2\\tf).\r\ngame \"\/home\/container\/tf2\/tf\/tf2_misc.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\/tf2_sound_misc.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\/tf2_sound_vo_english.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\/tf2_textures.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\"\r\ngame \"\/home\/container\/tf2\/hl2\/hl2_textures.vpk\"\r\ngame \"\/home\/container\/tf2\/hl2\/hl2_sound_vo_english.vpk\"\r\ngame \"\/home\/container\/tf2\/hl2\/hl2_sound_misc.vpk\"\r\n\/\/ The hl2 folder here is from Source SDK Base 2013 Multiplayer.\r\ngame \"|all_source_engine_paths|hl2\\hl2_misc.vpk\"\r\ngame \"|all_source_engine_paths|hl2\"\r\n\/\/ ========== BREAK ==========\r\nplatform |all_source_engine_paths|platform\/platform_misc.vpk\r\nplatform |all_source_engine_paths|platform\r\ngame+download |gameinfo_path|download\r\n}\r\n}\r\n}\r\nEOF\r\n## fix issue \/w symlink\r\ncd \/mnt\/server\/bin\r\nln -s datacache_srv.so datacache.so\r\nln -s dedicated_srv.so dedicated.so\r\nln -s engine_srv.so engine.so\r\nln -s materialsystem_srv.so materialsystem.so\r\nln -s replay_srv.so replay.so\r\nln -s scenefilecache_srv.so scenefilecache.so\r\nln -s shaderapiempty_srv.so shaderapiempty.so\r\nln -s soundemittersystem_srv.so soundemittersystem.so\r\nln -s studiorender_srv.so studiorender.so\r\nln -s vphysics_srv.so vphysics.so\r\n## more symlink fixes\r\ncd \/mnt\/server\/open_fortress\/bin\r\nln -s server.so server_srv.so\r\n## fix issue with libstdc++.so\r\nrm -rf \/mnt\/server\/bin\/libstdc++.so.6", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates p7zip-full wget\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\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\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 +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n## install tf2 content using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server\/tf2 +app_update 232250 ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\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## 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 OpenFortress\r\ncd \/mnt\/server\r\nmv bin bin_dontdeleteme\r\nwget https:\/\/git.sr.ht\/~webb\/murse\/refs\/download\/v0.4.0\/murse-v0.4.0-linux-amd64.tar.gz -O murse.tgz 2> \/dev\/null\r\ntar xvfz murse.tgz\r\nrm -rf murse.tgz\r\nchmod +x murse\r\n.\/murse upgrade -u https:\/\/toast.openfortress.fun:8443\/toast asdrggvead\/open_fortress\r\nmv \/mnt\/server\/asdrggvead\/open_fortress \/mnt\/server\/open_fortress\r\nrm -rf asdrggvead\r\nmv bin_dontdeleteme bin\r\n## add fixed gameinfo\r\ncd \/mnt\/server\/open_fortress\r\nrm -rf gameinfo.txt\r\ncat >> gameinfo.txt << EOF\r\n\"GameInfo\"\r\n{\r\ngame \"Open Fortress\"\r\ntitle \"\"\r\ntitle2 \"\"\r\ngamelogo \"1\"\r\ndeveloper \"https:\/\/github.com\/AgitationSkeleton\/open_fortress\/blob\/master\/credits.txt\"\r\ndeveloper_url\t\"https:\/\/github.com\/KaidemonLP\/Open-Fortress-Source\"\r\nmanual \"\"\r\ntype \"multiplayer_only\"\r\nhasportals \"0\" \/\/ gameui.dll\r\nhashdcontent\t\"0\" \/\/ gameui.dll\r\nnomodels \"0\" \/\/ gameui.dll\r\nnohimodel \"0\" \/\/ gameui.dll\r\nnocrosshair \"0\" \/\/ gameui.dll\r\nadvcrosshair \"1\" \/\/ gameui.dll\r\nnodifficulty\t\"1\" \/\/ gameui.dll\r\nsupportsvr \"0\" \/\/ engine.dll + gameui.dll\r\nbots \"0\" \/\/ gameui.dll\r\nnodegraph \"1\" \/\/ engine.dll\r\nperfwizard \"0\" \/\/ unused\r\nSupportsDX8 \"0\" \/\/ unused\r\nSupportsDX9 \"1\" \/\/ unused\r\nSupportsDX10\t\"0\" \/\/ unused\r\nSupportsDX11\t\"0\" \/\/ unused\r\nSupportsXbox\t\"0\" \/\/ unused\r\nSupportsXbox360\t\"0\" \/\/ unused\r\nSupportsXboxOne\t\"0\" \/\/ unused\r\nSupportsPS3 \"0\" \/\/ unused\r\nSupportsPS4 \"0\" \/\/ unused\r\nicon \"resource\/game\"\r\nGameData \"ofd_fic2.fgd\"\r\nInstancePath\t\"maps\/instances\/\"\r\nhidden_maps\r\n{\r\n\"test_speakers\" 1\r\n\"test_hardware\" 1\r\n\"background01\" 1\r\n\"background02\" 1\r\n\"background03\" 1\r\n\"background04\" 1\r\n\"background05\" 1\r\n\"background06\" 1\r\n\"background07\" 1\r\n\"background08\" 1\r\n\"background09\" 1\r\n\"background12\" 1\r\n\"background15\" 1\r\n\"ep1_c17_00\" 1\r\n\"ep1_c17_00a\" 1\r\n\"ep1_c17_01\" 1\r\n\"ep1_c17_01a\" 1\r\n\"ep1_c17_02\" 1\r\n\"ep1_c17_02a\" 1\r\n\"ep1_c17_02b\" 1\r\n\"ep1_c17_05\" 1\r\n\"ep1_c17_06\" 1\r\n\"ep1_citadel_00\"\t1\r\n\"ep1_citadel_00_demo\" 1\r\n\"ep1_citadel_01\"\t1\r\n\"ep1_citadel_02\"\t1\r\n\"ep1_citadel_02b\"\t1\r\n\"ep1_citadel_03\"\t1\r\n\"ep1_citadel_04\"\t1\r\n\"ep1_background01\"\t1\r\n\"ep1_background01a\"\t1\r\n\"ep1_background02\"\t1\r\n\"ep2_outland_01\"\t1\r\n\"ep2_outland_01a\"\t1\r\n\"ep2_outland_02\"\t1\r\n\"ep2_outland_03\"\t1\r\n\"ep2_outland_04\"\t1\r\n\"ep2_outland_05\"\t1\r\n\"ep2_outland_06\"\t1\r\n\"ep2_outland_06a\"\t1\r\n\"ep2_outland_07\"\t1\r\n\"ep2_outland_08\"\t1\r\n\"ep2_outland_09\"\t1\r\n\"ep2_outland_10\"\t1\r\n\"ep2_outland_10a\"\t1\r\n\"ep2_outland_11\"\t1\r\n\"ep2_outland_11a\"\t1\r\n\"ep2_outland_11b\"\t1\r\n\"ep2_outland_12\"\t1\r\n\"ep2_outland_12a\"\t1\r\n\"ep2_background01\"\t1\r\n\"ep2_background02\"\t1\r\n\"ep2_background02a\"\t1\r\n\"ep2_background03\"\t1\r\n\"credits\" 1\r\n\"vst_lostcoast\" 1\r\n\"test\" 1\r\n\"sdk_vehicles\" 1\r\n}\r\nFileSystem\r\n{\r\nSteamAppId 243750\r\nSearchPaths\r\n{\r\ngame+mod |gameinfo_path|custom\/*\r\ngame+game_write+mod+mod_write+default_write_path |gameinfo_path|.\r\ngamebin |gameinfo_path|bin\r\n\/\/ The lines below until the BREAK comment are responsible for the game resources to work properly\r\n\/\/ in Hammer and other Source tools. The default setup assumes that you have everything (Steam, TF2,\r\n\/\/ Source SDK and OF) in the same drive letter\/partition. If you have a different storage configuration,\r\n\/\/ feel free to modify the paths below between quotes (example: D:\\Steam\\steamapps\\common\\Team Fortress 2\\tf).\r\ngame \"\/home\/container\/tf2\/tf\/tf2_misc.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\/tf2_sound_misc.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\/tf2_sound_vo_english.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\/tf2_textures.vpk\"\r\ngame \"\/home\/container\/tf2\/tf\"\r\ngame \"\/home\/container\/tf2\/hl2\/hl2_textures.vpk\"\r\ngame \"\/home\/container\/tf2\/hl2\/hl2_sound_vo_english.vpk\"\r\ngame \"\/home\/container\/tf2\/hl2\/hl2_sound_misc.vpk\"\r\n\/\/ The hl2 folder here is from Source SDK Base 2013 Multiplayer.\r\ngame \"|all_source_engine_paths|hl2\\hl2_misc.vpk\"\r\ngame \"|all_source_engine_paths|hl2\"\r\n\/\/ ========== BREAK ==========\r\nplatform |all_source_engine_paths|platform\/platform_misc.vpk\r\nplatform |all_source_engine_paths|platform\r\ngame+download |gameinfo_path|download\r\n}\r\n}\r\n}\r\nEOF\r\n## fix issue \/w symlink\r\ncd \/mnt\/server\/bin\r\nln -s datacache_srv.so datacache.so\r\nln -s dedicated_srv.so dedicated.so\r\nln -s engine_srv.so engine.so\r\nln -s materialsystem_srv.so materialsystem.so\r\nln -s replay_srv.so replay.so\r\nln -s scenefilecache_srv.so scenefilecache.so\r\nln -s shaderapiempty_srv.so shaderapiempty.so\r\nln -s soundemittersystem_srv.so soundemittersystem.so\r\nln -s studiorender_srv.so studiorender.so\r\nln -s vphysics_srv.so vphysics.so\r\n## more symlink fixes\r\ncd \/mnt\/server\/open_fortress\/bin\r\nln -s server.so server_srv.so\r\n## fix issue with libstdc++.so\r\nrm -rf \/mnt\/server\/bin\/libstdc++.so.6", "container": "ubuntu:18.04", "entrypoint": "bash" } @@ -71,4 +71,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 77edb46b62a59b3fb2d956c7384466d53e872092 Mon Sep 17 00:00:00 2001 From: David Katz Date: Tue, 18 Apr 2023 22:46:44 -0700 Subject: [PATCH 182/473] Add support for Modrinth modpacks --- game_eggs/minecraft/java/modrinth/README.md | 18 ++++++ .../java/modrinth/egg-modrinth-generic.json | 59 +++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 game_eggs/minecraft/java/modrinth/README.md create mode 100644 game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json diff --git a/game_eggs/minecraft/java/modrinth/README.md b/game_eggs/minecraft/java/modrinth/README.md new file mode 100644 index 00000000..04580ecc --- /dev/null +++ b/game_eggs/minecraft/java/modrinth/README.md @@ -0,0 +1,18 @@ +# Modrinth Generic + +## This is a generic egg for Modrinth modpacks + +You will need to give it a modpack project ID. The project ID for [Extreme Optimization!](https://modrinth.com/modpack/extreme-optimization!) is `1oIpaoJo` for example. +This can be found on the modpack page in the `Technical information` section in the left sidebar. + +You can also optionally specify a version ID. If you do not specify a version ID, the latest version will be used. The version ID for [Extreme Optimization!](https://modrinth.com/modpack/extreme-optimization!) version 1.12.2For2.0 is `SyMW2FDv` for example. This can be found on the modpack page by clicking the version number in the `Versions` section. + +The script will automatically setup of Forge, Fabric, or Quilt depending on the modpack. + +## Server Ports + +The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. + +| Port | default | +|-------|---------| +| Game | 25565 | diff --git a/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json b/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json new file mode 100644 index 00000000..fc3f5bc7 --- /dev/null +++ b/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json @@ -0,0 +1,59 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-04-18T22:37:55-07:00", + "name": "Modrinth Generic", + "author": "contact@chromozone.dev", + "description": "A generic egg for a Modrinth modpack.", + "features": [ + "eula", + "java_version", + "pid_limit" + ], + "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" + }, + "file_denylist": [], + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true $([[ ! -f unix_args.txt ]] && printf %s \"-jar `cat .serverjar`\" || printf %s \"@unix_args.txt\")", + "config": { + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\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\n# Modrinth Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n: ${SERVER_DIR:=\/mnt\/server}\r\n\r\nif [[ ! -d $SERVER_DIR ]]; then\r\n mkdir -p $SERVER_DIR\r\nfi\r\n\r\ncd $SERVER_DIR\r\n\r\nfunction install_required {\r\n echo -e \"Installing required packages...\"\r\n echo -e \"\\tRunning apt update\"\r\n apt update > \/dev\/null 2>&1 || { echo \"apt update failed!\"; exit 1; }\r\n echo -e \"\\tRunning apt install\"\r\n apt install -y wget jq unzip dos2unix > \/dev\/null 2>&1 || { echo \"apt install failed!\"; exit 1; }\r\n}\r\n\r\nMODRINTH_API_URL=\"https:\/\/api.modrinth.com\/v2\"\r\n\r\nfunction get_download {\r\n echo -e \"Retrieving Modrinth project information...\"\r\n PROJECT_DATA=$(wget -q \"${MODRINTH_API_URL}\/project\/${PROJECT_ID}\" -O -)\r\n PROJECT_TITLE=$(echo $PROJECT_DATA | jq -r '.title')\r\n PROJECT_SUPPORTED=$(echo $PROJECT_DATA | jq -r '.\"server_side\"')\r\n\r\n if [[ \"${PROJECT_SUPPORTED}\" == \"unsupported\" ]]; then\r\n echo -e \"\\tWARNING: The project '${PROJECT_TITLE}' is listed as unsupported for server use. Continuing anyway...\"\r\n fi\r\n\r\n if [[ -z ${VERSION_ID} || \"${VERSION_ID}\" == \"latest\" ]]; then\r\n echo -e \"\\tNo version ID specified, using latest version\"\r\n VERSION_ID=$(echo $PROJECT_DATA | jq -r '.versions[-1]')\r\n else\r\n echo -e \"\\tChecking if provided version id '${VERSION_ID}' exists\"\r\n if [[ $(echo $PROJECT_DATA | jq -r --arg VERSION_ID \"$VERSION_ID\" '.versions[] | select(. == $VERSION_ID)') != \"${VERSION_ID}\" ]]; then\r\n echo -e \"\\tERROR: Version id '${VERSION_ID}' not found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n fi\r\n\r\n # get json data to work with\r\n echo -e \"\\tRetrieving version information for '${VERSION_ID}'\"\r\n JSON_DATA=$(wget -q \"${MODRINTH_API_URL}\/version\/${VERSION_ID}\" -O -)\r\n\r\n echo -e \"\\tParsing Modrinth pack download url\"\r\n\r\n DOWNLOAD_URL=$(echo -e $JSON_DATA | jq -r '.files[] | select(.primary == true) | .url')\r\n\r\n if [[ -z ${DOWNLOAD_URL} ]]; then\r\n echo -e \"\\tERROR: No download url found for version ${VERSION_ID}\"\r\n exit 1\r\n fi\r\n\r\n ## download modpack files\r\n echo -e \"\\tDownloading ${DOWNLOAD_URL}\"\r\n wget -q ${DOWNLOAD_URL} -O server.zip\r\n}\r\n\r\nfunction unpack_zip {\r\n unzip -o server.zip\r\n rm -rf server.zip\r\n}\r\n\r\nfunction json_download_mods {\r\n echo \"Downloading mods...\"\r\n\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n jq -c '.files[] | select(.env.server == \"required\") | {name: .path, url: .downloads[0]}' ${MANIFEST} | while read -r mod; do\r\n fileUrl=$(echo ${mod} | jq -r '.url')\r\n\r\n echo -e \"\\tDownloading ${fileUrl}\"\r\n wget -q \"${fileUrl}\" -P \"${SERVER_DIR}\/mods\"\r\n\r\n if [[ $? != 0 ]]; then\r\n echo -e \"Download failed!\"\r\n exit 1\r\n fi\r\n done\r\n}\r\n\r\nfunction json_download_overrides {\r\n echo \"Copying overrides...\"\r\n if [[ -d \"${SERVER_DIR}\/overrides\" ]]; then\r\n echo -e \"\\tCopying overrides\"\r\n cp -r \"${SERVER_DIR}\/overrides\/\"* \"${SERVER_DIR}\"\r\n rm -r \"${SERVER_DIR}\/overrides\"\r\n fi\r\n\r\n if [[ -d \"${SERVER_DIR}\/server-overrides\" ]]; then\r\n echo -e \"\\tCopying server overrides\"\r\n cp -r \"${SERVER_DIR}\/server-overrides\/\"* \"${SERVER_DIR}\"\r\n rm -r \"${SERVER_DIR}\/server-overrides\"\r\n fi\r\n}\r\n\r\nFORGE_INSTALLER_URL=\"https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/\"\r\n\r\nfunction json_download_forge {\r\n echo \"Downloading Forge...\"\r\n\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n MC_VERSION=$(jq -r '.dependencies.minecraft' ${MANIFEST})\r\n FORGE_VERSION=$(jq -r '.dependencies.forge' ${MANIFEST})\r\n\r\n FORGE_VERSION=\"${MC_VERSION}-${FORGE_VERSION}\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" || \"${MC_VERSION}\" == \"1.8.9\" ]]; then\r\n FORGE_VERSION=\"${FORGE_VERSION}-${MC_VERSION}\"\r\n fi\r\n\r\n FORGE_JAR=\"forge-${FORGE_VERSION}.jar\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" ]]; then\r\n FORGE_JAR=\"forge-${FORGE_VERSION}-universal.jar\"\r\n fi\r\n\r\n FORGE_URL=\"${FORGE_INSTALLER_URL}${FORGE_VERSION}\/forge-${FORGE_VERSION}\"\r\n\r\n echo -e \"\\tUsing Forge ${FORGE_VERSION} from ${FORGE_URL}\"\r\n\r\n FORGE_INSTALLER=\"${FORGE_URL}-installer.jar\"\r\n echo -e \"\\tDownloading Forge Installer ${FORGE_VERSION} from ${FORGE_INSTALLER}\"\r\n wget -q -O forge-installer.jar ${FORGE_INSTALLER}\r\n\r\n if [[ $? != 0 ]]; then\r\n echo -e \"Download failed!\"\r\n exit 1\r\n fi\r\n\r\n rm -rf libraries\/net\/minecraftforge\/forge\/\r\n rm -f unix_args.txt\r\n\r\n echo -e \"\\tInstalling Forge Server ${FORGE_VERSION}\"\r\n java -jar forge-installer.jar --installServer > \/dev\/null 2>&1 || { echo \"Forge installer failed!\"; exit 1; }\r\n\r\n if [[ $MC_VERSION =~ ^1\\.(17|18|19|20|21|22|23) || $FORGE_VERSION =~ ^1\\.(17|18|19|20|21|22|23) ]]; then\r\n echo -e \"\\tDetected Forge 1.17 or newer version. Setting up Forge Unix arguments\"\r\n ln -sf libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt unix_args.txt\r\n else\r\n mv $FORGE_JAR forge-server-launch.jar\r\n echo \"forge-server-launch.jar\" > \".serverjar\"\r\n fi\r\n\r\n rm -f forge-installer.jar\r\n}\r\n\r\nFABRIC_INSTALLER_URL=\"https:\/\/meta.fabricmc.net\/v2\/versions\/installer\"\r\n\r\nfunction json_download_fabric {\r\n echo \"Downloading Fabric...\"\r\n\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n MC_VERSION=$(jq -r '.dependencies.minecraft' ${MANIFEST})\r\n FABRIC_VERSION=$(jq -r '.dependencies.\"fabric-loader\"' ${MANIFEST})\r\n\r\n INSTALLER_JSON=$(wget -q -O - ${FABRIC_INSTALLER_URL} )\r\n INSTALLER_VERSION=$(echo $INSTALLER_JSON | jq -r '.[0].version')\r\n INSTALLER_URL=$(echo $INSTALLER_JSON | jq -r '.[0].url')\r\n\r\n echo -e \"\\tDownloading Fabric Installer ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n wget -q -O fabric-installer.jar ${INSTALLER_URL}\r\n\r\n if [[ $? != 0 ]]; then\r\n echo -e \"Download failed!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Fabric Server ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n java -jar fabric-installer.jar server -mcversion ${MC_VERSION} -loader ${FABRIC_VERSION} -downloadMinecraft || { echo \"Fabric installer failed!\"; exit 4; }\r\n\r\n echo \"fabric-server-launch.jar\" > \".serverjar\"\r\n\r\n rm -f fabric-installer.jar\r\n}\r\n\r\nQUILT_INSTALLER_URL=\"https:\/\/meta.quiltmc.org\/v3\/versions\/installer\"\r\n\r\nfunction json_download_quilt {\r\n echo \"Downloading Quilt...\"\r\n\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n MC_VERSION=$(jq -r '.dependencies.minecraft' ${MANIFEST})\r\n QUILT_VERSION=$(jq -r '.dependencies.\"quilt-loader\"' ${MANIFEST})\r\n\r\n INSTALLER_JSON=$(wget -q -O - ${QUILT_INSTALLER_URL} )\r\n INSTALLER_VERSION=$(echo $INSTALLER_JSON | jq -r '.[0].version')\r\n INSTALLER_URL=$(echo $INSTALLER_JSON | jq -r '.[0].url')\r\n\r\n echo -e \"\\tDownloading Quilt Installer ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n wget -q -O quilt-installer.jar ${INSTALLER_URL}\r\n\r\n if [[ $? != 0 ]]; then\r\n echo -e \"Download failed!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Quilt Server ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n java -jar quilt-installer.jar install server ${MC_VERSION} ${QUILT_VERSION} --download-server --install-dir=.\/ || { echo \"Quilt installer failed!\"; exit 4; }\r\n\r\n echo \"quilt-server-launch.jar\" > \".serverjar\"\r\n\r\n rm quilt-installer.jar\r\n}\r\n\r\ninstall_required\r\n\r\nif [[ ! -z \"${VERSION_ID}\" && ! \"${VERSION_ID}\" = \"zip\" ]]; then\r\n\tget_download\r\n\tunpack_zip\r\nelse\r\n\tunpack_zip\r\nfi\r\n\r\nif [[ -f \"${SERVER_DIR}\/modrinth.index.json\" ]]; then\r\n echo \"Found modrinth.index.json, installing mods\"\r\n json_download_mods\r\n json_download_overrides\r\nfi\r\n\r\nif [[ -f \"${SERVER_DIR}\/modrinth.index.json\" ]]; then\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n if [[ $(jq -r '.dependencies.forge' ${MANIFEST}) != \"null\" ]]; then\r\n json_download_forge\r\n fi\r\n\r\n if [[ $(jq -r '.dependencies.\"fabric-loader\"' ${MANIFEST}) != \"null\" ]]; then\r\n json_download_fabric\r\n fi\r\n\r\n if [[ $(jq -r '.dependencies.\"quilt-loader\"' ${MANIFEST}) != \"null\" ]]; then\r\n json_download_quilt\r\n fi\r\nfi\r\n\r\necho -e \"\\nInstall completed succesfully, enjoy!\"", + "container": "openjdk:8-jdk-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Modpack Project ID", + "description": "This is the modpack project ID from the Modrinth site.\r\n\r\nFor example, the project ID of 'https:\/\/modrinth.com\/modpack\/fabulously-optimized\/' is 1KVo5zza", + "env_variable": "PROJECT_ID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:8", + "field_type": "text" + }, + { + "name": "Modpack Version ID", + "description": "This is the modpack version ID from the Modrinth site.\r\n\r\nFor example, the version ID of 'https:\/\/modrinth.com\/modpack\/fabulously-optimized\/version\/4.7.4' is P9wA6exe", + "env_variable": "VERSION_ID", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:8", + "field_type": "text" + } + ] +} From 75a8eca32c071d1acb18663ad15a506b550ef13e Mon Sep 17 00:00:00 2001 From: David Katz Date: Tue, 18 Apr 2023 22:57:15 -0700 Subject: [PATCH 183/473] Update README files --- README.md | 1 + game_eggs/minecraft/README.md | 1 + game_eggs/minecraft/java/README.md | 7 +++++++ 3 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 2b07e1aa..ded72f55 100644 --- a/README.md +++ b/README.md @@ -166,6 +166,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Glowstone](game_eggs/minecraft/java/glowstone) * [Limbo](game_eggs/minecraft/java/limbo) * [Magma](game_eggs/minecraft/java/magma) + * [Modrinth](game_eggs/minecraft/java/modrinth) * [Mohist](game_eggs/minecraft/java/mohist) * [NanoLimbo](game_eggs/minecraft/java/nanolimbo) * [Paper](game_eggs/minecraft/java/paper) diff --git a/game_eggs/minecraft/README.md b/game_eggs/minecraft/README.md index d4661d98..fb48bfc9 100644 --- a/game_eggs/minecraft/README.md +++ b/game_eggs/minecraft/README.md @@ -25,6 +25,7 @@ It’s set in infinitely-generated worlds of wide open terrain - icy mountains, * [Limbo](java/limbo) * [Krypton](java/krypton) * [Magma](java/magma) +* [Modrinth](java/modrinth) * [Mohist](java/mohist) * [NanoLimbo](java/nanolimbo) * [Paper](java/paper) diff --git a/game_eggs/minecraft/java/README.md b/game_eggs/minecraft/java/README.md index 2990a645..a5f6a504 100644 --- a/game_eggs/minecraft/java/README.md +++ b/game_eggs/minecraft/java/README.md @@ -46,6 +46,13 @@ Glowstone is an open-source replacement for CraftBukkit, Spigot, and Paper. [Magma Website](https://magmafoundation.org) Magma is most powerful Forge server providing you with Forge mods and Bukkit Plugins using Spigot and Paper for Performance Optimization and Stability. +### [Modrinth](modrinth) + +A generic service to pull modpacks from Modrinth. + +[Modrinth Website](https://modrinth.com) +Discover, play, and share Minecraft content through our open-source platform built for the community. + ### [Krypton](krypton) [Krypton GitHub](https://github.com/KryptonMC/Krypton) From 939527f286f39beb5250727d3cf6a85113f229d8 Mon Sep 17 00:00:00 2001 From: David Katz Date: Thu, 20 Apr 2023 19:36:30 -0700 Subject: [PATCH 184/473] Add more checks for Modrinth script --- .../java/modrinth/egg-modrinth-generic.json | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json b/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json index fc3f5bc7..f1192228 100644 --- a/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json +++ b/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-04-18T22:37:55-07:00", + "exported_at": "2023-04-20T19:34:09-07:00", "name": "Modrinth Generic", "author": "contact@chromozone.dev", "description": "A generic egg for a Modrinth modpack.", @@ -29,12 +29,22 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Modrinth Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n: ${SERVER_DIR:=\/mnt\/server}\r\n\r\nif [[ ! -d $SERVER_DIR ]]; then\r\n mkdir -p $SERVER_DIR\r\nfi\r\n\r\ncd $SERVER_DIR\r\n\r\nfunction install_required {\r\n echo -e \"Installing required packages...\"\r\n echo -e \"\\tRunning apt update\"\r\n apt update > \/dev\/null 2>&1 || { echo \"apt update failed!\"; exit 1; }\r\n echo -e \"\\tRunning apt install\"\r\n apt install -y wget jq unzip dos2unix > \/dev\/null 2>&1 || { echo \"apt install failed!\"; exit 1; }\r\n}\r\n\r\nMODRINTH_API_URL=\"https:\/\/api.modrinth.com\/v2\"\r\n\r\nfunction get_download {\r\n echo -e \"Retrieving Modrinth project information...\"\r\n PROJECT_DATA=$(wget -q \"${MODRINTH_API_URL}\/project\/${PROJECT_ID}\" -O -)\r\n PROJECT_TITLE=$(echo $PROJECT_DATA | jq -r '.title')\r\n PROJECT_SUPPORTED=$(echo $PROJECT_DATA | jq -r '.\"server_side\"')\r\n\r\n if [[ \"${PROJECT_SUPPORTED}\" == \"unsupported\" ]]; then\r\n echo -e \"\\tWARNING: The project '${PROJECT_TITLE}' is listed as unsupported for server use. Continuing anyway...\"\r\n fi\r\n\r\n if [[ -z ${VERSION_ID} || \"${VERSION_ID}\" == \"latest\" ]]; then\r\n echo -e \"\\tNo version ID specified, using latest version\"\r\n VERSION_ID=$(echo $PROJECT_DATA | jq -r '.versions[-1]')\r\n else\r\n echo -e \"\\tChecking if provided version id '${VERSION_ID}' exists\"\r\n if [[ $(echo $PROJECT_DATA | jq -r --arg VERSION_ID \"$VERSION_ID\" '.versions[] | select(. == $VERSION_ID)') != \"${VERSION_ID}\" ]]; then\r\n echo -e \"\\tERROR: Version id '${VERSION_ID}' not found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n fi\r\n\r\n # get json data to work with\r\n echo -e \"\\tRetrieving version information for '${VERSION_ID}'\"\r\n JSON_DATA=$(wget -q \"${MODRINTH_API_URL}\/version\/${VERSION_ID}\" -O -)\r\n\r\n echo -e \"\\tParsing Modrinth pack download url\"\r\n\r\n DOWNLOAD_URL=$(echo -e $JSON_DATA | jq -r '.files[] | select(.primary == true) | .url')\r\n\r\n if [[ -z ${DOWNLOAD_URL} ]]; then\r\n echo -e \"\\tERROR: No download url found for version ${VERSION_ID}\"\r\n exit 1\r\n fi\r\n\r\n ## download modpack files\r\n echo -e \"\\tDownloading ${DOWNLOAD_URL}\"\r\n wget -q ${DOWNLOAD_URL} -O server.zip\r\n}\r\n\r\nfunction unpack_zip {\r\n unzip -o server.zip\r\n rm -rf server.zip\r\n}\r\n\r\nfunction json_download_mods {\r\n echo \"Downloading mods...\"\r\n\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n jq -c '.files[] | select(.env.server == \"required\") | {name: .path, url: .downloads[0]}' ${MANIFEST} | while read -r mod; do\r\n fileUrl=$(echo ${mod} | jq -r '.url')\r\n\r\n echo -e \"\\tDownloading ${fileUrl}\"\r\n wget -q \"${fileUrl}\" -P \"${SERVER_DIR}\/mods\"\r\n\r\n if [[ $? != 0 ]]; then\r\n echo -e \"Download failed!\"\r\n exit 1\r\n fi\r\n done\r\n}\r\n\r\nfunction json_download_overrides {\r\n echo \"Copying overrides...\"\r\n if [[ -d \"${SERVER_DIR}\/overrides\" ]]; then\r\n echo -e \"\\tCopying overrides\"\r\n cp -r \"${SERVER_DIR}\/overrides\/\"* \"${SERVER_DIR}\"\r\n rm -r \"${SERVER_DIR}\/overrides\"\r\n fi\r\n\r\n if [[ -d \"${SERVER_DIR}\/server-overrides\" ]]; then\r\n echo -e \"\\tCopying server overrides\"\r\n cp -r \"${SERVER_DIR}\/server-overrides\/\"* \"${SERVER_DIR}\"\r\n rm -r \"${SERVER_DIR}\/server-overrides\"\r\n fi\r\n}\r\n\r\nFORGE_INSTALLER_URL=\"https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/\"\r\n\r\nfunction json_download_forge {\r\n echo \"Downloading Forge...\"\r\n\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n MC_VERSION=$(jq -r '.dependencies.minecraft' ${MANIFEST})\r\n FORGE_VERSION=$(jq -r '.dependencies.forge' ${MANIFEST})\r\n\r\n FORGE_VERSION=\"${MC_VERSION}-${FORGE_VERSION}\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" || \"${MC_VERSION}\" == \"1.8.9\" ]]; then\r\n FORGE_VERSION=\"${FORGE_VERSION}-${MC_VERSION}\"\r\n fi\r\n\r\n FORGE_JAR=\"forge-${FORGE_VERSION}.jar\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" ]]; then\r\n FORGE_JAR=\"forge-${FORGE_VERSION}-universal.jar\"\r\n fi\r\n\r\n FORGE_URL=\"${FORGE_INSTALLER_URL}${FORGE_VERSION}\/forge-${FORGE_VERSION}\"\r\n\r\n echo -e \"\\tUsing Forge ${FORGE_VERSION} from ${FORGE_URL}\"\r\n\r\n FORGE_INSTALLER=\"${FORGE_URL}-installer.jar\"\r\n echo -e \"\\tDownloading Forge Installer ${FORGE_VERSION} from ${FORGE_INSTALLER}\"\r\n wget -q -O forge-installer.jar ${FORGE_INSTALLER}\r\n\r\n if [[ $? != 0 ]]; then\r\n echo -e \"Download failed!\"\r\n exit 1\r\n fi\r\n\r\n rm -rf libraries\/net\/minecraftforge\/forge\/\r\n rm -f unix_args.txt\r\n\r\n echo -e \"\\tInstalling Forge Server ${FORGE_VERSION}\"\r\n java -jar forge-installer.jar --installServer > \/dev\/null 2>&1 || { echo \"Forge installer failed!\"; exit 1; }\r\n\r\n if [[ $MC_VERSION =~ ^1\\.(17|18|19|20|21|22|23) || $FORGE_VERSION =~ ^1\\.(17|18|19|20|21|22|23) ]]; then\r\n echo -e \"\\tDetected Forge 1.17 or newer version. Setting up Forge Unix arguments\"\r\n ln -sf libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt unix_args.txt\r\n else\r\n mv $FORGE_JAR forge-server-launch.jar\r\n echo \"forge-server-launch.jar\" > \".serverjar\"\r\n fi\r\n\r\n rm -f forge-installer.jar\r\n}\r\n\r\nFABRIC_INSTALLER_URL=\"https:\/\/meta.fabricmc.net\/v2\/versions\/installer\"\r\n\r\nfunction json_download_fabric {\r\n echo \"Downloading Fabric...\"\r\n\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n MC_VERSION=$(jq -r '.dependencies.minecraft' ${MANIFEST})\r\n FABRIC_VERSION=$(jq -r '.dependencies.\"fabric-loader\"' ${MANIFEST})\r\n\r\n INSTALLER_JSON=$(wget -q -O - ${FABRIC_INSTALLER_URL} )\r\n INSTALLER_VERSION=$(echo $INSTALLER_JSON | jq -r '.[0].version')\r\n INSTALLER_URL=$(echo $INSTALLER_JSON | jq -r '.[0].url')\r\n\r\n echo -e \"\\tDownloading Fabric Installer ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n wget -q -O fabric-installer.jar ${INSTALLER_URL}\r\n\r\n if [[ $? != 0 ]]; then\r\n echo -e \"Download failed!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Fabric Server ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n java -jar fabric-installer.jar server -mcversion ${MC_VERSION} -loader ${FABRIC_VERSION} -downloadMinecraft || { echo \"Fabric installer failed!\"; exit 4; }\r\n\r\n echo \"fabric-server-launch.jar\" > \".serverjar\"\r\n\r\n rm -f fabric-installer.jar\r\n}\r\n\r\nQUILT_INSTALLER_URL=\"https:\/\/meta.quiltmc.org\/v3\/versions\/installer\"\r\n\r\nfunction json_download_quilt {\r\n echo \"Downloading Quilt...\"\r\n\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n MC_VERSION=$(jq -r '.dependencies.minecraft' ${MANIFEST})\r\n QUILT_VERSION=$(jq -r '.dependencies.\"quilt-loader\"' ${MANIFEST})\r\n\r\n INSTALLER_JSON=$(wget -q -O - ${QUILT_INSTALLER_URL} )\r\n INSTALLER_VERSION=$(echo $INSTALLER_JSON | jq -r '.[0].version')\r\n INSTALLER_URL=$(echo $INSTALLER_JSON | jq -r '.[0].url')\r\n\r\n echo -e \"\\tDownloading Quilt Installer ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n wget -q -O quilt-installer.jar ${INSTALLER_URL}\r\n\r\n if [[ $? != 0 ]]; then\r\n echo -e \"Download failed!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Quilt Server ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n java -jar quilt-installer.jar install server ${MC_VERSION} ${QUILT_VERSION} --download-server --install-dir=.\/ || { echo \"Quilt installer failed!\"; exit 4; }\r\n\r\n echo \"quilt-server-launch.jar\" > \".serverjar\"\r\n\r\n rm quilt-installer.jar\r\n}\r\n\r\ninstall_required\r\n\r\nif [[ ! -z \"${VERSION_ID}\" && ! \"${VERSION_ID}\" = \"zip\" ]]; then\r\n\tget_download\r\n\tunpack_zip\r\nelse\r\n\tunpack_zip\r\nfi\r\n\r\nif [[ -f \"${SERVER_DIR}\/modrinth.index.json\" ]]; then\r\n echo \"Found modrinth.index.json, installing mods\"\r\n json_download_mods\r\n json_download_overrides\r\nfi\r\n\r\nif [[ -f \"${SERVER_DIR}\/modrinth.index.json\" ]]; then\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n if [[ $(jq -r '.dependencies.forge' ${MANIFEST}) != \"null\" ]]; then\r\n json_download_forge\r\n fi\r\n\r\n if [[ $(jq -r '.dependencies.\"fabric-loader\"' ${MANIFEST}) != \"null\" ]]; then\r\n json_download_fabric\r\n fi\r\n\r\n if [[ $(jq -r '.dependencies.\"quilt-loader\"' ${MANIFEST}) != \"null\" ]]; then\r\n json_download_quilt\r\n fi\r\nfi\r\n\r\necho -e \"\\nInstall completed succesfully, enjoy!\"", + "script": "#!\/bin\/bash\r\n# Modrinth Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n: ${SERVER_DIR:=\/mnt\/server}\r\n: ${PROJECT_ID:=}\r\n: ${VERSION_ID:=}\r\n\r\nif [[ ! -d $SERVER_DIR ]]; then\r\n mkdir -p $SERVER_DIR\r\nfi\r\n\r\ncd $SERVER_DIR\r\n\r\nfunction install_required {\r\n echo -e \"Installing required packages...\"\r\n echo -e \"\\tRunning apt update\"\r\n apt update > \/dev\/null 2>&1 || { echo \"apt update failed!\"; exit 1; }\r\n echo -e \"\\tRunning apt install\"\r\n apt install -y wget jq unzip dos2unix > \/dev\/null 2>&1 || { echo \"apt install failed!\"; exit 1; }\r\n}\r\n\r\nMODRINTH_API_URL=\"https:\/\/api.modrinth.com\/v2\"\r\n\r\nfunction get_download {\r\n echo -e \"Retrieving Modrinth project information...\"\r\n PROJECT_DATA=$(wget -q \"${MODRINTH_API_URL}\/project\/${PROJECT_ID}\" -O -)\r\n PROJECT_TITLE=$(echo $PROJECT_DATA | jq -r '.title \/\/ empty')\r\n PROJECT_SUPPORTED=$(echo $PROJECT_DATA | jq -r '.\"server_side\" \/\/ empty')\r\n\r\n if [[ \"${PROJECT_SUPPORTED}\" == \"unsupported\" ]]; then\r\n echo -e \"\\tWARNING: The project '${PROJECT_TITLE}' is listed as unsupported for server use. Continuing anyway...\"\r\n fi\r\n\r\n if [[ ! -n \"${VERSION_ID}\" || \"${VERSION_ID}\" == \"latest\" ]]; then\r\n echo -e \"\\tNo version ID specified, using latest version\"\r\n VERSION_ID=$(echo $PROJECT_DATA | jq -r '.versions[-1] \/\/ empty')\r\n else\r\n echo -e \"\\tChecking if provided version id '${VERSION_ID}' exists\"\r\n if [[ $(echo $PROJECT_DATA | jq -r --arg VERSION_ID \"$VERSION_ID\" '.versions[]? | select(. == $VERSION_ID)') != \"${VERSION_ID}\" ]]; then\r\n echo -e \"\\tERROR: Version id '${VERSION_ID}' not found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n fi\r\n\r\n if [[ ! -n \"${VERSION_ID}\" ]]; then\r\n echo -e \"\\tERROR: No version id found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n\r\n # get json data to work with\r\n echo -e \"\\tRetrieving version information for '${VERSION_ID}'\"\r\n JSON_DATA=$(wget -q \"${MODRINTH_API_URL}\/version\/${VERSION_ID}\" -O -)\r\n\r\n echo -e \"\\tParsing Modrinth pack download url\"\r\n\r\n DOWNLOAD_URL=$(echo $JSON_DATA | jq -r '.files[]? | select(.primary == true) | .url')\r\n\r\n if [[ ! -n \"${DOWNLOAD_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for version ${VERSION_ID}\"\r\n exit 1\r\n fi\r\n\r\n ## download modpack files\r\n echo -e \"\\tDownloading ${DOWNLOAD_URL}\"\r\n wget -q ${DOWNLOAD_URL} -O server.zip\r\n}\r\n\r\nfunction unpack_zip {\r\n unzip -o server.zip\r\n rm -rf server.zip\r\n}\r\n\r\nfunction json_download_mods {\r\n echo \"Downloading mods...\"\r\n\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n jq -c '.files[]? | select(.env.server == \"required\") | {name: .path, url: .downloads[0]}' ${MANIFEST} | while read -r mod; do\r\n FILE_URL=$(echo ${mod} | jq -r '.url \/\/ empty')\r\n\r\n if [[ ! -n \"${FILE_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for mod '${mod}'\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading ${FILE_URL}\"\r\n wget -q \"${FILE_URL}\" -P \"${SERVER_DIR}\/mods\"\r\n\r\n if [[ $? != 0 ]]; then\r\n echo -e \"Download failed!\"\r\n exit 1\r\n fi\r\n done\r\n}\r\n\r\nfunction json_download_overrides {\r\n echo \"Copying overrides...\"\r\n if [[ -d \"${SERVER_DIR}\/overrides\" ]]; then\r\n echo -e \"\\tCopying overrides\"\r\n cp -r \"${SERVER_DIR}\/overrides\/\"* \"${SERVER_DIR}\"\r\n rm -r \"${SERVER_DIR}\/overrides\"\r\n fi\r\n\r\n if [[ -d \"${SERVER_DIR}\/server-overrides\" ]]; then\r\n echo -e \"\\tCopying server overrides\"\r\n cp -r \"${SERVER_DIR}\/server-overrides\/\"* \"${SERVER_DIR}\"\r\n rm -r \"${SERVER_DIR}\/server-overrides\"\r\n fi\r\n}\r\n\r\nFORGE_INSTALLER_URL=\"https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/\"\r\n\r\nfunction json_download_forge {\r\n echo \"Downloading Forge...\"\r\n\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n MC_VERSION=$(jq -r '.dependencies.minecraft \/\/ empty' ${MANIFEST})\r\n FORGE_VERSION=$(jq -r '.dependencies.forge \/\/ empty' ${MANIFEST})\r\n\r\n if [[ ! -n \"${MC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Minecraft version found in manifest\"\r\n exit 1\r\n fi\r\n\r\n if [[ ! -n \"${FORGE_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Forge version found in manifest\"\r\n exit 1\r\n fi\r\n\r\n FORGE_VERSION=\"${MC_VERSION}-${FORGE_VERSION}\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" || \"${MC_VERSION}\" == \"1.8.9\" ]]; then\r\n FORGE_VERSION=\"${FORGE_VERSION}-${MC_VERSION}\"\r\n fi\r\n\r\n FORGE_JAR=\"forge-${FORGE_VERSION}.jar\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" ]]; then\r\n FORGE_JAR=\"forge-${FORGE_VERSION}-universal.jar\"\r\n fi\r\n\r\n FORGE_URL=\"${FORGE_INSTALLER_URL}${FORGE_VERSION}\/forge-${FORGE_VERSION}\"\r\n\r\n echo -e \"\\tUsing Forge ${FORGE_VERSION} from ${FORGE_URL}\"\r\n\r\n FORGE_INSTALLER=\"${FORGE_URL}-installer.jar\"\r\n echo -e \"\\tDownloading Forge Installer ${FORGE_VERSION} from ${FORGE_INSTALLER}\"\r\n wget -q -O forge-installer.jar ${FORGE_INSTALLER}\r\n\r\n if [[ $? != 0 ]]; then\r\n echo -e \"Download failed!\"\r\n exit 1\r\n fi\r\n\r\n rm -rf libraries\/net\/minecraftforge\/forge\/\r\n rm -f unix_args.txt\r\n\r\n echo -e \"\\tInstalling Forge Server ${FORGE_VERSION}\"\r\n java -jar forge-installer.jar --installServer > \/dev\/null 2>&1 || { echo \"Forge installer failed!\"; exit 1; }\r\n\r\n if [[ $MC_VERSION =~ ^1\\.(17|18|19|20|21|22|23) || $FORGE_VERSION =~ ^1\\.(17|18|19|20|21|22|23) ]]; then\r\n echo -e \"\\tDetected Forge 1.17 or newer version. Setting up Forge Unix arguments\"\r\n ln -sf libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt unix_args.txt\r\n else\r\n mv $FORGE_JAR forge-server-launch.jar\r\n echo \"forge-server-launch.jar\" > \".serverjar\"\r\n fi\r\n\r\n rm -f forge-installer.jar\r\n}\r\n\r\nFABRIC_INSTALLER_URL=\"https:\/\/meta.fabricmc.net\/v2\/versions\/installer\"\r\n\r\nfunction json_download_fabric {\r\n echo \"Downloading Fabric...\"\r\n\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n MC_VERSION=$(jq -r '.dependencies.minecraft \/\/ empty' ${MANIFEST})\r\n FABRIC_VERSION=$(jq -r '.dependencies.\"fabric-loader\" \/\/ empty' ${MANIFEST})\r\n\r\n if [[ ! -n \"${MC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Minecraft version found in manifest\"\r\n exit 1\r\n fi\r\n\r\n if [[ ! -n \"${FABRIC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric version found in manifest\"\r\n exit 1\r\n fi\r\n\r\n INSTALLER_JSON=$(wget -q -O - ${FABRIC_INSTALLER_URL} )\r\n INSTALLER_VERSION=$(echo $INSTALLER_JSON | jq -r '.[0].version \/\/ empty')\r\n INSTALLER_URL=$(echo $INSTALLER_JSON | jq -r '.[0].url \/\/ empty')\r\n\r\n if [[ ! -n \"${INSTALLER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric installer version found\"\r\n exit 1\r\n fi\r\n\r\n if [[ ! -n \"${INSTALLER_URL}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric installer url found\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading Fabric Installer ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n wget -q -O fabric-installer.jar ${INSTALLER_URL}\r\n\r\n if [[ $? != 0 ]]; then\r\n echo -e \"Download failed!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Fabric Server ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n java -jar fabric-installer.jar server -mcversion ${MC_VERSION} -loader ${FABRIC_VERSION} -downloadMinecraft || { echo \"Fabric installer failed!\"; exit 4; }\r\n\r\n echo \"fabric-server-launch.jar\" > \".serverjar\"\r\n\r\n rm -f fabric-installer.jar\r\n}\r\n\r\nQUILT_INSTALLER_URL=\"https:\/\/meta.quiltmc.org\/v3\/versions\/installer\"\r\n\r\nfunction json_download_quilt {\r\n echo \"Downloading Quilt...\"\r\n\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n MC_VERSION=$(jq -r '.dependencies.minecraft \/\/ empty' ${MANIFEST})\r\n QUILT_VERSION=$(jq -r '.dependencies.\"quilt-loader\" \/\/ empty' ${MANIFEST})\r\n\r\n if [[ ! -n \"${MC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Minecraft version found in manifest\"\r\n exit 1\r\n fi\r\n\r\n if [[ ! -n \"${QUILT_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt version found in manifest\"\r\n exit 1\r\n fi\r\n\r\n INSTALLER_JSON=$(wget -q -O - ${QUILT_INSTALLER_URL} )\r\n INSTALLER_VERSION=$(echo $INSTALLER_JSON | jq -r '.[0].version \/\/ empty')\r\n INSTALLER_URL=$(echo $INSTALLER_JSON | jq -r '.[0].url \/\/ empty')\r\n\r\n if [[ ! -n \"${INSTALLER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt installer version found\"\r\n exit 1\r\n fi\r\n\r\n if [[ ! -n \"${INSTALLER_URL}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt installer URL found\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading Quilt Installer ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n wget -q -O quilt-installer.jar ${INSTALLER_URL}\r\n\r\n if [[ $? != 0 ]]; then\r\n echo -e \"Download failed!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Quilt Server ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n java -jar quilt-installer.jar install server ${MC_VERSION} ${QUILT_VERSION} --download-server --install-dir=.\/ || { echo \"Quilt installer failed!\"; exit 4; }\r\n\r\n echo \"quilt-server-launch.jar\" > \".serverjar\"\r\n\r\n rm quilt-installer.jar\r\n}\r\n\r\ninstall_required\r\n\r\nif [[ ! -n \"${PROJECT_ID}\" ]]; then\r\n echo \"ERROR: You must specify a PROJECT_ID environment variable!\"\r\n exit 1\r\nfi\r\n\r\nif [[ ! \"${PROJECT_ID}\" = \"zip\" ]]; then\r\n\tget_download\r\n\tunpack_zip\r\nelse\r\n\tunpack_zip\r\nfi\r\n\r\nif [[ -f \"${SERVER_DIR}\/modrinth.index.json\" ]]; then\r\n echo \"Found modrinth.index.json, installing mods\"\r\n json_download_mods\r\n json_download_overrides\r\nfi\r\n\r\nif [[ -f \"${SERVER_DIR}\/modrinth.index.json\" ]]; then\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n if [[ $(jq -r '.dependencies.forge' ${MANIFEST}) != \"null\" ]]; then\r\n json_download_forge\r\n fi\r\n\r\n if [[ $(jq -r '.dependencies.\"fabric-loader\"' ${MANIFEST}) != \"null\" ]]; then\r\n json_download_fabric\r\n fi\r\n\r\n if [[ $(jq -r '.dependencies.\"quilt-loader\"' ${MANIFEST}) != \"null\" ]]; then\r\n json_download_quilt\r\n fi\r\nfi\r\n\r\necho -e \"\\nInstall completed succesfully, enjoy!\"", "container": "openjdk:8-jdk-slim", "entrypoint": "bash" } }, "variables": [ + { + "name": "Modpack Version ID", + "description": "This is the modpack version ID from the Modrinth site.\r\n\r\nFor example, the version ID of 'https:\/\/modrinth.com\/modpack\/fabulously-optimized\/version\/4.7.4' is P9wA6exe", + "env_variable": "VERSION_ID", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "string|max:8", + "field_type": "text" + }, { "name": "Modpack Project ID", "description": "This is the modpack project ID from the Modrinth site.\r\n\r\nFor example, the project ID of 'https:\/\/modrinth.com\/modpack\/fabulously-optimized\/' is 1KVo5zza", @@ -44,16 +54,6 @@ "user_editable": true, "rules": "required|string|max:8", "field_type": "text" - }, - { - "name": "Modpack Version ID", - "description": "This is the modpack version ID from the Modrinth site.\r\n\r\nFor example, the version ID of 'https:\/\/modrinth.com\/modpack\/fabulously-optimized\/version\/4.7.4' is P9wA6exe", - "env_variable": "VERSION_ID", - "default_value": "latest", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|max:8", - "field_type": "text" } ] -} +} \ No newline at end of file From 4f9caef2a7846ba9de4768953505e5de09f8a69e Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 23 Apr 2023 18:48:23 +0200 Subject: [PATCH 185/473] Update SogeBot --- bots/twitch/sogebot/egg-soge-bot.json | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/bots/twitch/sogebot/egg-soge-bot.json b/bots/twitch/sogebot/egg-soge-bot.json index 8a989269..4e68d540 100644 --- a/bots/twitch/sogebot/egg-soge-bot.json +++ b/bots/twitch/sogebot/egg-soge-bot.json @@ -1,17 +1,17 @@ { "_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-12-13T15:19:16+01:00", + "exported_at": "2023-04-23T18:47:53+02:00", "name": "SogeBot", "author": "info@goover.de", "description": "sogeBot - Free Twitch Bot built on Node.js https:\/\/sogebot.xyz\/", "features": null, - "images": [ - "ghcr.io\/parkervcp\/yolks:nodejs_16" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:nodejs_18": "ghcr.io\/parkervcp\/yolks:nodejs_18" + }, "file_denylist": [], "startup": "npm start", "config": { @@ -22,8 +22,8 @@ }, "scripts": { "installation": { - "script": "#\/bin\/bash\r\n# Installscript for sogeBot | Author: info@goover.de\r\n\r\nexport DEBIAN_FRONTEND=noninteractive\r\n\r\napt -y update\r\napt install -y curl unzip sqlite3 jq wget python3 build-essential ca-certificates\r\n\r\nexport NODE_OPTIONS=--max-old-space-size=8192\r\nchown -R root:root \/mnt\r\nMATCH=sogeBot\r\ncd \/mnt\/server\r\n\r\n#Backup database & config\r\nmkdir -p .backup\r\ncp -f .env \/mnt\/server\/.backup\r\ncp -f sogebot.db \/mnt\/server\/.backup\r\n\r\n#delete old dir's to prevent errors on update\r\nrm -fR dest\r\nrm -fR public\r\nrm -fR node-modules\r\nrm -fR tools\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/sogebot\/sogeBot\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/sogebot\/sogeBot\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(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_LINK=$(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_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\necho -e \"Downloading from $DOWNLOAD_LINK\"\r\nwget -N $DOWNLOAD_LINK\r\nunzip -o $MATCH-*.zip\r\nrm -fR $MATCH-*.zip\r\n\r\necho \"--------------------------------------------------------------------------\"\r\necho \"Installing dependencies, this will take some time so sit back and relax...\"\r\necho \"IGNORE WARNINGS. THESE ARE NOT ERRORS !!!\"\r\necho \"--------------------------------------------------------------------------\"\r\n\r\nnpm ci 2>&1 | tee npmlog.txt\r\n\r\necho -e \"install completed\"\r\nexit 0", - "container": "node:16-bullseye-slim", + "script": "#\/bin\/bash\r\n# Installscript for sogeBot | Author: info@goover.de\r\n\r\nexport DEBIAN_FRONTEND=noninteractive\r\n\r\napt -y update\r\napt install -y curl unzip jq python3 build-essential ca-certificates\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\nexport NODE_OPTIONS=--max-old-space-size=8192\r\nchown -R root:root \/mnt\r\n\r\n#Backup database & config\r\nmkdir -p .backup\r\ncp -f .env \/mnt\/server\/.backup\r\ncp -f sogebot.db \/mnt\/server\/.backup\r\n\r\n#delete old dir's to prevent errors on update\r\nrm -fR dest\r\nrm -fR public\r\nrm -fR node-modules\r\nrm -fR tools\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/sogebot\/sogeBot\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/sogebot\/sogeBot\/releases\")\r\nMATCH=sogeBot\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(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_LINK=$(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_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\necho -e \"Downloading from $DOWNLOAD_LINK\"\r\ncurl -sSL -o sogeBot.zip ${DOWNLOAD_LINK}\r\n\r\nunzip -o sogeBot.zip\r\nrm -rf sogeBot.zip\r\n\r\n\r\necho \"--------------------------------------------------------------------------\"\r\necho \"Installing dependencies, this will take some time so sit back and relax...\"\r\necho \"IGNORE WARNINGS. THESE ARE NOT ERRORS !!!\"\r\necho \"--------------------------------------------------------------------------\"\r\n\r\nnpm install -g npm@8\r\n\r\nnpm install --verbose --force\r\n\r\necho -e \"install completed\"\r\nexit 0", + "container": "node:18-bullseye-slim", "entrypoint": "bash" } }, @@ -35,7 +35,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" } ] -} \ No newline at end of file +} From 0887e8270128aa8c2c88fd2fbf7701a55ce1839b Mon Sep 17 00:00:00 2001 From: Presti Date: Sun, 23 Apr 2023 19:00:04 +0200 Subject: [PATCH 186/473] Add: Ree6 (#2163) Add: Ree6 discord bot --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- README.md | 1 + bots/discord/README.md | 5 + bots/discord/ree6/README.md | 73 ++++++++ bots/discord/ree6/config.yml | 82 +++++++++ bots/discord/ree6/egg-ree6.json | 292 ++++++++++++++++++++++++++++++++ 5 files changed, 453 insertions(+) create mode 100644 bots/discord/ree6/README.md create mode 100644 bots/discord/ree6/config.yml create mode 100644 bots/discord/ree6/egg-ree6.json diff --git a/README.md b/README.md index 2b07e1aa..f310dc55 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [parkertron](/bots/discord/parkertron) Golang * [pixel-bot](/bots/discord/pixelbot) Python * [Redbot](/bots/discord/redbot) Python +* [Ree6](/bots/discord/ree6) Java * [SinusBot](/bots/discord/sinusbot) [Other](/bots/other) diff --git a/bots/discord/README.md b/bots/discord/README.md index 4974190a..2640948c 100644 --- a/bots/discord/README.md +++ b/bots/discord/README.md @@ -43,6 +43,11 @@ Was used to test python services. [Cog-Creators/Red-DiscordBot](https://github.com/Cog-Creators/Red-DiscordBot) A multifunction Discord bot +### [Ree6](ree6) + +[Ree6-Applications](https://github.com/Ree6-Applications/Ree6) +All-in-one, open source and 100% free Discord Bot! + ### [SinusBot](sinusbot) [SinusBot](https://www.sinusbot.com/) diff --git a/bots/discord/ree6/README.md b/bots/discord/ree6/README.md new file mode 100644 index 00000000..6b4a3a0e --- /dev/null +++ b/bots/discord/ree6/README.md @@ -0,0 +1,73 @@ +# Ree6 + +___ + +## Authors / Contributors + + + + + + + + + +
+ +
Presti +
+
+ 💻 + 🤖 +
+ +
parkervcp +
+
+ 💻 + 🥚 +
+ +
QuintenQVD0 +
+
+ 💻 +
+ + + +___ + +## Bot Description & Features + +From the developer's [Github](https://github.com/Ree6-Applications/Ree6): +> Ree6 is an all-in-one Discord Bot maintained by Presti, which started as an alternative of Mee6 to provide a lot of features that are hidden behind a paywall or subscription. + +- Contains almost every feature Mee6 has. +- Has a open Source Webinterface. +- Provides advanced Audit-Logging. +- Has built in post notifications (Twitter, Instagram, YouTube, Reddit and Twitch). +- Built-in simple Ticket System. +- And more! +___ + +## Configuration + +- You will need to modify the config.yml to even start the bot. + +___ + +## Server Ports + +There are no ports required for Ree6. +___ + +## Updating + +Re-Installing the server via the panel will do the following: + +1. Update the bot to the latest version. + + +## API keys +This bot uses a lot of api keys. It will print some errors to the console if you don't have some filled in but the bot should still function as normal with the api keys you entered. \ No newline at end of file diff --git a/bots/discord/ree6/config.yml b/bots/discord/ree6/config.yml new file mode 100644 index 00000000..03a01b3e --- /dev/null +++ b/bots/discord/ree6/config.yml @@ -0,0 +1,82 @@ +# ################################ +# # # +# # Ree6 Config File # +# # by Presti # +# # # +# ################################ +# + +# Do not change this! +config: + version: 2.4.3 + creation: 1681169485237 + +# HikariCP Configuration +hikari: + + # SQL Configuration + sql: + user: root + db: root + pw: yourpw + host: localhost + port: 3306 + + # Misc Configuration + misc: + storage: sqlite + storageFile: storage/Ree6.db + poolSize: 10 + +# 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! + +amari: + apitoken: Amari API-Token # Your Amari API-Token, for Amari Level imports! + +sentry: + dsn: yourSentryDSNHere # Your Sentry DSN, for error reporting! + +# Spotify Application Configuration, used to parse Spotify Tracks/Playlists to YouTube search queries. +spotify: + client: + id: yourspotifyclientid + secret: yourspotifyclientsecret + +# Twitch Application Configuration, used for the StreamTools and Twitch Notifications. +twitch: + client: + id: yourtwitchclientidhere + secret: yourtwitchclientsecrethere + +# Twitter Application Configuration, used for the Twitter Notifications. +twitter: + consumer: + key: yourTwitterConsumerKey + secret: yourTwitterConsumerSecret + access: + key: yourTwitterAccessKey + secret: yourTwitterAccessSecret + +# Reddit Application Configuration, used for the Reddit Notification. +reddit: + client: + id: yourredditclientid + secret: yourredditclientsecret + +# Instagram Application Configuration, used for the Instagram Notification. +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 new file mode 100644 index 00000000..0f8791d6 --- /dev/null +++ b/bots/discord/ree6/egg-ree6.json @@ -0,0 +1,292 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-04-22T20:23:22+02:00", + "name": "Ree6", + "author": "presti@presti.me", + "description": "All-in-one, open source and 100% free Discord Bot!", + "features": null, + "docker_images": { + "Java_17": "ghcr.io\/pterodactyl\/yolks:java_17" + }, + "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}", + "startup": "{\r\n \"done\": \"Finished Loading\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n## this is a simple script to use the github API for release versions.\r\n## this requires the egg has a variable for GITHUB_PACKAGE and VERSION\r\n## this supports using oauth\/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.)\r\n## if you are getting hit with GitHub API limit issues then you need to have the user and token set.\r\napt update\r\napt install -y jq curl\r\n\r\n\r\nCONFIG_LINK=\"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/ree6\/config.yml\"\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Ree6-Applications\/Ree6\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Ree6-Applications\/Ree6\/releases\")\r\nMATCH=jar-with-dependencies.jar\r\n\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}\" | head -1 )\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}\" | head -1)\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 -i *.jar)\r\n fi\r\nfi\r\n\r\n## Ree6 Setup\r\n[ ! -d \/mnt\/server ] && mkdir -p \/mnt\/server\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncd \/mnt\/server\r\necho -e \"\\nInstalling\/Updating Ree6...\\n\"\r\n\r\nif [ -f Ree6.jar ]; then\r\n echo -e \"Updating Ree6.jar to latest version...\"\r\n echo -e '\\t(Old version can be found at \"Ree6.jar-old\")'\r\n mv -f Ree6.jar Ree6.jar-old\r\nfi\r\n\r\necho -e \"Running: curl -sSL -o Ree6.jar ${DOWNLOAD_LINK}\\n\"\r\ncurl -sSL -o Ree6.jar ${DOWNLOAD_LINK}\r\n\r\nif [ -f config.yml ]; then\r\n echo -e \"Updating config.yml to latest version...\"\r\n echo -e '\\t(Old version can be found at \"config.yml-old\")'\r\n mv -f config.yml config.yml-old\r\nfi\r\n\r\necho -e \"Running: curl -sSL -o config.yml ${CONFIG_LINK}\\n\"\r\ncurl -sSL -o config.yml ${CONFIG_LINK}\r\n \r\n\r\necho -e \"\\nRee6 Successfully Installed!\"", + "container": "debian:bullseye-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "[REQUIRED] Discord Bot Token", + "description": "The token for your Discord bot. Learn how to obtain a token and configure your bot application properly here: https:\/\/jmusicbot.com\/getting-a-bot-token\/", + "env_variable": "BOT_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Dagpi token", + "description": "Your Dagpi.xyz API-Token, for tweet image generation!", + "env_variable": "DAGPI_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Sentry DSN", + "description": "Your Sentry DSN, for error reporting!", + "env_variable": "SENTRY_DSN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Spotify Client Id", + "description": "Spotify Application Configuration, used to parse Spotify Tracks\/Playlists to YouTube search queries.", + "env_variable": "SPOTIFY_CLIENT_ID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Spotify Client Secret", + "description": "Spotify Application Configuration, used to parse Spotify Tracks\/Playlists to YouTube search queries.", + "env_variable": "SPOTIFY_CLIENT_SECRET", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Heartbeat Url", + "description": "The URL to the Heartbeat-Server", + "env_variable": "HEARTBEAT_URL", + "default_value": "none", + "user_viewable": true, + "user_editable": true, + "rules": "string", + "field_type": "text" + }, + { + "name": "Heartbeat Interval", + "description": "The interval between the heartbeats.", + "env_variable": "HEARTBEAT_INTERVAL", + "default_value": "60", + "user_viewable": true, + "user_editable": true, + "rules": "integer", + "field_type": "text" + }, + { + "name": "Amari Token", + "description": "Your Amari API-Token, for Amari Level imports!", + "env_variable": "AMARI_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Twitch Client Id", + "description": "Twitch Application Configuration, used for the StreamTools and Twitch Notifications.", + "env_variable": "TWITCH_CLIENT_ID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Twitch Client Secret", + "description": "Twitch Application Configuration, used for the StreamTools and Twitch Notifications.", + "env_variable": "TWITCH_CLIENT_SECRET", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Twitter Consumer 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", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Reddit Client Id", + "description": "Reddit Application Configuration, used for the Reddit Notification.", + "env_variable": "REDDIT_CLIENT_ID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Reddit Client Secret", + "description": "Reddit Application Configuration, used for the Reddit Notification.", + "env_variable": "REDDIT_CLIENT_SECRET", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Instagram Username", + "description": "Instagram Application Configuration, used for the Instagram Notification.", + "env_variable": "INSTAGRAM_USERNAME", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "Instagram Password", + "description": "Instagram Application Configuration, used for the Instagram Notification.", + "env_variable": "INSTAGRAM_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "SQL Username", + "description": "Username for the SQL connection.", + "env_variable": "SQL_USER", + "default_value": "root", + "user_viewable": true, + "user_editable": true, + "rules": "string|max:32", + "field_type": "text" + }, + { + "name": "SQL Database", + "description": "Database for the SQL Connection", + "env_variable": "SQL_DB", + "default_value": "root", + "user_viewable": true, + "user_editable": true, + "rules": "string|max:64", + "field_type": "text" + }, + { + "name": "SQL Password", + "description": "Password for the SQL connection.", + "env_variable": "SQL_PW", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + }, + { + "name": "SQL Port", + "description": "Port for the SQL connection.", + "env_variable": "SQL_PORT", + "default_value": "3306", + "user_viewable": true, + "user_editable": true, + "rules": "integer", + "field_type": "text" + }, + { + "name": "Database Typ", + "description": "The Typ of the Database Ree6 should use!\r\nPossible typs:\r\n- mariadb\r\n- sqlite", + "env_variable": "DATABASE_TYP", + "default_value": "sqlite", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:mariadb,sqlite", + "field_type": "text" + }, + { + "name": "Database Storagefile", + "description": "The location of the storagefile if sqlite is being used.", + "env_variable": "DATABASE_FILE", + "default_value": "storage\/Ree6.db", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + }, + { + "name": "[DEVELOPER-STUFF] Database Poolsize", + "description": "The Database connection pool size!", + "env_variable": "DATABASE_POOL", + "default_value": "10", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "Database host", + "description": "The Host address of the Database connection.", + "env_variable": "DATABASE_HOST", + "default_value": "localhost", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:128", + "field_type": "text" + } + ] +} \ No newline at end of file From cf7f05afc515580c544a77f39aa9c4eb57fa6d65 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Mon, 24 Apr 2023 17:43:25 +0200 Subject: [PATCH 187/473] Update: truck sim --- ...ican-truck-simulator-dedicated-server.json | 30 ++++--------------- ...uro-truck-simulator2-dedicated-server.json | 26 ++-------------- .../truck-simulator/server_config.sii | 2 +- 3 files changed, 9 insertions(+), 49 deletions(-) diff --git a/game_eggs/steamcmd_servers/truck-simulator/american-truck-simulator/egg-american-truck-simulator-dedicated-server.json b/game_eggs/steamcmd_servers/truck-simulator/american-truck-simulator/egg-american-truck-simulator-dedicated-server.json index 2b3ce29d..172be105 100644 --- a/game_eggs/steamcmd_servers/truck-simulator/american-truck-simulator/egg-american-truck-simulator-dedicated-server.json +++ b/game_eggs/steamcmd_servers/truck-simulator/american-truck-simulator/egg-american-truck-simulator-dedicated-server.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-12-15T18:37:30+01:00", + "exported_at": "2023-04-24T17:42:49+02:00", "name": "American Truck Simulator Dedicated Server", "author": "chase@cstmgames.com", "description": "This will set up SteamCMD and all the required files for the newly released American Truck Simulator Dedicated server. Simply placed the exported server config from your ATS instance to the .local\/share\/American Truck Simulator\/ folder and select start. Make sure that auto start is off on server creation to allow you to upload your config files.", @@ -12,7 +12,7 @@ "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": ".\/bin\/linux_x64\/amtrucks_server", @@ -20,7 +20,7 @@ "files": "{\r\n \"\/.local\/share\/American Truck Simulator\/server_config.sii\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \" connection_dedicated_port:\": \" connection_dedicated_port: {{server.build.default.port}}\",\r\n \" query_dedicated_port:\": \" query_dedicated_port: {{env.QUERY_PORT}}\",\r\n \" server_logon_token:\": \" server_logon_token: \\\"{{env.STEAM_TOKEN}}\\\"\",\r\n \" lobby_name:\": \" lobby_name: \\\"{{env.LOBBY_NAME}}\\\"\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"[MP] Session running.\"\r\n}", "logs": "{}", - "stop": "^C" + "stop": "^^C" }, "scripts": { "installation": { @@ -50,26 +50,6 @@ "rules": "required|string|in:2239530", "field_type": "text" }, - { - "name": "Steam username", - "description": "", - "env_variable": "STEAM_USER", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string|max:32", - "field_type": "text" - }, - { - "name": "Steam password", - "description": "", - "env_variable": "STEAM_PASS", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string|max:64", - "field_type": "text" - }, { "name": "Query port", "description": "By there readme of the game the query port must be between 27015-27020, but from our testing this port can be any port", @@ -82,12 +62,12 @@ }, { "name": "Steam Auth token", - "description": "Acquire a logon token on https:\/\/steamcommunity.com\/dev\/managegameservers (game ownership is required).", + "description": "By default, whenever a dedicated server is launched it is using an anonymous account. For such an account non-persistent server id is generated (used for direct search). To avoid this you can acquire a logon token on https:\/\/steamcommunity.com\/dev\/managegameservers (game ownership is required)", "env_variable": "STEAM_TOKEN", "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:32", + "rules": "nullable|string|max:32", "field_type": "text" }, { diff --git a/game_eggs/steamcmd_servers/truck-simulator/euro-truck-simulator2/egg-euro-truck-simulator2-dedicated-server.json b/game_eggs/steamcmd_servers/truck-simulator/euro-truck-simulator2/egg-euro-truck-simulator2-dedicated-server.json index a8d52c2c..1f2356ca 100644 --- a/game_eggs/steamcmd_servers/truck-simulator/euro-truck-simulator2/egg-euro-truck-simulator2-dedicated-server.json +++ b/game_eggs/steamcmd_servers/truck-simulator/euro-truck-simulator2/egg-euro-truck-simulator2-dedicated-server.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-14T17:26:13+01:00", + "exported_at": "2023-04-24T17:19:01+02:00", "name": "Euro Truck Simulator 2 Dedicated server", "author": "josdekurk@gmail.com", "description": "Travel across Europe as king of the road, a trucker who delivers important cargo across impressive distances! With dozens of cities to explore, your endurance, skill and speed will all be pushed to their limits.", @@ -62,12 +62,12 @@ }, { "name": "Steam Auth token", - "description": "Acquire a logon token on https:\/\/steamcommunity.com\/dev\/managegameservers (game ownership is required).", + "description": "By default, whenever a dedicated server is launched it is using an anonymous account. For such an account non-persistent server id is generated (used for direct search). To avoid this you can acquire a logon token on https:\/\/steamcommunity.com\/dev\/managegameservers (game ownership is required)", "env_variable": "STEAM_TOKEN", "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:32", + "rules": "nullable|string|max:32", "field_type": "text" }, { @@ -79,26 +79,6 @@ "user_editable": true, "rules": "required|string|max:64", "field_type": "text" - }, - { - "name": "Steam password", - "description": "", - "env_variable": "STEAM_PASS", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string|max:64", - "field_type": "text" - }, - { - "name": "Steam username", - "description": "", - "env_variable": "STEAM_USER", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string|max:32", - "field_type": "text" } ] } \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/truck-simulator/server_config.sii b/game_eggs/steamcmd_servers/truck-simulator/server_config.sii index f6bb06b6..68e714d9 100644 --- a/game_eggs/steamcmd_servers/truck-simulator/server_config.sii +++ b/game_eggs/steamcmd_servers/truck-simulator/server_config.sii @@ -8,7 +8,7 @@ server_config : _nameless.54e.4440 { max_players: 8 max_vehicles_total: 100 max_ai_vehicles_player: 50 - max_ai_vehicles_player_spawn: 30 + max_ai_vehicles_player_spawn: 50 connection_virtual_port: 100 query_virtual_port: 101 connection_dedicated_port: 27015 From 1b1392739a2d40c6130965b544affd5f2b12d9f9 Mon Sep 17 00:00:00 2001 From: Fuggschen <64164659+Fuggschen@users.noreply.github.com> Date: Tue, 25 Apr 2023 19:33:17 +0200 Subject: [PATCH 188/473] Update egg-empyrion--galactic-survival.json Changed startup command to connect to telnet for accepting commands --- .../egg-empyrion--galactic-survival.json | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json b/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json index 78eef2b3..f9a5ec94 100644 --- a/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json +++ b/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-16T17:24:48+01:00", + "exported_at": "2023-04-25T19:31:11+02:00", "name": "Empyrion: Galactic Survival", "author": "info@goover.de", "description": "Empyrion: Galactic Survival dedicated server", @@ -13,10 +13,10 @@ "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" }, "file_denylist": [], - "startup": "cd empyrion; WINEDLLOVERRIDES=\"mscoree,mshtml=\" wine .\/DedicatedServer\/EmpyrionDedicated.exe -batchmode -log -logFile .\/logs\/current.log \"$@\" &> .\/logs\/wine.log | tail -f .\/logs\/current.log", + "startup": "cd empyrion; WINEDLLOVERRIDES=\"mscoree,mshtml=\" wine .\/DedicatedServer\/EmpyrionDedicated.exe -batchmode -log -logFile .\/logs\/current.log & echo -e \"Checking on telnet connection\" && until nc -z 127.0.0.1 ${TELNET_PORT}; do echo -e \"Waiting on telnet connection...\"; sleep 5; done && $( [[ -z ${TELNET_PWD} ]] && printf %s \"telnet -E 127.0.0.1 ${TELNET_PORT}\")", "config": { - "files": "{\r\n \"empyrion\/dedicated.yaml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"ServerConfig.Srv_Port\": \"{{server.build.default.port}}\",\r\n \"ServerConfig.Srv_Name\": \"{{env.SRV_NAME}}\",\r\n \"ServerConfig.Srv_Password\": \"{{env.SRV_PWD}}\",\r\n \"ServerConfig.Srv_MaxPlayers\": \"{{env.MAX_PLAYERS}}\",\r\n \"ServerConfig.Tel_Enabled\": \"{{env.TELNET_ENABLED}}\",\r\n \"ServerConfig.Tel_Port\": \"{{env.TELNET_PORT}}\",\r\n \"ServerConfig.Tel_Pwd\": \"{{env.TELNET_PWD}}\",\r\n \"ServerConfig.Srv_Description\": \"{{env.SRV_DESC}}\",\r\n \"GameConfig.Seed\": \"{{env.SEED}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"-LOG- Start Game\"\r\n}", + "files": "{\r\n \"empyrion\/dedicated.yaml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"ServerConfig.Srv_Port\": \"{{server.build.default.port}}\",\r\n \"ServerConfig.Srv_Name\": \"{{env.SRV_NAME}}\",\r\n \"ServerConfig.Srv_Password\": \"{{env.SRV_PWD}}\",\r\n \"ServerConfig.Srv_MaxPlayers\": \"{{env.MAX_PLAYERS}}\",\r\n \"ServerConfig.Tel_Enabled\": \"{{env.TELNET_ENABLED}}\",\r\n \"ServerConfig.Tel_Port\": \"{{env.TELNET_PORT}}\",\r\n \"ServerConfig.Srv_Description\": \"{{env.SRV_DESC}}\",\r\n \"GameConfig.Seed\": \"{{env.SEED}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Connected to 127.0.0.1.\"\r\n}", "logs": "{}", "stop": "saveandexit 0" }, @@ -78,16 +78,6 @@ "rules": "required|numeric", "field_type": "text" }, - { - "name": "Telnet Password", - "description": "Telnet server password.", - "env_variable": "TELNET_PWD", - "default_value": "Abc", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string|max:20", - "field_type": "text" - }, { "name": "Game Seed", "description": "World generation seed. Numeric between 1 and 7 characters.", @@ -169,4 +159,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 1b911a7f519e044e2dc9f5bf80ab851e01d8daf9 Mon Sep 17 00:00:00 2001 From: Tom Chilvers <66132512+tomchilvers@users.noreply.github.com> Date: Mon, 1 May 2023 00:58:51 +0100 Subject: [PATCH 189/473] Fix typo in README.md "prt" to "port" --- software/languagetool/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/software/languagetool/README.md b/software/languagetool/README.md index 7c5a6602..1ed45d72 100644 --- a/software/languagetool/README.md +++ b/software/languagetool/README.md @@ -4,6 +4,6 @@ LanguageTool is an Open Source proofreading software for English, French, German View https://languagetool.org for more information. -Requires one prt for comunication. +Requires one port for comunication. Try `addr:port/v2/check?language=en-US&text=this+is+a+test` to test From 4c137d7a0c9aee5001f9204a2633c5d1ca6841ab Mon Sep 17 00:00:00 2001 From: Fuggschen <64164659+Fuggschen@users.noreply.github.com> Date: Mon, 1 May 2023 09:54:44 +0200 Subject: [PATCH 190/473] added foldingathome egg (#2226) added foldingathome egg --- README.md | 4 + software/foldingathome/README.md | 35 ++++++ software/foldingathome/egg-folding--home.json | 102 ++++++++++++++++++ 3 files changed, 141 insertions(+) create mode 100644 software/foldingathome/README.md create mode 100644 software/foldingathome/egg-folding--home.json diff --git a/README.md b/README.md index f310dc55..6f3e353a 100644 --- a/README.md +++ b/README.md @@ -346,6 +346,10 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Elasticsearch](/software/elasticsearch) +### Folding@Home + +* [Folding@Home](/software/foldingathome) + ### Gitea * [Gitea](/software/gitea) diff --git a/software/foldingathome/README.md b/software/foldingathome/README.md new file mode 100644 index 00000000..817293ca --- /dev/null +++ b/software/foldingathome/README.md @@ -0,0 +1,35 @@ +# Folding@Home + +[Folding@Home](https://foldingathome.org/) is a distributed computing project aimed at simulating protein folding and other molecular dynamics. + +## User Account + +You can setup an User Account to track your PPD (Points per Day) and done WUs (Work Units). To get a Passkey visit the [Folding@home Passkey Site](https://apps.foldingathome.org/getpasskey) + +## Teams + +You can add your earned Points to a Team that you support. This is not nessesary as the points are just to track how much work was done (with some exeptions). Here is the [full List of the Teams](https://stats.foldingathome.org/team) + +## Remote Control + +You can connect via FAHControl to your instance. WebUI is not supported because it wouldn't be password protected. + +## CPU Usage Control + +There are three power modes: +- light +- medium +- full + +Only light and medium are useful because full enables gpu which is not supported in this egg. +Light uses half of the available **cpu cores of your system**. Full uses **all of your cpu cores.** You can still limit the cpu usage via the panel. + +## Supported Versions + +Versions < v8 are supported. v8 is still beta and wont work with this egg. Get the latest v7 version number here: [Folding@Home Downloadserver](https://download.foldingathome.org/releases/public/release/fahclient/debian-stable-64bit/) + +## Server Ports + +| Port | default | +| ---- | ------- | +| FAHControl | 36330 | diff --git a/software/foldingathome/egg-folding--home.json b/software/foldingathome/egg-folding--home.json new file mode 100644 index 00000000..fb057617 --- /dev/null +++ b/software/foldingathome/egg-folding--home.json @@ -0,0 +1,102 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-04-30T12:31:28+02:00", + "name": "Folding@Home", + "author": "fuggschen@krk-gaming.de", + "description": "Folding@home is a distributed computing project aimed to help scientists develop new therapeutics for a variety of diseases by the means of simulating protein dynamics. This includes the process of protein folding and the movements of proteins, and is reliant on simulations run on volunteers' personal computers", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian" + }, + "file_denylist": [], + "startup": ".\/FAHClient --user={{FAH_USERNAME}} --team={{FAH_TEAM}} --passkey={{FAH_PASSKEY}} $(if {{FAH_ANON}}; then echo \"--fold-anon=true\"; fi) --command-port={{SERVER_PORT}} --password={{FAH_PASSWORD}} --power={{FAH_POWER}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Started FahCore\"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n#\r\n# Folding@Home install script\r\n#\r\n# Created by Fuggschen\r\n\r\nexport DEBIAN_FRONTEND=noninteractive\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"64bit\" || echo \"arm64\")\r\ncd \/tmp\r\n\r\necho \"Removing previous Version\"\r\nmv \/mnt\/server\/config.xml \/tmp\/config.xml\r\nrm -rf \/mnt\/server\/*\r\n\r\necho \"Installing dependencies\"\r\napt update && apt upgrade -y && apt install curl bzip2 -y\r\n\r\necho \"Downloading FAHClient\"\r\ncurl -sSL -o fahclient.tar.bz2 https:\/\/download.foldingathome.org\/releases\/public\/release\/fahclient\/debian-stable-${ARCH}\/${FAH_VERSION}\/latest.tar.bz2\r\n\r\necho \"Installing FAHClient\"\r\ntar -xjf fahclient.tar.bz2 -C \/mnt\/server --strip-components=1\r\n\r\necho \"Cleaning up..\"\r\nrm -f fahclient.tar.bz2\r\nrm -f \/mnt\/server\/sample-config.xml\r\nmv \/tmp\/config.xml \/mnt\/server\/config.xml\r\n\r\nFILE=\/mnt\/server\/config.xml\r\nif [[ ! -f $FILE ]]\r\nthen\r\necho \"Setting up config.xml\"\r\ncat > $FILE << EOF\r\n\r\n \r\n \r\n \r\n \r\n<\/config>\r\nEOF\r\nfi\r\n\r\necho \"Done!\"", + "container": "debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "FaH Username", + "description": "Your Folding@Home Username", + "env_variable": "FAH_USERNAME", + "default_value": "Anonymous", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "FaH Team", + "description": "Your Folding@Home Team that you are folding for. For reference look here: https:\/\/stats.foldingathome.org\/team", + "env_variable": "FAH_TEAM", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|int", + "field_type": "text" + }, + { + "name": "FaH Passkey", + "description": "Your Folding@Home Passkey for your Username, if not Anonymous. Get your Passkey here: https:\/\/apps.foldingathome.org\/getpasskey", + "env_variable": "FAH_PASSKEY", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:32", + "field_type": "text" + }, + { + "name": "FaH Anonymous Mode", + "description": "Set to true if you are folding Anonymously", + "env_variable": "FAH_ANON", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "FaH Version", + "description": "Set to wanted major Folding@Home Version. Check here: https:\/\/download.foldingathome.org\/releases\/public\/release\/fahclient\/debian-stable-64bit\/", + "env_variable": "FAH_VERSION", + "default_value": "v7.6", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "FaHControl Password", + "description": "Set a WebUI Password", + "env_variable": "FAH_PASSWORD", + "default_value": "SetPasswordHere", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:64", + "field_type": "text" + }, + { + "name": "FaH Power", + "description": "The Powerlevel it should use:\r\n- light (only half the cpu power is used)\r\n- medium (full cpu power)\r\n- full (full cpu and gpu power but gpu is not supported)", + "env_variable": "FAH_POWER", + "default_value": "medium", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:light,medium,full", + "field_type": "text" + } + ] +} \ No newline at end of file From ef680ec5098e1bcb838dc7eb38197cf245847a6d Mon Sep 17 00:00:00 2001 From: Kyle Williquette Date: Mon, 1 May 2023 04:25:56 -0500 Subject: [PATCH 191/473] Rimworld open world (#1985) * Added Rimworld Open World --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- README.md | 4 + game_eggs/README.md | 4 + game_eggs/rimworld/README.md | 5 + game_eggs/rimworld/open_world/README.md | 13 ++ .../open_world/egg-rimworld-open-world.json | 113 ++++++++++++++++++ 5 files changed, 139 insertions(+) create mode 100644 game_eggs/rimworld/README.md create mode 100644 game_eggs/rimworld/open_world/README.md create mode 100644 game_eggs/rimworld/open_world/egg-rimworld-open-world.json diff --git a/README.md b/README.md index 6f3e353a..a5914b11 100644 --- a/README.md +++ b/README.md @@ -205,6 +205,10 @@ If you are reading this it looks like you are looking to add an egg to your serv * [RedM](game_eggs/rdr/redm) +[Rimworld](game_eggs/rimworld) + +* [Open World](game_eggs/rimworld/open_world) + [SteamCMD Servers](game_eggs/steamcmd_servers) These eggs use SteamCMD to install * [7 Days to Die](game_eggs/steamcmd_servers/7_days_to_die) diff --git a/game_eggs/README.md b/game_eggs/README.md index f1a566b2..4f7a8eaf 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -104,6 +104,10 @@ * [RedM](rdr/redm) +[Rimworld](rimworld) + +* [Open World](rimworld/open_world) + [Starmade](starmade) [SteamCMD Servers](steamcmd_servers) These eggs use SteamCMD to install diff --git a/game_eggs/rimworld/README.md b/game_eggs/rimworld/README.md new file mode 100644 index 00000000..440cfb94 --- /dev/null +++ b/game_eggs/rimworld/README.md @@ -0,0 +1,5 @@ +# Rimworld + +RimWorld follows three survivors from a crashed space liner as they build a colony on a frontier world at the rim of known space. Inspired by the space western vibe of Firefly, the deep simulation of Dwarf Fortress, and the epic scale of Dune and Warhammer 40,000. + +Manage colonists' moods, needs, individual wounds, and illnesses. Engage in small-team tactical gunplay. Fashion structures, weapons, and apparel from metal, wood, stone, cloth, or futuristic materials. Fight pirate raiders, hostile tribes, rampaging animals, giant tunnelling insects and ancient killing machines. Tame and train cute pets, productive farm animals, and deadly attack beasts. Watch colonists develop relationships with family members, lovers, and spouses. Discover a new generated world each time you play. Build colonies in the desert, jungle, tundra, and more. Manage quirky colonists with unique backstories, traits, and skills. Learn to play easily with the help of an intelligent and unobtrusive AI tutor. \ No newline at end of file diff --git a/game_eggs/rimworld/open_world/README.md b/game_eggs/rimworld/open_world/README.md new file mode 100644 index 00000000..00d1ab5c --- /dev/null +++ b/game_eggs/rimworld/open_world/README.md @@ -0,0 +1,13 @@ +# Open World + +## From their [site](https://openworldhelp.fandom.com/wiki/Open_World_Wiki) + +The Open World mod allows you to create and join servers to play with people all around the world, it introduces plenty of new features including trading, gifting, bartering, PvP and so much more! + +## Server Ports + +| Port | default | +|---------|---------| +| Game | 25555 | + +### Mods/Plugins may require ports to be added to the server. See [here](https://openworldhelp.fandom.com/wiki/Creating_a_server) for help diff --git a/game_eggs/rimworld/open_world/egg-rimworld-open-world.json b/game_eggs/rimworld/open_world/egg-rimworld-open-world.json new file mode 100644 index 00000000..b882a7da --- /dev/null +++ b/game_eggs/rimworld/open_world/egg-rimworld-open-world.json @@ -0,0 +1,113 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-05-01T11:19:44+02:00", + "name": "Rimworld: Open World", + "author": "kyle@williquette.us", + "description": "The Open World mod allows you to create and join servers to play with people all around the world, it introduces plenty of new features including trading, gifting, bartering, PvP and so much more!\r\n\r\nhttps:\/\/github.com\/mypassowordisntweak\/OpenWorld", + "features": null, + "docker_images": { + "Dotnet 3.1": "ghcr.io\/parkervcp\/yolks:dotnet_3.1", + "Dotnet 6": "ghcr.io\/parkervcp\/yolks:dotnet_6" + }, + "file_denylist": [], + "startup": ".\/OpenWorldServer", + "config": { + "files": "{\r\n \"Data\/Config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"LocalAddress\": \"0.0.0.0\",\r\n \"ServerPort\": \"{{server.build.default.port}}\",\r\n \"MaxPlayers\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"EnforceMods\": \"{{server.build.env.ENFORCE_MODS}}\",\r\n \"UseModBlacklist\": \"{{server.build.env.USE_MOD_BLACKLIST}}\",\r\n \"UseCustomDifficulty\": \"{{server.build.env.USE_CUSTOM_DIFF}}\",\r\n \"UseWhitelist\": \"{{server.build.env.WHITELIST}}\",\r\n \"AllowCustomScenarios\": \"{{server.build.env.CUSTOM_SCEN}}\",\r\n \"PlayerVersion\": \"{{server.build.env.PLAYER_VERSION}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \" Server Launched\"\r\n}", + "logs": "{}", + "stop": "shutdown" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\n#Create the server directory\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\napt update\r\napt -y install curl jq unzip git\r\n\r\n\r\n#Check for latest release & download URLs\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/mypassowordisntweak\/OpenWorld\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/mypassowordisntweak\/OpenWorld\/releases\")\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux-x64\" || echo \"linux-arm64\")\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 ${ARCH} | head -1)\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 ${ARCH} | head -1)\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 -i ${ARCH}| head -1)\r\n fi\r\nfi\r\n\r\n\r\n#Download the Rimworld Open World server\r\necho -e \"Running curl -sSL ${DOWNLOAD_URL} -o ${ARCH}.zip\"\r\ncurl -sSL ${DOWNLOAD_URL} -o ${ARCH}.zip\r\necho -e \"Unzipping ${ARCH}.zip\"\r\nunzip -o ${ARCH}.zip\r\nmv ${ARCH}\/* \/mnt\/server\r\nchmod +x \"OpenWorldServer\"\r\nrm -rf ${ARCH}.zip ${ARCH}\/\r\n\r\n\r\n\r\ncd \/mnt\/server\r\nFILE=\/mnt\/server\/Data\/Config.json\r\nif [ -f \"$FILE\" ]; then\r\n echo \"config already exists.\"\r\nelse \r\n echo \"Config does not exist, making one\"\r\n mkdir -p \/mnt\/server\/Data\r\n cd \/mnt\/server\/Data\r\ncat << EOF > \"Config.json\"\r\n{\r\n \"LocalAddress\": \"0.0.0.0\",\r\n \"ServerPort\": 25555,\r\n \"MaxPlayers\": 10,\r\n \"PlayerVersion\": \"1.2\",\r\n \"EnforceMods\": false,\r\n \"UseModBlacklist\": false,\r\n \"UseCustomDifficulty\": false,\r\n \"UseWhitelist\": false,\r\n \"AllowCustomScenarios\": false\r\n}\r\nEOF\r\nfi\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "debian:bullseye-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Open World Version", + "description": "", + "env_variable": "VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:8", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "sets the maximum number of players allowed to connect at once.", + "env_variable": "MAX_PLAYERS", + "default_value": "10", + "user_viewable": true, + "user_editable": true, + "rules": "required|int", + "field_type": "text" + }, + { + "name": "Enforce Mods", + "description": "This forces players to use the mods listed in the the \"Mods Enforced\" folder, with this disabled it will allow players to join with any mods they would like", + "env_variable": "ENFORCE_MODS", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "Use Mod Blacklist", + "description": "enabled you to blacklist mods from being used, usually used when enforced mods are disabled.", + "env_variable": "USE_MOD_BLACKLIST", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "Use Custom Difficulty", + "description": "forces all players to use the difficulty setting set in the \"Difficulty\" file. MAKE SURE YOU GIVE A VALUE TO EVERYTHING OR IT WILL BE AT 0%", + "env_variable": "USE_CUSTOM_DIFF", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "Use Whitelist", + "description": "allows only the usernames listed in the \"Whitelist\" file to join the server.", + "env_variable": "WHITELIST", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "Allow Custom Scenarios", + "description": "allows people to create custom scenarios when creating their save on the server.", + "env_variable": "CUSTOM_SCEN", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "Player Version", + "description": "version the server will accept clients joining in with.\r\n\r\nTO see the latest:\r\nhttps:\/\/discord.com\/channels\/992806266109964319\/992881103071354890\r\n\r\nfor example for v1.12 you would write 1.12", + "env_variable": "PLAYER_VERSION", + "default_value": "1.2", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:10", + "field_type": "text" + } + ] +} \ No newline at end of file From 15830c362564a539d7749917b5aa369c6d737361 Mon Sep 17 00:00:00 2001 From: MrRazamataz <56600481+MrRazamataz@users.noreply.github.com> Date: Mon, 1 May 2023 17:24:51 +0100 Subject: [PATCH 192/473] Add more languages to the Start Configuration for PMMP and Nukkit (#2241) PMMP & Nukkit: simplify Start Configuration for other languages --- .../minecraft/bedrock/nukkit/egg-nukkit.json | 29 ++++++++++--------- .../pocketmine_mp/egg-pocketmine-m-p.json | 4 +-- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/game_eggs/minecraft/bedrock/nukkit/egg-nukkit.json b/game_eggs/minecraft/bedrock/nukkit/egg-nukkit.json index afb85499..91910950 100644 --- a/game_eggs/minecraft/bedrock/nukkit/egg-nukkit.json +++ b/game_eggs/minecraft/bedrock/nukkit/egg-nukkit.json @@ -1,26 +1,26 @@ { "_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-12-16T13:31:45-05:00", + "exported_at": "2023-05-01T16:48:52+01:00", "name": "Nukkit", "author": "parker@parkervcp.com", "description": "Nukkit is a Nuclear-Powered Server Software For Minecraft: Pocket Edition\r\n\r\nhttps:\/\/cloudburstmc.org", "features": null, - "images": [ - "quay.io\/pterodactyl\/core:java-glibc", - "ghcr.io\/pterodactyl\/yolks:java_11", - "ghcr.io\/pterodactyl\/yolks:java_16", - "ghcr.io\/pterodactyl\/yolks:java_8", - "ghcr.io\/pterodactyl\/yolks:java_17" - ], + "docker_images": { + "quay.io\/pterodactyl\/core:java-glibc": "quay.io\/pterodactyl\/core:java-glibc", + "ghcr.io\/pterodactyl\/yolks:java_11": "ghcr.io\/pterodactyl\/yolks:java_11", + "ghcr.io\/pterodactyl\/yolks:java_16": "ghcr.io\/pterodactyl\/yolks:java_16", + "ghcr.io\/pterodactyl\/yolks:java_8": "ghcr.io\/pterodactyl\/yolks:java_8", + "ghcr.io\/pterodactyl\/yolks:java_17": "ghcr.io\/pterodactyl\/yolks:java_17" + }, "file_denylist": [], "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", "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}", + "startup": "{\r\n \"done\": \")! \"\r\n}", "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", "stop": "stop" }, @@ -39,7 +39,8 @@ "default_value": "server.jar", "user_viewable": true, "user_editable": true, - "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/", + "field_type": "text" }, { "name": "Download Path", @@ -48,7 +49,8 @@ "default_value": "", "user_viewable": false, "user_editable": false, - "rules": "nullable|string" + "rules": "nullable|string", + "field_type": "text" }, { "name": "nukkit version", @@ -57,7 +59,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" } ] } diff --git a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json index 609ee1e3..b1228d0d 100644 --- a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json +++ b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-12T02:53:07-05:00", + "exported_at": "2023-05-01T16:49:09+01:00", "name": "PocketmineMP", "author": "info@swisscrafting.ch", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", @@ -16,7 +16,7 @@ "startup": ".\/bin\/php7\/bin\/php .\/PocketMine-MP.phar --no-wizard --disable-ansi", "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}", + "startup": "{\r\n \"done\": \")! \"\r\n}", "logs": "{}", "stop": "stop" }, From c534a487b61774b937b6e4873de803cfd37f405f Mon Sep 17 00:00:00 2001 From: Loki <59907407+Loki-101@users.noreply.github.com> Date: Thu, 4 May 2023 16:09:02 -0700 Subject: [PATCH 193/473] Update egg-red.json Update python from 3.8 to 3.11, goes with https://github.com/parkervcp/yolks/pull/150 --- bots/discord/redbot/egg-red.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bots/discord/redbot/egg-red.json b/bots/discord/redbot/egg-red.json index 953a179b..9a8c1052 100644 --- a/bots/discord/redbot/egg-red.json +++ b/bots/discord/redbot/egg-red.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-11-06T11:14:23+01:00", + "exported_at": "2023-05-04T15:34:30-07:00", "name": "Red", "author": "parker@parkervcp.com", "description": "A multifunction Discord bot \r\n\r\nhttps:\/\/github.com\/Cog-Creators\/Red-DiscordBot", @@ -22,8 +22,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# red-discordbot install script\r\n\r\n## install deps\r\nmkdir -p \/usr\/share\/man\/man1\r\napt update\r\napt -y install git ca-certificates dnsutils iproute2 make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libgdbm-dev uuid-dev git openjdk-11-jre\r\n\r\n## config folder layouts\r\necho -e \"generating config folder layout\"\r\nmkdir -p \/mnt\/server\/.config\/{Red-DiscordBot,share}\/ \/mnt\/server\/.local\/share\/Red-DiscordBot\/data\/pterodactyl\/\r\ncd \/mnt\/server\/\r\nln -s .local\/share\/Red-DiscordBot\/data\/pterodactyl\/ .\/configs\r\n\r\n## install red\r\necho -e \"add container user to install\"\r\nln -s \/mnt\/server\/ \/home\/container\r\nuseradd -m -d \/home\/container container\r\nchown -R container \/mnt\/server\/\r\necho -e \"install red locally as user\"\r\nsu - container -c 'pip install -U Red-DiscordBot'\r\n\r\n## ensure the config is in place if it doesn't exist\r\nif [ ! -f \/mnt\/server\/.config\/Red-DiscordBot\/config.json ]; then\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/redbot\/config.json -o \/mnt\/server\/.config\/Red-DiscordBot\/config.json\r\nfi\r\n\r\necho -e \"install finished\"", - "container": "python:3.8-slim", + "script": "#!\/bin\/bash\r\n# red-discordbot install script\r\n## install deps\r\nmkdir -p \/usr\/share\/man\/man1\r\napt update\r\napt -y install git ca-certificates dnsutils iproute2 make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libgdbm-dev uuid-dev git openjdk-11-jre\r\n## config folder layouts\r\necho -e \"generating config folder layout\"\r\nmkdir -p \/mnt\/server\/.config\/{Red-DiscordBot,share}\/ \/mnt\/server\/.local\/share\/Red-DiscordBot\/data\/pterodactyl\/\r\ncd \/mnt\/server\/\r\nln -s .local\/share\/Red-DiscordBot\/data\/pterodactyl\/ .\/configs\r\n## install red\r\necho -e \"add container user to install\"\r\nln -s \/mnt\/server\/ \/home\/container\r\nuseradd -m -d \/home\/container container\r\nchown -R container \/mnt\/server\/\r\necho -e \"install red locally as user\"\r\nsu - container -c 'pip install -U Red-DiscordBot'\r\n## ensure the config is in place if it doesn't exist\r\nif [ ! -f \/mnt\/server\/.config\/Red-DiscordBot\/config.json ]; then\r\ncurl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/redbot\/config.json -o \/mnt\/server\/.config\/Red-DiscordBot\/config.json\r\nfi\r\necho -e \"install finished\"", + "container": "python:3.11-slim", "entrypoint": "bash" } }, @@ -49,4 +49,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From e10762c1bc3ac702c5f6bcc73b25efaf62a850fb Mon Sep 17 00:00:00 2001 From: David Katz Date: Fri, 5 May 2023 18:14:31 -0700 Subject: [PATCH 194/473] Update Modrinth Egg with better error handling --- .../java/modrinth/egg-modrinth-generic.json | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json b/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json index f1192228..2859e9ff 100644 --- a/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json +++ b/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-04-20T19:34:09-07:00", + "exported_at": "2023-05-05T18:13:15-07:00", "name": "Modrinth Generic", "author": "contact@chromozone.dev", "description": "A generic egg for a Modrinth modpack.", @@ -29,22 +29,12 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Modrinth Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n: ${SERVER_DIR:=\/mnt\/server}\r\n: ${PROJECT_ID:=}\r\n: ${VERSION_ID:=}\r\n\r\nif [[ ! -d $SERVER_DIR ]]; then\r\n mkdir -p $SERVER_DIR\r\nfi\r\n\r\ncd $SERVER_DIR\r\n\r\nfunction install_required {\r\n echo -e \"Installing required packages...\"\r\n echo -e \"\\tRunning apt update\"\r\n apt update > \/dev\/null 2>&1 || { echo \"apt update failed!\"; exit 1; }\r\n echo -e \"\\tRunning apt install\"\r\n apt install -y wget jq unzip dos2unix > \/dev\/null 2>&1 || { echo \"apt install failed!\"; exit 1; }\r\n}\r\n\r\nMODRINTH_API_URL=\"https:\/\/api.modrinth.com\/v2\"\r\n\r\nfunction get_download {\r\n echo -e \"Retrieving Modrinth project information...\"\r\n PROJECT_DATA=$(wget -q \"${MODRINTH_API_URL}\/project\/${PROJECT_ID}\" -O -)\r\n PROJECT_TITLE=$(echo $PROJECT_DATA | jq -r '.title \/\/ empty')\r\n PROJECT_SUPPORTED=$(echo $PROJECT_DATA | jq -r '.\"server_side\" \/\/ empty')\r\n\r\n if [[ \"${PROJECT_SUPPORTED}\" == \"unsupported\" ]]; then\r\n echo -e \"\\tWARNING: The project '${PROJECT_TITLE}' is listed as unsupported for server use. Continuing anyway...\"\r\n fi\r\n\r\n if [[ ! -n \"${VERSION_ID}\" || \"${VERSION_ID}\" == \"latest\" ]]; then\r\n echo -e \"\\tNo version ID specified, using latest version\"\r\n VERSION_ID=$(echo $PROJECT_DATA | jq -r '.versions[-1] \/\/ empty')\r\n else\r\n echo -e \"\\tChecking if provided version id '${VERSION_ID}' exists\"\r\n if [[ $(echo $PROJECT_DATA | jq -r --arg VERSION_ID \"$VERSION_ID\" '.versions[]? | select(. == $VERSION_ID)') != \"${VERSION_ID}\" ]]; then\r\n echo -e \"\\tERROR: Version id '${VERSION_ID}' not found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n fi\r\n\r\n if [[ ! -n \"${VERSION_ID}\" ]]; then\r\n echo -e \"\\tERROR: No version id found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n\r\n # get json data to work with\r\n echo -e \"\\tRetrieving version information for '${VERSION_ID}'\"\r\n JSON_DATA=$(wget -q \"${MODRINTH_API_URL}\/version\/${VERSION_ID}\" -O -)\r\n\r\n echo -e \"\\tParsing Modrinth pack download url\"\r\n\r\n DOWNLOAD_URL=$(echo $JSON_DATA | jq -r '.files[]? | select(.primary == true) | .url')\r\n\r\n if [[ ! -n \"${DOWNLOAD_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for version ${VERSION_ID}\"\r\n exit 1\r\n fi\r\n\r\n ## download modpack files\r\n echo -e \"\\tDownloading ${DOWNLOAD_URL}\"\r\n wget -q ${DOWNLOAD_URL} -O server.zip\r\n}\r\n\r\nfunction unpack_zip {\r\n unzip -o server.zip\r\n rm -rf server.zip\r\n}\r\n\r\nfunction json_download_mods {\r\n echo \"Downloading mods...\"\r\n\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n jq -c '.files[]? | select(.env.server == \"required\") | {name: .path, url: .downloads[0]}' ${MANIFEST} | while read -r mod; do\r\n FILE_URL=$(echo ${mod} | jq -r '.url \/\/ empty')\r\n\r\n if [[ ! -n \"${FILE_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for mod '${mod}'\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading ${FILE_URL}\"\r\n wget -q \"${FILE_URL}\" -P \"${SERVER_DIR}\/mods\"\r\n\r\n if [[ $? != 0 ]]; then\r\n echo -e \"Download failed!\"\r\n exit 1\r\n fi\r\n done\r\n}\r\n\r\nfunction json_download_overrides {\r\n echo \"Copying overrides...\"\r\n if [[ -d \"${SERVER_DIR}\/overrides\" ]]; then\r\n echo -e \"\\tCopying overrides\"\r\n cp -r \"${SERVER_DIR}\/overrides\/\"* \"${SERVER_DIR}\"\r\n rm -r \"${SERVER_DIR}\/overrides\"\r\n fi\r\n\r\n if [[ -d \"${SERVER_DIR}\/server-overrides\" ]]; then\r\n echo -e \"\\tCopying server overrides\"\r\n cp -r \"${SERVER_DIR}\/server-overrides\/\"* \"${SERVER_DIR}\"\r\n rm -r \"${SERVER_DIR}\/server-overrides\"\r\n fi\r\n}\r\n\r\nFORGE_INSTALLER_URL=\"https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/\"\r\n\r\nfunction json_download_forge {\r\n echo \"Downloading Forge...\"\r\n\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n MC_VERSION=$(jq -r '.dependencies.minecraft \/\/ empty' ${MANIFEST})\r\n FORGE_VERSION=$(jq -r '.dependencies.forge \/\/ empty' ${MANIFEST})\r\n\r\n if [[ ! -n \"${MC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Minecraft version found in manifest\"\r\n exit 1\r\n fi\r\n\r\n if [[ ! -n \"${FORGE_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Forge version found in manifest\"\r\n exit 1\r\n fi\r\n\r\n FORGE_VERSION=\"${MC_VERSION}-${FORGE_VERSION}\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" || \"${MC_VERSION}\" == \"1.8.9\" ]]; then\r\n FORGE_VERSION=\"${FORGE_VERSION}-${MC_VERSION}\"\r\n fi\r\n\r\n FORGE_JAR=\"forge-${FORGE_VERSION}.jar\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" ]]; then\r\n FORGE_JAR=\"forge-${FORGE_VERSION}-universal.jar\"\r\n fi\r\n\r\n FORGE_URL=\"${FORGE_INSTALLER_URL}${FORGE_VERSION}\/forge-${FORGE_VERSION}\"\r\n\r\n echo -e \"\\tUsing Forge ${FORGE_VERSION} from ${FORGE_URL}\"\r\n\r\n FORGE_INSTALLER=\"${FORGE_URL}-installer.jar\"\r\n echo -e \"\\tDownloading Forge Installer ${FORGE_VERSION} from ${FORGE_INSTALLER}\"\r\n wget -q -O forge-installer.jar ${FORGE_INSTALLER}\r\n\r\n if [[ $? != 0 ]]; then\r\n echo -e \"Download failed!\"\r\n exit 1\r\n fi\r\n\r\n rm -rf libraries\/net\/minecraftforge\/forge\/\r\n rm -f unix_args.txt\r\n\r\n echo -e \"\\tInstalling Forge Server ${FORGE_VERSION}\"\r\n java -jar forge-installer.jar --installServer > \/dev\/null 2>&1 || { echo \"Forge installer failed!\"; exit 1; }\r\n\r\n if [[ $MC_VERSION =~ ^1\\.(17|18|19|20|21|22|23) || $FORGE_VERSION =~ ^1\\.(17|18|19|20|21|22|23) ]]; then\r\n echo -e \"\\tDetected Forge 1.17 or newer version. Setting up Forge Unix arguments\"\r\n ln -sf libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt unix_args.txt\r\n else\r\n mv $FORGE_JAR forge-server-launch.jar\r\n echo \"forge-server-launch.jar\" > \".serverjar\"\r\n fi\r\n\r\n rm -f forge-installer.jar\r\n}\r\n\r\nFABRIC_INSTALLER_URL=\"https:\/\/meta.fabricmc.net\/v2\/versions\/installer\"\r\n\r\nfunction json_download_fabric {\r\n echo \"Downloading Fabric...\"\r\n\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n MC_VERSION=$(jq -r '.dependencies.minecraft \/\/ empty' ${MANIFEST})\r\n FABRIC_VERSION=$(jq -r '.dependencies.\"fabric-loader\" \/\/ empty' ${MANIFEST})\r\n\r\n if [[ ! -n \"${MC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Minecraft version found in manifest\"\r\n exit 1\r\n fi\r\n\r\n if [[ ! -n \"${FABRIC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric version found in manifest\"\r\n exit 1\r\n fi\r\n\r\n INSTALLER_JSON=$(wget -q -O - ${FABRIC_INSTALLER_URL} )\r\n INSTALLER_VERSION=$(echo $INSTALLER_JSON | jq -r '.[0].version \/\/ empty')\r\n INSTALLER_URL=$(echo $INSTALLER_JSON | jq -r '.[0].url \/\/ empty')\r\n\r\n if [[ ! -n \"${INSTALLER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric installer version found\"\r\n exit 1\r\n fi\r\n\r\n if [[ ! -n \"${INSTALLER_URL}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric installer url found\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading Fabric Installer ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n wget -q -O fabric-installer.jar ${INSTALLER_URL}\r\n\r\n if [[ $? != 0 ]]; then\r\n echo -e \"Download failed!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Fabric Server ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n java -jar fabric-installer.jar server -mcversion ${MC_VERSION} -loader ${FABRIC_VERSION} -downloadMinecraft || { echo \"Fabric installer failed!\"; exit 4; }\r\n\r\n echo \"fabric-server-launch.jar\" > \".serverjar\"\r\n\r\n rm -f fabric-installer.jar\r\n}\r\n\r\nQUILT_INSTALLER_URL=\"https:\/\/meta.quiltmc.org\/v3\/versions\/installer\"\r\n\r\nfunction json_download_quilt {\r\n echo \"Downloading Quilt...\"\r\n\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n MC_VERSION=$(jq -r '.dependencies.minecraft \/\/ empty' ${MANIFEST})\r\n QUILT_VERSION=$(jq -r '.dependencies.\"quilt-loader\" \/\/ empty' ${MANIFEST})\r\n\r\n if [[ ! -n \"${MC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Minecraft version found in manifest\"\r\n exit 1\r\n fi\r\n\r\n if [[ ! -n \"${QUILT_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt version found in manifest\"\r\n exit 1\r\n fi\r\n\r\n INSTALLER_JSON=$(wget -q -O - ${QUILT_INSTALLER_URL} )\r\n INSTALLER_VERSION=$(echo $INSTALLER_JSON | jq -r '.[0].version \/\/ empty')\r\n INSTALLER_URL=$(echo $INSTALLER_JSON | jq -r '.[0].url \/\/ empty')\r\n\r\n if [[ ! -n \"${INSTALLER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt installer version found\"\r\n exit 1\r\n fi\r\n\r\n if [[ ! -n \"${INSTALLER_URL}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt installer URL found\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading Quilt Installer ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n wget -q -O quilt-installer.jar ${INSTALLER_URL}\r\n\r\n if [[ $? != 0 ]]; then\r\n echo -e \"Download failed!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Quilt Server ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n java -jar quilt-installer.jar install server ${MC_VERSION} ${QUILT_VERSION} --download-server --install-dir=.\/ || { echo \"Quilt installer failed!\"; exit 4; }\r\n\r\n echo \"quilt-server-launch.jar\" > \".serverjar\"\r\n\r\n rm quilt-installer.jar\r\n}\r\n\r\ninstall_required\r\n\r\nif [[ ! -n \"${PROJECT_ID}\" ]]; then\r\n echo \"ERROR: You must specify a PROJECT_ID environment variable!\"\r\n exit 1\r\nfi\r\n\r\nif [[ ! \"${PROJECT_ID}\" = \"zip\" ]]; then\r\n\tget_download\r\n\tunpack_zip\r\nelse\r\n\tunpack_zip\r\nfi\r\n\r\nif [[ -f \"${SERVER_DIR}\/modrinth.index.json\" ]]; then\r\n echo \"Found modrinth.index.json, installing mods\"\r\n json_download_mods\r\n json_download_overrides\r\nfi\r\n\r\nif [[ -f \"${SERVER_DIR}\/modrinth.index.json\" ]]; then\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n if [[ $(jq -r '.dependencies.forge' ${MANIFEST}) != \"null\" ]]; then\r\n json_download_forge\r\n fi\r\n\r\n if [[ $(jq -r '.dependencies.\"fabric-loader\"' ${MANIFEST}) != \"null\" ]]; then\r\n json_download_fabric\r\n fi\r\n\r\n if [[ $(jq -r '.dependencies.\"quilt-loader\"' ${MANIFEST}) != \"null\" ]]; then\r\n json_download_quilt\r\n fi\r\nfi\r\n\r\necho -e \"\\nInstall completed succesfully, enjoy!\"", + "script": "#!\/bin\/bash\r\n# shellcheck disable=SC2155\r\n#\r\n# Modrinth Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n: \"${SERVER_DIR:=\/mnt\/server}\"\r\n: \"${PROJECT_ID:=}\"\r\n: \"${VERSION_ID:=}\"\r\n\r\nif [[ ! -d $SERVER_DIR ]]; then\r\n mkdir -p \"$SERVER_DIR\"\r\nfi\r\n\r\nif ! cd \"$SERVER_DIR\"; then\r\n echo -e \"Failed to change directory to ${SERVER_DIR}\"\r\n exit 1\r\nfi\r\n\r\nfunction install_required {\r\n echo -e \"Installing required packages...\"\r\n\r\n echo -e \"\\tRunning apt update\"\r\n if ! apt update > \/dev\/null 2>&1; then\r\n echo -e \"\\tERROR: apt update failed!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tRunning apt install\"\r\n if ! apt install -y wget jq unzip dos2unix > \/dev\/null 2>&1; then\r\n echo -e \"\\tERROR: apt install failed!\"\r\n exit 1\r\n fi\r\n}\r\n\r\nMODRINTH_API_URL=\"https:\/\/api.modrinth.com\/v2\"\r\n\r\nfunction get_download {\r\n echo -e \"Retrieving Modrinth project information...\"\r\n local PROJECT_DATA=$(wget -q \"${MODRINTH_API_URL}\/project\/${PROJECT_ID}\" -O -)\r\n local PROJECT_TITLE=$(echo \"$PROJECT_DATA\" | jq -r '.title \/\/ empty')\r\n local PROJECT_SUPPORTED=$(echo \"$PROJECT_DATA\" | jq -r '.\"server_side\" \/\/ empty')\r\n\r\n if [[ -z \"${PROJECT_DATA}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve project data for project id '${PROJECT_ID}'\"\r\n exit 1\r\n fi\r\n\r\n if [[ \"${PROJECT_SUPPORTED}\" == \"unsupported\" ]]; then\r\n echo -e \"\\tWARNING: The project '${PROJECT_TITLE}' is listed as unsupported for server use. Continuing anyway...\"\r\n fi\r\n\r\n if [[ -z \"${VERSION_ID}\" || \"${VERSION_ID}\" == \"latest\" ]]; then\r\n echo -e \"\\tNo version ID specified, using latest version\"\r\n VERSION_ID=$(echo \"$PROJECT_DATA\" | jq -r '.versions[-1] \/\/ empty')\r\n else\r\n echo -e \"\\tChecking if provided version id '${VERSION_ID}' exists\"\r\n if [[ $(echo \"$PROJECT_DATA\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.versions[]? | select(. == $VERSION_ID)') != \"${VERSION_ID}\" ]]; then\r\n echo -e \"\\tERROR: Version id '${VERSION_ID}' not found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n fi\r\n\r\n if [[ -z \"${VERSION_ID}\" ]]; then\r\n echo -e \"\\tERROR: No version id found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n\r\n # get json data to work with\r\n echo -e \"\\tRetrieving version information for '${VERSION_ID}'\"\r\n local JSON_DATA=$(wget -q \"${MODRINTH_API_URL}\/version\/${VERSION_ID}\" -O -)\r\n\r\n if [[ -z \"${JSON_DATA}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve version data for version id '${VERSION_ID}'\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tParsing Modrinth pack download url\"\r\n\r\n local DOWNLOAD_URL=$(echo \"$JSON_DATA\" | jq -r '.files[]? | select(.primary == true) | .url')\r\n\r\n if [[ -z \"${DOWNLOAD_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for version ${VERSION_ID}\"\r\n exit 1\r\n fi\r\n\r\n ## download modpack files\r\n echo -e \"\\tDownloading ${DOWNLOAD_URL}\"\r\n if ! wget -q \"${DOWNLOAD_URL}\" -O server.zip; then\r\n echo -e \"\\tERROR: Failed to download modpack files!\"\r\n exit 1\r\n fi\r\n}\r\n\r\nfunction unpack_zip {\r\n unzip -o server.zip\r\n rm -rf server.zip\r\n}\r\n\r\nfunction json_download_mods {\r\n echo \"Downloading mods...\"\r\n\r\n local MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n jq -c '.files[]? | select(.env.server == \"required\") | {name: .path, url: .downloads[0]}' \"${MANIFEST}\" | while read -r mod; do\r\n local FILE_URL=$(echo \"${mod}\" | jq -r '.url \/\/ empty')\r\n local FILE_NAME=$(echo \"${mod}\" | jq -r '.name \/\/ empty')\r\n\r\n if [[ -z \"${FILE_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for mod '${mod}'\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading ${FILE_URL}\"\r\n \r\n if ! wget -q \"${FILE_URL}\" -P \"${SERVER_DIR}\/mods\"; then\r\n echo -e \"\\tERROR: Failed to download mod '${FILE_NAME}'\"\r\n exit 1\r\n fi\r\n done\r\n}\r\n\r\nfunction json_download_overrides {\r\n echo \"Copying overrides...\"\r\n if [[ -d \"${SERVER_DIR}\/overrides\" ]]; then\r\n echo -e \"\\tCopying shared overrides\"\r\n cp -r \"${SERVER_DIR}\/overrides\/\"* \"${SERVER_DIR}\"\r\n rm -r \"${SERVER_DIR}\/overrides\"\r\n fi\r\n\r\n if [[ -d \"${SERVER_DIR}\/server-overrides\" ]]; then\r\n echo -e \"\\tCopying server overrides\"\r\n cp -r \"${SERVER_DIR}\/server-overrides\/\"* \"${SERVER_DIR}\"\r\n rm -r \"${SERVER_DIR}\/server-overrides\"\r\n fi\r\n}\r\n\r\nFORGE_INSTALLER_URL=\"https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/\"\r\n\r\nfunction json_download_forge {\r\n echo \"Downloading Forge...\"\r\n\r\n local MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n local MC_VERSION=$(jq -r '.dependencies.minecraft \/\/ empty' \"${MANIFEST}\")\r\n local FORGE_VERSION=$(jq -r '.dependencies.forge \/\/ empty' \"${MANIFEST}\")\r\n\r\n if [[ -z \"${MC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Minecraft version found in manifest '${MANIFEST}'\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${FORGE_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Forge version found in manifest '${MANIFEST}'\"\r\n exit 1\r\n fi\r\n\r\n FORGE_VERSION=\"${MC_VERSION}-${FORGE_VERSION}\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" || \"${MC_VERSION}\" == \"1.8.9\" ]]; then\r\n FORGE_VERSION=\"${FORGE_VERSION}-${MC_VERSION}\"\r\n fi\r\n\r\n local FORGE_JAR=\"forge-${FORGE_VERSION}.jar\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" ]]; then\r\n FORGE_JAR=\"forge-${FORGE_VERSION}-universal.jar\"\r\n fi\r\n\r\n local FORGE_URL=\"${FORGE_INSTALLER_URL}${FORGE_VERSION}\/forge-${FORGE_VERSION}\"\r\n\r\n echo -e \"\\tUsing Forge ${FORGE_VERSION} from ${FORGE_URL}\"\r\n\r\n local FORGE_INSTALLER=\"${FORGE_URL}-installer.jar\"\r\n echo -e \"\\tDownloading Forge Installer ${FORGE_VERSION} from ${FORGE_INSTALLER}\"\r\n\r\n if ! wget -q -O forge-installer.jar \"${FORGE_INSTALLER}\"; then\r\n echo -e \"\\tERROR: Failed to download Forge Installer ${FORGE_VERSION}\"\r\n exit 1\r\n fi\r\n\r\n rm -rf libraries\/net\/minecraftforge\/forge\/\r\n rm -f unix_args.txt\r\n\r\n echo -e \"\\tInstalling Forge Server ${FORGE_VERSION}\"\r\n if ! java -jar forge-installer.jar --installServer > \/dev\/null 2>&1; then\r\n echo -e \"\\tERROR: Failed to install Forge Server ${FORGE_VERSION}\"\r\n exit 1\r\n fi\r\n\r\n if [[ $MC_VERSION =~ ^1\\.(17|18|19|20|21|22|23) || $FORGE_VERSION =~ ^1\\.(17|18|19|20|21|22|23) ]]; then\r\n echo -e \"\\tDetected Forge 1.17 or newer version. Setting up Forge Unix arguments\"\r\n ln -sf libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt unix_args.txt\r\n else\r\n mv \"$FORGE_JAR\" forge-server-launch.jar\r\n echo \"forge-server-launch.jar\" > \".serverjar\"\r\n fi\r\n\r\n rm -f forge-installer.jar\r\n}\r\n\r\nFABRIC_INSTALLER_URL=\"https:\/\/meta.fabricmc.net\/v2\/versions\/installer\"\r\n\r\nfunction json_download_fabric {\r\n echo \"Downloading Fabric...\"\r\n\r\n local MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n local MC_VERSION=$(jq -r '.dependencies.minecraft \/\/ empty' \"${MANIFEST}\")\r\n local FABRIC_VERSION=$(jq -r '.dependencies.\"fabric-loader\" \/\/ empty' \"${MANIFEST}\")\r\n\r\n if [[ -z \"${MC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Minecraft version found in manifest '${MANIFEST}'\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${FABRIC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric version found in manifest '${MANIFEST}'\"\r\n exit 1\r\n fi\r\n\r\n local INSTALLER_JSON=$(wget -q -O - ${FABRIC_INSTALLER_URL} )\r\n local INSTALLER_VERSION=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].version \/\/ empty')\r\n local INSTALLER_URL=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].url \/\/ empty')\r\n\r\n if [[ -z \"${INSTALLER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric installer version found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${INSTALLER_URL}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric installer url found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading Fabric Installer ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n\r\n if ! wget -q -O fabric-installer.jar \"${INSTALLER_URL}\"; then\r\n echo -e \"\\tERROR: Failed to download Fabric Installer ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Fabric Server ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n if ! java -jar fabric-installer.jar server -mcversion \"${MC_VERSION}\" -loader \"${FABRIC_VERSION}\" -downloadMinecraft; then\r\n echo -e \"\\tERROR: Failed to install Fabric Server ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo \"fabric-server-launch.jar\" > \".serverjar\"\r\n\r\n rm -f fabric-installer.jar\r\n}\r\n\r\nQUILT_INSTALLER_URL=\"https:\/\/meta.quiltmc.org\/v3\/versions\/installer\"\r\n\r\nfunction json_download_quilt {\r\n echo \"Downloading Quilt...\"\r\n\r\n local MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n local MC_VERSION=$(jq -r '.dependencies.minecraft \/\/ empty' \"${MANIFEST}\")\r\n local QUILT_VERSION=$(jq -r '.dependencies.\"quilt-loader\" \/\/ empty' \"${MANIFEST}\")\r\n\r\n if [[ -z \"${MC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Minecraft version found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${QUILT_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt version found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n local INSTALLER_JSON=$(wget -q -O - ${QUILT_INSTALLER_URL} )\r\n local INSTALLER_VERSION=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].version \/\/ empty')\r\n local INSTALLER_URL=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].url \/\/ empty')\r\n\r\n if [[ -z \"${INSTALLER_JSON}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve Quilt installer information from manifest!\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${INSTALLER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt installer version found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${INSTALLER_URL}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt installer URL found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading Quilt Installer ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n\r\n if ! wget -q -O quilt-installer.jar \"${INSTALLER_URL}\"; then\r\n echo -e \"\\tERROR: Failed to download Quilt installer ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Quilt Server ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n if ! java -jar quilt-installer.jar install server \"${MC_VERSION}\" \"${QUILT_VERSION}\" --download-server --install-dir=.\/; then\r\n echo -e \"\\tERROR: Failed to install Quilt Server ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo \"quilt-server-launch.jar\" > \".serverjar\"\r\n\r\n rm quilt-installer.jar\r\n}\r\n\r\ninstall_required\r\n\r\nif [[ -z \"${PROJECT_ID}\" ]]; then\r\n echo \"ERROR: You must specify a PROJECT_ID environment variable!\"\r\n exit 1\r\nfi\r\n\r\nif [[ ! \"${PROJECT_ID}\" = \"zip\" ]]; then\r\n\tget_download\r\n\tunpack_zip\r\nelse\r\n\tunpack_zip\r\nfi\r\n\r\nif [[ -f \"${SERVER_DIR}\/modrinth.index.json\" ]]; then\r\n echo \"Found modrinth.index.json, installing mods\"\r\n json_download_mods\r\n json_download_overrides\r\nfi\r\n\r\nif [[ -f \"${SERVER_DIR}\/modrinth.index.json\" ]]; then\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n if [[ $(jq -r '.dependencies.forge' \"${MANIFEST}\") != \"null\" ]]; then\r\n json_download_forge\r\n fi\r\n\r\n if [[ $(jq -r '.dependencies.\"fabric-loader\"' \"${MANIFEST}\") != \"null\" ]]; then\r\n json_download_fabric\r\n fi\r\n\r\n if [[ $(jq -r '.dependencies.\"quilt-loader\"' \"${MANIFEST}\") != \"null\" ]]; then\r\n json_download_quilt\r\n fi\r\nfi\r\n\r\necho -e \"\\nInstall completed succesfully, enjoy!\"", "container": "openjdk:8-jdk-slim", "entrypoint": "bash" } }, "variables": [ - { - "name": "Modpack Version ID", - "description": "This is the modpack version ID from the Modrinth site.\r\n\r\nFor example, the version ID of 'https:\/\/modrinth.com\/modpack\/fabulously-optimized\/version\/4.7.4' is P9wA6exe", - "env_variable": "VERSION_ID", - "default_value": "latest", - "user_viewable": true, - "user_editable": true, - "rules": "string|max:8", - "field_type": "text" - }, { "name": "Modpack Project ID", "description": "This is the modpack project ID from the Modrinth site.\r\n\r\nFor example, the project ID of 'https:\/\/modrinth.com\/modpack\/fabulously-optimized\/' is 1KVo5zza", @@ -54,6 +44,16 @@ "user_editable": true, "rules": "required|string|max:8", "field_type": "text" + }, + { + "name": "Modpack Version ID", + "description": "This is the modpack version ID from the Modrinth site.\r\n\r\nFor example, the version ID of 'https:\/\/modrinth.com\/modpack\/fabulously-optimized\/version\/4.7.4' is P9wA6exe", + "env_variable": "VERSION_ID", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "string|max:8", + "field_type": "text" } ] } \ No newline at end of file From 2e233179e6b71f9d1a048a144d9e92ca48a7c236 Mon Sep 17 00:00:00 2001 From: David Katz Date: Fri, 5 May 2023 19:06:27 -0700 Subject: [PATCH 195/473] Add new and improved CurseForge generic egg --- game_eggs/minecraft/java/curseforge/README.md | 23 +++++++ .../curseforge/egg-curse-forge-generic.json | 69 +++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 game_eggs/minecraft/java/curseforge/README.md create mode 100644 game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json diff --git a/game_eggs/minecraft/java/curseforge/README.md b/game_eggs/minecraft/java/curseforge/README.md new file mode 100644 index 00000000..d74cba0f --- /dev/null +++ b/game_eggs/minecraft/java/curseforge/README.md @@ -0,0 +1,23 @@ +# CurseForge Generic + +## This is a generic egg for CurseForge modpacks + +You will need to give it a modpack project ID. The project ID for [All the Mods 8 - ATM8](https://www.curseforge.com/minecraft/modpacks/all-the-mods-8) is `520914` for example. +This can be found on the modpack page in the `About Project` section in the right sidebar. + +You can also optionally specify a file ID. If you do not specify a file ID, the latest version will be used. +The file ID for the server pack for [All the Mods 8 - ATM8](https://www.curseforge.com/minecraft/modpacks/all-the-mods-8) version `1.0.17` is `4504876` for example. +This can be found on the modpack page by clicking the wanted file and copying the id at the end of the URL (the number after `/files/`). + +The script will automatically setup of Forge, Fabric, or Quilt depending on the modpack. + +You *must* specify a CurseForge API key. +You can find out how to get an API key [here](https://support.curseforge.com/en/support/solutions/articles/9000208346-about-the-curseforge-api-and-how-to-apply-for-a-key) + +## Server Ports + +The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. + +| Port | default | +|-------|---------| +| Game | 25565 | \ No newline at end of file diff --git a/game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json b/game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json new file mode 100644 index 00000000..05b1b87b --- /dev/null +++ b/game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json @@ -0,0 +1,69 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-05-05T19:03:39-07:00", + "name": "CurseForge Generic", + "author": "contact@chromozone.dev", + "description": "A generic egg for a CurseForge modpack.", + "features": [ + "eula", + "java_version", + "pid_limit" + ], + "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" + }, + "file_denylist": [], + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true $([[ ! -f unix_args.txt ]] && printf %s \"-jar `cat .serverjar`\" || printf %s \"@unix_args.txt\")", + "config": { + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\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\n# shellcheck disable=SC2155\r\n#\r\n# CurseForge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n: \"${SERVER_DIR:=\/mnt\/server}\"\r\n: \"${PROJECT_ID:=}\"\r\n: \"${VERSION_ID:=}\"\r\n: \"${API_KEY:=}\"\r\n\r\nif [[ ! -d $SERVER_DIR ]]; then\r\n mkdir -p \"$SERVER_DIR\"\r\nfi\r\n\r\nif ! cd \"$SERVER_DIR\"; then\r\n echo -e \"Failed to change directory to ${SERVER_DIR}\"\r\n exit 1\r\nfi\r\n\r\nfunction install_required {\r\n echo -e \"Installing required packages...\"\r\n echo -e \"\\tRunning apt update\"\r\n apt update > \/dev\/null 2>&1 || { echo \"apt update failed!\"; exit 1; }\r\n echo -e \"\\tRunning apt install\"\r\n apt install -y wget jq unzip > \/dev\/null 2>&1 || { echo \"apt install failed!\"; exit 1; }\r\n}\r\n\r\nCURSEFORGE_API_URL=\"https:\/\/api.curseforge.com\/v1\/mods\/\"\r\nCURSEFORGE_API_HEADERS=(\"--header=Accept: application\/json\" \"--header=x-api-key: ${API_KEY}\")\r\n\r\nfunction get_download {\r\n echo -e \"Retrieving CurseForge project information...\"\r\n local PROJECT_DATA=$(wget -q \"${CURSEFORGE_API_HEADERS[@]}\" \"${CURSEFORGE_API_URL}${PROJECT_ID}\" -O -)\r\n local PROJECT_TITLE=$(echo \"$PROJECT_DATA\" | jq -r '.data.name \/\/ empty')\r\n\r\n if [[ -z \"${PROJECT_DATA}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve project data for project id '${PROJECT_ID}'\"\r\n exit 1\r\n fi\r\n\r\n local IS_SERVER_PACK=false\r\n\r\n if [[ -z \"${VERSION_ID}\" || \"${VERSION_ID}\" == \"latest\" ]]; then\r\n echo -e \"\\tNo version ID specified, using latest version\"\r\n VERSION_ID=$(echo \"$PROJECT_DATA\" | jq -r '.data.mainFileId \/\/ empty')\r\n\r\n local VERSION_SERVER_PACK=\"$(echo -e \"${PROJECT_DATA}\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.data.latestFiles[] | select(.id|tostring==$VERSION_ID) | .isServerPack')\"\r\n local VERSION_SERVER_ID=\"$(echo -e \"${PROJECT_DATA}\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.data.latestFiles[] | select(.id|tostring==$VERSION_ID) | .serverPackFileId')\"\r\n\r\n if [[ \"${VERSION_SERVER_PACK}\" == \"false\" && -n \"${VERSION_SERVER_ID}\" ]]; then\r\n echo -e \"\\tFound server pack version id '${VERSION_SERVER_ID}'\"\r\n VERSION_ID=$VERSION_SERVER_ID\r\n IS_SERVER_PACK=true\r\n elif [[ \"${VERSION_SERVER_PACK}\" == \"true\" ]]; then\r\n IS_SERVER_PACK=true\r\n fi\r\n else\r\n echo -e \"\\tChecking if provided version id '${VERSION_ID}' exists\"\r\n\r\n local VERSION_SERVER_PACK=\"$(echo -e \"${PROJECT_DATA}\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.data.latestFiles[]? | select(.serverPackFileId|tostring==$VERSION_ID) | .serverPackFileId')\"\r\n local VERSION_SERVER_ID;\r\n if [[ -n \"${VERSION_SERVER_PACK}\" ]]; then\r\n VERSION_ID=$VERSION_SERVER_PACK\r\n IS_SERVER_PACK=true\r\n elif [[ $(echo \"$PROJECT_DATA\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.data.latestFiles[]? | select(.id|tostring == $VERSION_ID) | .id') == \"${VERSION_ID}\" ]]; then\r\n VERSION_SERVER_PACK=\"$(echo -e \"${PROJECT_DATA}\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.data.latestFiles[] | select(.id|tostring==$VERSION_ID) | .isServerPack')\"\r\n VERSION_SERVER_ID=\"$(echo -e \"${PROJECT_DATA}\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.data.latestFiles[] | select(.id|tostring==$VERSION_ID) | .serverPackFileId')\"\r\n\r\n if [[ \"${VERSION_SERVER_PACK}\" == \"false\" && -n \"${VERSION_SERVER_ID}\" ]]; then\r\n echo -e \"\\tFound server pack version id '${VERSION_SERVER_ID}'\"\r\n VERSION_ID=$VERSION_SERVER_ID\r\n IS_SERVER_PACK=true\r\n elif [[ \"${VERSION_SERVER_PACK}\" == \"true\" ]]; then\r\n IS_SERVER_PACK=true\r\n fi\r\n else\r\n echo -e \"\\tERROR: Version id '${VERSION_ID}' not found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n fi\r\n\r\n # Check if version id is unset or empty string\r\n if [[ -z \"${VERSION_ID}\" ]]; then\r\n echo -e \"\\tERROR: No version id found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n\r\n if [[ \"${IS_SERVER_PACK}\" == \"false\" ]]; then\r\n echo -e \"\\tWARNING: Version id '${VERSION_ID}' is not a server pack, attempting to use client files\"\r\n fi\r\n\r\n # get json data to work with\r\n echo -e \"\\tRetrieving version information for '${VERSION_ID}'\"\r\n local JSON_DATA=$(wget -q \"${CURSEFORGE_API_HEADERS[@]}\" \"${CURSEFORGE_API_URL}${PROJECT_ID}\/files\/${VERSION_ID}\/download-url\" -O -)\r\n\r\n if [[ -z \"${JSON_DATA}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve version data for version id '${VERSION_ID}'\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tParsing CurseForge pack download url\"\r\n\r\n local DOWNLOAD_URL=$(echo -e \"$JSON_DATA\" | jq -r '.data \/\/ empty')\r\n if [[ -z \"${DOWNLOAD_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for version ${VERSION_ID}\"\r\n exit 1\r\n fi\r\n\r\n # download modpack files\r\n echo -e \"\\tDownloading ${DOWNLOAD_URL}\"\r\n if ! wget -q \"${DOWNLOAD_URL}\" -O server.zip; then\r\n echo -e \"Download failed!\"\r\n exit 1\r\n fi\r\n}\r\n\r\nfunction get_loader {\r\n echo -e \"Retrieving loader information...\"\r\n\r\n local PROJECT_DATA=$(wget -q \"${CURSEFORGE_API_HEADERS[@]}\" \"${CURSEFORGE_API_URL}${PROJECT_ID}\" -O -)\r\n if [[ -z \"${PROJECT_DATA}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve project data for project id '${PROJECT_ID}'\"\r\n exit 1\r\n fi\r\n\r\n local CLIENT_VERSION_ID;\r\n if [[ $(echo \"$PROJECT_DATA\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.data.latestFiles[]? | select(.id|tostring == $VERSION_ID) | .id') != \"${VERSION_ID}\" ]]; then\r\n # Check if the provided version id is a server pack\r\n VERSION_CLIENT_PACK=\"$(echo -e \"${PROJECT_DATA}\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.data.latestFiles[]? | select(.serverPackFileId|tostring==$VERSION_ID) | .id')\"\r\n\r\n if [[ -n \"${VERSION_CLIENT_PACK}\" ]]; then\r\n CLIENT_VERSION_ID=$VERSION_CLIENT_PACK\r\n else\r\n echo -e \"\\tERROR: Version id '${VERSION_ID}' not found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n else\r\n CLIENT_VERSION_ID=$VERSION_ID\r\n fi\r\n\r\n echo -e \"\\tRetrieving version information for '${CLIENT_VERSION_ID}'\"\r\n local JSON_DATA=$(wget -q \"${CURSEFORGE_API_HEADERS[@]}\" \"${CURSEFORGE_API_URL}${PROJECT_ID}\/files\/${CLIENT_VERSION_ID}\/download-url\" -O -)\r\n\r\n echo -e \"\\tParsing CurseForge pack download url\"\r\n\r\n local DOWNLOAD_URL=$(echo -e \"$JSON_DATA\" | jq -r '.data \/\/ empty')\r\n\r\n if [[ -z \"${DOWNLOAD_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for version ${CLIENT_VERSION_ID}\"\r\n exit 1\r\n fi\r\n\r\n # download modpack files\r\n echo -e \"\\tDownloading ${DOWNLOAD_URL}\"\r\n wget -q \"${DOWNLOAD_URL}\" -O client.zip\r\n\r\n echo -e \"\\tUnpacking client manifest\"\r\n unzip -jo client.zip manifest.json -d \"${SERVER_DIR}\"\r\n mv \"${SERVER_DIR}\/manifest.json\" \"${SERVER_DIR}\/client.manifest.json\" # rename to avoid conflicts with main manifest\r\n rm -rf client.zip\r\n\r\n echo -e \"\\tParsing client manifest\"\r\n local MANIFEST=\"${SERVER_DIR}\/client.manifest.json\"\r\n\r\n LOADER_ID=$(jq -r '.minecraft.modLoaders[]? | select(.primary == true) | .id' \"${MANIFEST}\")\r\n LOADER_NAME=$(echo \"${LOADER_ID}\" | cut -d'-' -f1)\r\n LOADER_VERSION=$(echo \"${LOADER_ID}\" | cut -d'-' -f2)\r\n\r\n if [[ -z \"${LOADER_NAME}\" || -z \"${LOADER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No loader found in client manifest!\"\r\n exit 1\r\n fi\r\n\r\n MINECRAFT_VERSION=$(jq -r '.minecraft.version \/\/ empty' \"${MANIFEST}\")\r\n\r\n if [[ -z \"${MINECRAFT_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No minecraft version found in client manifest!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tFound loader ${LOADER_NAME} ${LOADER_VERSION} for Minecraft ${MINECRAFT_VERSION}\"\r\n}\r\n\r\nfunction unzip-strip() (\r\n set -u\r\n\r\n local archive=$1\r\n local destdir=${2:-}\r\n shift; shift || :\r\n echo -e \"\\tUnpacking ${archive} to ${destdir}\"\r\n\r\n echo -e \"\\tCreating temporary directory\"\r\n local tmpdir=\/mnt\/server\/tmp\r\n if ! mkdir -p \"${tmpdir}\"; then\r\n echo -e \"\\tERROR: mkdir failed to create temporary directory\"\r\n return 1\r\n fi\r\n\r\n trap 'rm -rf -- \"$tmpdir\"' EXIT\r\n\r\n echo -e \"\\tUnpacking archive\"\r\n\r\n if ! unzip -q \"$archive\" -d \"$tmpdir\"; then\r\n echo -e \"\\tERROR: unzip failed to unpack archive\"\r\n return 1\r\n fi\r\n\r\n echo -e \"\\tSetting glob settings\"\r\n\r\n shopt -s dotglob\r\n\r\n echo -e \"\\tCleaning up directory structure\"\r\n\r\n local files=(\"$tmpdir\"\/*) name i=1\r\n\r\n if (( ${#files[@]} == 1 )) && [[ -d \"${files[0]}\" ]]; then\r\n name=$(basename \"${files[0]}\")\r\n files=(\"$tmpdir\"\/*\/*)\r\n else\r\n name=$(basename \"$archive\"); name=${archive%.*}\r\n files=(\"$tmpdir\"\/*)\r\n fi\r\n\r\n if [[ -z \"$destdir\" ]]; then\r\n destdir=.\/\"$name\"\r\n fi\r\n\r\n while [[ -f \"$destdir\" ]]; do\r\n destdir=${destdir}-$((i++));\r\n done\r\n\r\n echo -e \"\\tCopying files to ${destdir}\"\r\n\r\n mkdir -p \"$destdir\"\r\n cp -ar \"$@\" -t \"$destdir\" -- \"${files[@]}\"\r\n rm -rf \"$tmpdir\"\r\n)\r\n\r\nfunction unpack_zip {\r\n echo -e \"Unpacking server files...\"\r\n unzip-strip server.zip \"${SERVER_DIR}\"\r\n rm -rf server.zip\r\n}\r\n\r\nfunction json_download_mods {\r\n echo \"Downloading mods...\"\r\n\r\n local MANIFEST=\"${SERVER_DIR}\/manifest.json\"\r\n jq -c '.files[]? | select(.required == true) | {project: .projectID, file: .fileID}' \"${MANIFEST}\" | while read -r mod; do\r\n local MOD_PROJECT_ID=$(echo \"${mod}\" | jq -r '.project \/\/ empty')\r\n local MOD_FILE_ID=$(echo \"${mod}\" | jq -r '.file \/\/ empty')\r\n\r\n if [[ -z \"${MOD_PROJECT_ID}\" || -z \"${MOD_FILE_ID}\" ]]; then\r\n echo -e \"\\tERROR: Failed to parse project id or file id for mod '${mod}'\"\r\n exit 1\r\n fi\r\n\r\n local FILE_URL=$(wget -q \"${CURSEFORGE_API_HEADERS[@]}\" \"${CURSEFORGE_API_URL}${MOD_PROJECT_ID}\/files\/${MOD_FILE_ID}\/download-url\" -O - | jq -r '.data \/\/ empty')\r\n\r\n if [[ -z \"${FILE_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for mod ${MOD_PROJECT_ID} ${MOD_FILE_ID}\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading ${FILE_URL}\"\r\n\r\n if ! wget -q \"${FILE_URL}\" -P \"${SERVER_DIR}\/mods\"; then\r\n echo -e \"\\tERROR: Failed to download mod ${MOD_PROJECT_ID} ${MOD_FILE_ID}\"\r\n exit 1\r\n fi\r\n done\r\n}\r\n\r\nfunction json_download_overrides {\r\n echo \"Copying overrides...\"\r\n if [[ -d \"${SERVER_DIR}\/overrides\" ]]; then\r\n cp -r \"${SERVER_DIR}\/overrides\/\"* \"${SERVER_DIR}\"\r\n rm -r \"${SERVER_DIR}\/overrides\"\r\n fi\r\n}\r\n\r\nFORGE_INSTALLER_URL=\"https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/\"\r\n\r\nfunction json_download_forge {\r\n echo \"Downloading Forge...\"\r\n\r\n local MC_VERSION=$MINECRAFT_VERSION\r\n local FORGE_VERSION=$LOADER_VERSION\r\n\r\n FORGE_VERSION=\"${MC_VERSION}-${FORGE_VERSION}\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" || \"${MC_VERSION}\" == \"1.8.9\" ]]; then\r\n FORGE_VERSION=\"${FORGE_VERSION}-${MC_VERSION}\"\r\n fi\r\n\r\n local FORGE_JAR=\"forge-${FORGE_VERSION}.jar\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" ]]; then\r\n FORGE_JAR=\"forge-${FORGE_VERSION}-universal.jar\"\r\n fi\r\n\r\n local FORGE_URL=\"${FORGE_INSTALLER_URL}${FORGE_VERSION}\/forge-${FORGE_VERSION}\"\r\n\r\n echo -e \"\\tUsing Forge ${FORGE_VERSION} from ${FORGE_URL}\"\r\n\r\n local FORGE_INSTALLER=\"${FORGE_URL}-installer.jar\"\r\n echo -e \"\\tDownloading Forge Installer ${FORGE_VERSION} from ${FORGE_INSTALLER}\"\r\n\r\n if ! wget -q -O forge-installer.jar \"${FORGE_INSTALLER}\"; then\r\n echo -e \"\\tERROR: Failed to download Forge Installer ${FORGE_VERSION}\"\r\n exit 1\r\n fi\r\n\r\n # Remove old Forge files so we can safely update\r\n rm -rf libraries\/net\/minecraftforge\/forge\/\r\n rm -f unix_args.txt\r\n\r\n echo -e \"\\tInstalling Forge Server ${FORGE_VERSION}\"\r\n if ! java -jar forge-installer.jar --installServer > \/dev\/null 2>&1; then\r\n echo -e \"\\tERROR: Failed to install Forge Server ${FORGE_VERSION}\"\r\n exit 1\r\n fi\r\n\r\n if [[ $MC_VERSION =~ ^1\\.(17|18|19|20|21|22|23) || $FORGE_VERSION =~ ^1\\.(17|18|19|20|21|22|23) ]]; then\r\n echo -e \"\\tDetected Forge 1.17 or newer version. Setting up Forge Unix arguments\"\r\n ln -sf libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt unix_args.txt\r\n else\r\n mv \"$FORGE_JAR\" forge-server-launch.jar\r\n echo \"forge-server-launch.jar\" > \".serverjar\"\r\n fi\r\n\r\n rm -f forge-installer.jar\r\n}\r\n\r\nFABRIC_INSTALLER_URL=\"https:\/\/meta.fabricmc.net\/v2\/versions\/installer\"\r\n\r\nfunction json_download_fabric {\r\n echo \"Downloading Fabric...\"\r\n\r\n local MC_VERSION=$MINECRAFT_VERSION\r\n local FABRIC_VERSION=$LOADER_VERSION\r\n\r\n local INSTALLER_JSON=$(wget -q -O - ${FABRIC_INSTALLER_URL} )\r\n local INSTALLER_VERSION=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].version \/\/ empty')\r\n local INSTALLER_URL=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].url \/\/ empty')\r\n\r\n if [[ -z \"${INSTALLER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric installer version found\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${INSTALLER_URL}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric installer url found\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading Fabric Installer ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n\r\n if ! wget -q -O fabric-installer.jar \"${INSTALLER_URL}\"; then\r\n echo -e \"\\tERROR: Failed to download Fabric Installer ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Fabric Server ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n if ! java -jar fabric-installer.jar server -mcversion \"${MC_VERSION}\" -loader \"${FABRIC_VERSION}\" -downloadMinecraft; then\r\n echo -e \"\\tERROR: Failed to install Fabric Server ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo \"fabric-server-launch.jar\" > \".serverjar\"\r\n\r\n rm -f fabric-installer.jar\r\n}\r\n\r\nQUILT_INSTALLER_URL=\"https:\/\/meta.quiltmc.org\/v3\/versions\/installer\"\r\n\r\nfunction json_download_quilt {\r\n echo \"Downloading Quilt...\"\r\n\r\n local MC_VERSION=$MINECRAFT_VERSION\r\n local QUILT_VERSION=$LOADER_VERSION\r\n\r\n local INSTALLER_JSON=$(wget -q -O - ${QUILT_INSTALLER_URL} )\r\n local INSTALLER_VERSION=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].version \/\/ empty')\r\n local INSTALLER_URL=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].url \/\/ empty')\r\n\r\n if [[ -z \"${INSTALLER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt installer version found\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${INSTALLER_URL}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt installer URL found\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading Quilt Installer ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n\r\n if ! wget -q -O quilt-installer.jar \"${INSTALLER_URL}\"; then\r\n echo -e \"\\tERROR: Failed to download Quilt Installer ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Quilt Server ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n if ! java -jar quilt-installer.jar install server \"${MC_VERSION}\" \"${QUILT_VERSION}\" --download-server --install-dir=.\/; then\r\n echo -e \"\\tERROR: Failed to install Quilt Server ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo \"quilt-server-launch.jar\" > \".serverjar\"\r\n\r\n rm quilt-installer.jar\r\n}\r\n\r\ninstall_required\r\n\r\nif [[ -z \"${PROJECT_ID}\" ]]; then\r\n echo \"ERROR: You must specify a PROJECT_ID environment variable!\"\r\n exit 1\r\nfi\r\n\r\nif [[ ! \"${PROJECT_ID}\" = \"zip\" ]]; then\r\n\tget_download\r\nfi\r\n\r\nget_loader\r\nunpack_zip\r\n\r\nif [[ -f \"${SERVER_DIR}\/manifest.json\" ]]; then\r\n echo \"Found manifest.json, installing mods\"\r\n json_download_mods\r\n json_download_overrides\r\nfi\r\n\r\nif [[ -f \"${SERVER_DIR}\/client.manifest.json\" ]]; then\r\n MANIFEST=\"${SERVER_DIR}\/client.manifest.json\"\r\n\r\n if [[ $LOADER_NAME == \"forge\" ]]; then\r\n json_download_forge\r\n fi\r\n\r\n if [[ $LOADER_NAME == \"fabric\" ]]; then\r\n json_download_fabric\r\n fi\r\n\r\n if [[ $LOADER_NAME == \"quilt\" ]]; then\r\n json_download_quilt\r\n fi\r\nfi\r\n\r\necho -e \"\\nInstall completed succesfully, enjoy!\"", + "container": "openjdk:8-jdk-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Modpack Project ID", + "description": "The modpack project ID from the CurseForge site on the pack page, or 'zip' if installing from an uploaded server.zip file.\r\n\r\nFor example, the project Id of https:\/\/www.curseforge.com\/minecraft\/modpacks\/bofa-mods ID is 375152", + "env_variable": "PROJECT_ID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Modpack File ID", + "description": "The file ID belonging to a specific version of a modpack. Can either be the main file or the file ID associated with the server pack.\r\n\r\nIf not provided the script will attempt to retrieve the latest server pack or client pack available.", + "env_variable": "VERSION_ID", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "numeric", + "field_type": "text" + }, + { + "name": "CurseForge API Key", + "description": "A CurseForge API key is required to use this egg. You can learn how to get an API key here: https:\/\/support.curseforge.com\/en\/support\/solutions\/articles\/9000208346-about-the-curseforge-api-and-how-to-apply-for-a-key", + "env_variable": "API_KEY", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:60", + "field_type": "text" + } + ] +} \ No newline at end of file From 9458128cf80e4723f572010cca0444430619916e Mon Sep 17 00:00:00 2001 From: David Katz Date: Fri, 5 May 2023 19:10:36 -0700 Subject: [PATCH 196/473] Update CurseForge in READMEs and remove old egg --- README.md | 1 + game_eggs/README.md | 1 + game_eggs/minecraft/README.md | 2 +- .../java/forge/curseforge-generic/README.md | 24 ------- .../egg-curseforge-generic.json | 69 ------------------- 5 files changed, 3 insertions(+), 94 deletions(-) delete mode 100644 game_eggs/minecraft/java/forge/curseforge-generic/README.md delete mode 100644 game_eggs/minecraft/java/forge/curseforge-generic/egg-curseforge-generic.json diff --git a/README.md b/README.md index 2b07e1aa..544354ec 100644 --- a/README.md +++ b/README.md @@ -158,6 +158,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [PocketMine MP](game_eggs/minecraft/bedrock/pocketmine_mp) * [Java](game_eggs/minecraft/java) Servers for Java Minecraft + * [CurseForge](game_eggs/minecraft/java/curseforge) * [Cuberite](game_eggs/minecraft/java/cuberite) * [Fabric](game_eggs/minecraft/java/fabric) * [Feather](game_eggs/minecraft/java/feather) diff --git a/game_eggs/README.md b/game_eggs/README.md index f1a566b2..005058fd 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -58,6 +58,7 @@ * [PocketMine MP](minecraft/bedrock/pocketmine_mp) * [Java](minecraft/java) Servers for Java Minecraft + * [CurseForge](minecraft/java/curseforge) * [Cuberite](minecraft/java/cuberite) * [Fabric](minecraft/java/fabric) * [Feather](minecraft/java/feather) diff --git a/game_eggs/minecraft/README.md b/game_eggs/minecraft/README.md index d4661d98..3c7b68a2 100644 --- a/game_eggs/minecraft/README.md +++ b/game_eggs/minecraft/README.md @@ -15,11 +15,11 @@ It’s set in infinitely-generated worlds of wide open terrain - icy mountains, ## [Java](java) Servers for Java Minecraft * [Cuberite](java/cuberite) +* [CurseForge](java/curseforge) * [Fabric](java/fabric) * [Feather](java/feather) * [Forge](java/forge) * [Forge](java/forge/forge) - * [CurseForge Generic](java/forge/curseforge-generic) * [Feed The Beast](java/ftb) * [Glowstone](java/glowstone) * [Limbo](java/limbo) diff --git a/game_eggs/minecraft/java/forge/curseforge-generic/README.md b/game_eggs/minecraft/java/forge/curseforge-generic/README.md deleted file mode 100644 index 6dbb3c44..00000000 --- a/game_eggs/minecraft/java/forge/curseforge-generic/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# Forge Generic - -## This is a generic egg for curseforge modpacks - -You will need to give it a modpack ID. The ID for BOFA mods is `375152` for example. -This can be found on the modpack page in the `About Project` section in the upper right corner. - -This will grab the latest release when the version is set to latest. - -It "should" grab versions of the pack based on the modpack version numbers - -## API Keys - -You will need to get an API key to run the installer now. Make an account at https://console.curseforge.com/ - -https://console.curseforge.com/#/api-keys - -## Server Ports - -The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. - -| Port | default | -|-------|---------| -| Game | 25565 | diff --git a/game_eggs/minecraft/java/forge/curseforge-generic/egg-curseforge-generic.json b/game_eggs/minecraft/java/forge/curseforge-generic/egg-curseforge-generic.json deleted file mode 100644 index f64e51eb..00000000 --- a/game_eggs/minecraft/java/forge/curseforge-generic/egg-curseforge-generic.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v2", - "update_url": null - }, - "exported_at": "2022-10-18T22:00:46+02:00", - "name": "Curseforge Generic", - "author": "parker@parkervcp.com", - "description": "A generic egg for a forge modpack", - "features": [ - "eula", - "java_version", - "pid_limit" - ], - "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" - }, - "file_denylist": [], - "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar server.jar", - "config": { - "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"server-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\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\nmkdir -p \/mnt\/server\r\n\r\nfunction install_required {\r\n apt update\r\n apt install -y curl jq unzip dos2unix\r\n}\r\n\r\nfunction get_download {\r\n # get json data to work with\r\n echo -e \"Curling the json for the modpack\"\r\n echo -e \"running: curl -sSLX GET https:\/\/api.curseforge.com\/v1\/mods\/${MODPACK_ID} -H 'Accept: application\/json' -H 'x-api-key: API_KEY'\"\r\n JSON_DATA=$(curl -ssLX GET https:\/\/api.curseforge.com\/v1\/mods\/${MODPACK_ID} -H 'Accept: application\/json' -H \"x-api-key: ${API_KEY}\")\r\n\r\n # if no modpack version is set or is set to latest\r\n if [ -z ${MODPACK_VERSION} ] || [ \"${MODPACK_VERSION}\" = \"latest\" ]; then\r\n echo -e \"Getting latest download url\"\r\n # parse data to get the download url\r\n FILE_ID=$(echo -e ${JSON_DATA} | jq -r \".data.mainFileId\")\r\n echo -e \"File ID is: ${FILE_ID}\"\r\n if [ \"$(echo -e ${JSON_DATA} | jq -r --arg FILE_ID \"$FILE_ID\" \".data.latestFiles[] | select(.id==$FILE_ID) | .isServerPack\")\" == \"false\" ] && [ \"$(echo -e ${JSON_DATA} | jq -r --arg FILE_ID \"$FILE_ID\" \".data.latestFiles[] | select(.id==$FILE_ID) | .serverPackFileId\")\" != \"null\" ]; then\r\n FILE_ID=$(echo -e ${JSON_DATA} | jq -r --arg FILE_ID \"$FILE_ID\" \".data.latestFiles[] | select(.id==$FILE_ID) | .serverPackFileId\")\r\n DOWNLOAD_URL=$(curl -sSL -H 'Accept: application\/json' -H \"x-api-key: ${API_KEY}\" https:\/\/api.curseforge.com\/v1\/mods\/${MODPACK_ID}\/files\/${FILE_ID}\/download-url | jq -r \".data\")\r\n else\r\n DOWNLOAD_URL=$(curl -sSL -H 'Accept: application\/json' -H \"x-api-key: ${API_KEY}\" https:\/\/api.curseforge.com\/v1\/mods\/${MODPACK_ID}\/files\/${FILE_ID}\/download-url | jq -r \".data\")\r\n fi\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n else\r\n echo -e \"Looking for download url for version ${MODPACK_VERSION}\"\r\n # parse files for version match\r\n FILES_JSON_DATA=$(curl -sSL -H 'Accept: application\/json' -H \"x-api-key: ${API_KEY}\" https:\/\/api.curseforge.com\/v1\/mods\/${MODPACK_ID}\/files)\r\n # get element number to get the exact location in the json\r\n FILES_JSON_ELEMENT=$(echo -e ${FILES_JSON_DATA} | jq --arg VERSION \"${MODPACK_VERSION}\" '.[] | select(.displayName) | .displayName | contains($VERSION)' | grep -n true | cut -f1 -d: | tail -1)\r\n # if there wasn't a match default to latest\r\n if [ ! -z ${FILES_JSON_ELEMENT} ]; then\r\n echo -e \"No matching version found\"\r\n echo -e \"defaulting to latest\"\r\n DOWNLOAD_URL=$(echo -e ${FILES_JSON_DATA} | jq --arg ELEMENT \"${FILES_JSON_ELEMENT}\" '.[$ELEMENT|tonumber-1] | .downloadUrl')\r\n else\r\n echo -e \"Version match found\"\r\n DOWNLOAD_URL=$(echo -e ${JSON_DATA} | jq -r .latestFiles[0].downloadUrl)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n fi\r\n fi\r\n ## download modpack files\r\n cd \/mnt\/server\r\n echo \"Executing curl -L ${DOWNLOAD_URL} -o server.zip\"\r\n curl -L -g \"${DOWNLOAD_URL}\" -o server.zip\r\n unzip -o server.zip\r\n rm -rf server.zip\r\n}\r\n\r\nfunction unpack_zip {\r\n cd \/mnt\/server\r\n unzip -o server.zip\r\n}\r\n\r\nfunction forge_install {\r\n echo -e \"\\nInstalling forge server using the installer jar file.\\n\"\r\n if [ -f \/mnt\/server\/*installer.jar ]; then\r\n\t\tmv *installer.jar installer.jar\r\n java -jar installer.jar --installServer || { echo -e \"install failed\"; exit 4; }\r\n else\r\n echo \"No forge installer found moving on.\"\r\n fi\r\n mv FTBServer.jar server.jar\r\n}\r\n\r\nfunction forge_cleanup {\r\n echo -e \"\\nDeleting installer jar file and cleaning up.\\n\"\r\n rm -rf *installer.jar\r\n if [ ! -f \/mnt\/server\/forge*universal.jar ]; then\r\n mv -v \/mnt\/server\/*\/* \/mnt\/server\/\r\n if [ ! -f \/mnt\/server\/*universal.jar ]; then\r\n mv forge*.jar server.jar\r\n else\r\n mv forge*universal.jar server.jar \r\n fi\r\n else\r\n mv forge*universal.jar server.jar\r\n fi\r\n}\r\n\r\nfunction json_download_prework {\r\n mkdir -p \/mnt\/server\/mods\r\n cd \/mnt\/server\/mods\r\n}\r\n\r\nfunction json_download_mods {\r\n MANIFEST=\/mnt\/server\/manifest.json\r\n for mod in $(jq -c '.files[]' ${MANIFEST} ); do\r\n projID=$(echo $mod | jq -r \".projectID\")\r\n fileID=$(echo $mod | jq -r \".fileID\")\r\n URL=$(curl -sSL -H 'Accept: application\/json' -H \"x-api-key: ${API_KEY}\" https:\/\/api.curseforge.com\/v1\/mods\/${projID}\/files\/${fileID}\/download-url | jq -r \".data\")\r\n # this is saving everything as \/mnt\/server\/mods\/download\r\n echo \"Mod direct url: ${URL}\"\r\n curl -JLO \"${URL}\"\r\n done\r\n}\r\n\r\nfunction json_download_forge {\r\n cd \/mnt\/server\r\n FORGE=$(jq -r '.minecraft.modLoaders[0].id' \/mnt\/server\/manifest.json | cut -d '-' -f2)\r\n MCVER=$(jq -r '.minecraft.version' \/mnt\/server\/manifest.json)\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n FORGE_DOWNLOAD=https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -e \"Download link is $FORGE_DOWNLOAD\/$FORGE_VERSION\/forge-$FORGE_VERSION\"\r\n curl -sS $FORGE_DOWNLOAD\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n curl -sS $FORGE_DOWNLOAD\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -o universal.jar\r\n java -jar installer.jar --installServer || { echo -e \"install failed\"; exit 4; }\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\nfunction json_download_overrides {\r\n if [ -d \/mnt\/server\/overrides ]; then\r\n mv \/mnt\/server\/overrides\/mods\/* \/mnt\/server\/mods\/\r\n rmdir \/mnt\/server\/overrides\/mods\r\n mv \/mnt\/server\/overrides\/* \/mnt\/server\r\n rmdir \/mnt\/server\/overrides\r\n fi\r\n}\r\n\r\nfunction cfg_download_forge {\r\n dos2unix settings.cfg # In case the pack was distributed with Windows-style line endings in the cfg file\r\n MCVER=`grep 'MCVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n FORGE=`grep 'FORGEVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n \r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n echo -e ${FORGE_VERSION}\r\n FORGE_DOWNLOAD=https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\r\n PARSED_LINK=$(echo -e \"$FORGE_DOWNLOAD\/$FORGE_VERSION\/forge-$FORGE_VERSION\" | sed 's\/ \/\/g')\r\n\r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -e \"Download link is $PARSED_LINK\"\r\n curl -sSL $PARSED_LINK-installer.jar -o installer.jar\r\n curl -sSL $PARSED_LINK-universal.jar -o universal.jar\r\n java -jar installer.jar --installServer || { echo -e \"install failed\"; exit 4; }\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\nfunction ftb_install {\r\n chmod +x \/mnt\/server\/settings.sh \r\n . \/mnt\/server\/settings.sh \r\n curl https:\/\/s3.amazonaws.com\/Minecraft.Download\/versions\/${MCVER}\/minecraft_server.${MCVER}.jar -o ${JARFILE} \r\n curl https:\/\/libraries.minecraft.net\/${LAUNCHWRAPPER} -o \/mnt\/server\/libraries\/${LAUNCHWRAPPER}\r\n}\r\n\r\ninstall_required\r\nif [ ! -z ${MODPACK_ID} ] && [ ! \"${MODPACK_ID}\" = \"zip\" ]; then\r\n\tget_download\r\n\tunpack_zip\r\n rm -rf server.zip\r\nelse\r\n\tunpack_zip\r\nfi\r\n\r\nif [ -f \/mnt\/server\/manifest.json ]; then\r\n json_download_prework\r\n json_download_mods\r\n json_download_overrides\r\n json_download_forge\r\nelif [ -f \/mnt\/server\/settings.cfg ]; then\r\n cfg_download_forge\r\nelif [ -f \/mnt\/server\/version.json ]; then\r\n if [ \"$(cat \/mnt\/server\/version.json | jq -r '.packID | contains(\"FTB\")')\" == \"true\" ]; then\r\n ftb_install\r\n fi\r\nelse\r\n forge_install\r\n forge_cleanup\r\nfi\r\n\r\necho -e \"\\n\\nInstall completed succesfully, enjoy!\"", - "container": "openjdk:8-jdk-slim", - "entrypoint": "bash" - } - }, - "variables": [ - { - "name": "Modpack Project ID", - "description": "The modpack project ID from the curseforge site on the pack page.\r\nOr 'zip' if installing from an uploaded server.zip file.\r\n(Ex. https:\/\/www.curseforge.com\/minecraft\/modpacks\/bofa-mods ID is 375152)", - "env_variable": "MODPACK_ID", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "required|string", - "field_type": "text" - }, - { - "name": "Modpack Version", - "description": "Version of the modpack to use.", - "env_variable": "MODPACK_VERSION", - "default_value": "latest", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|max:20", - "field_type": "text" - }, - { - "name": "API Key", - "description": "This is a new requirement and will be needed to pull mods packs\r\n\r\nYou need and account to generate an api-key here\r\nhttps:\/\/console.curseforge.com\/#\/api-keys", - "env_variable": "API_KEY", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "required|string", - "field_type": "text" - } - ] -} From 3de410cdffb599b0c80fb23e4e881295b5d32e6e Mon Sep 17 00:00:00 2001 From: David Katz Date: Fri, 5 May 2023 19:10:51 -0700 Subject: [PATCH 197/473] Update minecraft/java README --- game_eggs/minecraft/java/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/minecraft/java/README.md b/game_eggs/minecraft/java/README.md index 2990a645..91e0aca3 100644 --- a/game_eggs/minecraft/java/README.md +++ b/game_eggs/minecraft/java/README.md @@ -32,7 +32,7 @@ This is a direct fork of the default forge service - Has a version detection fix for "latest" -### [CurseForge Generic](forge/curseforge-generic) +### [CurseForge Generic](curseforge) [CurseForge Generic Website](https://www.curseforge.com) A generic service to pull forge mod packs from the curseforge site. From 785adcd16ef608f82274dfcd6aa331806ce4caf6 Mon Sep 17 00:00:00 2001 From: David Katz Date: Fri, 5 May 2023 19:35:11 -0700 Subject: [PATCH 198/473] PROJECT_ID / VERSION_ID strings for convenience --- .../minecraft/java/curseforge/egg-curse-forge-generic.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json b/game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json index 05b1b87b..e9726824 100644 --- a/game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json +++ b/game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-05T19:03:39-07:00", + "exported_at": "2023-05-05T19:34:12-07:00", "name": "CurseForge Generic", "author": "contact@chromozone.dev", "description": "A generic egg for a CurseForge modpack.", @@ -42,7 +42,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|numeric", + "rules": "required|string", "field_type": "text" }, { @@ -52,7 +52,7 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "numeric", + "rules": "string", "field_type": "text" }, { From 6ab9ce9bb2b17c5308244332e12df484496da9dd Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 6 May 2023 10:36:37 +0200 Subject: [PATCH 199/473] add Swords 'n Magic and Stuff --- README.md | 1 + game_eggs/README.md | 1 + game_eggs/steamcmd_servers/README.md | 4 + .../Swords_'n_Magic_and_Stuff/README.md | 16 +++ .../Swords_'n_Magic_and_Stuff/wrapper | Bin 0 -> 17736 bytes .../Swords_'n_Magic_and_Stuff/wrapper.c | 118 ++++++++++++++++++ 6 files changed, 140 insertions(+) create mode 100644 game_eggs/steamcmd_servers/Swords_'n_Magic_and_Stuff/README.md create mode 100644 game_eggs/steamcmd_servers/Swords_'n_Magic_and_Stuff/wrapper create mode 100644 game_eggs/steamcmd_servers/Swords_'n_Magic_and_Stuff/wrapper.c diff --git a/README.md b/README.md index a5914b11..1015b438 100644 --- a/README.md +++ b/README.md @@ -275,6 +275,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Stormworks: Build and Rescue](game_eggs/steamcmd_servers/stormworks) * [Subnautica: Nitrox Mod](game_eggs/steamcmd_servers/subnautica_nitrox_mod) * [Sven Co-op](game_eggs/steamcmd_servers/svencoop) +* [Swords 'n Magic and Stuff](game_eggs/steamcmd_servers/Swords_'n_Magic_and_Stuff) * [The Forest](game_eggs/steamcmd_servers/the_forest) * [The Isle](game_eggs/steamcmd_servers/the_isle) * [Evrima](game_eggs/steamcmd_servers/the_isle/evrima) diff --git a/game_eggs/README.md b/game_eggs/README.md index 4f7a8eaf..b2a0a890 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -176,6 +176,7 @@ * [Stormworks: Build and Rescue](steamcmd_servers/stormworks) * [Subnautica: Nitrox Mod](steamcmd_servers/subnautica_nitrox_mod) * [Sven Co-op](steamcmd_servers/svencoop) +* [Swords 'n Magic and Stuff](steamcmd_servers/Swords_'n_Magic_and_Stuff) * [Team Fortress 2 Classic](steamcmd_servers/team_fortress_2_classic) * [The Forest](steamcmd_servers/the_forest) * [The Isle](steamcmd_servers/the_isle) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index db8fada8..a2514941 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -215,6 +215,10 @@ This is a collection of servers that use SteamCMD to install. [Sven Co-op](svencoop) +## Swords 'n Magic and Stuff + +[Swords 'n Magic and Stuff](Swords_'n_Magic_and_Stuff) + ## Team Fortress 2 Classic [Team Fortress 2 Classic](team_fortress_2_classic) diff --git a/game_eggs/steamcmd_servers/Swords_'n_Magic_and_Stuff/README.md b/game_eggs/steamcmd_servers/Swords_'n_Magic_and_Stuff/README.md new file mode 100644 index 00000000..71a8f2bd --- /dev/null +++ b/game_eggs/steamcmd_servers/Swords_'n_Magic_and_Stuff/README.md @@ -0,0 +1,16 @@ +# Swords 'n Magic and Stuff + +Grab your friends and set out for adventure in a world of swords, magic, and stuff. Discover tons of cool loot, uncover hidden secrets, and meet new friends and foes along the way. Make your mark and find a place to call home in this cute, multiplayer, open world RPG. + +## Console +Because there is not yet a real console this egg uses a wrapper that prints the log file to the console but it is a continue loop so it will keep sending the contents of the latest log file to the console. The console does not accept any input. + +## Server Ports + + +| Port | default | +|-----------|---------| +| Game | 7777 | +| Query | 27015 | + + diff --git a/game_eggs/steamcmd_servers/Swords_'n_Magic_and_Stuff/wrapper b/game_eggs/steamcmd_servers/Swords_'n_Magic_and_Stuff/wrapper new file mode 100644 index 0000000000000000000000000000000000000000..0bce0609817198ef56276ff48409e3c9a3626013 GIT binary patch literal 17736 zcmeHPe{fvYb-t@bwh(wFupth=yfHQr0j*?%T^lf7$y)n~%Es}p(ggEZ?>w?tMNq0zf1R5)Xxs}*df(CI<@7o&$CN!JN_y3jzfqMi z70rq#y?V-OzMS4XSIIHu@=|?%RW8ctbJ~BVPCbfEzE$bvb^J&06jMkgc zdQ7LtAta_8Pl^fsUe@-?X%{IWF(p|_n}2RcDSzvyBs+`tC|EFMz0X3A{QO-Lhkc8# zuUcFdYX6z)=8Cp>Y}d-$+v3sIcr1|_Y8_g&vUTO{fpjvkT()}w9HBn7VbgYT;KISg z^Xt$4`uw817cTqg#T&oBd-=D>Z}Nfckqjl0=kOD~20toS?fN2^W{Ck3E!Q8o?ltQt z1C+0nz6S8h3I(@U!A}DBSCFUkS;@|4s^B}T;5Sym<5lo=Rqz8<@H}uoe&y+20G0gz zW)+;yTP67&Rd6~#mE==Z@WoZ|rYg8q1^-Xre*DVQ9srg6p>eAc-c|*_s|s!aze0Rc zOazfZ;_H0`d1~9N)Y}`+r29qMPDKWXg*6njMal|Cqp=hiE3#Xp2UD?x-75w&c3Si% zQx8)v(jQKd4*pAVPo^yiigetv28C%x zhQelVED?^!_F7}AwagELb`xgiVZ#8o$Jiyfn~RsvdaT2 zgxS4qqZzeQR$nY_Td8du*Ts_wYg>3%oQ(7hBoo@UsYELZB0zQWDyQSce{}U<c zGO8l$fz)@A?t~;MY2E?q_tbr16l`!l260ZIZ4*PX3_E z5l&+$roh(9AO+gLN*8KsO;m! zl+t}cl_mMhOQ;YJI`DZ8yx)QQ9QdFEr!j=nP*CN_KKB(u_66yv{Lzn8lK)ar5*ddp zRaPDkI`H`p{E!2uF_Y8bpvqCbS2GCuouFa}|AflQxdth{EvyJN0`F1lK&y`^hi)REcxe&r$>RpLCJrgczOgV z?34U6#M5o5Fev$N5Kp)K!h@3k3*zZkU)U`9uMpozd{FX#Mm#+d71|~LC&beuK*2Bh zy~NY4ztAlC6!CP+F9^v$M0^wR(-#0N-9}wAg*>{Z5cc(XR>lv&69AaaP%{z;b8Dnb> zBa+3dZi3FarbS&6x)cVDvHCh9t7q)1a5^vG?E#(6ON&!Yi}sP>W17OmKSS9VTXBlW z%@>U9v~l$PwZ_pIui-gvymrA}00XaU0}aKgURe+8?_2YA=!s0*c4KtS5l9Im`*Ztp zBe!NR@O&#Gl<&vkc>OSV&ra53TKFRrZikNX#WNF#l9B!URqqvx#);4jxoPC~OE!BV zf9hkv*-+jX9m$KP{gckp<7mb`IA_n1PX0Ma7WSjd8M)AuF*-gUtus(+z{&x{*vM@M z{KNUi>WQZP6lsUtEm|&0a)_8M%f^iPM(!!;$=Lo0@^5U#93`o$e4U&ddnzc4ltlIo zs_zAyA2i|+6|4@;j4WX$8=8TFvbCRjilG$#;XJZAG!x2eRg>ZD$P}8~icldtBQpL{ zT&U$=Lhn^>ya?q&4i}#RH>FJ~KTs}qa$yLVZTe+Dk+D_ zcmT#vgw9Fjv9XEwi^W{%t>@_x*U0_^F5eHKY-nq-2s z#>{dfH!pgtEHWY!R2%RYX~>{PKSMs|>eoSl*w2GK{RmkZhZRCrlR!2!0Zgh(FN|Dh z0v=F#;lIc!Sw^5|;<#u;jUV2koPilsijq=|t5l7zL4fs@xfA*8m94TCG(9=qbYwgm zIwza?#92gobmW}KG`>XROn&CqGAeN8Zm7R{Om^?lGr{c0Nh6yXA00XA`NGvWFD)2_ z@~0sz&q3h^I&ZnqxRDDspncQ%320|SXGTZP;N*W-#`2`}#5g+TB~RNR0Le*c;kSL- z$Tpt{ou{$(^liD&d4y|h!H>Wxv!03E_VY&MlyUSOuQ7Jd3^XPU&yS59T3t69I`4tX zouQMD{3sVX3010NY%`=_+cRODAUiMwom>bt$=-bfIWV^75SpD|jE1~KCow;X963Eq zjr?;en^P)#fpRyH)G6dJOnnvQXu}k&PEnhtVN#j-9tmjlO`xaquO2(t@drI)Yu0{R zh>jiI**7}2cV|E9*w&Ffzug#XZ3n!y=jM;;9+toDSI|ECvDdzK*}pU`5MX2eS=acl}e`k^noXq==0+vj}@_# zsbT-pbfegs*w|%7x2ATtiaQV?Yb(G7`* zGl@t)HH9qr2UE$2mF7bF=tV`0Qk8A}$pNb^l1$k6PGzOqwr<+EynT6l+t%=IE85nR zgk|Bm)_bP`S$g?!4pW#XLAOm8i!XpiL8GAE9~6r}1#LN3EYhsW{-{`7fT!f2g5D4M zE~pK<0A-Xsd$$PBP_yUS%jY&6^vrE0oW32-{712f`AI2NmKS0PBuM@~`12q=jr*F{ z`xf5QblIMUePZo3cYfx!C5y=j>ErQM9E4r+pA+fckKX|N{~2|K4qx+Qb?fHM@xECH zm!$1S0N;AHSp0pmUn*bkp>neMm-yX>_U;4~oxbKL>biXkANPiQ{;^9!zLo>^UB33m z<`}+JqjNX-f)Dvtb@Y7zMD5#V)byzY#jvFS4dC4BW!Nk3%cW0y>Ry?BV%1o8Sd zUNgpXiEFexuXDRj^IZPXg<_JR2Ko|=#B0AMbcWY_wd->FutMny?I=E-$h1&X=UO&` zw3-k>C7@=tm`7=So|x>D2in(olFSJT~^vfr-+Rc^z&b$9q%x~yHXaKgW=J%B}} ztt)TVIX|ZK%i5PMYiF&>)Qc64ydS|SK`TaiUA-Ikiad8XM}ZeBAGyCfVD!~`!TsEg z&k=k*xbeAy`;8lK5ZvF~_@#pTu^Vp`+~3_et}cB(-1z0fUlE@t_Laq-^t{4X+Bf31 z(SKz&&F2`F&Z-^Zkpf{wJB4-QRv8?aV&!eYno+ zu={D&^#VVygr9t4;W#%FUN_tSPe^(8;v#LSg5L$)e^IQIyAOD!{Q>Vu`Pu#RVc@hl zsXYC075oX{&FJS7LAS=!Rpc89ubX|npFrFy)%#2pJ1*-#1ufK@~r5B6&LL+SnypVMP`B?kf0BiTlK1y;xhmGli{zD)RfP;76d- zjO%(Ts2$Pd1GJa=A@AS2MdM$E9g;6UkAE%g`$R^c9Qh6yI?rl+n|{!e?|y;*K;qh{ zgB-7dzgY!8T?M}YoX$(RpN)7>@;mC|>=NLW`qfI{i&@A)KU+mUQU$lG;3AT;({`q} zHxLmQx2Tx*fQel(2`h~aD$%6b7fx+$D0C4j^ofGed^9V03K}=7yeoJ3D&Jd)Keu8ro)V>*(wWkyW|3Cz8%ckHO15 zJ+#3m$lG~n50BnkE3r_M$<{NKb(kSPm&Zb`vu6j)C=ge#Z2$ zE}-c<#fkO#eZUT2xK)(&c^=1<-(x^TCbHp74}hU}23$YS_n5BI!t6iGF?|^2^bUe~ zo)hGNS4Jbz@$??Jf!^7cQf^*gmeo@X-U_b{YSkMiaEj{~Ea@OvP7 z)RIY4{rImz_ntxmv-mmn{aTOdgJl6PGcTSj)8D7(S4`Pos*4iyO#cd)vwnX5Dp3xc z)TU=Kclu_TKF^n#^7|*&D)0Y)qxJdx3BQ)q^p>*rv)@`ud=D8CVSS!|GwoqPP0QgfL9uGm6L|C8SBTTjdL~2o_bYy*|YQA|-*W$>j#QL9RKvNw~sY4L)-1oGI zBs1DzP&btBLjnA_-8}x%^})VNMSWPcT4nyUtdQ$xS-RZIL}bxRcPWXvWeR1i_;0k1 B4oLt2 literal 0 HcmV?d00001 diff --git a/game_eggs/steamcmd_servers/Swords_'n_Magic_and_Stuff/wrapper.c b/game_eggs/steamcmd_servers/Swords_'n_Magic_and_Stuff/wrapper.c new file mode 100644 index 00000000..21d247d3 --- /dev/null +++ b/game_eggs/steamcmd_servers/Swords_'n_Magic_and_Stuff/wrapper.c @@ -0,0 +1,118 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +void print_latest_log(const char* log_directory) { + DIR *dir; + struct dirent *entry; + time_t latest_time = 0; + char latest_file[256]; + + dir = opendir(log_directory); + if (dir == NULL) { + printf("Error opening directory %s\n", log_directory); + return; + } + + while ((entry = readdir(dir)) != NULL) { + if (strstr(entry->d_name, "SnMDedSrv-") == entry->d_name && + strstr(entry->d_name, ".log") != NULL) { + char filename[256]; + sprintf(filename, "%s/%s", log_directory, entry->d_name); + struct stat file_stat; + stat(filename, &file_stat); + if (file_stat.st_mtime > latest_time) { + latest_time = file_stat.st_mtime; + strcpy(latest_file, filename); + } + } + } + + if (latest_time == 0) { + printf("No log files found in directory %s\n", log_directory); + return; + } + + printf("\nLatest log file: %s\n", latest_file); + + int fd = open(latest_file, O_RDONLY); + if (fd < 0) { + printf("Error opening file %s\n", latest_file); + return; + } + + char buffer[4096]; + int bytes_read; + int last_line_printed = 0; // Flag to check whether we have printed the last line + do { + bytes_read = read(fd, buffer, sizeof(buffer)); + if (bytes_read > 0) { + // Check if the last character is a newline + if (buffer[bytes_read - 1] == '\n') { + fwrite(buffer, 1, bytes_read, stdout); + fflush(stdout); + } else { + // If the last character is not a newline, add one + char* temp = (char*) malloc(bytes_read + 1); + memcpy(temp, buffer, bytes_read); + temp[bytes_read] = '\n'; + fwrite(temp, 1, bytes_read + 1, stdout); + fflush(stdout); + free(temp); + } + last_line_printed = (buffer[bytes_read - 1] == '\n'); + } + } while (bytes_read > 0); + + // If the last line was not printed, print it now + if (!last_line_printed) { + printf("\n"); + } + + close(fd); +} + +int main(int argc, char** argv) { + if (argc < 2) { + printf("Usage: winewrapper wine_path wine_args exe_path exe_args\n"); + return 0; + } + + char* wine_path = argv[1]; + + pid_t pid = fork(); + if (pid == 0) { + char** wine_argv = (char**) malloc(sizeof(char*) * (argc - 1)); + wine_argv[0] = wine_path; + for (int i = 2; i < argc; i++) { + wine_argv[i - 1] = argv[i]; + } + wine_argv[argc - 1] = NULL; + execv(wine_path, wine_argv); + printf("Error launching wine process\n"); + exit(1); + } else if (pid < 0) { + printf("Error forking process\n"); + exit(1); + } + + sleep(30); + + char* log_directory = "/home/container/SNM2020/Saved/Logs"; + print_latest_log(log_directory); + + while (1) { + sleep(1); + print_latest_log(log_directory); + } + + kill(pid, SIGTERM); + + return 0; +} From ab61df9b64952f15f5b9d612ddd694051db22aea Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 6 May 2023 10:37:49 +0200 Subject: [PATCH 200/473] lowercase s --- README.md | 2 +- game_eggs/README.md | 2 +- game_eggs/steamcmd_servers/README.md | 2 +- .../README.md | 0 .../wrapper | Bin .../wrapper.c | 0 6 files changed, 3 insertions(+), 3 deletions(-) rename game_eggs/steamcmd_servers/{Swords_'n_Magic_and_Stuff => swords_'n_Magic_and_Stuff}/README.md (100%) rename game_eggs/steamcmd_servers/{Swords_'n_Magic_and_Stuff => swords_'n_Magic_and_Stuff}/wrapper (100%) rename game_eggs/steamcmd_servers/{Swords_'n_Magic_and_Stuff => swords_'n_Magic_and_Stuff}/wrapper.c (100%) diff --git a/README.md b/README.md index 1015b438..209110a7 100644 --- a/README.md +++ b/README.md @@ -275,7 +275,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Stormworks: Build and Rescue](game_eggs/steamcmd_servers/stormworks) * [Subnautica: Nitrox Mod](game_eggs/steamcmd_servers/subnautica_nitrox_mod) * [Sven Co-op](game_eggs/steamcmd_servers/svencoop) -* [Swords 'n Magic and Stuff](game_eggs/steamcmd_servers/Swords_'n_Magic_and_Stuff) +* [Swords 'n Magic and Stuff](game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff) * [The Forest](game_eggs/steamcmd_servers/the_forest) * [The Isle](game_eggs/steamcmd_servers/the_isle) * [Evrima](game_eggs/steamcmd_servers/the_isle/evrima) diff --git a/game_eggs/README.md b/game_eggs/README.md index b2a0a890..73f78da4 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -176,7 +176,7 @@ * [Stormworks: Build and Rescue](steamcmd_servers/stormworks) * [Subnautica: Nitrox Mod](steamcmd_servers/subnautica_nitrox_mod) * [Sven Co-op](steamcmd_servers/svencoop) -* [Swords 'n Magic and Stuff](steamcmd_servers/Swords_'n_Magic_and_Stuff) +* [Swords 'n Magic and Stuff](steamcmd_servers/swords_'n_Magic_and_Stuff) * [Team Fortress 2 Classic](steamcmd_servers/team_fortress_2_classic) * [The Forest](steamcmd_servers/the_forest) * [The Isle](steamcmd_servers/the_isle) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index a2514941..3bd93bda 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -217,7 +217,7 @@ This is a collection of servers that use SteamCMD to install. ## Swords 'n Magic and Stuff -[Swords 'n Magic and Stuff](Swords_'n_Magic_and_Stuff) +[Swords 'n Magic and Stuff](swords_'n_Magic_and_Stuff) ## Team Fortress 2 Classic diff --git a/game_eggs/steamcmd_servers/Swords_'n_Magic_and_Stuff/README.md b/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/README.md similarity index 100% rename from game_eggs/steamcmd_servers/Swords_'n_Magic_and_Stuff/README.md rename to game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/README.md diff --git a/game_eggs/steamcmd_servers/Swords_'n_Magic_and_Stuff/wrapper b/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/wrapper similarity index 100% rename from game_eggs/steamcmd_servers/Swords_'n_Magic_and_Stuff/wrapper rename to game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/wrapper diff --git a/game_eggs/steamcmd_servers/Swords_'n_Magic_and_Stuff/wrapper.c b/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/wrapper.c similarity index 100% rename from game_eggs/steamcmd_servers/Swords_'n_Magic_and_Stuff/wrapper.c rename to game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/wrapper.c From 51439f3e5ac1f6e5c302456e9fff58b664cba85c Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 6 May 2023 10:42:36 +0200 Subject: [PATCH 201/473] add egg + readme first start + wrapper timeout. --- .../swords_'n_Magic_and_Stuff/README.md | 7 +- .../egg-swords-n-magic-and-stuff.json | 172 ++++++++++++++++++ 2 files changed, 178 insertions(+), 1 deletion(-) create mode 100644 game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/egg-swords-n-magic-and-stuff.json diff --git a/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/README.md b/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/README.md index 71a8f2bd..e40fd1cc 100644 --- a/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/README.md +++ b/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/README.md @@ -3,7 +3,12 @@ Grab your friends and set out for adventure in a world of swords, magic, and stuff. Discover tons of cool loot, uncover hidden secrets, and meet new friends and foes along the way. Make your mark and find a place to call home in this cute, multiplayer, open world RPG. ## Console -Because there is not yet a real console this egg uses a wrapper that prints the log file to the console but it is a continue loop so it will keep sending the contents of the latest log file to the console. The console does not accept any input. +Because there is not yet a real console this egg uses a wrapper that prints the log file to the console but it is a continue loop so it will keep sending the contents of the latest log file to the console. The console does not accept any input. + +There is a 30 seconds timeout before the wrapper will try to start the server as it needs to wait until the log file is written and the first lines are writen to that file. + +## first start +Because of the wrapper the first start of the console will show no logs. On first start wait for vcrun2019 to install. Then hit restart. ## Server Ports diff --git a/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/egg-swords-n-magic-and-stuff.json b/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/egg-swords-n-magic-and-stuff.json new file mode 100644 index 00000000..f731ae45 --- /dev/null +++ b/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/egg-swords-n-magic-and-stuff.json @@ -0,0 +1,172 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-05-06T10:38:52+02:00", + "name": "Swords 'n Magic and Stuff", + "author": "josdekurk@gmail.com", + "description": "Grab your friends and set out for adventure in a world of swords, magic, and stuff. Discover tons of cool loot, uncover hidden secrets, and meet new friends and foes along the way. Make your mark and find a place to call home in this cute, multiplayer, open world RPG", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + }, + "file_denylist": [], + "startup": ".\/wrapper \/usr\/bin\/wine \/home\/container\/SNM2020\/Binaries\/Win64\/SNMASServer-Win64-Shipping.exe -port={{SERVER_PORT}} -QueryPort={{QUERY_PORT}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Succeeded to create Steam session with ID\"\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\nmkdir -p \/mnt\/server\/SNM2020\/Saved\/Config\/WindowsServer\/\r\n\r\nif [ ! -f \/mnt\/server\/SNM2020\/Saved\/Config\/WindowsServer\/Game.ini ]\r\nthen\r\n echo \"The config file does not yet exists, making a new one\"\r\n mv \/mnt\/server\/SNM2020\/Content\/Docs\/Dedicated-Server-Game.ini \/mnt\/server\/SNM2020\/Saved\/Config\/WindowsServer\/Game.ini\r\nelse\r\n echo \"Old config file found. Replacing it with a up to date one but a backup will be made\"\r\n mv \/mnt\/server\/SNM2020\/Saved\/Config\/WindowsServer\/Game.ini \/mnt\/server\/SNM2020\/Saved\/Config\/WindowsServer\/Game-$(date \"+%Y.%m.%d-%H.%M.%S\").ini.old\r\n mv \/mnt\/server\/SNM2020\/Content\/Docs\/Dedicated-Server-Game.ini \/mnt\/server\/SNM2020\/Saved\/Config\/WindowsServer\/Game.ini\r\nfi\r\n\r\nif [ ! -f \/mnt\/server\/wrapper ]\r\nthen\r\n echo \"The wrapper does not yet exists, download a new one\"\r\n curl -sSL -o \/mnt\/server\/wrapper \"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/swords_'n_Magic_and_Stuff\/wrapper\"\r\n chmod +x wrapper\r\nelse\r\n echo \"wrapper found. skipping\"\r\nfi\r\n\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_INSTALL", + "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": "2058450", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Auto update", + "description": "Auto update the server on startup", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "WINEARCH", + "description": "", + "env_variable": "WINEARCH", + "default_value": "win64", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:win32,win64", + "field_type": "text" + }, + { + "name": "WINEDEBUG", + "description": "", + "env_variable": "WINEDEBUG", + "default_value": "-all", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:32", + "field_type": "text" + }, + { + "name": "WINETRICKS_RUN", + "description": "", + "env_variable": "WINETRICKS_RUN", + "default_value": "vcrun2019", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:64", + "field_type": "text" + }, + { + "name": "Query port", + "description": "The port that Steam uses for clients to query the server (ping, etc)", + "env_variable": "QUERY_PORT", + "default_value": "27015", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|", + "field_type": "text" + }, + { + "name": "Server name", + "description": "This is the server name used for your server.\r\n\r\nYou must pick between 2 and 5 UNIQUE words (no duplicate words).\r\nThe words are case insensitive \r\nThe list of approved words changes can be found: `SNM2020\/Saved\/Logs\/Allowed-Words.txt`", + "env_variable": "SNM_NAME", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:64", + "field_type": "text" + }, + { + "name": "Admin steam id", + "description": "This the Steam ID of the owner\/admin of this server.", + "env_variable": "SNM_OWNER_STEAM_ID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Server password", + "description": "This is the server password; it is disabled by default.", + "env_variable": "SNM_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:32", + "field_type": "text" + }, + { + "name": "Max players", + "description": "You can specify the maximum number of players", + "env_variable": "SNM_MAX_PLAYERS", + "default_value": "16", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|max:16", + "field_type": "text" + }, + { + "name": "Reset time", + "description": "This is the number of days between resets.", + "env_variable": "SNM_DAYS_UNTIL_RESET", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Reset time", + "description": "This is the local time of day when the server will\r\nreset. The format is HH:MM, and it is 24 hour format.\r\nMidnight => 00:00, 10:30AM => 10:30, 4:30PM => 16:30", + "env_variable": "SNM_RESET_TIME_OF_DAY", + "default_value": "00:00", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "logs dir", + "description": "", + "env_variable": "LOGS_DIR", + "default_value": "\/home\/container\/SNM2020\/Saved\/Logs", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|", + "field_type": "text" + } + ] +} \ No newline at end of file From bf1217839dbbcb4c344072de1c68763b37e7914a Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 6 May 2023 11:31:33 +0200 Subject: [PATCH 202/473] Improve wrapper --- .../swords_'n_Magic_and_Stuff/wrapper | Bin 17736 -> 17784 bytes .../swords_'n_Magic_and_Stuff/wrapper.c | 74 +++++++++++------- 2 files changed, 45 insertions(+), 29 deletions(-) diff --git a/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/wrapper b/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/wrapper index 0bce0609817198ef56276ff48409e3c9a3626013..29909ad1d2164be05bc25be8c4b4a78a59e5e7e9 100644 GIT binary patch delta 3064 zcmZWr4Qx}_6~5Pw6Wb-&j^j9n(AcyiNegit8cd>@*bpy|iM62CU8Md%R>}(P*3gn| znUXrx4eG0FN;uH96lsaHu0qpPm{*3{v^Yh@$<|h8+8D4@O{YzIS%D=Qpo}JaJLkUl zvaWm5d*|MBzVmy}yZ4U0z-M3J2P$1dE+(F+M%e6N-5a(JyEf|>yco2NmuQo5aPgpR z$fV7NU?UIOr}Y^#!?S#!t303y7by5l@080euXVAxKet~x)zNx!*VfV^_p*6VOt*WM zBAVk{EVTCG#L1RIz+A(B2AyUvY%^Dye$OD;=z*8aA^r%AnuD;ps1nBTwH8(Kg9I~O z6%Z3k(2O4ws{JT^P>hb_=tp8SS=7KEr;%x1*XVQQ@CiHNsLzmqW}{4(BX) zTb_9O(MKPLTZ=EjjpF*q36wc?+@ZmjF>*6|N9T1f*=b|U#Lnt+C87-syZz8v;`K$# zG;SgKztRE>mfXp2fp-zJNE3jIiKapmLOw~d5|}C;NPmMe(gK;jO{p}K^Y5O*(jfTSd#xDrT#j- z`MymV%iqzulqpRK5>d^Jsh$edx#p;DBT0m#K`CRoi9D%!c8^C&TduCc@jz~mO`UX9 z_mk~2I+g61$T>o0ntlskxT@Md(4kg!a)+>JAp0Y)B93(j6H+Sjb3`#o{@b2KQabV! z@|9H>yYd)*&RTZE17(5aH1@J2zgv4%RVDc?zaWPziR9z66oQl<(1dyA*YgC5D^jXY zVUB?dUzVQ5lvb89c8YYABZ!m1nSiQaXX`_uUd)DRU=F zb;=6K|Cl6yjK)YV$3INuFCV(8zAy4RwFtCI< z41we)zo4jujF`M|mf6weZ|>BhK{MzTB?~Ssn#Y$BfcimUK(m)uF5MKyzLJCEP|k5O zC&#a0q7d@9lWz&w#M_jGQL7o`VH^3W7i5!B-gKfM$xf^qM*1lt#?K`1H<418H_Lq^ zlH7ef)i=VE6}Wc8xUDO_2oWtX)rPh)s^d~RYQ^-YmED-99KW3EyUZ#b1HTZ(9ua{` zqmyQ;MByg9>A8a+hfAKC;*s7D((w@}si;YwrpPi87dgoOOI1%(*h&v_$yg6LFC*Dc z7Gw{h?DVaKdYW|e@dAz+(lJ3ZmO0!@F{()^lNggS-=YFf>g(|Xj8pRv7Jd`=d=-&E z#OI%kpV?9GsD6$N;{F!<_NGkarz;qX-M>*jA4_bMugC6-$#V%Qv+4k{@7+{4k5#iO zFblt{*utIJW!??egZ}OCV}BLA;vZ^R^bb`%gtmI8RdodEi%7R4-94kKe?a=?HC3ff zUU@@R%drA4B7G3)(HrnoV1>y)4Mzg?mM&brF8C;L8$Sgz0q^?5Xk{JlsVuhGxzDtr zwAkEiUQ}Xbw9WV8oBgM%?xuP!$e-XO$E}wg#n*WqzPbDxRkhbul~Be*r_>z2e&j=- z(VfjLue}8t>^@(=egYXMk)d@0czrd`L7;vsS70xWy)azg8glA~e7SB~zYj34K9}?Z z&fs@}E7;1Tuq9aSWI7Yq{YipDXUL5~eD7dG&b3d!dgx|Y0md8h=y@>YGGog0a+*n~=%!Xh~qZgyy*%;*IaH7#;E@Rt}zQo5Mw%W@t;MW7+U){(H zFudC9V|vzxw*U@IY%zK`hv-R|S{>y5;Ja%pKMFl}1+mAE;kX=ZO*Om+LQT~iJvMof zzq4tp&p3CDvz6oOz9E9O; zbyA7yOr4l@9pf^H`<8fKN4}H!n31i{W+!y~fL>G4z9@WO=bxd=1wNu}k>&+ou;>HT zVH?(nV!kZC^YmTf#Gk-rs{B81Rc5UcYhZM(*CHW`Zf9<=Hdpd);_-diK=UZqu4>so zwuH=C>pDNj|EsPw=u+rzgpWbJuoJmPV;ZytjJmxf$oDbv!5PT5uwOKPq7h|ReS-N zzlZ)JKYav7iu_ELq_H6gKSf+S$datOl3GvKk-h2KD{ zQ%6n@{T7QelXJSQcl8q-AtsX5aXG9Fj7Z(kZ*_Yc$~5alqNW zbfHDV+5BBlYIA$Pr5V(xQKbd7)eyFQL`%TMeMBqaCin2@tUGUc%XyL}e^yV(p+Unh zaI;;S`mrc|DyBYL=-9P0W7&iLVy5(V5fkBIGa-s=J^Cy2UJxWm#=+= zW+^6%sf0`%1JhqeuVQ82D<$Lt^N}wgb8Y~eQ%uM5Vk%pX1&fG^808cwW!1@zy4Jab zF>$IrDl;RNi|Lote3^k9t0L1_tTDB~AFvWKFGW;HV@Myes26czvD7mRXpR*U>kLJT z70^M8HIQT3n1f?n{`)-~r*Ssu-2#6uUz614$!7Aa5@RNpkTsXaT_R#ZsyD+=E#t4T zC>nH$O&z0Ym0GY;DK?u*%#!26H=Mhcoe#3$^%#6Swn#{lCCTLettjc(?AvS)h|+sl z++Ji!vFTJ|nmB&_G3H34B2)2<&w zRz#LlHfbrRkYM<0;l}0rwOA{r;5ePkI?iXM*rGbo-`vKVtCDKRNZz1dV^k|rzh)oi#A$@557U&CA#dv)npR!m21*t-jI4!xz= zja1?WwlMqFq+^q6DIzzPH?vy(UqV&ow`msID{G1;Py7uD@N{KOvI;#h!5J(^UW*AX zv*neiam0chXUSh?Sn)D;k&UVt>l%)5lLO*dMII~4vs4QhQVTP}2)gw;TIc0=uM9?i zurm{GsUal#NV`<^VRU!9bSJtiD&5;HW;QjT{o$RpU*RIyOO;56SyxfkVUcVLfiy{Ygyob=UO9>pjJ;GFM)J%gVsit!CbH?jur zy?7tNxc_8lRCJZ|In(yiV)J!ViPfg!C(vAXTT#BxmT?*1K^cx;M)E4&k1j%R?T$6w zSPo+u7dsyA;r%$;fe)6CzPYycK5w`F**8A_hQ}K~>#L~%zWV(%2mLta;cR_Npr8{f z^sxFlOWeA?L7$Of?*QK4f^p*hYUiignMv*{%2SLE{ef~^_9HJgWbuH~t_hfG7!Tyw z`LW_M6Du(yd>u05kto1Oz-8u02YeE6(+zMp&_??p8gxS>SZQ`3el+N(b#ON5rpNH< zg7<>YV6z4`yUbpagM*vf+Ozskg%Nud4oqYfSy*BB>2_nq41Nd)lz7QB+}iA?-Qat0 zKm7~zKj^1U7{PHJ@QpR}F=%eA_8QA&thN&eWu{fc2}c|EdyPZXXpWnR3dBRQFxS|I zZzHh9&kM$a>*>eg=$1D659n`nd*_kwWc-Lxn(_ALG{zKXK{>7|V&P zX3SYPlh^eey?TGD8v?;Mb^9)t##A=~4$rA}!<#^I3rDZ2^;}n<^Xz&560+FbS7x*0 zK`21fR8H5yCrxh1Hx=QVD>sq2sydrJv}ZKhJVr+=zO&9ex@GHHN{8WxEq>nUR73Lc zGFpv3HDnXawD>te-xLDykr3CRYaI}egvyM4W5@!9S0c~a4&bt}3&tXD2t|3WPw&P) zh(|*pMxCZX3%nAo=ZuCBU@F>1H-dMYpZotWZG2mZJLc139UC3m)<&`W`_1KWWBVE| t8_|F)@U0=vSeqQgTU)T(hFV*=LW9PLzzi~)nl #include -void print_latest_log(const char* log_directory) { +void print_latest_log(const char* log_directory, off_t* last_pos, off_t* last_size) { DIR *dir; struct dirent *entry; time_t latest_time = 0; @@ -39,45 +39,58 @@ void print_latest_log(const char* log_directory) { return; } - printf("\nLatest log file: %s\n", latest_file); - int fd = open(latest_file, O_RDONLY); if (fd < 0) { printf("Error opening file %s\n", latest_file); return; } - char buffer[4096]; - int bytes_read; - int last_line_printed = 0; // Flag to check whether we have printed the last line - do { - bytes_read = read(fd, buffer, sizeof(buffer)); - if (bytes_read > 0) { - // Check if the last character is a newline - if (buffer[bytes_read - 1] == '\n') { - fwrite(buffer, 1, bytes_read, stdout); - fflush(stdout); - } else { - // If the last character is not a newline, add one - char* temp = (char*) malloc(bytes_read + 1); - memcpy(temp, buffer, bytes_read); - temp[bytes_read] = '\n'; - fwrite(temp, 1, bytes_read + 1, stdout); - fflush(stdout); - free(temp); + // Get the size of the file + off_t size = lseek(fd, 0, SEEK_END); + + // Check if the file size has increased since the last read + if (size > *last_size) { + // Move the file pointer to the beginning of the file + lseek(fd, 0, SEEK_SET); + + char buffer[4096]; + int bytes_read; + int last_line_printed = 0; // Flag to check whether we have printed the last line + do { + bytes_read = read(fd, buffer, sizeof(buffer)); + if (bytes_read > 0) { + // Check if the last character is a newline + if (buffer[bytes_read - 1] == '\n') { + fwrite(buffer, 1, bytes_read, stdout); + fflush(stdout); + } else { + // If the last character is not a newline, add one + char* temp = (char*) malloc(bytes_read + 1); + memcpy(temp, buffer, bytes_read); + temp[bytes_read] = '\n'; + fwrite(temp, 1, bytes_read + 1, stdout); + fflush(stdout); + free(temp); + } + last_line_printed = (buffer[bytes_read - 1] == '\n'); } - last_line_printed = (buffer[bytes_read - 1] == '\n'); + } while (bytes_read > 0); + + // If the last line was not printed, print it now + if (!last_line_printed) { + printf("\n"); } - } while (bytes_read > 0); - // If the last line was not printed, print it now - if (!last_line_printed) { - printf("\n"); + // Remember the last position and size that was read + *last_pos = lseek(fd, 0, SEEK_CUR); + *last_size = size; } - close(fd); + } + + int main(int argc, char** argv) { if (argc < 2) { printf("Usage: winewrapper wine_path wine_args exe_path exe_args\n"); @@ -104,12 +117,15 @@ int main(int argc, char** argv) { sleep(30); + off_t last_pos = 0; + off_t last_size = 0; char* log_directory = "/home/container/SNM2020/Saved/Logs"; - print_latest_log(log_directory); + print_latest_log(log_directory, &last_pos, &last_size); + while (1) { sleep(1); - print_latest_log(log_directory); + print_latest_log(log_directory, &last_pos, &last_size); } kill(pid, SIGTERM); From 9c08f3fd5ef42c32765c732da43ce08cbc9eddbd Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 6 May 2023 11:38:55 +0200 Subject: [PATCH 203/473] wrapper use time and not size --- .../swords_'n_Magic_and_Stuff/wrapper | Bin 17784 -> 17784 bytes .../swords_'n_Magic_and_Stuff/wrapper.c | 79 +++++++++--------- 2 files changed, 39 insertions(+), 40 deletions(-) diff --git a/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/wrapper b/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/wrapper index 29909ad1d2164be05bc25be8c4b4a78a59e5e7e9..dc959e19edd2d38aa7e0fd37c49ba270a18afaac 100644 GIT binary patch delta 1199 zcmZ8fTS!z<6g_7~ZM1Y|%t!X}K}1oRy%mxg>eA^&Wla&)M+JTO6Bd35P9sbfx7+P? z8Y&`?3j2w&rX&R)DLGnEx1Sio0sFgUCX~ixqo=*kb^P$cWuLRx+H0?~&xu{4u}iec zK~r015c#!)+_al!or&xlstR;OD<0oCd9UU0ykq5E)gjaNHpBTPnGmL@pOvBf7k}-3 zw{;*Ba%x-YkPu9LSt3Jl35Ku|Ls_QPTVU9HF^(j~WC5Q^ob{0e%8kri+Q-eziX)P$ z*BdCHuQO+%c=#3Sm|?8egPSE}G1Sk1n#D=7%WVY8l$dW3w3HiFi9vy-Rd4X%>@|MN zN)OY^D?!^5ZioxU(z!-Z$9bg{b6{pdh<3CvWn}^?RHZ-Q>nAk@lMJS!YUz~f z4pgnNROMJSho<=ZTP>jv;JXYMVP!-nblvzVgr)%Q!bS;PRU!djggCE6fu_O6r0lk{ z`Ft|cH>OpuW?FjLatX1M23mo9J9I^}=0)hhwB$KJz-?*VFT`Li%5;JZrgD&>DhA|a zy|lqJ#Q+P4_xwXw62l}ldPo|y3@@|XfDCj6WU6Jh)v^%?iF!*eYdC3VhiMKl-P_Cb-8h+n$w3CdvejX$?Cae*opAyf zgVDb3Q_lSJs7E}9cIo9$7sKMz-#liR5T+a(O)4cm5Lg3q)|3`={I9e^lqYy9i!-aPjtg>T+4A%wQmh=?+a{H_q z4l*B7weUA`cTqkid{xo5yg8#n;9L?PJWdja-xa!Ebaf_e3KbUbNrF(ddXtSd@Mmiu z=eWRT{Nr}R)Nb@4l%m8ngW LI!&QZo=5ioph^Kt;1!}3>#DW3Qd)fQ$xxyMvaGO1 zypH1!W3<+S`s9;z>u4&XW@^AS8f5ztY}`;^gt1Ds7-idT9KUlXn+FGmGxwbDeBXD@ z-Yp#Fg~L1(;uZZ9nR@!|DDUG_eqqZBkR~`N<$e1vz z(ke82)^E}KYhFf?lQ--C_BIF3T zTwRXUJ>}DsZ{?0Kn|FiTCq7^Fyr+2%5(vNbyjvtUE*pca)br_No^`~>5JD0|>o~*L z#PA~+3_X86fNn(rYY7xEaSo2uPErPg#a#I4cVl3ZDuEjS&gvtS5~fMEiH=3c%ma{7 zUFrkrqL!&B*Z*yc9`CAa9f!uv5@?!);K+w4! z$7h{H{lb)N4AG*CrlTr%h@o&o^< zDMjG(W!<6w6xn+-giku*9!KgUYS3e^@Qb9ABdoo$w-RHxS5;H~I?Ytt+&{<(qdQJF zKn6<7HWE1@BiJE){|Q8YUt+0{Pel6pMwz@JWP2u^yunk`@Kas@wc81dx)D#;fE*?> z!e|L$8!z29>%|9gp0gs;_NRJD%xsQQi~XS4A^etf1}akA<1IE6nw@!N+3@-;0I&3QbBkvEhA00*GhB{e8RUhi4ri zLbmI;wzbu4J~x*!ZOb}2s3q3P*V<-H78An!=s41!w>FGo4d@tQ z3$Oio#PjG1Hooz^shI2t;ts^0tS@Gtow>3MC9OJgFtEC6LfNvi$rD3t22!1PZ7W(g zi$|;lb!%(uUwa;{rS#wqvm)NOeWLEzB<|R==YLj?(6(?@fM={<7G118U*m&IZ4rFL z0@W;IwJm-D=r>E6IB&7eG@Xtr7eL>}UoFO}S)Z*f-CDup)*0>N3TKSRv47Vtmc0W+ CyC%~B diff --git a/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/wrapper.c b/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/wrapper.c index 7c94477b..c38eadb5 100644 --- a/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/wrapper.c +++ b/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/wrapper.c @@ -8,7 +8,7 @@ #include #include -void print_latest_log(const char* log_directory, off_t* last_pos, off_t* last_size) { +void print_latest_log(const char* log_directory, off_t* last_pos, time_t* last_time) { DIR *dir; struct dirent *entry; time_t latest_time = 0; @@ -39,58 +39,57 @@ void print_latest_log(const char* log_directory, off_t* last_pos, off_t* last_si return; } + if (latest_time <= *last_time) { + return; + } + int fd = open(latest_file, O_RDONLY); if (fd < 0) { printf("Error opening file %s\n", latest_file); return; } - // Get the size of the file - off_t size = lseek(fd, 0, SEEK_END); + // Move the file pointer to the last printed position + lseek(fd, *last_pos, SEEK_SET); - // Check if the file size has increased since the last read - if (size > *last_size) { - // Move the file pointer to the beginning of the file - lseek(fd, 0, SEEK_SET); - - char buffer[4096]; - int bytes_read; - int last_line_printed = 0; // Flag to check whether we have printed the last line - do { - bytes_read = read(fd, buffer, sizeof(buffer)); - if (bytes_read > 0) { - // Check if the last character is a newline - if (buffer[bytes_read - 1] == '\n') { - fwrite(buffer, 1, bytes_read, stdout); - fflush(stdout); - } else { - // If the last character is not a newline, add one - char* temp = (char*) malloc(bytes_read + 1); - memcpy(temp, buffer, bytes_read); - temp[bytes_read] = '\n'; - fwrite(temp, 1, bytes_read + 1, stdout); - fflush(stdout); - free(temp); - } - last_line_printed = (buffer[bytes_read - 1] == '\n'); + char buffer[4096]; + int bytes_read; + int last_line_printed = 0; // Flag to check whether we have printed the last line + do { + bytes_read = read(fd, buffer, sizeof(buffer)); + if (bytes_read > 0) { + // Check if the last character is a newline + if (buffer[bytes_read - 1] == '\n') { + fwrite(buffer, 1, bytes_read, stdout); + fflush(stdout); + } else { + // If the last character is not a newline, add one + char* temp = (char*) malloc(bytes_read + 1); + memcpy(temp, buffer, bytes_read); + temp[bytes_read] = '\n'; + fwrite(temp, 1, bytes_read + 1, stdout); + fflush(stdout); + free(temp); } - } while (bytes_read > 0); - - // If the last line was not printed, print it now - if (!last_line_printed) { - printf("\n"); + last_line_printed = (buffer[bytes_read - 1] == '\n'); } + } while (bytes_read > 0); - // Remember the last position and size that was read - *last_pos = lseek(fd, 0, SEEK_CUR); - *last_size = size; + // If the last line was not printed, print it now + if (!last_line_printed) { + printf("\n"); } - close(fd); + // Remember the last position and time that was read + *last_pos = lseek(fd, 0, SEEK_CUR); + *last_time = latest_time; + + close(fd); } + int main(int argc, char** argv) { if (argc < 2) { printf("Usage: winewrapper wine_path wine_args exe_path exe_args\n"); @@ -116,13 +115,13 @@ int main(int argc, char** argv) { } sleep(30); - + off_t last_pos = 0; off_t last_size = 0; char* log_directory = "/home/container/SNM2020/Saved/Logs"; print_latest_log(log_directory, &last_pos, &last_size); - + while (1) { sleep(1); print_latest_log(log_directory, &last_pos, &last_size); @@ -131,4 +130,4 @@ int main(int argc, char** argv) { kill(pid, SIGTERM); return 0; -} +} \ No newline at end of file From e367c1d4e77bac714ccd204a194e47c48c78c5b7 Mon Sep 17 00:00:00 2001 From: Vadym Date: Sat, 6 May 2023 20:12:49 +0300 Subject: [PATCH 204/473] Update egg-lavalink.json - update egg - fix servers not stopping --- voice_servers/lavalink/egg-lavalink.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/voice_servers/lavalink/egg-lavalink.json b/voice_servers/lavalink/egg-lavalink.json index d846af2e..6d0c93d0 100644 --- a/voice_servers/lavalink/egg-lavalink.json +++ b/voice_servers/lavalink/egg-lavalink.json @@ -1,24 +1,24 @@ { "_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-04-11T13:56:42+02:00", + "exported_at": "2023-05-06T17:07:59+00: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, - "images": [ - "ghcr.io/parkervcp/yolks:java_11" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:java_11": "ghcr.io\/parkervcp\/yolks:java_11" + }, "file_denylist": [], "startup": "java -jar Lavalink.jar", "config": { "files": "{\r\n \"application.yml\": {\r\n \"parser\": \"yml\",\r\n \"find\": {\r\n \"server.address\": \"0.0.0.0\",\r\n \"server.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Started Launcher in \"\r\n}", "logs": "{}", - "stop": "^C" + "stop": "^^C" }, "scripts": { "installation": { From dfda23bcf8d88e372c157434929e9efe87f52d47 Mon Sep 17 00:00:00 2001 From: David Katz Date: Sat, 6 May 2023 12:15:13 -0700 Subject: [PATCH 205/473] Use '@user_jvm_args.txt' if available --- .../minecraft/java/curseforge/egg-curse-forge-generic.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json b/game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json index e9726824..22cb0625 100644 --- a/game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json +++ b/game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-05T19:34:12-07:00", + "exported_at": "2023-05-06T12:13:41-07:00", "name": "CurseForge Generic", "author": "contact@chromozone.dev", "description": "A generic egg for a CurseForge modpack.", @@ -20,7 +20,7 @@ "Java 17": "ghcr.io\/pterodactyl\/yolks:java_17" }, "file_denylist": [], - "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true $([[ ! -f unix_args.txt ]] && printf %s \"-jar `cat .serverjar`\" || printf %s \"@unix_args.txt\")", + "startup": "java $([[ -f user_jvm_args.txt ]] && printf %s \"@user_jvm_args.txt\") -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true $([[ ! -f unix_args.txt ]] && printf %s \"-jar `cat .serverjar`\" || printf %s \"@unix_args.txt\")", "config": { "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\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}", From a68f8e752990dd341708056c6090b2e0245b3eb4 Mon Sep 17 00:00:00 2001 From: David Katz Date: Sat, 6 May 2023 12:31:30 -0700 Subject: [PATCH 206/473] Use '@user_jvm_args.txt' if available --- game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json b/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json index 2859e9ff..2938c759 100644 --- a/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json +++ b/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-05T18:13:15-07:00", + "exported_at": "2023-05-06T12:29:46-07:00", "name": "Modrinth Generic", "author": "contact@chromozone.dev", "description": "A generic egg for a Modrinth modpack.", @@ -20,7 +20,7 @@ "Java 17": "ghcr.io\/pterodactyl\/yolks:java_17" }, "file_denylist": [], - "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true $([[ ! -f unix_args.txt ]] && printf %s \"-jar `cat .serverjar`\" || printf %s \"@unix_args.txt\")", + "startup": "java $([[ -f user_jvm_args.txt ]] && printf %s \"@user_jvm_args.txt\") -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true $([[ ! -f unix_args.txt ]] && printf %s \"-jar `cat .serverjar`\" || printf %s \"@unix_args.txt\")", "config": { "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\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}", From 516ee4778d279e107b65814d25c5c2ec38621c22 Mon Sep 17 00:00:00 2001 From: David Katz Date: Sat, 6 May 2023 14:06:30 -0700 Subject: [PATCH 207/473] Improve file detection when looking up older pack versions --- .../minecraft/java/curseforge/egg-curse-forge-generic.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json b/game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json index 22cb0625..85d44a74 100644 --- a/game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json +++ b/game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-06T12:13:41-07:00", + "exported_at": "2023-05-06T14:04:53-07:00", "name": "CurseForge Generic", "author": "contact@chromozone.dev", "description": "A generic egg for a CurseForge modpack.", @@ -29,7 +29,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# shellcheck disable=SC2155\r\n#\r\n# CurseForge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n: \"${SERVER_DIR:=\/mnt\/server}\"\r\n: \"${PROJECT_ID:=}\"\r\n: \"${VERSION_ID:=}\"\r\n: \"${API_KEY:=}\"\r\n\r\nif [[ ! -d $SERVER_DIR ]]; then\r\n mkdir -p \"$SERVER_DIR\"\r\nfi\r\n\r\nif ! cd \"$SERVER_DIR\"; then\r\n echo -e \"Failed to change directory to ${SERVER_DIR}\"\r\n exit 1\r\nfi\r\n\r\nfunction install_required {\r\n echo -e \"Installing required packages...\"\r\n echo -e \"\\tRunning apt update\"\r\n apt update > \/dev\/null 2>&1 || { echo \"apt update failed!\"; exit 1; }\r\n echo -e \"\\tRunning apt install\"\r\n apt install -y wget jq unzip > \/dev\/null 2>&1 || { echo \"apt install failed!\"; exit 1; }\r\n}\r\n\r\nCURSEFORGE_API_URL=\"https:\/\/api.curseforge.com\/v1\/mods\/\"\r\nCURSEFORGE_API_HEADERS=(\"--header=Accept: application\/json\" \"--header=x-api-key: ${API_KEY}\")\r\n\r\nfunction get_download {\r\n echo -e \"Retrieving CurseForge project information...\"\r\n local PROJECT_DATA=$(wget -q \"${CURSEFORGE_API_HEADERS[@]}\" \"${CURSEFORGE_API_URL}${PROJECT_ID}\" -O -)\r\n local PROJECT_TITLE=$(echo \"$PROJECT_DATA\" | jq -r '.data.name \/\/ empty')\r\n\r\n if [[ -z \"${PROJECT_DATA}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve project data for project id '${PROJECT_ID}'\"\r\n exit 1\r\n fi\r\n\r\n local IS_SERVER_PACK=false\r\n\r\n if [[ -z \"${VERSION_ID}\" || \"${VERSION_ID}\" == \"latest\" ]]; then\r\n echo -e \"\\tNo version ID specified, using latest version\"\r\n VERSION_ID=$(echo \"$PROJECT_DATA\" | jq -r '.data.mainFileId \/\/ empty')\r\n\r\n local VERSION_SERVER_PACK=\"$(echo -e \"${PROJECT_DATA}\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.data.latestFiles[] | select(.id|tostring==$VERSION_ID) | .isServerPack')\"\r\n local VERSION_SERVER_ID=\"$(echo -e \"${PROJECT_DATA}\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.data.latestFiles[] | select(.id|tostring==$VERSION_ID) | .serverPackFileId')\"\r\n\r\n if [[ \"${VERSION_SERVER_PACK}\" == \"false\" && -n \"${VERSION_SERVER_ID}\" ]]; then\r\n echo -e \"\\tFound server pack version id '${VERSION_SERVER_ID}'\"\r\n VERSION_ID=$VERSION_SERVER_ID\r\n IS_SERVER_PACK=true\r\n elif [[ \"${VERSION_SERVER_PACK}\" == \"true\" ]]; then\r\n IS_SERVER_PACK=true\r\n fi\r\n else\r\n echo -e \"\\tChecking if provided version id '${VERSION_ID}' exists\"\r\n\r\n local VERSION_SERVER_PACK=\"$(echo -e \"${PROJECT_DATA}\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.data.latestFiles[]? | select(.serverPackFileId|tostring==$VERSION_ID) | .serverPackFileId')\"\r\n local VERSION_SERVER_ID;\r\n if [[ -n \"${VERSION_SERVER_PACK}\" ]]; then\r\n VERSION_ID=$VERSION_SERVER_PACK\r\n IS_SERVER_PACK=true\r\n elif [[ $(echo \"$PROJECT_DATA\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.data.latestFiles[]? | select(.id|tostring == $VERSION_ID) | .id') == \"${VERSION_ID}\" ]]; then\r\n VERSION_SERVER_PACK=\"$(echo -e \"${PROJECT_DATA}\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.data.latestFiles[] | select(.id|tostring==$VERSION_ID) | .isServerPack')\"\r\n VERSION_SERVER_ID=\"$(echo -e \"${PROJECT_DATA}\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.data.latestFiles[] | select(.id|tostring==$VERSION_ID) | .serverPackFileId')\"\r\n\r\n if [[ \"${VERSION_SERVER_PACK}\" == \"false\" && -n \"${VERSION_SERVER_ID}\" ]]; then\r\n echo -e \"\\tFound server pack version id '${VERSION_SERVER_ID}'\"\r\n VERSION_ID=$VERSION_SERVER_ID\r\n IS_SERVER_PACK=true\r\n elif [[ \"${VERSION_SERVER_PACK}\" == \"true\" ]]; then\r\n IS_SERVER_PACK=true\r\n fi\r\n else\r\n echo -e \"\\tERROR: Version id '${VERSION_ID}' not found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n fi\r\n\r\n # Check if version id is unset or empty string\r\n if [[ -z \"${VERSION_ID}\" ]]; then\r\n echo -e \"\\tERROR: No version id found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n\r\n if [[ \"${IS_SERVER_PACK}\" == \"false\" ]]; then\r\n echo -e \"\\tWARNING: Version id '${VERSION_ID}' is not a server pack, attempting to use client files\"\r\n fi\r\n\r\n # get json data to work with\r\n echo -e \"\\tRetrieving version information for '${VERSION_ID}'\"\r\n local JSON_DATA=$(wget -q \"${CURSEFORGE_API_HEADERS[@]}\" \"${CURSEFORGE_API_URL}${PROJECT_ID}\/files\/${VERSION_ID}\/download-url\" -O -)\r\n\r\n if [[ -z \"${JSON_DATA}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve version data for version id '${VERSION_ID}'\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tParsing CurseForge pack download url\"\r\n\r\n local DOWNLOAD_URL=$(echo -e \"$JSON_DATA\" | jq -r '.data \/\/ empty')\r\n if [[ -z \"${DOWNLOAD_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for version ${VERSION_ID}\"\r\n exit 1\r\n fi\r\n\r\n # download modpack files\r\n echo -e \"\\tDownloading ${DOWNLOAD_URL}\"\r\n if ! wget -q \"${DOWNLOAD_URL}\" -O server.zip; then\r\n echo -e \"Download failed!\"\r\n exit 1\r\n fi\r\n}\r\n\r\nfunction get_loader {\r\n echo -e \"Retrieving loader information...\"\r\n\r\n local PROJECT_DATA=$(wget -q \"${CURSEFORGE_API_HEADERS[@]}\" \"${CURSEFORGE_API_URL}${PROJECT_ID}\" -O -)\r\n if [[ -z \"${PROJECT_DATA}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve project data for project id '${PROJECT_ID}'\"\r\n exit 1\r\n fi\r\n\r\n local CLIENT_VERSION_ID;\r\n if [[ $(echo \"$PROJECT_DATA\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.data.latestFiles[]? | select(.id|tostring == $VERSION_ID) | .id') != \"${VERSION_ID}\" ]]; then\r\n # Check if the provided version id is a server pack\r\n VERSION_CLIENT_PACK=\"$(echo -e \"${PROJECT_DATA}\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.data.latestFiles[]? | select(.serverPackFileId|tostring==$VERSION_ID) | .id')\"\r\n\r\n if [[ -n \"${VERSION_CLIENT_PACK}\" ]]; then\r\n CLIENT_VERSION_ID=$VERSION_CLIENT_PACK\r\n else\r\n echo -e \"\\tERROR: Version id '${VERSION_ID}' not found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n else\r\n CLIENT_VERSION_ID=$VERSION_ID\r\n fi\r\n\r\n echo -e \"\\tRetrieving version information for '${CLIENT_VERSION_ID}'\"\r\n local JSON_DATA=$(wget -q \"${CURSEFORGE_API_HEADERS[@]}\" \"${CURSEFORGE_API_URL}${PROJECT_ID}\/files\/${CLIENT_VERSION_ID}\/download-url\" -O -)\r\n\r\n echo -e \"\\tParsing CurseForge pack download url\"\r\n\r\n local DOWNLOAD_URL=$(echo -e \"$JSON_DATA\" | jq -r '.data \/\/ empty')\r\n\r\n if [[ -z \"${DOWNLOAD_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for version ${CLIENT_VERSION_ID}\"\r\n exit 1\r\n fi\r\n\r\n # download modpack files\r\n echo -e \"\\tDownloading ${DOWNLOAD_URL}\"\r\n wget -q \"${DOWNLOAD_URL}\" -O client.zip\r\n\r\n echo -e \"\\tUnpacking client manifest\"\r\n unzip -jo client.zip manifest.json -d \"${SERVER_DIR}\"\r\n mv \"${SERVER_DIR}\/manifest.json\" \"${SERVER_DIR}\/client.manifest.json\" # rename to avoid conflicts with main manifest\r\n rm -rf client.zip\r\n\r\n echo -e \"\\tParsing client manifest\"\r\n local MANIFEST=\"${SERVER_DIR}\/client.manifest.json\"\r\n\r\n LOADER_ID=$(jq -r '.minecraft.modLoaders[]? | select(.primary == true) | .id' \"${MANIFEST}\")\r\n LOADER_NAME=$(echo \"${LOADER_ID}\" | cut -d'-' -f1)\r\n LOADER_VERSION=$(echo \"${LOADER_ID}\" | cut -d'-' -f2)\r\n\r\n if [[ -z \"${LOADER_NAME}\" || -z \"${LOADER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No loader found in client manifest!\"\r\n exit 1\r\n fi\r\n\r\n MINECRAFT_VERSION=$(jq -r '.minecraft.version \/\/ empty' \"${MANIFEST}\")\r\n\r\n if [[ -z \"${MINECRAFT_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No minecraft version found in client manifest!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tFound loader ${LOADER_NAME} ${LOADER_VERSION} for Minecraft ${MINECRAFT_VERSION}\"\r\n}\r\n\r\nfunction unzip-strip() (\r\n set -u\r\n\r\n local archive=$1\r\n local destdir=${2:-}\r\n shift; shift || :\r\n echo -e \"\\tUnpacking ${archive} to ${destdir}\"\r\n\r\n echo -e \"\\tCreating temporary directory\"\r\n local tmpdir=\/mnt\/server\/tmp\r\n if ! mkdir -p \"${tmpdir}\"; then\r\n echo -e \"\\tERROR: mkdir failed to create temporary directory\"\r\n return 1\r\n fi\r\n\r\n trap 'rm -rf -- \"$tmpdir\"' EXIT\r\n\r\n echo -e \"\\tUnpacking archive\"\r\n\r\n if ! unzip -q \"$archive\" -d \"$tmpdir\"; then\r\n echo -e \"\\tERROR: unzip failed to unpack archive\"\r\n return 1\r\n fi\r\n\r\n echo -e \"\\tSetting glob settings\"\r\n\r\n shopt -s dotglob\r\n\r\n echo -e \"\\tCleaning up directory structure\"\r\n\r\n local files=(\"$tmpdir\"\/*) name i=1\r\n\r\n if (( ${#files[@]} == 1 )) && [[ -d \"${files[0]}\" ]]; then\r\n name=$(basename \"${files[0]}\")\r\n files=(\"$tmpdir\"\/*\/*)\r\n else\r\n name=$(basename \"$archive\"); name=${archive%.*}\r\n files=(\"$tmpdir\"\/*)\r\n fi\r\n\r\n if [[ -z \"$destdir\" ]]; then\r\n destdir=.\/\"$name\"\r\n fi\r\n\r\n while [[ -f \"$destdir\" ]]; do\r\n destdir=${destdir}-$((i++));\r\n done\r\n\r\n echo -e \"\\tCopying files to ${destdir}\"\r\n\r\n mkdir -p \"$destdir\"\r\n cp -ar \"$@\" -t \"$destdir\" -- \"${files[@]}\"\r\n rm -rf \"$tmpdir\"\r\n)\r\n\r\nfunction unpack_zip {\r\n echo -e \"Unpacking server files...\"\r\n unzip-strip server.zip \"${SERVER_DIR}\"\r\n rm -rf server.zip\r\n}\r\n\r\nfunction json_download_mods {\r\n echo \"Downloading mods...\"\r\n\r\n local MANIFEST=\"${SERVER_DIR}\/manifest.json\"\r\n jq -c '.files[]? | select(.required == true) | {project: .projectID, file: .fileID}' \"${MANIFEST}\" | while read -r mod; do\r\n local MOD_PROJECT_ID=$(echo \"${mod}\" | jq -r '.project \/\/ empty')\r\n local MOD_FILE_ID=$(echo \"${mod}\" | jq -r '.file \/\/ empty')\r\n\r\n if [[ -z \"${MOD_PROJECT_ID}\" || -z \"${MOD_FILE_ID}\" ]]; then\r\n echo -e \"\\tERROR: Failed to parse project id or file id for mod '${mod}'\"\r\n exit 1\r\n fi\r\n\r\n local FILE_URL=$(wget -q \"${CURSEFORGE_API_HEADERS[@]}\" \"${CURSEFORGE_API_URL}${MOD_PROJECT_ID}\/files\/${MOD_FILE_ID}\/download-url\" -O - | jq -r '.data \/\/ empty')\r\n\r\n if [[ -z \"${FILE_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for mod ${MOD_PROJECT_ID} ${MOD_FILE_ID}\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading ${FILE_URL}\"\r\n\r\n if ! wget -q \"${FILE_URL}\" -P \"${SERVER_DIR}\/mods\"; then\r\n echo -e \"\\tERROR: Failed to download mod ${MOD_PROJECT_ID} ${MOD_FILE_ID}\"\r\n exit 1\r\n fi\r\n done\r\n}\r\n\r\nfunction json_download_overrides {\r\n echo \"Copying overrides...\"\r\n if [[ -d \"${SERVER_DIR}\/overrides\" ]]; then\r\n cp -r \"${SERVER_DIR}\/overrides\/\"* \"${SERVER_DIR}\"\r\n rm -r \"${SERVER_DIR}\/overrides\"\r\n fi\r\n}\r\n\r\nFORGE_INSTALLER_URL=\"https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/\"\r\n\r\nfunction json_download_forge {\r\n echo \"Downloading Forge...\"\r\n\r\n local MC_VERSION=$MINECRAFT_VERSION\r\n local FORGE_VERSION=$LOADER_VERSION\r\n\r\n FORGE_VERSION=\"${MC_VERSION}-${FORGE_VERSION}\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" || \"${MC_VERSION}\" == \"1.8.9\" ]]; then\r\n FORGE_VERSION=\"${FORGE_VERSION}-${MC_VERSION}\"\r\n fi\r\n\r\n local FORGE_JAR=\"forge-${FORGE_VERSION}.jar\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" ]]; then\r\n FORGE_JAR=\"forge-${FORGE_VERSION}-universal.jar\"\r\n fi\r\n\r\n local FORGE_URL=\"${FORGE_INSTALLER_URL}${FORGE_VERSION}\/forge-${FORGE_VERSION}\"\r\n\r\n echo -e \"\\tUsing Forge ${FORGE_VERSION} from ${FORGE_URL}\"\r\n\r\n local FORGE_INSTALLER=\"${FORGE_URL}-installer.jar\"\r\n echo -e \"\\tDownloading Forge Installer ${FORGE_VERSION} from ${FORGE_INSTALLER}\"\r\n\r\n if ! wget -q -O forge-installer.jar \"${FORGE_INSTALLER}\"; then\r\n echo -e \"\\tERROR: Failed to download Forge Installer ${FORGE_VERSION}\"\r\n exit 1\r\n fi\r\n\r\n # Remove old Forge files so we can safely update\r\n rm -rf libraries\/net\/minecraftforge\/forge\/\r\n rm -f unix_args.txt\r\n\r\n echo -e \"\\tInstalling Forge Server ${FORGE_VERSION}\"\r\n if ! java -jar forge-installer.jar --installServer > \/dev\/null 2>&1; then\r\n echo -e \"\\tERROR: Failed to install Forge Server ${FORGE_VERSION}\"\r\n exit 1\r\n fi\r\n\r\n if [[ $MC_VERSION =~ ^1\\.(17|18|19|20|21|22|23) || $FORGE_VERSION =~ ^1\\.(17|18|19|20|21|22|23) ]]; then\r\n echo -e \"\\tDetected Forge 1.17 or newer version. Setting up Forge Unix arguments\"\r\n ln -sf libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt unix_args.txt\r\n else\r\n mv \"$FORGE_JAR\" forge-server-launch.jar\r\n echo \"forge-server-launch.jar\" > \".serverjar\"\r\n fi\r\n\r\n rm -f forge-installer.jar\r\n}\r\n\r\nFABRIC_INSTALLER_URL=\"https:\/\/meta.fabricmc.net\/v2\/versions\/installer\"\r\n\r\nfunction json_download_fabric {\r\n echo \"Downloading Fabric...\"\r\n\r\n local MC_VERSION=$MINECRAFT_VERSION\r\n local FABRIC_VERSION=$LOADER_VERSION\r\n\r\n local INSTALLER_JSON=$(wget -q -O - ${FABRIC_INSTALLER_URL} )\r\n local INSTALLER_VERSION=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].version \/\/ empty')\r\n local INSTALLER_URL=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].url \/\/ empty')\r\n\r\n if [[ -z \"${INSTALLER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric installer version found\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${INSTALLER_URL}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric installer url found\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading Fabric Installer ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n\r\n if ! wget -q -O fabric-installer.jar \"${INSTALLER_URL}\"; then\r\n echo -e \"\\tERROR: Failed to download Fabric Installer ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Fabric Server ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n if ! java -jar fabric-installer.jar server -mcversion \"${MC_VERSION}\" -loader \"${FABRIC_VERSION}\" -downloadMinecraft; then\r\n echo -e \"\\tERROR: Failed to install Fabric Server ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo \"fabric-server-launch.jar\" > \".serverjar\"\r\n\r\n rm -f fabric-installer.jar\r\n}\r\n\r\nQUILT_INSTALLER_URL=\"https:\/\/meta.quiltmc.org\/v3\/versions\/installer\"\r\n\r\nfunction json_download_quilt {\r\n echo \"Downloading Quilt...\"\r\n\r\n local MC_VERSION=$MINECRAFT_VERSION\r\n local QUILT_VERSION=$LOADER_VERSION\r\n\r\n local INSTALLER_JSON=$(wget -q -O - ${QUILT_INSTALLER_URL} )\r\n local INSTALLER_VERSION=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].version \/\/ empty')\r\n local INSTALLER_URL=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].url \/\/ empty')\r\n\r\n if [[ -z \"${INSTALLER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt installer version found\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${INSTALLER_URL}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt installer URL found\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading Quilt Installer ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n\r\n if ! wget -q -O quilt-installer.jar \"${INSTALLER_URL}\"; then\r\n echo -e \"\\tERROR: Failed to download Quilt Installer ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Quilt Server ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n if ! java -jar quilt-installer.jar install server \"${MC_VERSION}\" \"${QUILT_VERSION}\" --download-server --install-dir=.\/; then\r\n echo -e \"\\tERROR: Failed to install Quilt Server ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo \"quilt-server-launch.jar\" > \".serverjar\"\r\n\r\n rm quilt-installer.jar\r\n}\r\n\r\ninstall_required\r\n\r\nif [[ -z \"${PROJECT_ID}\" ]]; then\r\n echo \"ERROR: You must specify a PROJECT_ID environment variable!\"\r\n exit 1\r\nfi\r\n\r\nif [[ ! \"${PROJECT_ID}\" = \"zip\" ]]; then\r\n\tget_download\r\nfi\r\n\r\nget_loader\r\nunpack_zip\r\n\r\nif [[ -f \"${SERVER_DIR}\/manifest.json\" ]]; then\r\n echo \"Found manifest.json, installing mods\"\r\n json_download_mods\r\n json_download_overrides\r\nfi\r\n\r\nif [[ -f \"${SERVER_DIR}\/client.manifest.json\" ]]; then\r\n MANIFEST=\"${SERVER_DIR}\/client.manifest.json\"\r\n\r\n if [[ $LOADER_NAME == \"forge\" ]]; then\r\n json_download_forge\r\n fi\r\n\r\n if [[ $LOADER_NAME == \"fabric\" ]]; then\r\n json_download_fabric\r\n fi\r\n\r\n if [[ $LOADER_NAME == \"quilt\" ]]; then\r\n json_download_quilt\r\n fi\r\nfi\r\n\r\necho -e \"\\nInstall completed succesfully, enjoy!\"", + "script": "#!\/bin\/bash\r\n# shellcheck disable=SC2155\r\n#\r\n# CurseForge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n: \"${SERVER_DIR:=\/mnt\/server}\"\r\n: \"${PROJECT_ID:=}\"\r\n: \"${VERSION_ID:=}\"\r\n: \"${API_KEY:=}\"\r\n\r\nif [[ ! -d $SERVER_DIR ]]; then\r\n mkdir -p \"$SERVER_DIR\"\r\nfi\r\n\r\nif ! cd \"$SERVER_DIR\"; then\r\n echo -e \"Failed to change directory to ${SERVER_DIR}\"\r\n exit 1\r\nfi\r\n\r\nfunction install_required {\r\n echo -e \"Installing required packages...\"\r\n echo -e \"\\tRunning apt update\"\r\n apt update > \/dev\/null 2>&1 || { echo \"apt update failed!\"; exit 1; }\r\n echo -e \"\\tRunning apt install\"\r\n apt install -y wget jq unzip > \/dev\/null 2>&1 || { echo \"apt install failed!\"; exit 1; }\r\n}\r\n\r\nCURSEFORGE_API_URL=\"https:\/\/api.curseforge.com\/v1\/mods\/\"\r\nCURSEFORGE_API_HEADERS=(\"--header=Accept: application\/json\" \"--header=x-api-key: ${API_KEY}\")\r\n\r\nfunction get_download {\r\n echo -e \"Retrieving CurseForge project information...\"\r\n local PROJECT_DATA=$(wget -q \"${CURSEFORGE_API_HEADERS[@]}\" \"${CURSEFORGE_API_URL}${PROJECT_ID}\" -O -)\r\n local PROJECT_TITLE=$(echo \"$PROJECT_DATA\" | jq -r '.data.name \/\/ empty')\r\n\r\n if [[ -z \"${PROJECT_DATA}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve project data for project id '${PROJECT_ID}'\"\r\n exit 1\r\n fi\r\n\r\n local IS_SERVER_PACK=false\r\n\r\n if [[ -z \"${VERSION_ID}\" || \"${VERSION_ID}\" == \"latest\" ]]; then\r\n echo -e \"\\tNo file ID specified, using latest file\"\r\n VERSION_ID=$(echo \"$PROJECT_DATA\" | jq -r '.data.mainFileId \/\/ empty')\r\n\r\n local VERSION_SERVER_PACK=\"$(echo -e \"${PROJECT_DATA}\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.data.latestFiles[] | select(.id|tostring==$VERSION_ID) | .isServerPack')\"\r\n local VERSION_SERVER_ID=\"$(echo -e \"${PROJECT_DATA}\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.data.latestFiles[] | select(.id|tostring==$VERSION_ID) | .serverPackFileId')\"\r\n\r\n if [[ \"${VERSION_SERVER_PACK}\" == \"false\" && -n \"${VERSION_SERVER_ID}\" ]]; then\r\n echo -e \"\\tFound server pack file id '${VERSION_SERVER_ID}'\"\r\n VERSION_ID=$VERSION_SERVER_ID\r\n IS_SERVER_PACK=true\r\n elif [[ \"${VERSION_SERVER_PACK}\" == \"true\" ]]; then\r\n IS_SERVER_PACK=true\r\n fi\r\n else\r\n echo -e \"\\tChecking if provided file id '${VERSION_ID}' exists\"\r\n\r\n local FILE_DATA=$(wget -q \"${CURSEFORGE_API_HEADERS[@]}\" \"${CURSEFORGE_API_URL}${PROJECT_ID}\/files\/${VERSION_ID}\" -O -)\r\n\r\n if [[ -z \"${FILE_DATA}\" ]]; then\r\n echo -e \"\\tERROR: File id '${VERSION_ID}' not found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n\r\n IS_SERVER_PACK=$(echo -e \"${FILE_DATA}\" | jq -r '.data.isServerPack \/\/ \"false\"')\r\n\r\n if [[ \"${IS_SERVER_PACK}\" == \"false\" ]]; then\r\n local VERSION_SERVER_PACK=\"$(echo -e \"${FILE_DATA}\" | jq -r '.data.serverPackFileId \/\/ empty')\"\r\n if [[ -n \"${VERSION_SERVER_PACK}\" ]]; then\r\n echo -e \"\\tFound server pack file id '${VERSION_SERVER_PACK}'\"\r\n VERSION_ID=$VERSION_SERVER_PACK\r\n IS_SERVER_PACK=true\r\n fi\r\n else\r\n IS_SERVER_PACK=true\r\n fi\r\n fi\r\n\r\n # Check if version id is unset or empty string\r\n if [[ -z \"${VERSION_ID}\" ]]; then\r\n echo -e \"\\tERROR: No file id found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n\r\n if [[ \"${IS_SERVER_PACK}\" == \"false\" ]]; then\r\n echo -e \"\\tWARNING: File id '${VERSION_ID}' is not a server pack, attempting to use client files\"\r\n fi\r\n\r\n # get json data to work with\r\n echo -e \"\\tRetrieving version information for '${VERSION_ID}'\"\r\n local JSON_DATA=$(wget -q \"${CURSEFORGE_API_HEADERS[@]}\" \"${CURSEFORGE_API_URL}${PROJECT_ID}\/files\/${VERSION_ID}\/download-url\" -O -)\r\n\r\n if [[ -z \"${JSON_DATA}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve file data for file id '${VERSION_ID}'\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tParsing CurseForge pack download url\"\r\n\r\n local DOWNLOAD_URL=$(echo -e \"$JSON_DATA\" | jq -r '.data \/\/ empty')\r\n if [[ -z \"${DOWNLOAD_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for file ${VERSION_ID}\"\r\n exit 1\r\n fi\r\n\r\n # download modpack files\r\n echo -e \"\\tDownloading ${DOWNLOAD_URL}\"\r\n if ! wget -q \"${DOWNLOAD_URL}\" -O server.zip; then\r\n echo -e \"Download failed!\"\r\n exit 1\r\n fi\r\n}\r\n\r\nfunction get_loader {\r\n echo -e \"Retrieving loader information...\"\r\n\r\n local PROJECT_DATA=$(wget -q \"${CURSEFORGE_API_HEADERS[@]}\" \"${CURSEFORGE_API_URL}${PROJECT_ID}\" -O -)\r\n local PROJECT_TITLE=$(echo \"$PROJECT_DATA\" | jq -r '.data.name \/\/ empty')\r\n if [[ -z \"${PROJECT_DATA}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve project data for project id '${PROJECT_ID}'\"\r\n exit 1\r\n fi\r\n\r\n local FILE_DATA=$(wget -q \"${CURSEFORGE_API_HEADERS[@]}\" \"${CURSEFORGE_API_URL}${PROJECT_ID}\/files\/${VERSION_ID}\" -O -)\r\n\r\n if [[ -z \"${FILE_DATA}\" ]]; then\r\n echo -e \"\\tERROR: File id '${VERSION_ID}' not found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n\r\n local IS_SERVER_PACK=$(echo -e \"${FILE_DATA}\" | jq -r '.data.isServerPack \/\/ \"false\"')\r\n local CLIENT_VERSION_ID;\r\n\r\n if [[ \"${IS_SERVER_PACK}\" == \"true\" ]]; then\r\n CLIENT_VERSION_ID=\"$(echo -e \"${FILE_DATA}\" | jq -r '.data.parentProjectFileId \/\/ empty')\"\r\n else\r\n CLIENT_VERSION_ID=$VERSION_ID\r\n fi\r\n\r\n if [[ -z \"${CLIENT_VERSION_ID}\" ]]; then\r\n echo -e \"\\tERROR: File id '${VERSION_ID}' not found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tRetrieving file information for '${CLIENT_VERSION_ID}'\"\r\n local JSON_DATA=$(wget -q \"${CURSEFORGE_API_HEADERS[@]}\" \"${CURSEFORGE_API_URL}${PROJECT_ID}\/files\/${CLIENT_VERSION_ID}\/download-url\" -O -)\r\n\r\n echo -e \"\\tParsing CurseForge pack download url\"\r\n\r\n local DOWNLOAD_URL=$(echo -e \"$JSON_DATA\" | jq -r '.data \/\/ empty')\r\n\r\n if [[ -z \"${DOWNLOAD_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for file id ${CLIENT_VERSION_ID}\"\r\n exit 1\r\n fi\r\n\r\n # download modpack files\r\n echo -e \"\\tDownloading ${DOWNLOAD_URL}\"\r\n wget -q \"${DOWNLOAD_URL}\" -O client.zip\r\n\r\n echo -e \"\\tUnpacking client manifest\"\r\n unzip -jo client.zip manifest.json -d \"${SERVER_DIR}\"\r\n mv \"${SERVER_DIR}\/manifest.json\" \"${SERVER_DIR}\/client.manifest.json\" # rename to avoid conflicts with main manifest\r\n rm -rf client.zip\r\n\r\n echo -e \"\\tParsing client manifest\"\r\n local MANIFEST=\"${SERVER_DIR}\/client.manifest.json\"\r\n\r\n LOADER_ID=$(jq -r '.minecraft.modLoaders[]? | select(.primary == true) | .id' \"${MANIFEST}\")\r\n LOADER_NAME=$(echo \"${LOADER_ID}\" | cut -d'-' -f1)\r\n LOADER_VERSION=$(echo \"${LOADER_ID}\" | cut -d'-' -f2)\r\n\r\n if [[ -z \"${LOADER_NAME}\" || -z \"${LOADER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No loader found in client manifest!\"\r\n exit 1\r\n fi\r\n\r\n MINECRAFT_VERSION=$(jq -r '.minecraft.version \/\/ empty' \"${MANIFEST}\")\r\n\r\n if [[ -z \"${MINECRAFT_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No minecraft version found in client manifest!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tFound loader ${LOADER_NAME} ${LOADER_VERSION} for Minecraft ${MINECRAFT_VERSION}\"\r\n}\r\n\r\nfunction unzip-strip() (\r\n set -u\r\n\r\n local archive=$1\r\n local destdir=${2:-}\r\n shift; shift || :\r\n echo -e \"\\tUnpacking ${archive} to ${destdir}\"\r\n\r\n echo -e \"\\tCreating temporary directory\"\r\n local tmpdir=\/mnt\/server\/tmp\r\n if ! mkdir -p \"${tmpdir}\"; then\r\n echo -e \"\\tERROR: mkdir failed to create temporary directory\"\r\n return 1\r\n fi\r\n\r\n trap 'rm -rf -- \"$tmpdir\"' EXIT\r\n\r\n echo -e \"\\tUnpacking archive\"\r\n\r\n if ! unzip -q \"$archive\" -d \"$tmpdir\"; then\r\n echo -e \"\\tERROR: unzip failed to unpack archive\"\r\n return 1\r\n fi\r\n\r\n echo -e \"\\tSetting glob settings\"\r\n\r\n shopt -s dotglob\r\n\r\n echo -e \"\\tCleaning up directory structure\"\r\n\r\n local files=(\"$tmpdir\"\/*) name i=1\r\n\r\n if (( ${#files[@]} == 1 )) && [[ -d \"${files[0]}\" ]]; then\r\n name=$(basename \"${files[0]}\")\r\n files=(\"$tmpdir\"\/*\/*)\r\n else\r\n name=$(basename \"$archive\"); name=${archive%.*}\r\n files=(\"$tmpdir\"\/*)\r\n fi\r\n\r\n if [[ -z \"$destdir\" ]]; then\r\n destdir=.\/\"$name\"\r\n fi\r\n\r\n while [[ -f \"$destdir\" ]]; do\r\n destdir=${destdir}-$((i++));\r\n done\r\n\r\n echo -e \"\\tCopying files to ${destdir}\"\r\n\r\n mkdir -p \"$destdir\"\r\n cp -ar \"$@\" -t \"$destdir\" -- \"${files[@]}\"\r\n rm -rf \"$tmpdir\"\r\n)\r\n\r\nfunction unpack_zip {\r\n echo -e \"Unpacking server files...\"\r\n unzip-strip server.zip \"${SERVER_DIR}\"\r\n rm -rf server.zip\r\n}\r\n\r\nfunction json_download_mods {\r\n echo \"Downloading mods...\"\r\n\r\n local MANIFEST=\"${SERVER_DIR}\/manifest.json\"\r\n jq -c '.files[]? | select(.required == true) | {project: .projectID, file: .fileID}' \"${MANIFEST}\" | while read -r mod; do\r\n local MOD_PROJECT_ID=$(echo \"${mod}\" | jq -r '.project \/\/ empty')\r\n local MOD_FILE_ID=$(echo \"${mod}\" | jq -r '.file \/\/ empty')\r\n\r\n if [[ -z \"${MOD_PROJECT_ID}\" || -z \"${MOD_FILE_ID}\" ]]; then\r\n echo -e \"\\tERROR: Failed to parse project id or file id for mod '${mod}'\"\r\n exit 1\r\n fi\r\n\r\n local FILE_URL=$(wget -q \"${CURSEFORGE_API_HEADERS[@]}\" \"${CURSEFORGE_API_URL}${MOD_PROJECT_ID}\/files\/${MOD_FILE_ID}\/download-url\" -O - | jq -r '.data \/\/ empty')\r\n\r\n if [[ -z \"${FILE_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for mod ${MOD_PROJECT_ID} ${MOD_FILE_ID}\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading ${FILE_URL}\"\r\n\r\n if ! wget -q \"${FILE_URL}\" -P \"${SERVER_DIR}\/mods\"; then\r\n echo -e \"\\tERROR: Failed to download mod ${MOD_PROJECT_ID} ${MOD_FILE_ID}\"\r\n exit 1\r\n fi\r\n done\r\n}\r\n\r\nfunction json_download_overrides {\r\n echo \"Copying overrides...\"\r\n if [[ -d \"${SERVER_DIR}\/overrides\" ]]; then\r\n cp -r \"${SERVER_DIR}\/overrides\/\"* \"${SERVER_DIR}\"\r\n rm -r \"${SERVER_DIR}\/overrides\"\r\n fi\r\n}\r\n\r\nFORGE_INSTALLER_URL=\"https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/\"\r\n\r\nfunction json_download_forge {\r\n echo \"Downloading Forge...\"\r\n\r\n local MC_VERSION=$MINECRAFT_VERSION\r\n local FORGE_VERSION=$LOADER_VERSION\r\n\r\n FORGE_VERSION=\"${MC_VERSION}-${FORGE_VERSION}\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" || \"${MC_VERSION}\" == \"1.8.9\" ]]; then\r\n FORGE_VERSION=\"${FORGE_VERSION}-${MC_VERSION}\"\r\n fi\r\n\r\n local FORGE_JAR=\"forge-${FORGE_VERSION}.jar\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" ]]; then\r\n FORGE_JAR=\"forge-${FORGE_VERSION}-universal.jar\"\r\n fi\r\n\r\n local FORGE_URL=\"${FORGE_INSTALLER_URL}${FORGE_VERSION}\/forge-${FORGE_VERSION}\"\r\n\r\n echo -e \"\\tUsing Forge ${FORGE_VERSION} from ${FORGE_URL}\"\r\n\r\n local FORGE_INSTALLER=\"${FORGE_URL}-installer.jar\"\r\n echo -e \"\\tDownloading Forge Installer ${FORGE_VERSION} from ${FORGE_INSTALLER}\"\r\n\r\n if ! wget -q -O forge-installer.jar \"${FORGE_INSTALLER}\"; then\r\n echo -e \"\\tERROR: Failed to download Forge Installer ${FORGE_VERSION}\"\r\n exit 1\r\n fi\r\n\r\n # Remove old Forge files so we can safely update\r\n rm -rf libraries\/net\/minecraftforge\/forge\/\r\n rm -f unix_args.txt\r\n\r\n echo -e \"\\tInstalling Forge Server ${FORGE_VERSION}\"\r\n if ! java -jar forge-installer.jar --installServer > \/dev\/null 2>&1; then\r\n echo -e \"\\tERROR: Failed to install Forge Server ${FORGE_VERSION}\"\r\n exit 1\r\n fi\r\n\r\n if [[ $MC_VERSION =~ ^1\\.(17|18|19|20|21|22|23) || $FORGE_VERSION =~ ^1\\.(17|18|19|20|21|22|23) ]]; then\r\n echo -e \"\\tDetected Forge 1.17 or newer version. Setting up Forge Unix arguments\"\r\n ln -sf libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt unix_args.txt\r\n else\r\n mv \"$FORGE_JAR\" forge-server-launch.jar\r\n echo \"forge-server-launch.jar\" > \".serverjar\"\r\n fi\r\n\r\n rm -f forge-installer.jar\r\n}\r\n\r\nFABRIC_INSTALLER_URL=\"https:\/\/meta.fabricmc.net\/v2\/versions\/installer\"\r\n\r\nfunction json_download_fabric {\r\n echo \"Downloading Fabric...\"\r\n\r\n local MC_VERSION=$MINECRAFT_VERSION\r\n local FABRIC_VERSION=$LOADER_VERSION\r\n\r\n local INSTALLER_JSON=$(wget -q -O - ${FABRIC_INSTALLER_URL} )\r\n local INSTALLER_VERSION=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].version \/\/ empty')\r\n local INSTALLER_URL=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].url \/\/ empty')\r\n\r\n if [[ -z \"${INSTALLER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric installer version found\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${INSTALLER_URL}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric installer url found\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading Fabric Installer ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n\r\n if ! wget -q -O fabric-installer.jar \"${INSTALLER_URL}\"; then\r\n echo -e \"\\tERROR: Failed to download Fabric Installer ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Fabric Server ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n if ! java -jar fabric-installer.jar server -mcversion \"${MC_VERSION}\" -loader \"${FABRIC_VERSION}\" -downloadMinecraft; then\r\n echo -e \"\\tERROR: Failed to install Fabric Server ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo \"fabric-server-launch.jar\" > \".serverjar\"\r\n\r\n rm -f fabric-installer.jar\r\n}\r\n\r\nQUILT_INSTALLER_URL=\"https:\/\/meta.quiltmc.org\/v3\/versions\/installer\"\r\n\r\nfunction json_download_quilt {\r\n echo \"Downloading Quilt...\"\r\n\r\n local MC_VERSION=$MINECRAFT_VERSION\r\n local QUILT_VERSION=$LOADER_VERSION\r\n\r\n local INSTALLER_JSON=$(wget -q -O - ${QUILT_INSTALLER_URL} )\r\n local INSTALLER_VERSION=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].version \/\/ empty')\r\n local INSTALLER_URL=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].url \/\/ empty')\r\n\r\n if [[ -z \"${INSTALLER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt installer version found\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${INSTALLER_URL}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt installer URL found\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading Quilt Installer ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n\r\n if ! wget -q -O quilt-installer.jar \"${INSTALLER_URL}\"; then\r\n echo -e \"\\tERROR: Failed to download Quilt Installer ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Quilt Server ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n if ! java -jar quilt-installer.jar install server \"${MC_VERSION}\" \"${QUILT_VERSION}\" --download-server --install-dir=.\/; then\r\n echo -e \"\\tERROR: Failed to install Quilt Server ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo \"quilt-server-launch.jar\" > \".serverjar\"\r\n\r\n rm quilt-installer.jar\r\n}\r\n\r\ninstall_required\r\n\r\nif [[ -z \"${PROJECT_ID}\" ]]; then\r\n echo \"ERROR: You must specify a PROJECT_ID environment variable!\"\r\n exit 1\r\nfi\r\n\r\nif [[ ! \"${PROJECT_ID}\" = \"zip\" ]]; then\r\n\tget_download\r\nfi\r\n\r\nget_loader\r\nunpack_zip\r\n\r\nif [[ -f \"${SERVER_DIR}\/manifest.json\" ]]; then\r\n echo \"Found manifest.json, installing mods\"\r\n json_download_mods\r\n json_download_overrides\r\nfi\r\n\r\nif [[ -f \"${SERVER_DIR}\/client.manifest.json\" ]]; then\r\n MANIFEST=\"${SERVER_DIR}\/client.manifest.json\"\r\n\r\n if [[ $LOADER_NAME == \"forge\" ]]; then\r\n json_download_forge\r\n fi\r\n\r\n if [[ $LOADER_NAME == \"fabric\" ]]; then\r\n json_download_fabric\r\n fi\r\n\r\n if [[ $LOADER_NAME == \"quilt\" ]]; then\r\n json_download_quilt\r\n fi\r\nfi\r\n\r\necho -e \"\\nInstall completed succesfully, enjoy!\"", "container": "openjdk:8-jdk-slim", "entrypoint": "bash" } From 6d80a4ca2bcc574bf3dff14b1744b52874357492 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 7 May 2023 12:11:50 +0200 Subject: [PATCH 208/473] Update frozen-flame --- .../frozen_flame/egg-frozen-flame.json | 42 ++++++++++++------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json b/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json index f76ca3ff..30d87c00 100644 --- a/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json +++ b/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json @@ -4,25 +4,25 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-03T14:32:26+08:00", + "exported_at": "2023-05-07T12:10:34+02:00", "name": "Frozen Flame", "author": "theblitzbat@gmail.com", "description": "Frozen Flame Dedicated Server", "features": null, "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": ".\/FrozenFlame\/Binaries\/Linux\/FrozenFlameServer -log -MetaGameServerName={{SERVER_NAME}} -port {{SERVER_PORT}} -queryPort {{QUERY_PORT}}", + "startup": ".\/FrozenFlame\/Binaries\/Linux\/FrozenFlameServer-Linux-Shipping -log -MetaGameServerName={{SERVER_NAME}} -port {{SERVER_PORT}} -queryPort {{QUERY_PORT}} -RconPort={{RCON_PORT}} -RconPassword={{RCON_PASSWORD}}", "config": { "files": "{\r\n \"FrozenFlame\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\",\r\n \"ServerPassword\": \"ServerPassword=\\\"{{server.build.env.SERVER_PASSWORD}}\\\"\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"LogWorld: Bringing up level for play took\"\r\n}", "logs": "{}", - "stop": "^C" + "stop": "^^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n\r\n## just in case someone removed the defaults.\r\n\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\n\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\n\r\nmkdir -p \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit\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\/FrozenFlame\/Saved\/Config\/LinuxServer\r\n\r\ncd \/mnt\/server\/FrozenFlame\/Saved\/Config\/LinuxServer\r\n\r\ncat > Game.ini << EOF\r\n[\/Script\/Engine.GameSession]\r\nMaxPlayers=${MAX_PLAYERS}\r\n\r\n[\/Script\/FrozenFlame.FGameSession]\r\nServerPassword=\"${SERVER_PASSWORD}\"\r\n\r\n[\/Script\/FrozenFlame.GameBalance]\r\n\r\n# Enable PVP for non-friends\r\nbFreePVP=True\r\n\r\n# How long a day lasts\r\nDurationOfDay=3600\r\n\r\n\r\n# Health after death\r\nHealthAfterRespawn=0.5\r\n\r\n# Restore health on level up\r\nbRestoreHealthOnLevelUp=True\r\n\r\n# Stamina cost at jumping\r\nJumpStaminaCost=6\r\n\r\n# Stamina cost at sprinting\r\nSprintStaminaCost=1\r\n\r\n# Loss of armor durability after death\r\nArmorDurabilityReducementAfterDeath=25\r\n\r\n# Weapon durability loss speed\r\nDefaultWeaponDurabilityCost=0.5\r\n\r\n\r\n# Allow to teleport with overweight\r\nbIsAllowedToTeleportWithOverweight=False\r\n\r\n# Allow to fly with overweight\r\nbIsAllowedToGlideWithOverweight=False\r\n\r\n\r\n# Drop of items after level X\r\nMinimalLevelToDropItemAfterDeath=2147483647\r\n\r\n# Drop equipped items after death\r\nbDropEquippedItems=False\r\n\r\n# Drop equipable items after death\r\nbDropEquipableItems=False\r\n\r\n# Drop food on death\r\nbDropFoodItems=False\r\n\r\n\r\n#Flame rate from everything\r\nFlameRate=1\r\n\r\n#Player damage multiplier\r\nPlayerDamageMultiplier=1\r\n\r\n#Monsters health multiplier\r\nMonstersHealthMultiplier=1\r\n\r\n#Monsters damage multiplier\r\nMonstersDamageMultiplier=1\r\n\r\n\r\n\r\n#Bulding without material costs\r\nbNoModuleCost=False\r\n\r\n#Building without restrictions\r\nbLimitlessSupport=False\r\n\r\n#Bulding without decay\r\nbInvulnerableModules=False\r\n\r\n\r\n[\/Script\/FrozenFlame.DecaySubsystemSettings]\r\n#A minimum durability that keeps after weather decay system damage\r\nMinDurability=0.300000\r\nEOF\r\n\r\n\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# 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 ## 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\nmkdir -p \/mnt\/server\/FrozenFlame\/Saved\/Config\/LinuxServer\r\n\r\ncd \/mnt\/server\/FrozenFlame\/Saved\/Config\/LinuxServer\r\n\r\nFILE=\/mnt\/server\/FrozenFlame\/Saved\/Config\/LinuxServer\/Game.ini\r\nif [ -f \"$FILE\" ]; then\r\n echo \"Config file already exits. updating.\"\r\n mv Game.ini Game.ini.back\r\n curl -sSL o Game.ini https:\/\/raw.githubusercontent.com\/DreamsideInteractive\/FrozenFlameServer\/main\/Game.ini\r\nelse \r\n echo \"Downloading a config file\"\r\n curl -sSL -o Game.ini https:\/\/raw.githubusercontent.com\/DreamsideInteractive\/FrozenFlameServer\/main\/Game.ini\r\nfi\r\n\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -58,16 +58,6 @@ "rules": "required|integer|between:1024,65536", "field_type": "text" }, - { - "name": "Additional Arguments", - "description": "Specify additional launch parameters such as -crossplay. You must include a dash - and separate each parameter with space: -crossplay -exclusivejoin", - "env_variable": "ARGS", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string", - "field_type": "text" - }, { "name": "Server Name", "description": "The server name", @@ -97,6 +87,26 @@ "user_editable": true, "rules": "boolean", "field_type": "text" + }, + { + "name": "Rcon Port", + "description": "", + "env_variable": "RCON_PORT", + "default_value": "27015", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|", + "field_type": "text" + }, + { + "name": "Rcon password", + "description": "", + "env_variable": "RCON_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:128", + "field_type": "text" } ] -} \ No newline at end of file +} From 7c4544698e197ae18adfcd78c640be726c6332bf Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 7 May 2023 18:55:32 +0200 Subject: [PATCH 209/473] Update README.md --- game_eggs/steamcmd_servers/frozen_flame/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/frozen_flame/README.md b/game_eggs/steamcmd_servers/frozen_flame/README.md index a936b98b..d177dafc 100644 --- a/game_eggs/steamcmd_servers/frozen_flame/README.md +++ b/game_eggs/steamcmd_servers/frozen_flame/README.md @@ -8,8 +8,8 @@ Frozen Flame is a Survival RPG set in the vast world of Arсana, an ancient land | Port | default | |-----------|---------| | Game | 7777 | -| Query | 27015 | -| RCON | 25575 | +| Query | 25575 | +| RCON | 27015 | ## Server configuration The documentation can be found here: [Dedicated server documentation](https://github.com/DreamsideInteractive/FrozenFlameServer) From 3c11c3a40bc00a22a8d51a38b52ab8441cf90a6c Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 7 May 2023 19:05:47 +0200 Subject: [PATCH 210/473] Fix ports --- .../steamcmd_servers/frozen_flame/egg-frozen-flame.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json b/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json index 30d87c00..300fe7d0 100644 --- a/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json +++ b/game_eggs/steamcmd_servers/frozen_flame/egg-frozen-flame.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-07T12:10:34+02:00", + "exported_at": "2023-05-07T19:05:11+02:00", "name": "Frozen Flame", "author": "theblitzbat@gmail.com", "description": "Frozen Flame Dedicated Server", @@ -13,7 +13,7 @@ "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], - "startup": ".\/FrozenFlame\/Binaries\/Linux\/FrozenFlameServer-Linux-Shipping -log -MetaGameServerName={{SERVER_NAME}} -port {{SERVER_PORT}} -queryPort {{QUERY_PORT}} -RconPort={{RCON_PORT}} -RconPassword={{RCON_PASSWORD}}", + "startup": ".\/FrozenFlame\/Binaries\/Linux\/FrozenFlameServer-Linux-Shipping -log -MetaGameServerName=\"{{SERVER_NAME}}\" -port={{SERVER_PORT}} -queryPort={{QUERY_PORT}} -RconPort={{RCON_PORT}} -RconPassword=\"{{RCON_PASSWORD}}\"", "config": { "files": "{\r\n \"FrozenFlame\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\",\r\n \"ServerPassword\": \"ServerPassword=\\\"{{server.build.env.SERVER_PASSWORD}}\\\"\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"LogWorld: Bringing up level for play took\"\r\n}", @@ -52,7 +52,7 @@ "name": "Query Port", "description": "The query port.", "env_variable": "QUERY_PORT", - "default_value": "27015", + "default_value": "25575", "user_viewable": true, "user_editable": true, "rules": "required|integer|between:1024,65536", From 62cec86e0277f52b6b71f490a317eb7427857c6d Mon Sep 17 00:00:00 2001 From: Piotr Krawiecki <152773+krawiec@users.noreply.github.com> Date: Wed, 10 May 2023 03:24:22 +0200 Subject: [PATCH 211/473] Updated Project Zomboid Egg Updated ports according to PZ's Network changes. Updated Readme Replaced old not recognized -steamport1 with new -udpport parameter --- .../project_zomboid/README.md | 19 +++++++------------ .../project_zomboid/egg-project-zomboid.json | 8 ++++---- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/game_eggs/steamcmd_servers/project_zomboid/README.md b/game_eggs/steamcmd_servers/project_zomboid/README.md index 6f6f9c32..e2fbf6fc 100644 --- a/game_eggs/steamcmd_servers/project_zomboid/README.md +++ b/game_eggs/steamcmd_servers/project_zomboid/README.md @@ -4,21 +4,16 @@ Project Zomboid is the ultimate in zombie survival. Alone or in MP: you loot, bu ## Server Ports -Project Zomboid requires one port for Steam and an additional **one port per player**. Additional ports are allocated as they connect. - -For example, when configured with a base allocation of 27016: +Project Zomboid requires one port for game data and one port for Steam. ```log -Zomboid Steam Server started, ports 27016 and 27016 must be open on the router -Connected new client kubi ID # 0 and assigned DL port 27017 -Connected new client kubi2 ID # 1 and assigned DL port 27018 +> *** SERVER STARTED ****. +> *** Steam is enabled. +> Server is listening on port 16261 (for Steam connection) and port 16262 (for UDPRakNet connection). +> Clients should use 16261 port for connections. ``` -If you're experiencing issues with players connecting it's likely because you have not allocated enough ports. These ports **must be in order** following the Steam port. - | Port | default | |-------------|---------| -| Game | 8766 | -| Player1 | 8767 | -| Player2 | 8768 | -| ... | 8769 | +| DefaultPort | 16261 | +| UDPPort | 16262 | diff --git a/game_eggs/steamcmd_servers/project_zomboid/egg-project-zomboid.json b/game_eggs/steamcmd_servers/project_zomboid/egg-project-zomboid.json index 5012b832..d3d3499f 100644 --- a/game_eggs/steamcmd_servers/project_zomboid/egg-project-zomboid.json +++ b/game_eggs/steamcmd_servers/project_zomboid/egg-project-zomboid.json @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/games:source" ], "file_denylist": [], - "startup": "\/home\/container\/start-server.sh -port {{SERVER_PORT}} -steamport1 {{STEAM_PORT}} -cachedir=\/home\/container\/.cache -servername \"{{SERVER_NAME}}\" -adminusername {{ADMIN_USER}} -adminpassword \"{{ADMIN_PASSWORD}}\"", + "startup": "\/home\/container\/start-server.sh -port {{SERVER_PORT}} -udpport {{STEAM_PORT}} -cachedir=\/home\/container\/.cache -servername \"{{SERVER_NAME}}\" -adminusername {{ADMIN_USER}} -adminpassword \"{{ADMIN_PASSWORD}}\"", "config": { "files": "{}", "startup": "{\r\n \"done\": \"SERVER STARTED\"\r\n}", @@ -59,11 +59,11 @@ }, { "name": "SteamPort", - "description": "Sets the SteamPort1 option", + "description": "Sets the UFPPort option", "env_variable": "STEAM_PORT", - "default_value": "8766", + "default_value": "16262", "user_viewable": true, - "user_editable": false, + "user_editable": true, "rules": "required|string|max:20" }, { From 2f1747a8160b1adc9cbc234cdabfad39b6bd1af5 Mon Sep 17 00:00:00 2001 From: Piotr Krawiecki <152773+krawiec@users.noreply.github.com> Date: Wed, 10 May 2023 03:33:49 +0200 Subject: [PATCH 212/473] Exported from Panel Exported from Panel --- .../project_zomboid/egg-project-zomboid.json | 40 +++++++++++-------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/game_eggs/steamcmd_servers/project_zomboid/egg-project-zomboid.json b/game_eggs/steamcmd_servers/project_zomboid/egg-project-zomboid.json index d3d3499f..81d294a9 100644 --- a/game_eggs/steamcmd_servers/project_zomboid/egg-project-zomboid.json +++ b/game_eggs/steamcmd_servers/project_zomboid/egg-project-zomboid.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-05-06T10:50:50+02:00", + "exported_at": "2023-05-10T03:31:04+02:00", "name": "Project Zomboid", - "author": "iamkubi@gmail.com", + "author": "pkrawiecki@gmail.com", "description": "Project Zomboid is an open world survival horror video game in alpha stage development by British and Canadian independent developer, The Indie Stone. The game is set in a post apocalyptic, zombie infested world where the player is challenged to survive for as long as possible before inevitably dying.", "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": "\/home\/container\/start-server.sh -port {{SERVER_PORT}} -udpport {{STEAM_PORT}} -cachedir=\/home\/container\/.cache -servername \"{{SERVER_NAME}}\" -adminusername {{ADMIN_USER}} -adminpassword \"{{ADMIN_PASSWORD}}\"", "config": { @@ -37,7 +37,8 @@ "default_value": "Pterodactyl", "user_viewable": true, "user_editable": true, - "rules": "required|alpha_num|max:64" + "rules": "required|alpha_num|max:64", + "field_type": "text" }, { "name": "Admin Username", @@ -46,7 +47,8 @@ "default_value": "admin", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Admin Password", @@ -55,16 +57,18 @@ "default_value": "password", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:32" + "rules": "required|string|max:32", + "field_type": "text" }, { "name": "SteamPort", - "description": "Sets the UFPPort option", + "description": "Sets the UDPPort option", "env_variable": "STEAM_PORT", "default_value": "16262", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Max Players", @@ -73,7 +77,8 @@ "default_value": "10", "user_viewable": true, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "PZ Steam App ID", @@ -82,7 +87,8 @@ "default_value": "380870", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Steam Beta Branch [requires reinstall]", @@ -91,7 +97,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:64" + "rules": "nullable|string|max:64", + "field_type": "text" }, { "name": "Steam Auto Update", @@ -100,7 +107,8 @@ "default_value": "0", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" } ] -} +} \ No newline at end of file From bb75e0adbfdc13b8361bf9d8bf4f19e3177d8793 Mon Sep 17 00:00:00 2001 From: Piotr Krawiecki <152773+krawiec@users.noreply.github.com> Date: Wed, 10 May 2023 09:59:00 +0200 Subject: [PATCH 213/473] Author fix --- .../steamcmd_servers/project_zomboid/egg-project-zomboid.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/project_zomboid/egg-project-zomboid.json b/game_eggs/steamcmd_servers/project_zomboid/egg-project-zomboid.json index 81d294a9..88fb636c 100644 --- a/game_eggs/steamcmd_servers/project_zomboid/egg-project-zomboid.json +++ b/game_eggs/steamcmd_servers/project_zomboid/egg-project-zomboid.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-05-10T03:31:04+02:00", "name": "Project Zomboid", - "author": "pkrawiecki@gmail.com", + "author": "iamkubi@gmail.com", "description": "Project Zomboid is an open world survival horror video game in alpha stage development by British and Canadian independent developer, The Indie Stone. The game is set in a post apocalyptic, zombie infested world where the player is challenged to survive for as long as possible before inevitably dying.", "features": [ "steam_disk_space" From 44a3fe5c61339df4bb3f23ed8b11992b275b82d5 Mon Sep 17 00:00:00 2001 From: Aaronstar-McClure Date: Thu, 11 May 2023 08:23:30 -0400 Subject: [PATCH 214/473] update fabric modify the fabric egg to use server.jar on startup to align with the standard from other minecraft eggs --- .../minecraft/java/fabric/egg-fabric.json | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/game_eggs/minecraft/java/fabric/egg-fabric.json b/game_eggs/minecraft/java/fabric/egg-fabric.json index 8aaa9342..8df0ac46 100644 --- a/game_eggs/minecraft/java/fabric/egg-fabric.json +++ b/game_eggs/minecraft/java/fabric/egg-fabric.json @@ -1,10 +1,10 @@ { "_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-12-09T13:31:08-05:00", + "exported_at": "2023-05-11T08:13:07-04:00", "name": "Fabric", "author": "accounts@bofanodes.io", "description": "Fabric is a modular modding toolchain targeting Minecraft 1.14 and above, including snapshots.", @@ -13,12 +13,12 @@ "java_version", "pid_limit" ], - "images": [ - "ghcr.io\/pterodactyl\/yolks:java_17", - "ghcr.io\/pterodactyl\/yolks:java_16", - "ghcr.io\/pterodactyl\/yolks:java_11", - "ghcr.io\/pterodactyl\/yolks:java_8" - ], + "docker_images": { + "ghcr.io\/pterodactyl\/yolks:java_17": "ghcr.io\/pterodactyl\/yolks:java_17", + "ghcr.io\/pterodactyl\/yolks:java_16": "ghcr.io\/pterodactyl\/yolks:java_16", + "ghcr.io\/pterodactyl\/yolks:java_11": "ghcr.io\/pterodactyl\/yolks:java_11", + "ghcr.io\/pterodactyl\/yolks:java_8": "ghcr.io\/pterodactyl\/yolks:java_8" + }, "file_denylist": [], "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", "config": { @@ -29,7 +29,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Fabric MC Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl jq unzip dos2unix wget\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n# Enable snapshots\r\nif [ -z \"$MC_VERSION\" ] || [ \"$MC_VERSION\" == \"latest\" ]; then\r\n MC_VERSION=$(curl -sSL https:\/\/meta.fabricmc.net\/v2\/versions\/game | jq -r '.[] | select(.stable== true )|.version' | head -n1)\r\nelif [ \"$MC_VERSION\" == \"snapshot\" ]; then\r\n MC_VERSION=$(curl -sSL https:\/\/meta.fabricmc.net\/v2\/versions\/game | jq -r '.[] | select(.stable== false )|.version' | head -n1)\r\nfi\r\n\r\nif [ -z \"$FABRIC_VERSION\" ] || [ \"$FABRIC_VERSION\" == \"latest\" ]; then\r\n FABRIC_VERSION=$(curl -sSL https:\/\/meta.fabricmc.net\/v2\/versions\/installer | jq -r '.[0].version')\r\nfi\r\n\r\nif [ -z \"$LOADER_VERSION\" ] || [ \"$LOADER_VERSION\" == \"latest\" ]; then\r\n LOADER_VERSION=$(curl -sSL https:\/\/meta.fabricmc.net\/v2\/versions\/loader | jq -r '.[] | select(.stable== true )|.version' | head -n1)\r\nelif [ \"$LOADER_VERSION\" == \"snapshot\" ]; then\r\n LOADER_VERSION=$(curl -sSL https:\/\/meta.fabricmc.net\/v2\/versions\/loader | jq -r '.[] | select(.stable== false )|.version' | head -n1)\r\nfi\r\n\r\nwget -O fabric-installer.jar https:\/\/maven.fabricmc.net\/net\/fabricmc\/fabric-installer\/$FABRIC_VERSION\/fabric-installer-$FABRIC_VERSION.jar\r\njava -jar fabric-installer.jar server -mcversion $MC_VERSION -loader $LOADER_VERSION -downloadMinecraft\r\necho -e \"Install Complete\"", + "script": "#!\/bin\/bash\r\n# Fabric MC Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl jq unzip dos2unix wget\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n# Enable snapshots\r\nif [ -z \"$MC_VERSION\" ] || [ \"$MC_VERSION\" == \"latest\" ]; then\r\n MC_VERSION=$(curl -sSL https:\/\/meta.fabricmc.net\/v2\/versions\/game | jq -r '.[] | select(.stable== true )|.version' | head -n1)\r\nelif [ \"$MC_VERSION\" == \"snapshot\" ]; then\r\n MC_VERSION=$(curl -sSL https:\/\/meta.fabricmc.net\/v2\/versions\/game | jq -r '.[] | select(.stable== false )|.version' | head -n1)\r\nfi\r\n\r\nif [ -z \"$FABRIC_VERSION\" ] || [ \"$FABRIC_VERSION\" == \"latest\" ]; then\r\n FABRIC_VERSION=$(curl -sSL https:\/\/meta.fabricmc.net\/v2\/versions\/installer | jq -r '.[0].version')\r\nfi\r\n\r\nif [ -z \"$LOADER_VERSION\" ] || [ \"$LOADER_VERSION\" == \"latest\" ]; then\r\n LOADER_VERSION=$(curl -sSL https:\/\/meta.fabricmc.net\/v2\/versions\/loader | jq -r '.[] | select(.stable== true )|.version' | head -n1)\r\nelif [ \"$LOADER_VERSION\" == \"snapshot\" ]; then\r\n LOADER_VERSION=$(curl -sSL https:\/\/meta.fabricmc.net\/v2\/versions\/loader | jq -r '.[] | select(.stable== false )|.version' | head -n1)\r\nfi\r\n\r\nwget -O fabric-installer.jar https:\/\/maven.fabricmc.net\/net\/fabricmc\/fabric-installer\/$FABRIC_VERSION\/fabric-installer-$FABRIC_VERSION.jar\r\njava -jar fabric-installer.jar server -mcversion $MC_VERSION -loader $LOADER_VERSION -downloadMinecraft\r\nmv server.jar minecraft-server.jar\r\nmv fabric-server-launch.jar server.jar\r\necho \"serverJar=minecraft-server.jar\" > fabric-server-launcher.properties\r\necho -e \"Install Complete\"", "container": "openjdk:11-jdk-slim", "entrypoint": "bash" } @@ -39,10 +39,11 @@ "name": "Server Jar File", "description": "The name of the server jarfile to run the server with.", "env_variable": "SERVER_JARFILE", - "default_value": "fabric-server-launch.jar", + "default_value": "server.jar", "user_viewable": true, "user_editable": true, - "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/", + "field_type": "text" }, { "name": "Minecraft Version", @@ -51,7 +52,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|between:3,15" + "rules": "required|string|between:3,15", + "field_type": "text" }, { "name": "Fabric Version", @@ -60,7 +62,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|between:3,15" + "rules": "required|string|between:3,15", + "field_type": "text" }, { "name": "Fabric Loader Version", @@ -69,7 +72,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|between:3,15" + "rules": "required|string|between:3,15", + "field_type": "text" } ] -} +} \ No newline at end of file From db00e862d61fde5da6c494fd7d59cb6a136eb82e Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Wed, 17 May 2023 20:12:09 +0200 Subject: [PATCH 215/473] Update LiteLoader --- .../LiteLoader-bedrock/egg-LiteLoader-bedrock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/minecraft/bedrock/LiteLoader-bedrock/egg-LiteLoader-bedrock.json b/game_eggs/minecraft/bedrock/LiteLoader-bedrock/egg-LiteLoader-bedrock.json index 7c6a2e0d..1a26eabd 100644 --- a/game_eggs/minecraft/bedrock/LiteLoader-bedrock/egg-LiteLoader-bedrock.json +++ b/game_eggs/minecraft/bedrock/LiteLoader-bedrock/egg-LiteLoader-bedrock.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-12-11T19:37:36+08:00", + "exported_at": "2023-05-17T20:11:37+02:00", "name": "Liteloader Bedrock Dedicated Server", "author": "frizth_tatierra@informatics.edu.ph", "description": "LiteLoaderBDS - Epoch-making & Cross-language Bedrock Dedicated Servers Plugin Loader\r\n\r\nLiteLoaderBDS is an unofficial plugin loader that provides basic API support for Bedrock Dedicated Server, with a massive API, lots of packed utility interfaces, a rich event system and powerful basic interface support.", @@ -13,7 +13,7 @@ "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" }, "file_denylist": [], - "startup": ".\/lae-ll-launcher", + "startup": ".\/lae-ll-launcher bedrock_server_mod.exe", "config": { "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"server-name\": \"{{server.build.env.SERVERNAME}}\",\r\n \"gamemode\": \"{{server.build.env.GAMEMODE}}\",\r\n \"difficulty\": \"{{server.build.env.DIFFICULTY}}\",\r\n \"max-players\": \"{{server.build.env.MAXPLAYERS}}\",\r\n \"level-name\": \"{{server.build.env.WORLDNAME}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"IPv4 supported\"\r\n}", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Liteloader First-time Install Script\r\n\r\napk update\r\napk add gzip\r\ncd \/mnt\/server\r\n\r\n# Download Minecraft BDS\r\nRANDVERSION=$(echo $((1 + $RANDOM % 4000)))\r\n\r\nif [ -z \"${BDS_VERSION}\" ] || [ \"${BDS_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-win\/[^\"]*' versions.html.gz)\r\nelse \r\n echo -e \"\\n Downloading ${BDS_VERSION} Bedrock server\"\r\n DOWNLOAD_URL=https:\/\/minecraft.azureedge.net\/bin-win\/bedrock-server-$BDS_VERSION.zip\r\nfi\r\n\r\nDOWNLOAD_FILE=$(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5) # Retrieve archive name\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\nrm versions.html.gz\r\n\r\n# Download LiteLoaderBDS\r\nif [ -z \"${LL_VERSION}\" ] || [ \"${LL_VERSION}\" == \"latest\" ]; then\r\n echo -e \"\\n Downloading latest LiteLoaderBDS from GitHub\"\r\n curl -s https:\/\/api.github.com\/repos\/LiteLDev\/LiteLoaderBDS\/releases\/latest | grep \"browser_download_url.*LiteLoader-.*zip\" | cut -d : -f 2,3 | tr -d \\\" | wget -i - -O LiteLoader.zip\r\nelse \r\n echo -e \"\\n Downloading ${LL_VERSION} LiteLoaderBDS from GitHub\"\r\n wget https:\/\/github.com\/LiteLDev\/LiteLoaderBDS\/releases\/download\/${LL_VERSION}\/LiteLoader-${LL_VERSION}.zip -O LiteLoader.zip\r\nfi\r\n\r\n# Downlaoding Launcher and finishing touches\r\nwget https:\/\/io.ivampiresp.com\/d\/Software\/MCServer\/BDS\/LiteLoader\/lae-ll-launcher\r\nchmod +x lae-ll-launcher\r\nunzip -o LiteLoader.zip\r\nrm LiteLoader.zip\r\necho \"Finished Downloading Liteloader...\"", + "script": "#!\/bin\/bash\r\n# Liteloader First-time Install Script\r\n\r\napk update\r\napk add gzip jq curl wine\r\ncd \/mnt\/server\r\n\r\nfor file in *; do\r\n if [ \"$file\" != \"allowlist.json\" ] && [ \"$file\" != \"permissions.json\" ] && [ \"$file\" != \"server.properties\" ] && [ \"$file\" != \"plugins\" ] && [ \"$file\" != \"world\" ]; then\r\n if [ -d \"$file\" ]; then\r\n rm -rf \"$file\" # Remove directories recursively\r\n else\r\n rm \"$file\" # Remove files\r\n fi\r\n fi\r\ndone\r\n\r\n# Download Minecraft BDS\r\nRANDVERSION=$(echo $((1 + $RANDOM % 4000)))\r\n\r\nif [ -z \"${BDS_VERSION}\" ] || [ \"${BDS_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-win\/[^\"]*' versions.html.gz)\r\nelse \r\n echo -e \"\\n Downloading ${BDS_VERSION} Bedrock server\"\r\n DOWNLOAD_URL=https:\/\/minecraft.azureedge.net\/bin-win\/bedrock-server-$BDS_VERSION.zip\r\nfi\r\n\r\nDOWNLOAD_FILE=$(echo ${DOWNLOAD_URL} | cut -d\"\/\" -f5) # Retrieve archive name\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\nrm versions.html.gz\r\n\r\n\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/LiteLDev\/LiteLoaderBDS\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/LiteLDev\/LiteLoaderBDS\/releases\")\r\n\r\nif [ -z \"${LL_VERSION}\" ] || [ \"${LL_VERSION}\" == \"latest\" ]; then\r\n echo -e \"\\n Downloading latest LiteLoaderBDS from GitHub\"\r\n DOWNLOAD_GIT_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | head -1)\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${LL_VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n echo -e \"\\n Downloading ${LL_VERSION} LiteLoaderBDS from GitHub\"\r\n DOWNLOAD_GIT_URL=$(echo ${RELEASES} | jq -r --arg VERSION \"${LL_VERSION}\" '.[] | select(.tag_name==$LL_VERSION) | .assets[].browser_download_url' | head -1)\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_GIT_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | head -1)\r\n fi\r\nfi\r\n\r\ncurl -sSL -o LiteLoader.zip ${DOWNLOAD_GIT_URL}\r\nunzip -o LiteLoader.zip\r\nmv -f LiteLoaderBDS\/* \/mnt\/server\r\nrm LiteLoader.zip\r\ntimeout 30s wine PeEditor.exe\r\nrm -rf '\/root\/.wine' \/mnt\/server\/LiteLoaderBDS\/\r\n\r\n# Downloading Launcher and finishing touches\r\nwget https:\/\/io.ivampiresp.com\/d\/Software\/MCServer\/BDS\/LiteLoader\/lae-ll-launcher\r\nchmod +x lae-ll-launcher\r\necho \"Finished Downloading Liteloader...\"", "container": "ghcr.io\/parkervcp\/installers:alpine", "entrypoint": "ash" } @@ -109,4 +109,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From b4c32c5dce08c65ed1369129a89d381115a46172 Mon Sep 17 00:00:00 2001 From: DedBash <79027536+DedBash@users.noreply.github.com> Date: Thu, 18 May 2023 00:25:59 +0200 Subject: [PATCH 216/473] Add Java 18 and Edit Names Java 18 was added to each egg where it could be relevant and changed to "PTDL_v2". --- .../curseforge/egg-curse-forge-generic.json | 5 +++-- .../minecraft/java/fabric/egg-fabric.json | 17 +++++++++-------- .../minecraft/java/feather/egg-feather.json | 4 ++-- .../java/forge/forge/egg-forge-enhanced.json | 9 +++++---- .../java/ftb/egg-ftb-modpacksch-server.json | 9 +++++---- .../java/glowstone/egg-glowstone.json | 17 +++++++++-------- .../minecraft/java/krypton/egg-krypton.json | 19 ++++++++++--------- game_eggs/minecraft/java/limbo/egg-limbo.json | 2 +- game_eggs/minecraft/java/magma/egg-magma.json | 9 +++++---- .../minecraft/java/mohist/egg-mohist.json | 17 +++++++++-------- game_eggs/minecraft/java/paper/egg-paper.json | 17 +++++++++-------- .../minecraft/java/purpur/egg-purpur.json | 11 ++++++----- .../minecraft/java/spigot/egg-spigot.json | 17 +++++++++-------- .../java/spongeforge/egg-sponge-forge.json | 11 ++++++----- .../spongevanilla/egg-sponge-vanilla.json | 4 ++-- .../java/vanillacord/egg-vanilla-cord.json | 17 +++++++++-------- 16 files changed, 99 insertions(+), 86 deletions(-) diff --git a/game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json b/game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json index 85d44a74..6ea81de7 100644 --- a/game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json +++ b/game_eggs/minecraft/java/curseforge/egg-curse-forge-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-06T14:04:53-07:00", + "exported_at": "2023-05-17T23:20:29+01:00", "name": "CurseForge Generic", "author": "contact@chromozone.dev", "description": "A generic egg for a CurseForge modpack.", @@ -17,7 +17,8 @@ "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 17": "ghcr.io\/pterodactyl\/yolks:java_17", + "Java 18": "ghcr.io\/pterodactyl\/yolks:java_18" }, "file_denylist": [], "startup": "java $([[ -f user_jvm_args.txt ]] && printf %s \"@user_jvm_args.txt\") -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true $([[ ! -f unix_args.txt ]] && printf %s \"-jar `cat .serverjar`\" || printf %s \"@unix_args.txt\")", diff --git a/game_eggs/minecraft/java/fabric/egg-fabric.json b/game_eggs/minecraft/java/fabric/egg-fabric.json index 8aaa9342..a18c7355 100644 --- a/game_eggs/minecraft/java/fabric/egg-fabric.json +++ b/game_eggs/minecraft/java/fabric/egg-fabric.json @@ -1,10 +1,10 @@ { "_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-12-09T13:31:08-05:00", + "exported_at": "2023-05-17T23:20:29+01:00", "name": "Fabric", "author": "accounts@bofanodes.io", "description": "Fabric is a modular modding toolchain targeting Minecraft 1.14 and above, including snapshots.", @@ -13,12 +13,13 @@ "java_version", "pid_limit" ], - "images": [ - "ghcr.io\/pterodactyl\/yolks:java_17", - "ghcr.io\/pterodactyl\/yolks:java_16", - "ghcr.io\/pterodactyl\/yolks:java_11", - "ghcr.io\/pterodactyl\/yolks:java_8" - ], + "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 -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", "config": { diff --git a/game_eggs/minecraft/java/feather/egg-feather.json b/game_eggs/minecraft/java/feather/egg-feather.json index d1181ec8..a7f06812 100644 --- a/game_eggs/minecraft/java/feather/egg-feather.json +++ b/game_eggs/minecraft/java/feather/egg-feather.json @@ -1,10 +1,10 @@ { "_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-26T00:03:20+00:00", + "exported_at": "2023-05-17T23:20:29+01:00", "name": "Feather", "author": "parker@parkervcp.com", "description": "An experimental Minecraft server implementation written in Rust.", diff --git a/game_eggs/minecraft/java/forge/forge/egg-forge-enhanced.json b/game_eggs/minecraft/java/forge/forge/egg-forge-enhanced.json index 14bcf0d0..d51493b7 100644 --- a/game_eggs/minecraft/java/forge/forge/egg-forge-enhanced.json +++ b/game_eggs/minecraft/java/forge/forge/egg-forge-enhanced.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-10-31T16:27:58+01:00", + "exported_at": "2023-05-17T23:20:29+01:00", "name": "Forge Enhanced", "author": "parker@parkervcp.com", "description": "Minecraft Forge Server. Minecraft Forge is a modding API (Application Programming Interface), which makes it easier to create mods, and also make sure mods are compatible with each other.", @@ -14,10 +14,11 @@ "pid_limit" ], "docker_images": { - "Java 17": "ghcr.io\/pterodactyl\/yolks:java_17", - "Java 16": "ghcr.io\/pterodactyl\/yolks:java_16", + "Java 8": "ghcr.io\/pterodactyl\/yolks:java_8", "Java 11": "ghcr.io\/pterodactyl\/yolks:java_11", - "Java 8": "ghcr.io\/pterodactyl\/yolks:java_8" + "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 -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true $( [[ ! -f unix_args.txt ]] && printf %s \"-jar {{SERVER_JARFILE}}\" || printf %s \"@unix_args.txt\" )", diff --git a/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json b/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json index 76b1adeb..d752ca4f 100644 --- a/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json +++ b/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-05T13:37:42-05:00", + "exported_at": "2023-05-17T23:20:29+01:00", "name": "FTB-modpacks.ch Server", "author": "runemaster580@gmail.com", "description": "Since the release of the FTB APP, FTB modpacks are now distributed through modpacks.ch. This egg was developed for support for modpacks that are distributed through this.", @@ -14,10 +14,11 @@ "pid_limit" ], "docker_images": { - "Java 17": "ghcr.io\/pterodactyl\/yolks:java_17", - "Java 16": "ghcr.io\/pterodactyl\/yolks:java_16", + "Java 8": "ghcr.io\/pterodactyl\/yolks:java_8", "Java 11": "ghcr.io\/pterodactyl\/yolks:java_11", - "Java 8": "ghcr.io\/pterodactyl\/yolks:java_8" + "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 -javaagent:log4jfix\/Log4jPatcher-1.0.0.jar -Xms128M -XX:MaxRAMPercentage=95.0 -Dterminal.jline=false -Dterminal.ansi=true $( [[ ! -f unix_args.txt ]] && printf %s \"-jar start-server.jar\" || printf %s \"@unix_args.txt\" )", diff --git a/game_eggs/minecraft/java/glowstone/egg-glowstone.json b/game_eggs/minecraft/java/glowstone/egg-glowstone.json index 18b66715..808639ab 100644 --- a/game_eggs/minecraft/java/glowstone/egg-glowstone.json +++ b/game_eggs/minecraft/java/glowstone/egg-glowstone.json @@ -1,20 +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": "2022-01-07T15:15:07-05:00", + "exported_at": "2023-05-17T23:20:29+01:00", "name": "Glowstone", "author": "support@pterodactyl.io", "description": "Glowstone is an open-source server implementation for Minecraft: Java Edition 1.12.2 and up.", "features": null, - "images": [ - "ghcr.io\/pterodactyl\/yolks:java_8", - "ghcr.io\/pterodactyl\/yolks:java_11", - "ghcr.io\/pterodactyl\/yolks:java_16", - "ghcr.io\/pterodactyl\/yolks:java_17" - ], + "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 -Xms768M -Xmx{{SERVER_MEMORY}}M -XX:+UseG1GC -jar {{SERVER_JARFILE}}", "config": { diff --git a/game_eggs/minecraft/java/krypton/egg-krypton.json b/game_eggs/minecraft/java/krypton/egg-krypton.json index eed82973..24c0f6b5 100644 --- a/game_eggs/minecraft/java/krypton/egg-krypton.json +++ b/game_eggs/minecraft/java/krypton/egg-krypton.json @@ -1,10 +1,10 @@ { "_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-05-09T06:18:25-04:00", +}, +"exported_at": "2023-05-17T23:20:29+01:00", "name": "Krypton", "author": "callum.seabrook@prevarinite.com", "description": "A fast, lightweight Minecraft server written in Kotlin", @@ -13,12 +13,13 @@ "java_version", "pid_limit" ], - "images": [ - "ghcr.io\/pterodactyl\/yolks:java_8", - "ghcr.io\/pterodactyl\/yolks:java_11", - "ghcr.io\/pterodactyl\/yolks:java_16", - "ghcr.io\/pterodactyl\/yolks:java_17" -], +"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 -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JAR}}", "config": { diff --git a/game_eggs/minecraft/java/limbo/egg-limbo.json b/game_eggs/minecraft/java/limbo/egg-limbo.json index a00c6580..6468d22d 100644 --- a/game_eggs/minecraft/java/limbo/egg-limbo.json +++ b/game_eggs/minecraft/java/limbo/egg-limbo.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-21T04:56:57+08:00", + "exported_at": "2023-05-17T23:20:29+01:00", "name": "Limbo", "author": "xEfinax@protonmail.com", "description": "Standalone server program Limbo.", diff --git a/game_eggs/minecraft/java/magma/egg-magma.json b/game_eggs/minecraft/java/magma/egg-magma.json index 38b994c0..f9c7276a 100644 --- a/game_eggs/minecraft/java/magma/egg-magma.json +++ b/game_eggs/minecraft/java/magma/egg-magma.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-09-28T18:19:11+00:00", + "exported_at": "2023-05-17T23:20:29+01:00", "name": "Magma", "author": "support@pterodactyl.io", "description": "Magma is most powerful Forge server providing you with Forge mods and Bukkit Plugins using Spigot and Paper for Performance Optimization and Stability.", @@ -14,10 +14,11 @@ "pid_limit" ], "docker_images": { - "Java 17": "ghcr.io\/pterodactyl\/yolks:java_17", - "Java 16": "ghcr.io\/pterodactyl\/yolks:java_16", + "Java 8": "ghcr.io\/pterodactyl\/yolks:java_8", "Java 11": "ghcr.io\/pterodactyl\/yolks:java_11", - "Java 8": "ghcr.io\/pterodactyl\/yolks:java_8" + "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 -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", diff --git a/game_eggs/minecraft/java/mohist/egg-mohist.json b/game_eggs/minecraft/java/mohist/egg-mohist.json index 1dd2339b..3ffe1a49 100644 --- a/game_eggs/minecraft/java/mohist/egg-mohist.json +++ b/game_eggs/minecraft/java/mohist/egg-mohist.json @@ -1,10 +1,10 @@ { "_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-14T09:54:36+01:00", + "exported_at": "2023-05-17T23:20:29+01:00", "name": "Mohist", "author": "alex.chang-lam@protonmail.com", "description": "Spigot fork with performance optimizations.", @@ -13,12 +13,13 @@ "java_version", "pid_limit" ], - "images": [ - "ghcr.io\/pterodactyl\/yolks:java_8", - "ghcr.io\/pterodactyl\/yolks:java_11", - "ghcr.io\/pterodactyl\/yolks:java_16", - "ghcr.io\/pterodactyl\/yolks:java_17" - ], + "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 -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}} pause", "config": { diff --git a/game_eggs/minecraft/java/paper/egg-paper.json b/game_eggs/minecraft/java/paper/egg-paper.json index 98d3195e..0d8de321 100644 --- a/game_eggs/minecraft/java/paper/egg-paper.json +++ b/game_eggs/minecraft/java/paper/egg-paper.json @@ -1,10 +1,10 @@ { "_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-05-21T10:48:18-04:00", + "exported_at": "2023-05-17T23:20:29+01:00", "name": "Paper", "author": "parker@pterodactyl.io", "description": "High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies.", @@ -13,12 +13,13 @@ "java_version", "pid_limit" ], - "images": [ - "ghcr.io\/pterodactyl\/yolks:java_8", - "ghcr.io\/pterodactyl\/yolks:java_11", - "ghcr.io\/pterodactyl\/yolks:java_16", - "ghcr.io\/pterodactyl\/yolks:java_17" - ], + "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 -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}", "config": { diff --git a/game_eggs/minecraft/java/purpur/egg-purpur.json b/game_eggs/minecraft/java/purpur/egg-purpur.json index 81b9fa1f..ea06fe6a 100644 --- a/game_eggs/minecraft/java/purpur/egg-purpur.json +++ b/game_eggs/minecraft/java/purpur/egg-purpur.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-04-11T10:05:13+02:00", + "exported_at": "2023-05-17T23:20:29+01:00", "name": "Purpur", "author": "purpur@birdflop.com", "description": "A drop-in replacement for Paper servers designed for configurability, and new fun and exciting gameplay features.", @@ -14,10 +14,11 @@ "pid_limit" ], "docker_images": { - "ghcr.io\/pterodactyl\/yolks:java_17": "ghcr.io\/pterodactyl\/yolks:java_17", - "ghcr.io\/pterodactyl\/yolks:java_16": "ghcr.io\/pterodactyl\/yolks:java_16", - "ghcr.io\/pterodactyl\/yolks:java_11": "ghcr.io\/pterodactyl\/yolks:java_11", - "ghcr.io\/pterodactyl\/yolks:java_8": "ghcr.io\/pterodactyl\/yolks:java_8" + "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 --add-modules=jdk.incubator.vector -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}", diff --git a/game_eggs/minecraft/java/spigot/egg-spigot.json b/game_eggs/minecraft/java/spigot/egg-spigot.json index ac81e7a3..1873d46c 100644 --- a/game_eggs/minecraft/java/spigot/egg-spigot.json +++ b/game_eggs/minecraft/java/spigot/egg-spigot.json @@ -1,10 +1,10 @@ { "_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-12-09T13:30:38-05:00", + "exported_at": "2023-05-17T23:20:29+01:00", "name": "Spigot", "author": "support@pterodactyl.io", "description": "Spigot is the most widely-used modded Minecraft server software in the world. It powers many of the top Minecraft server networks around to ensure they can cope with their huge player base and ensure the satisfaction of their players. Spigot works by reducing and eliminating many causes of lag, as well as adding in handy features and settings that help make your job of server administration easier.", @@ -13,12 +13,13 @@ "java_version", "pid_limit" ], - "images": [ - "ghcr.io\/pterodactyl\/yolks:java_17", - "ghcr.io\/pterodactyl\/yolks:java_16", - "ghcr.io\/pterodactyl\/yolks:java_11", - "ghcr.io\/pterodactyl\/yolks:java_8" - ], + "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 -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", "config": { diff --git a/game_eggs/minecraft/java/spongeforge/egg-sponge-forge.json b/game_eggs/minecraft/java/spongeforge/egg-sponge-forge.json index 7f3326be..c5e216dc 100644 --- a/game_eggs/minecraft/java/spongeforge/egg-sponge-forge.json +++ b/game_eggs/minecraft/java/spongeforge/egg-sponge-forge.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-04T16:44:53+08:00", + "exported_at": "2023-05-17T23:20:29+01:00", "name": "SpongeForge", "author": "parker@parkervcp.com", "description": "A community-driven open source Minecraft: Java Edition modding platform.", @@ -14,10 +14,11 @@ "pid_limit" ], "docker_images": { - "ghcr.io\/pterodactyl\/yolks:java_8": "ghcr.io\/pterodactyl\/yolks:java_8", - "ghcr.io\/pterodactyl\/yolks:java_11": "ghcr.io\/pterodactyl\/yolks:java_11", - "ghcr.io\/pterodactyl\/yolks:java_16": "ghcr.io\/pterodactyl\/yolks:java_16", - "ghcr.io\/pterodactyl\/yolks:java_17": "ghcr.io\/pterodactyl\/yolks:java_17" + "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 -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", diff --git a/game_eggs/minecraft/java/spongevanilla/egg-sponge-vanilla.json b/game_eggs/minecraft/java/spongevanilla/egg-sponge-vanilla.json index c6d9449b..16c0804c 100644 --- a/game_eggs/minecraft/java/spongevanilla/egg-sponge-vanilla.json +++ b/game_eggs/minecraft/java/spongevanilla/egg-sponge-vanilla.json @@ -1,10 +1,10 @@ { "_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-12-09T13:30:32-05:00", + "exported_at": "2023-05-17T23:20:29+01:00", "name": "SpongeVanilla", "author": "parker@parkervcp.com", "description": "SpongeVanilla is the implementation of the Sponge API on top of Vanilla Minecraft.", diff --git a/game_eggs/minecraft/java/vanillacord/egg-vanilla-cord.json b/game_eggs/minecraft/java/vanillacord/egg-vanilla-cord.json index 8cd9f85c..02526f29 100644 --- a/game_eggs/minecraft/java/vanillacord/egg-vanilla-cord.json +++ b/game_eggs/minecraft/java/vanillacord/egg-vanilla-cord.json @@ -1,10 +1,10 @@ { "_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-12-09T13:30:15-05:00", + "exported_at": "2023-05-17T23:20:29+01:00", "name": "VanillaCord", "author": "support@pterodactyl.io", "description": "Minecraft is a game about placing blocks and going on adventures. Explore randomly generated worlds and build amazing things from the simplest of homes to the grandest of castles. Play in Creative Mode with unlimited resources or mine deep in Survival Mode, crafting weapons and armor to fend off dangerous mobs. Do all this alone or with friends.\r\n\r\nVanillaCord adds support for BungeeCord's ip_forward setting.", @@ -13,12 +13,13 @@ "java_version", "pid_limit" ], - "images": [ - "ghcr.io\/pterodactyl\/yolks:java_17", - "ghcr.io\/pterodactyl\/yolks:java_16", - "ghcr.io\/pterodactyl\/yolks:java_11", - "ghcr.io\/pterodactyl\/yolks:java_8" - ], + "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 -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", "config": { From 26aa954708d621b795eabb003fc3375bea031bee Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 18 May 2023 11:05:41 +0200 Subject: [PATCH 217/473] Update pocketmine --- .../minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json index b1228d0d..29b3ef00 100644 --- a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json +++ b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-01T16:49:09+01:00", + "exported_at": "2023-05-18T11:04:52+02:00", "name": "PocketmineMP", "author": "info@swisscrafting.ch", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt-get update\r\napt-get install -y git curl wget jq file tar unzip zip\r\n\r\nmkdir -p \/mnt\/server\/ # Not required. Only here for parkervcp's local test setup\r\n\r\ncd \/mnt\/server || exit 1\r\n\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && printf \"amd64\" || printf \"arm64\")\r\n\r\n# Shouldn't be possible to be empty, but default to PM4 if it is and convert to uppercase\r\nVERSION=\"${VERSION:-PM4}\"\r\nVERSION=\"${VERSION^^}\"\r\n\r\n# Helper functions\r\n\r\ndownload_php_binary() {\r\n printf \"Downloading latest PHP %s binary for %s\\n\" \"$REQUIRED_PHP_VERSION\" \"$VERSION\"\r\n curl --location --progress-bar https:\/\/github.com\/pmmp\/PHP-Binaries\/releases\/download\/php-\"$REQUIRED_PHP_VERSION\"-latest\/PHP-Linux-x86_64-\"$VERSION\".tar.gz | tar -xzv\r\n}\r\n\r\nset_php_extension_dir() {\r\n printf \"Configuring php.ini\\n\"\r\n EXTENSION_DIR=$(find \"bin\" -name '*debug-zts*')\r\n grep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n}\r\n\r\ndownload_pmmp() {\r\n DOWNLOAD_LINK=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'download_url' | cut -d '\"' -f 4)\r\n printf \"Downloading %s from %s\\n\" \"$VERSION\" \"${DOWNLOAD_LINK}\"\r\n curl --location --progress-bar \"${DOWNLOAD_LINK}\" --output PocketMine-MP.phar\r\n}\r\n\r\n# We have to convert VERSION into an API channel\r\nif [[ \"${VERSION}\" == \"PM4\" ]]; then\r\n API_CHANNEL=\"stable\"\r\n\r\n# Disabled until PM5 is released and API channels or structure are decided for PM4\/PM5\r\n# elif [[ \"${VERSION}\" == \"PM5\" ]]; then\r\n# API_CHANNEL=\"alpha\"\r\nelse\r\n printf \"Unsupported version: %s\" \"${VERSION}\"\r\n exit 1\r\nfi\r\n\r\nREQUIRED_PHP_VERSION=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'php_version' | cut -d '\"' -f 4)\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\n download_php_binary\r\n\r\n# There are no ARM64 PHP binaries yet, so we have to compile them\r\nelse\r\n apt install -y libtool-bin libtool make autoconf automake m4 gzip bzip2 bison g++ git cmake pkg-config re2c\r\n\r\n # Each PHP version has its own compile script, so we have to download the correct one\r\n curl --location --progress-bar --remote-name https:\/\/raw.githubusercontent.com\/pmmp\/PHP-Binaries\/php\/\"$REQUIRED_PHP_VERSION\"\/compile.sh\r\n chmod +x compile.sh\r\n\r\n cat <>bin\/php7\/bin\/php.ini\r\n}\r\n\r\ndownload_pmmp() {\r\n DOWNLOAD_LINK=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'download_url' | cut -d '\"' -f 4)\r\n printf \"Downloading %s from %s\\n\" \"$VERSION\" \"${DOWNLOAD_LINK}\"\r\n curl --location --progress-bar \"${DOWNLOAD_LINK}\" --output PocketMine-MP.phar\r\n}\r\n\r\n# We have to convert VERSION into an API channel\r\nif [[ \"${VERSION}\" == \"PM4\" ]]; then\r\n API_CHANNEL=\"stable\"\r\n\r\n# Disabled until PM5 is released and API channels or structure are decided for PM4\/PM5\r\n# elif [[ \"${VERSION}\" == \"PM5\" ]]; then\r\n# API_CHANNEL=\"alpha\"\r\nelse\r\n printf \"Unsupported version: %s\" \"${VERSION}\"\r\n exit 1\r\nfi\r\n\r\nREQUIRED_PHP_VERSION=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'php_version' | cut -d '\"' -f 4)\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\n download_php_binary\r\n\r\n# There are no ARM64 PHP binaries yet, so we have to compile them\r\nelse\r\n apt install -y make autoconf automake m4 bzip2 bison g++ cmake pkg-config re2c libtool-bin\r\n \r\n mkdir -p \/mnt\/server\/build_cach\/balls\r\n mkdir -p \/mnt\/server\/build_cach\/compilation\r\n \r\n # Each PHP version has its own compile script, so we have to download the correct one\r\n echo \"running curl --location --progress-bar --remote-name https:\/\/raw.githubusercontent.com\/pmmp\/PHP-Binaries\/php\/\"$REQUIRED_PHP_VERSION\"\/compile.sh\"\r\n curl --location --progress-bar --remote-name https:\/\/raw.githubusercontent.com\/pmmp\/PHP-Binaries\/php\/\"$REQUIRED_PHP_VERSION\"\/compile.sh\r\n chmod +x compile.sh\r\n\r\n cat < Date: Thu, 18 May 2023 11:08:47 +0200 Subject: [PATCH 218/473] pocketmine fix typo in dir --- .../minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json index 29b3ef00..9b39b2a5 100644 --- a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json +++ b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-18T11:04:52+02:00", + "exported_at": "2023-05-18T11:08:07+02:00", "name": "PocketmineMP", "author": "info@swisscrafting.ch", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt-get update\r\napt-get install -y git curl wget jq file tar unzip zip\r\n\r\nmkdir -p \/mnt\/server\/ # Not required. Only here for parkervcp's local test setup\r\n\r\ncd \/mnt\/server || exit 1\r\n\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && printf \"amd64\" || printf \"arm64\")\r\n\r\n# Shouldn't be possible to be empty, but default to PM4 if it is and convert to uppercase\r\nVERSION=\"${VERSION:-PM4}\"\r\nVERSION=\"${VERSION^^}\"\r\n\r\n# Helper functions\r\n\r\ndownload_php_binary() {\r\n printf \"Downloading latest PHP %s binary for %s\\n\" \"$REQUIRED_PHP_VERSION\" \"$VERSION\"\r\n curl --location --progress-bar https:\/\/github.com\/pmmp\/PHP-Binaries\/releases\/download\/php-\"$REQUIRED_PHP_VERSION\"-latest\/PHP-Linux-x86_64-\"$VERSION\".tar.gz | tar -xzv\r\n}\r\n\r\nset_php_extension_dir() {\r\n printf \"Configuring php.ini\\n\"\r\n EXTENSION_DIR=$(find \"bin\" -name '*debug-zts*')\r\n grep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n}\r\n\r\ndownload_pmmp() {\r\n DOWNLOAD_LINK=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'download_url' | cut -d '\"' -f 4)\r\n printf \"Downloading %s from %s\\n\" \"$VERSION\" \"${DOWNLOAD_LINK}\"\r\n curl --location --progress-bar \"${DOWNLOAD_LINK}\" --output PocketMine-MP.phar\r\n}\r\n\r\n# We have to convert VERSION into an API channel\r\nif [[ \"${VERSION}\" == \"PM4\" ]]; then\r\n API_CHANNEL=\"stable\"\r\n\r\n# Disabled until PM5 is released and API channels or structure are decided for PM4\/PM5\r\n# elif [[ \"${VERSION}\" == \"PM5\" ]]; then\r\n# API_CHANNEL=\"alpha\"\r\nelse\r\n printf \"Unsupported version: %s\" \"${VERSION}\"\r\n exit 1\r\nfi\r\n\r\nREQUIRED_PHP_VERSION=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'php_version' | cut -d '\"' -f 4)\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\n download_php_binary\r\n\r\n# There are no ARM64 PHP binaries yet, so we have to compile them\r\nelse\r\n apt install -y make autoconf automake m4 bzip2 bison g++ cmake pkg-config re2c libtool-bin\r\n \r\n mkdir -p \/mnt\/server\/build_cach\/balls\r\n mkdir -p \/mnt\/server\/build_cach\/compilation\r\n \r\n # Each PHP version has its own compile script, so we have to download the correct one\r\n echo \"running curl --location --progress-bar --remote-name https:\/\/raw.githubusercontent.com\/pmmp\/PHP-Binaries\/php\/\"$REQUIRED_PHP_VERSION\"\/compile.sh\"\r\n curl --location --progress-bar --remote-name https:\/\/raw.githubusercontent.com\/pmmp\/PHP-Binaries\/php\/\"$REQUIRED_PHP_VERSION\"\/compile.sh\r\n chmod +x compile.sh\r\n\r\n cat <>bin\/php7\/bin\/php.ini\r\n}\r\n\r\ndownload_pmmp() {\r\n DOWNLOAD_LINK=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'download_url' | cut -d '\"' -f 4)\r\n printf \"Downloading %s from %s\\n\" \"$VERSION\" \"${DOWNLOAD_LINK}\"\r\n curl --location --progress-bar \"${DOWNLOAD_LINK}\" --output PocketMine-MP.phar\r\n}\r\n\r\n# We have to convert VERSION into an API channel\r\nif [[ \"${VERSION}\" == \"PM4\" ]]; then\r\n API_CHANNEL=\"stable\"\r\n\r\n# Disabled until PM5 is released and API channels or structure are decided for PM4\/PM5\r\n# elif [[ \"${VERSION}\" == \"PM5\" ]]; then\r\n# API_CHANNEL=\"alpha\"\r\nelse\r\n printf \"Unsupported version: %s\" \"${VERSION}\"\r\n exit 1\r\nfi\r\n\r\nREQUIRED_PHP_VERSION=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'php_version' | cut -d '\"' -f 4)\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\n download_php_binary\r\n\r\n# There are no ARM64 PHP binaries yet, so we have to compile them\r\nelse\r\n apt install -y make autoconf automake m4 bzip2 bison g++ cmake pkg-config re2c libtool-bin\r\n \r\n mkdir -p \/mnt\/server\/build_cache\/archives\r\n mkdir -p \/mnt\/server\/build_cache\/compilation\r\n \r\n # Each PHP version has its own compile script, so we have to download the correct one\r\n echo \"running curl --location --progress-bar --remote-name https:\/\/raw.githubusercontent.com\/pmmp\/PHP-Binaries\/php\/\"$REQUIRED_PHP_VERSION\"\/compile.sh\"\r\n curl --location --progress-bar --remote-name https:\/\/raw.githubusercontent.com\/pmmp\/PHP-Binaries\/php\/\"$REQUIRED_PHP_VERSION\"\/compile.sh\r\n chmod +x compile.sh\r\n\r\n cat < Date: Thu, 18 May 2023 02:49:13 -0700 Subject: [PATCH 219/473] Secrets of Gloomrot Update - Adds support for new settings in ServerHostSettings.json, including: ListOnSteam, ListOnEOS, CompressSaveFiles, and API Enabled. - Changes stop command to accommodate latest Wings version by force-stopping the server. This is not ideal, but utilizing the current image with `eval` OR `exec` (I tested it) still does not seem to pass the SIGINT correctly (or maybe it does and WINE just doesn't listen; I don't know). - Improved [SYSTEM] startup parameters. - Updated the install script to check for successful installation and use the default ServerHostSettings.json that ships with the server. --- .../v_rising_vanilla/egg-v-rising.json | 56 ++++++++++++++----- 1 file changed, 43 insertions(+), 13 deletions(-) diff --git a/game_eggs/steamcmd_servers/v_rising/v_rising_vanilla/egg-v-rising.json b/game_eggs/steamcmd_servers/v_rising/v_rising_vanilla/egg-v-rising.json index e06cdbbc..2c45be00 100644 --- a/game_eggs/steamcmd_servers/v_rising/v_rising_vanilla/egg-v-rising.json +++ b/game_eggs/steamcmd_servers/v_rising/v_rising_vanilla/egg-v-rising.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-13T12:18:05+01:00", + "exported_at": "2023-05-18T09:31:34+00:00", "name": "V Rising", "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.", @@ -17,14 +17,14 @@ "file_denylist": [], "startup": "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.LIST_STEAM}}\",\r\n \"ListOnEOS\": \"{{server.build.env.LIST_EOS}}\",\r\n \"AutoSaveCount\": \"{{server.build.env.SAVE_COUNT}}\",\r\n \"AutoSaveInterval\": \"{{server.build.env.SAVE_INTERVAL}}\",\r\n \"CompressSaveFiles\": \"{{server.build.env.COMPRESS_SAVES}}\",\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 \"API.Enabled\": \"{{server.build.env.ENABLE_API}}\",\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" + "stop": "^^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl V Rising Egg - egg-v-rising.json\r\n## Authors: David Wolfe (Red-Thirten), Kapatheus\r\n## Date: 2022\/05\/28\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n# Install packages. Default packages below are skipped if using image noted above, 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# 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} +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## V Rising Setup\r\nmkdir -p $HOME\/save-data\/Settings && cd \"$_\"\r\ncat > ServerHostSettings.json << EOF\r\n{\r\n \"Name\": \"${SERVER_NAME}\",\r\n \"Description\": \"${DESCRIPTION}\",\r\n \"Port\": ${SERVER_PORT},\r\n \"QueryPort\": ${QUERY_PORT},\r\n \"MaxConnectedUsers\": ${MAX_PLAYERS},\r\n \"MaxConnectedAdmins\": ${MAX_ADMINS},\r\n \"ServerFps\": ${FPS},\r\n \"SaveName\": \"${SAVE_NAME}\",\r\n \"Password\": \"${SERVER_PASSWORD}\",\r\n \"Secure\": ${SERVER_SECURE},\r\n \"ListOnMasterServer\": ${SERVER_LIST},\r\n \"AutoSaveCount\": ${SAVE_COUNT},\r\n \"AutoSaveInterval\": ${SAVE_INTERVAL},\r\n \"GameSettingsPreset\": \"${GAME_SETTINGS_PRESET}\",\r\n \"AdminOnlyDebugEvents\": ${ADMIN_ONLY_DEBUG_EVENTS},\r\n \"DisableDebugEvents\": ${DEBUG_EVENTS},\r\n \"Rcon\": {\r\n \"Enabled\": ${RCON},\r\n \"Password\": \"${RCON_PASS}\",\r\n \"Port\": ${RCON_PORT}\r\n }\r\n}\r\nEOF\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl V Rising Egg - egg-v-rising.json\r\n## Authors: David Wolfe (Red-Thirten), Kapatheus\r\n## Date: 2023\/05\/18\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/pterodactyl\/installers:debian'\r\n\r\n# Install required packages.\r\napt -y update && apt -y --no-install-recommends install dos2unix\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} +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## V Rising Setup\r\nmkdir -p $HOME\/save-data\/Settings\r\n# Check for successful installation.\r\ncd $HOME\/VRisingServer_Data\/StreamingAssets\/Settings\r\nif [[ -f ServerHostSettings.json ]]; then\r\n # Copies default ServerHostSettings file to save-data directory.\r\n # Also converts the contents to use Unix newlines so Ptero's JSON parser does not fail.\r\n dos2unix -n ServerHostSettings.json $HOME\/save-data\/Settings\/ServerHostSettings.json\r\nelse\r\n echo -e \"\\n\\nSteamCMD failed to install the V Rising Dedicated Server!\"\r\n echo -e \"\\tTry reinstalling the server again.\\n\"\r\n exit 1\r\nfi\r\n\r\necho -e \"\\nV Rising Dedicated Server successfully installed!\\n\"", "container": "ghcr.io\/pterodactyl\/installers:debian", "entrypoint": "\/bin\/bash" } @@ -141,9 +141,19 @@ "field_type": "text" }, { - "name": "List On Master Server", - "description": "Set to true to list on the server list, else set to false.", - "env_variable": "SERVER_LIST", + "name": "List On Steam", + "description": "Set to true to list on the Steam server list, else set to false.", + "env_variable": "LIST_STEAM", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "List On Epic", + "description": "Set to true to list on the Epic Online Services server list, else set to false.", + "env_variable": "LIST_EOS", "default_value": "true", "user_viewable": true, "user_editable": true, @@ -170,6 +180,26 @@ "rules": "required|integer|min:1", "field_type": "text" }, + { + "name": "[Advanced] Compress Save Files", + "description": "Set to true to compress world save files, else set to false.", + "env_variable": "COMPRESS_SAVES", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[Advanced] Enable API", + "description": "Set to true to allow responses to public API requests to the server, else set to false.", + "env_variable": "ENABLE_API", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, { "name": "[Advanced] Enable RCON", "description": "See the following link for info on how to connect and use RCON: https:\/\/github.com\/StunlockStudios\/vrising-dedicated-server-instructions#rcon", @@ -252,32 +282,32 @@ }, { "name": "[SYSTEM] WINEDEBUG", - "description": "don't change", + "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": "required|string|max:20", + "rules": "required|string", "field_type": "text" }, { "name": "[SYSTEM] WINEARCH", - "description": "don't change", + "description": "Used for compatibility. Cannot be changed.", "env_variable": "WINEARCH", "default_value": "win64", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:20", + "rules": "required|string|in:win64", "field_type": "text" }, { "name": "[SYSTEM] WINEPATH", - "description": "don't change", + "description": "Used for compatibility. Cannot be changed.", "env_variable": "WINEPATH", "default_value": "\/home\/container", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:20", + "rules": "required|string|in:\/home\/container", "field_type": "text" } ] From 05608e2d6a230c58b1f667dbc6ac515a09f4d40c Mon Sep 17 00:00:00 2001 From: Dancebunny98 <37336183+Dancbeunny98@users.noreply.github.com> Date: Fri, 19 May 2023 18:45:01 +0300 Subject: [PATCH 220/473] Update egg-node-js-generic.json (#2256) Generic nodejs: add nodejs 19 docker image --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- generic/nodejs/egg-node-js-generic.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/generic/nodejs/egg-node-js-generic.json b/generic/nodejs/egg-node-js-generic.json index 5b5dc27e..fab9c874 100644 --- a/generic/nodejs/egg-node-js-generic.json +++ b/generic/nodejs/egg-node-js-generic.json @@ -4,12 +4,13 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-27T20:19:13+01:00", + "exported_at": "2023-05-19T17:43:09+02:00", "name": "node.js generic", "author": "parker@parkervcp.com", "description": "a generic node.js egg\r\n\r\nThis will clone a git repo. it defaults to master if no branch is specified.\r\n\r\nInstalls the node_modules on install. If you set user_upload then I assume you know what you are doing.", "features": null, "docker_images": { + "ghcr.io\/parkervcp\/yolks:nodejs_19": "ghcr.io\/parkervcp\/yolks:nodejs_19", "ghcr.io\/parkervcp\/yolks:nodejs_18": "ghcr.io\/parkervcp\/yolks:nodejs_18", "ghcr.io\/parkervcp\/yolks:nodejs_17": "ghcr.io\/parkervcp\/yolks:nodejs_17", "ghcr.io\/parkervcp\/yolks:nodejs_16": "ghcr.io\/parkervcp\/yolks:nodejs_16", From ff993f5fcb553f8d24dafe119f55f1eb6d5325f2 Mon Sep 17 00:00:00 2001 From: O1LER <44237025+O1LER@users.noreply.github.com> Date: Fri, 19 May 2023 17:51:40 +0200 Subject: [PATCH 221/473] Update beamMP server egg (#2255) * Update beamMP server egg Added variables for server description and chat toggle Updated variable "private" to accept only "true" or "false" string Updated variable "max cars" to accept numbers up to 10 Updated the install script section Corrected a typo, renamed chat logging Used same default description as beamMP --- .../beamng/beammp/egg-beam-m-p-server.json | 34 +++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/game_eggs/beamng/beammp/egg-beam-m-p-server.json b/game_eggs/beamng/beammp/egg-beam-m-p-server.json index f6e282e3..4d61e0ec 100644 --- a/game_eggs/beamng/beammp/egg-beam-m-p-server.json +++ b/game_eggs/beamng/beammp/egg-beam-m-p-server.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-24T22:19:45+01:00", + "exported_at": "2023-05-14T18:49:02+02:00", "name": "BeamMP Servers", "author": "noah@noahserver.online", "description": "This is the server for the multiplayer mod BeamMP for the game BeamNG.drive. The server is the point through which all clients communicate. You can write lua mods for the server, detailed instructions on the BeamMP Wiki.", @@ -15,14 +15,14 @@ "file_denylist": [], "startup": ".\/BeamMP-Server", "config": { - "files": "{\r\n \"ServerConfig.toml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"Name =\": \"Name = \\\"{{env.NAME}}\\\"\",\r\n \"Port =\": \"Port = {{server.build.default.port}}\",\r\n \"AuthKey =\": \"AuthKey = \\\"{{env.AUTHKEY}}\\\"\",\r\n \"Private =\": \"Private = {{env.PRIVATE}}\",\r\n \"MaxPlayers =\": \"MaxPlayers = {{server.build.env.MAX_PLAYERS}}\",\r\n \"Description =\": \"Description = \\\"{{env.NAME}}\\\"\",\r\n \"MaxCars =\": \"MaxCars = {{env.MAX_CARS}}\",\r\n \"Map =\": \"Map = \\\"{{env.MAP}}\\\"\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"ServerConfig.toml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"Name =\": \"Name = \\\"{{env.NAME}}\\\"\",\r\n \"Port =\": \"Port = {{server.build.default.port}}\",\r\n \"AuthKey =\": \"AuthKey = \\\"{{env.AUTHKEY}}\\\"\",\r\n \"Private =\": \"Private = {{env.PRIVATE}}\",\r\n \"MaxPlayers =\": \"MaxPlayers = {{server.build.env.MAX_PLAYERS}}\",\r\n \"Description =\": \"Description = \\\"{{env.DESCRIPTION}}\\\"\",\r\n \"MaxCars =\": \"MaxCars = {{env.MAX_CARS}}\",\r\n \"Map =\": \"Map = \\\"{{env.MAP}}\\\"\",\r\n \"LogChat =\": \"LogChat = \\\"{{env.LOGCHAT}}\\\"\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"[INFO] Vehicle data network online\"\r\n}", "logs": "{}", "stop": "exit" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n#Create the server directory\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n#Remove any old versions\r\nrm -f BeamMP-Server\r\n\r\n#Check for latest release & download URLs\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/BeamMP\/BeamMP-Server\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/BeamMP\/BeamMP-Server\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n echo -e \"Using latest BeamMP server version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i \"${MATCH}\" | head -1)\r\nelse\r\n echo -e \"Chosen version :${VERSION}. Verifying version from releases\"\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}\" | head -1)\r\n else\r\n echo -e \"No valid versions found. Defaulting to the latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i Server-linux | head -1)\r\n fi\r\nfi\r\n\r\n#Download the BeamMP server binary\r\necho -e \"Running curl -sSL ${DOWNLOAD_URL} -o BeamMP-Server\"\r\ncurl -sSL ${DOWNLOAD_URL} -o BeamMP-Server\r\nchmod +x BeamMP-Server\r\n\r\n#Create a default configuration file\r\necho \"[HTTP]\r\n# Recommended to keep enabled. With SSL the server will serve https and requires valid key and cert files\r\nUseSSL = true\r\n# Enables the internal HTTP server\r\nHTTPServerEnabled = false\r\nSSLKeyPath = \\\".\/.ssl\/HttpServer\/key.pem\\\"\r\nHTTPServerPort = 8080\r\nSSLCertPath = \\\".\/.ssl\/HttpServer\/cert.pem\\\"\r\n\r\n[General]\r\n# If SendErrors is `true`, the server will send helpful info about crashes and other issues back to the BeamMP developers. This info may include your config, who is on your server at the time of the error, and similar general information. This kind of data is vital in helping us diagnose and fix issues faster. This has no impact on server performance. You can opt-out of this system by setting this to `false`\r\nSendErrorsShowMessage = true\r\nName = \\\"BeamMP Server\\\"\r\nPort = 30814\r\nResourceFolder = \\\"Resources\\\"\r\n# AuthKey has to be filled out in order to run the server\r\nAuthKey = \\\"\\\"\r\nPrivate = true\r\nMaxPlayers = 10\r\nDebug = false\r\nDescription = \\\"BeamMP Default Description\\\"\r\nMaxCars = 1\r\nMap = \\\"\/levels\/gridmap_v2\/info.json\\\"\r\n# You can turn on\/off the SendErrors message you get on startup here\r\nSendErrors = true\" > ServerConfig.toml\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n#Create the server directory\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n#Remove any old versions\r\nrm -f BeamMP-Server\r\n\r\n#Check for latest release & download URLs\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/BeamMP\/BeamMP-Server\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/BeamMP\/BeamMP-Server\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n echo -e \"Using latest BeamMP server version\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i \"${MATCH}\" | head -1)\r\nelse\r\n echo -e \"Chosen version :${VERSION}. Verifying version from releases\"\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}\" | head -1)\r\n else\r\n echo -e \"No valid versions found. Defaulting to the latest release\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i Server-linux | head -1)\r\n fi\r\nfi\r\n\r\n#Download the BeamMP server binary\r\necho -e \"Running curl -sSL ${DOWNLOAD_URL} -o BeamMP-Server\"\r\ncurl -sSL ${DOWNLOAD_URL} -o BeamMP-Server\r\nchmod +x BeamMP-Server\r\n\r\n#Create a default configuration file\r\necho \"[HTTP]\r\n# Recommended to keep enabled. With SSL the server will serve https and requires valid key and cert files\r\nUseSSL = true\r\n# Enables the internal HTTP server\r\nHTTPServerEnabled = false\r\nSSLKeyPath = \\\".\/.ssl\/HttpServer\/key.pem\\\"\r\nHTTPServerPort = 8080\r\nSSLCertPath = \\\".\/.ssl\/HttpServer\/cert.pem\\\"\r\n\r\n[General]\r\n# If SendErrors is `true`, the server will send helpful info about crashes and other issues back to the BeamMP developers. This info may include your config, who is on your server at the time of the error, and similar general information. This kind of data is vital in helping us diagnose and fix issues faster. This has no impact on server performance. You can opt-out of this system by setting this to `false`\r\nSendErrorsShowMessage = true\r\nName = \\\"BeamMP Server\\\"\r\nPort = 30814\r\nResourceFolder = \\\"Resources\\\"\r\n# AuthKey has to be filled out in order to run the server\r\nAuthKey = \\\"\\\"\r\nPrivate = true\r\nMaxPlayers = 10\r\nDebug = false\r\nLogChat = true\r\nDescription = \\\"BeamMP Default Description\\\"\r\nMaxCars = 1\r\nMap = \\\"\/levels\/gridmap_v2\/info.json\\\"\r\n# You can turn on\/off the SendErrors message you get on startup here\r\nSendErrors = true\" > ServerConfig.toml\r\n\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -35,7 +35,17 @@ "default_value": "BeamMP Server", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:64", + "rules": "required|string|max:128", + "field_type": "text" + }, + { + "name": "Server Description", + "description": "Sets the server description", + "env_variable": "DESCRIPTION", + "default_value": "BeamMP Default Description", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:128", "field_type": "text" }, { @@ -75,7 +85,7 @@ "default_value": "false", "user_viewable": true, "user_editable": true, - "rules": "required|string", + "rules": "required|string|in:true,false", "field_type": "text" }, { @@ -85,7 +95,7 @@ "default_value": "1", "user_viewable": true, "user_editable": true, - "rules": "required|integer|max:4", + "rules": "required|integer|max:10", "field_type": "text" }, { @@ -98,6 +108,16 @@ "rules": "required|string|max:64", "field_type": "text" }, + { + "name": "Chat logging", + "description": "Enable chat logging by the server", + "env_variable": "LOGCHAT", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, { "name": "Match", "description": "The match we have to do on there github package.\r\n\r\nCurrently, they have a special build for debian 11, what is the docker image we use.\r\nGo to https:\/\/github.com\/BeamMP\/BeamMP-Server\/releases if the version you want has an asset \"debian\" then select \"Server-debian\" if not then \"Server-linux\"", @@ -109,4 +129,4 @@ "field_type": "text" } ] -} +} \ No newline at end of file From 564d9ca80ab0c5a472d698d27b2e9826938c3b1a Mon Sep 17 00:00:00 2001 From: oliver408i <75344601+oliver408i@users.noreply.github.com> Date: Sat, 20 May 2023 20:18:07 -0700 Subject: [PATCH 222/473] Update egg-subnautica.json Fixes issue with Subnautica 2.0 that downloads latest instead of legacy branch that Nitrox needs --- .../subnautica_nitrox_mod/egg-subnautica.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/subnautica_nitrox_mod/egg-subnautica.json b/game_eggs/steamcmd_servers/subnautica_nitrox_mod/egg-subnautica.json index 6ff877ef..cf2663ca 100644 --- a/game_eggs/steamcmd_servers/subnautica_nitrox_mod/egg-subnautica.json +++ b/game_eggs/steamcmd_servers/subnautica_nitrox_mod/egg-subnautica.json @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Installation Script\r\n#\r\n# Install dependencies\r\ndpkg --add-architecture i386\r\napt update\r\napt -y --no-install-recommends install curl jq unzip libstdc++6 ca-certificates libsdl2-2.0-0:i386\r\n\r\n## Get latest Nitrox-Mod build\r\n#latest_NitroxMod=$(curl --silent \"https:\/\/api.github.com\/repos\/SubnauticaNitrox\/Nitrox\/releases\/latest\" | grep '\"tag_name\":' | sed -E 's\/.*\"([^\"]+)\".*\/\\1\/')\r\n\r\n#if [ -z \"${NITROX_VERSION}\" ] || [ \"${NITROX_VERSION}\" == \"latest\" ]; then\r\n# DL_VERSION=$latest_NitroxMod\r\n#else\r\n# DL_VERSION=${NITROX_VERSION}\r\n#fi\r\n\r\n## get release info and download links\r\nGITHUB_PACKAGE=\"SubnauticaNitrox\/Nitrox\"\r\nVERSION=${NITROX_VERSION}\r\nMATCH=\"Nitrox\"\r\n\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\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)\r\n fi\r\nfi\r\n\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\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n\r\n## Install game using steamcmd\r\nGUARDCODE=\"${STEAM_GUARDCODE}\"\r\nif [ -z $GUARDCODE ]\r\nthen\r\n echo \"\"\r\n echo \"### You did not specify a Steam Guardcode\"\r\n echo \"### A new one should be send to you shortly\"\r\n echo \"### Enter it in the startup-config after this installation is finished and reinstall the Server\"\r\n sleep 10\r\n timeout 60 .\/steamcmd.sh +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +quit\r\n exit 1\r\nfi\r\n\r\n[ ! -d \"$HOME\/subnautica\" ] && mkdir $HOME\/subnautica\r\n.\/steamcmd.sh +set_steam_guard_code ${STEAM_GUARDCODE} +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +@sSteamCmdForcePlatformType windows +force_install_dir $HOME\/subnautica +app_update ${APPID} ${EXTRA_FLAGS} validate +quit\r\nstatus=$?\r\n\r\nif [ $status -ne 0 ]\r\nthen\r\n echo \"\"\r\n echo \"### The Download was not successful\"\r\n echo \"### Probably the entered Guardcode was wrong\"\r\n echo \"### A new one should be send to you shortly\"\r\n echo \"### Enter it in the startup-config after this installation is finished and reinstall the Server\"\r\n sleep 10\r\n sleep 10\r\n timeout 30 .\/steamcmd.sh +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +quit\r\n exit 1\r\nfi\r\n\r\n\r\n## set up 32 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## Download and extract Nitrox\r\n[ -d \"$HOME\/nitrox\" ] && rm -r $HOME\/nitrox\r\nmkdir $HOME\/nitrox\r\ncd $HOME\/nitrox\r\ncurl -sL $DOWNLOAD_URL -o Nitrox.zip\r\nunzip $HOME\/nitrox\/Nitrox.zip\r\n\r\n\r\n## Create path files to Subnautica Install-Dir. Needed for versions pre 1.6.0\r\necho \"\/home\/container\/subnautica\" > $HOME\/path.txt\r\n\r\n## Create mono registry entry for Subnautica Install-Dir. Needed for versions since 1.6.0\r\nmkdir -p $HOME\/.mono\/registry\/CurrentUser\r\n cat < $HOME\/.mono\/registry\/CurrentUser\/values.xml\r\n \r\n \/home\/container\/subnautica<\/value>\r\n <\/values>\r\nEOT\r\n\r\n\r\n## Create config\r\nif [ -e $HOME\/server.cfg ]; then\r\n echo \"server settings exists\"\r\nelse\r\n echo \"writing server default settings\"\r\n cat < $HOME\/server.cfg\r\n # Server settings can be changed here\r\n # Set to true to Cache entities for the whole map on next run. \r\n # WARNING! Will make server load take longer on the cache run but players will gain a performance boost when entering new areas.\r\n CreateFullEntityCache=False\r\n # Leave blank for a random spawn position\r\n Seed=\r\n ServerPort=11000\r\n # Measured in milliseconds\r\n SaveInterval=120000\r\n # Command to run following a successful world save (e.g. .exe, .bat, or PowerShell script). \r\n PostSaveCommandPath=\r\n MaxConnections=100\r\n InitialSyncTimeout=300000\r\n DisableConsole=False\r\n DisableAutoSave=False\r\n SaveName=world\r\n ServerPassword=\r\n AdminPassword=PleaseChangeMe\r\n # Possible values: SURVIVAL, FREEDOM, HARDCORE, CREATIVE\r\n GameMode=SURVIVAL\r\n # Possible values: PROTOBUF, JSON\r\n SerializerMode=JSON\r\n # Possible values: NONE, PLAYER, MODERATOR, ADMIN, CONSOLE\r\n DefaultPlayerPerm=PLAYER\r\n #\r\n # Default player stats below here\r\n DefaultOxygenValue=45\r\n DefaultMaxOxygenValue=45\r\n DefaultHealthValue=80\r\n DefaultHungerValue=50.5\r\n DefaultThirstValue=90.5\r\n # Recommended to keep at 0.1f which is the default starting value. If set to 0 then new players are cured by default.\r\n DefaultInfectionValue=0.1\r\n # If set to true, the server will try to open port on your router via UPnP\r\n AutoPortForward=False\r\nEOT\r\nfi", + "script": "#!\/bin\/bash\r\n# Installation Script\r\n#\r\n# Install dependencies\r\ndpkg --add-architecture i386\r\napt update\r\napt -y --no-install-recommends install curl jq unzip libstdc++6 ca-certificates libsdl2-2.0-0:i386\r\n\r\n## Get latest Nitrox-Mod build\r\n#latest_NitroxMod=$(curl --silent \"https:\/\/api.github.com\/repos\/SubnauticaNitrox\/Nitrox\/releases\/latest\" | grep '\"tag_name\":' | sed -E 's\/.*\"([^\"]+)\".*\/\\1\/')\r\n\r\n#if [ -z \"${NITROX_VERSION}\" ] || [ \"${NITROX_VERSION}\" == \"latest\" ]; then\r\n# DL_VERSION=$latest_NitroxMod\r\n#else\r\n# DL_VERSION=${NITROX_VERSION}\r\n#fi\r\n\r\n## get release info and download links\r\nGITHUB_PACKAGE=\"SubnauticaNitrox\/Nitrox\"\r\nVERSION=${NITROX_VERSION}\r\nMATCH=\"Nitrox\"\r\n\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\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)\r\n fi\r\nfi\r\n\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\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n\r\n## Install game using steamcmd\r\nGUARDCODE=\"${STEAM_GUARDCODE}\"\r\nif [ -z $GUARDCODE ]\r\nthen\r\n echo \"\"\r\n echo \"### You did not specify a Steam Guardcode\"\r\n echo \"### A new one should be send to you shortly\"\r\n echo \"### Enter it in the startup-config after this installation is finished and reinstall the Server\"\r\n sleep 10\r\n timeout 60 .\/steamcmd.sh +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +quit\r\n exit 1\r\nfi\r\n\r\n[ ! -d \"$HOME\/subnautica\" ] && mkdir $HOME\/subnautica\r\n.\/steamcmd.sh +set_steam_guard_code ${STEAM_GUARDCODE} +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +@sSteamCmdForcePlatformType windows +force_install_dir $HOME\/subnautica +app_update ${APPID} -beta legacy ${EXTRA_FLAGS} validate +quit\r\nstatus=$?\r\n\r\nif [ $status -ne 0 ]\r\nthen\r\n echo \"\"\r\n echo \"### The Download was not successful\"\r\n echo \"### Probably the entered Guardcode was wrong\"\r\n echo \"### A new one should be send to you shortly\"\r\n echo \"### Enter it in the startup-config after this installation is finished and reinstall the Server\"\r\n sleep 10\r\n sleep 10\r\n timeout 30 .\/steamcmd.sh +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +quit\r\n exit 1\r\nfi\r\n\r\n\r\n## set up 32 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## Download and extract Nitrox\r\n[ -d \"$HOME\/nitrox\" ] && rm -r $HOME\/nitrox\r\nmkdir $HOME\/nitrox\r\ncd $HOME\/nitrox\r\ncurl -sL $DOWNLOAD_URL -o Nitrox.zip\r\nunzip $HOME\/nitrox\/Nitrox.zip\r\n\r\n\r\n## Create path files to Subnautica Install-Dir. Needed for versions pre 1.6.0\r\necho \"\/home\/container\/subnautica\" > $HOME\/path.txt\r\n\r\n## Create mono registry entry for Subnautica Install-Dir. Needed for versions since 1.6.0\r\nmkdir -p $HOME\/.mono\/registry\/CurrentUser\r\n cat < $HOME\/.mono\/registry\/CurrentUser\/values.xml\r\n \r\n \/home\/container\/subnautica<\/value>\r\n <\/values>\r\nEOT\r\n\r\n\r\n## Create config\r\nif [ -e $HOME\/server.cfg ]; then\r\n echo \"server settings exists\"\r\nelse\r\n echo \"writing server default settings\"\r\n cat < $HOME\/server.cfg\r\n # Server settings can be changed here\r\n # Set to true to Cache entities for the whole map on next run. \r\n # WARNING! Will make server load take longer on the cache run but players will gain a performance boost when entering new areas.\r\n CreateFullEntityCache=False\r\n # Leave blank for a random spawn position\r\n Seed=\r\n ServerPort=11000\r\n # Measured in milliseconds\r\n SaveInterval=120000\r\n # Command to run following a successful world save (e.g. .exe, .bat, or PowerShell script). \r\n PostSaveCommandPath=\r\n MaxConnections=100\r\n InitialSyncTimeout=300000\r\n DisableConsole=False\r\n DisableAutoSave=False\r\n SaveName=world\r\n ServerPassword=\r\n AdminPassword=PleaseChangeMe\r\n # Possible values: SURVIVAL, FREEDOM, HARDCORE, CREATIVE\r\n GameMode=SURVIVAL\r\n # Possible values: PROTOBUF, JSON\r\n SerializerMode=JSON\r\n # Possible values: NONE, PLAYER, MODERATOR, ADMIN, CONSOLE\r\n DefaultPlayerPerm=PLAYER\r\n #\r\n # Default player stats below here\r\n DefaultOxygenValue=45\r\n DefaultMaxOxygenValue=45\r\n DefaultHealthValue=80\r\n DefaultHungerValue=50.5\r\n DefaultThirstValue=90.5\r\n # Recommended to keep at 0.1f which is the default starting value. If set to 0 then new players are cured by default.\r\n DefaultInfectionValue=0.1\r\n # If set to true, the server will try to open port on your router via UPnP\r\n AutoPortForward=False\r\nEOT\r\nfi", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -148,4 +148,4 @@ "rules": "required|string|in:PROTOBUF,JSON" } ] -} \ No newline at end of file +} From 1112cc845043c8564633618cabcc12359fcec2bf Mon Sep 17 00:00:00 2001 From: oliver408i <75344601+oliver408i@users.noreply.github.com> Date: Sun, 21 May 2023 10:02:07 -0700 Subject: [PATCH 223/473] Update egg-subnautica.json --- .../subnautica_nitrox_mod/egg-subnautica.json | 63 +++++++++++++------ 1 file changed, 43 insertions(+), 20 deletions(-) diff --git a/game_eggs/steamcmd_servers/subnautica_nitrox_mod/egg-subnautica.json b/game_eggs/steamcmd_servers/subnautica_nitrox_mod/egg-subnautica.json index cf2663ca..037eb5ab 100644 --- a/game_eggs/steamcmd_servers/subnautica_nitrox_mod/egg-subnautica.json +++ b/game_eggs/steamcmd_servers/subnautica_nitrox_mod/egg-subnautica.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-04-23T15:20:19+02:00", + "exported_at": "2023-05-21T09:59:37-07:00", "name": "Subnautica", "author": "tueye@tuworld.de", - "description": "Subnautica is an open world survival action-adventure video game developed and published by Unknown Worlds Entertainment. In it, players are free to explore the ocean on an alien planet, known as planet 4546B, after their spaceship, the Aurora, crashes on the planet's surface.\r\n\r\nNote: NitroxMod version >=1.5.0.0 is required", + "description": "Subnautica is an open world survival action-adventure video game developed and published by Unknown Worlds Entertainment. In it, players are free to explore the ocean on an alien planet, known as planet 4546B, after their spaceship, the Aurora, crashes on the planet's surface.\r\n\r\nNote: NitroxMod version >=1.7.0.0 is required", "features": [ "steam_disk_space" ], - "images": [ - "ghcr.io\/parkervcp\/yolks:mono_latest" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:mono_latest": "ghcr.io\/parkervcp\/yolks:mono_latest" + }, "file_denylist": [], "startup": "mono .\/nitrox\/NitroxServer-Subnautica.exe", "config": { @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Installation Script\r\n#\r\n# Install dependencies\r\ndpkg --add-architecture i386\r\napt update\r\napt -y --no-install-recommends install curl jq unzip libstdc++6 ca-certificates libsdl2-2.0-0:i386\r\n\r\n## Get latest Nitrox-Mod build\r\n#latest_NitroxMod=$(curl --silent \"https:\/\/api.github.com\/repos\/SubnauticaNitrox\/Nitrox\/releases\/latest\" | grep '\"tag_name\":' | sed -E 's\/.*\"([^\"]+)\".*\/\\1\/')\r\n\r\n#if [ -z \"${NITROX_VERSION}\" ] || [ \"${NITROX_VERSION}\" == \"latest\" ]; then\r\n# DL_VERSION=$latest_NitroxMod\r\n#else\r\n# DL_VERSION=${NITROX_VERSION}\r\n#fi\r\n\r\n## get release info and download links\r\nGITHUB_PACKAGE=\"SubnauticaNitrox\/Nitrox\"\r\nVERSION=${NITROX_VERSION}\r\nMATCH=\"Nitrox\"\r\n\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\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)\r\n fi\r\nfi\r\n\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\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n\r\n## Install game using steamcmd\r\nGUARDCODE=\"${STEAM_GUARDCODE}\"\r\nif [ -z $GUARDCODE ]\r\nthen\r\n echo \"\"\r\n echo \"### You did not specify a Steam Guardcode\"\r\n echo \"### A new one should be send to you shortly\"\r\n echo \"### Enter it in the startup-config after this installation is finished and reinstall the Server\"\r\n sleep 10\r\n timeout 60 .\/steamcmd.sh +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +quit\r\n exit 1\r\nfi\r\n\r\n[ ! -d \"$HOME\/subnautica\" ] && mkdir $HOME\/subnautica\r\n.\/steamcmd.sh +set_steam_guard_code ${STEAM_GUARDCODE} +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +@sSteamCmdForcePlatformType windows +force_install_dir $HOME\/subnautica +app_update ${APPID} -beta legacy ${EXTRA_FLAGS} validate +quit\r\nstatus=$?\r\n\r\nif [ $status -ne 0 ]\r\nthen\r\n echo \"\"\r\n echo \"### The Download was not successful\"\r\n echo \"### Probably the entered Guardcode was wrong\"\r\n echo \"### A new one should be send to you shortly\"\r\n echo \"### Enter it in the startup-config after this installation is finished and reinstall the Server\"\r\n sleep 10\r\n sleep 10\r\n timeout 30 .\/steamcmd.sh +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +quit\r\n exit 1\r\nfi\r\n\r\n\r\n## set up 32 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## Download and extract Nitrox\r\n[ -d \"$HOME\/nitrox\" ] && rm -r $HOME\/nitrox\r\nmkdir $HOME\/nitrox\r\ncd $HOME\/nitrox\r\ncurl -sL $DOWNLOAD_URL -o Nitrox.zip\r\nunzip $HOME\/nitrox\/Nitrox.zip\r\n\r\n\r\n## Create path files to Subnautica Install-Dir. Needed for versions pre 1.6.0\r\necho \"\/home\/container\/subnautica\" > $HOME\/path.txt\r\n\r\n## Create mono registry entry for Subnautica Install-Dir. Needed for versions since 1.6.0\r\nmkdir -p $HOME\/.mono\/registry\/CurrentUser\r\n cat < $HOME\/.mono\/registry\/CurrentUser\/values.xml\r\n \r\n \/home\/container\/subnautica<\/value>\r\n <\/values>\r\nEOT\r\n\r\n\r\n## Create config\r\nif [ -e $HOME\/server.cfg ]; then\r\n echo \"server settings exists\"\r\nelse\r\n echo \"writing server default settings\"\r\n cat < $HOME\/server.cfg\r\n # Server settings can be changed here\r\n # Set to true to Cache entities for the whole map on next run. \r\n # WARNING! Will make server load take longer on the cache run but players will gain a performance boost when entering new areas.\r\n CreateFullEntityCache=False\r\n # Leave blank for a random spawn position\r\n Seed=\r\n ServerPort=11000\r\n # Measured in milliseconds\r\n SaveInterval=120000\r\n # Command to run following a successful world save (e.g. .exe, .bat, or PowerShell script). \r\n PostSaveCommandPath=\r\n MaxConnections=100\r\n InitialSyncTimeout=300000\r\n DisableConsole=False\r\n DisableAutoSave=False\r\n SaveName=world\r\n ServerPassword=\r\n AdminPassword=PleaseChangeMe\r\n # Possible values: SURVIVAL, FREEDOM, HARDCORE, CREATIVE\r\n GameMode=SURVIVAL\r\n # Possible values: PROTOBUF, JSON\r\n SerializerMode=JSON\r\n # Possible values: NONE, PLAYER, MODERATOR, ADMIN, CONSOLE\r\n DefaultPlayerPerm=PLAYER\r\n #\r\n # Default player stats below here\r\n DefaultOxygenValue=45\r\n DefaultMaxOxygenValue=45\r\n DefaultHealthValue=80\r\n DefaultHungerValue=50.5\r\n DefaultThirstValue=90.5\r\n # Recommended to keep at 0.1f which is the default starting value. If set to 0 then new players are cured by default.\r\n DefaultInfectionValue=0.1\r\n # If set to true, the server will try to open port on your router via UPnP\r\n AutoPortForward=False\r\nEOT\r\nfi", + "script": "#!\/bin\/bash\r\n# Installation Script\r\n#\r\n# Install dependencies\r\ndpkg --add-architecture i386\r\napt update\r\napt -y --no-install-recommends install curl jq unzip libstdc++6 ca-certificates libsdl2-2.0-0:i386\r\n\r\n## Get latest Nitrox-Mod build\r\n#latest_NitroxMod=$(curl --silent \"https:\/\/api.github.com\/repos\/SubnauticaNitrox\/Nitrox\/releases\/latest\" | grep '\"tag_name\":' | sed -E 's\/.*\"([^\"]+)\".*\/\\1\/')\r\n\r\n#if [ -z \"${NITROX_VERSION}\" ] || [ \"${NITROX_VERSION}\" == \"latest\" ]; then\r\n# DL_VERSION=$latest_NitroxMod\r\n#else\r\n# DL_VERSION=${NITROX_VERSION}\r\n#fi\r\n\r\n## get release info and download links\r\nGITHUB_PACKAGE=\"SubnauticaNitrox\/Nitrox\"\r\nVERSION=${NITROX_VERSION}\r\nMATCH=\"Nitrox\"\r\n\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\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)\r\n fi\r\nfi\r\n\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\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n\r\n## Install game using steamcmd\r\nGUARDCODE=\"${STEAM_GUARDCODE}\"\r\nif [ -z $GUARDCODE ]\r\nthen\r\n echo \"\"\r\n echo \"### You did not specify a Steam Guardcode\"\r\n echo \"### A new one should be send to you shortly\"\r\n echo \"### Enter it in the startup-config after this installation is finished and reinstall the Server\"\r\n sleep 10\r\n timeout 60 .\/steamcmd.sh +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +quit\r\n exit 1\r\nfi\r\n\r\n[ ! -d \"$HOME\/subnautica\" ] && mkdir $HOME\/subnautica\r\n.\/steamcmd.sh +set_steam_guard_code ${STEAM_GUARDCODE} +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +@sSteamCmdForcePlatformType windows +force_install_dir $HOME\/subnautica +app_update ${APPID} ${EXTRA_FLAGS} validate +quit\r\nstatus=$?\r\n\r\nif [ $status -ne 0 ]\r\nthen\r\n echo \"\"\r\n echo \"### The Download was not successful\"\r\n echo \"### Probably the entered Guardcode was wrong\"\r\n echo \"### A new one should be send to you shortly\"\r\n echo \"### Enter it in the startup-config after this installation is finished and reinstall the Server\"\r\n sleep 10\r\n sleep 10\r\n timeout 30 .\/steamcmd.sh +login ${STEAM_USERNAME} ${STEAM_PASSWORD} +quit\r\n exit 1\r\nfi\r\n\r\n\r\n## set up 32 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## Download and extract Nitrox\r\n[ -d \"$HOME\/nitrox\" ] && rm -r $HOME\/nitrox\r\nmkdir $HOME\/nitrox\r\ncd $HOME\/nitrox\r\ncurl -sL $DOWNLOAD_URL -o Nitrox.zip\r\nunzip $HOME\/nitrox\/Nitrox.zip\r\n\r\n\r\n## Create path files to Subnautica Install-Dir. Needed for versions pre 1.6.0\r\necho \"\/home\/container\/subnautica\" > $HOME\/path.txt\r\n\r\n## Create mono registry entry for Subnautica Install-Dir. Needed for versions since 1.6.0\r\nmkdir -p $HOME\/.mono\/registry\/CurrentUser\r\n cat < $HOME\/.mono\/registry\/CurrentUser\/values.xml\r\n \r\n \/home\/container\/subnautica<\/value>\r\n <\/values>\r\nEOT\r\n\r\n\r\n## Create config\r\nif [ -e $HOME\/server.cfg ]; then\r\n echo \"server settings exists\"\r\nelse\r\n echo \"writing server default settings\"\r\n cat < $HOME\/server.cfg\r\n # Server settings can be changed here\r\n # Set to true to Cache entities for the whole map on next run. \r\n # WARNING! Will make server load take longer on the cache run but players will gain a performance boost when entering new areas.\r\n CreateFullEntityCache=False\r\n # Leave blank for a random spawn position\r\n Seed=\r\n ServerPort=11000\r\n # Measured in milliseconds\r\n SaveInterval=120000\r\n # Command to run following a successful world save (e.g. .exe, .bat, or PowerShell script). \r\n PostSaveCommandPath=\r\n MaxConnections=100\r\n InitialSyncTimeout=300000\r\n DisableConsole=False\r\n DisableAutoSave=False\r\n SaveName=world\r\n ServerPassword=\r\n AdminPassword=PleaseChangeMe\r\n # Possible values: SURVIVAL, FREEDOM, HARDCORE, CREATIVE\r\n GameMode=SURVIVAL\r\n # Possible values: PROTOBUF, JSON\r\n SerializerMode=JSON\r\n # Possible values: NONE, PLAYER, MODERATOR, ADMIN, CONSOLE\r\n DefaultPlayerPerm=PLAYER\r\n #\r\n # Default player stats below here\r\n DefaultOxygenValue=45\r\n DefaultMaxOxygenValue=45\r\n DefaultHealthValue=80\r\n DefaultHungerValue=50.5\r\n DefaultThirstValue=90.5\r\n # Recommended to keep at 0.1f which is the default starting value. If set to 0 then new players are cured by default.\r\n DefaultInfectionValue=0.1\r\n # If set to true, the server will try to open port on your router via UPnP\r\n AutoPortForward=False\r\nEOT\r\nfi", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -37,7 +37,8 @@ "default_value": "264710", "user_viewable": false, "user_editable": false, - "rules": "required|numeric|digits_between:1,6" + "rules": "required|numeric|digits_between:1,6", + "field_type": "text" }, { "name": "Steam-Username", @@ -46,7 +47,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:64" + "rules": "required|string|max:64", + "field_type": "text" }, { "name": "Steam-Password", @@ -55,7 +57,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:64" + "rules": "required|string|max:64", + "field_type": "text" }, { "name": "Steam-GuardCode", @@ -64,7 +67,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:6" + "rules": "nullable|string|max:6", + "field_type": "text" }, { "name": "Nitrox Version", @@ -73,7 +77,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|between:3,12" + "rules": "required|string|between:3,12", + "field_type": "text" }, { "name": "Auto Save Interval", @@ -82,7 +87,8 @@ "default_value": "120000", "user_viewable": true, "user_editable": true, - "rules": "required|numeric|digits_between:6,7" + "rules": "required|numeric|digits_between:6,7", + "field_type": "text" }, { "name": "Disable Auto Save", @@ -91,7 +97,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" }, { "name": "Save Name", @@ -100,7 +107,8 @@ "default_value": "world", "user_viewable": true, "user_editable": true, - "rules": "alpha_dash|between:1,100" + "rules": "alpha_dash|between:1,100", + "field_type": "text" }, { "name": "Server Password", @@ -109,7 +117,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|between:3,12" + "rules": "nullable|string|between:3,12", + "field_type": "text" }, { "name": "Admin Password", @@ -118,7 +127,8 @@ "default_value": "PleaseChangeMe", "user_viewable": true, "user_editable": true, - "rules": "required|string|between:3,16" + "rules": "required|string|between:3,16", + "field_type": "text" }, { "name": "Game Mode", @@ -127,7 +137,8 @@ "default_value": "SURVIVAL", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:SURVIVAL,FREEDOM,HARDCORE,CREATIVE" + "rules": "required|string|in:SURVIVAL,FREEDOM,HARDCORE,CREATIVE", + "field_type": "text" }, { "name": "Auto Portforward via UPnP", @@ -136,7 +147,8 @@ "default_value": "False", "user_viewable": false, "user_editable": false, - "rules": "required|string|in:True,False" + "rules": "required|string|in:True,False", + "field_type": "text" }, { "name": "Serializer Mode", @@ -145,7 +157,18 @@ "default_value": "JSON", "user_viewable": false, "user_editable": false, - "rules": "required|string|in:PROTOBUF,JSON" + "rules": "required|string|in:PROTOBUF,JSON", + "field_type": "text" + }, + { + "name": "Extra Flags", + "description": "Extra flags for steamcmd download. Do not edit", + "env_variable": "EXTRA_FLAGS", + "default_value": "-beta legacy", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" } ] } 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 224/473] 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 225/473] 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 226/473] 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 227/473] 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 66f418cfb6ac624b2f42d57854f9f7cdda7c5145 Mon Sep 17 00:00:00 2001 From: diedyesterday <81169193+diedyesterdaywashere@users.noreply.github.com> Date: Sat, 27 May 2023 13:04:59 +0300 Subject: [PATCH 228/473] fix --- game_eggs/rimworld/open_world/egg-rimworld-open-world.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/rimworld/open_world/egg-rimworld-open-world.json b/game_eggs/rimworld/open_world/egg-rimworld-open-world.json index b882a7da..f85b65c8 100644 --- a/game_eggs/rimworld/open_world/egg-rimworld-open-world.json +++ b/game_eggs/rimworld/open_world/egg-rimworld-open-world.json @@ -4,10 +4,10 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-01T11:19:44+02:00", + "exported_at": "2023-05-27T13:03:41+03:00", "name": "Rimworld: Open World", "author": "kyle@williquette.us", - "description": "The Open World mod allows you to create and join servers to play with people all around the world, it introduces plenty of new features including trading, gifting, bartering, PvP and so much more!\r\n\r\nhttps:\/\/github.com\/mypassowordisntweak\/OpenWorld", + "description": "The Open World mod allows you to create and join servers to play with people all around the world, it introduces plenty of new features including trading, gifting, bartering, PvP and so much more!\r\n\r\nhttps:\/\/github.com\/D12-Dev\/OpenWorld", "features": null, "docker_images": { "Dotnet 3.1": "ghcr.io\/parkervcp\/yolks:dotnet_3.1", @@ -23,7 +23,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\n#Create the server directory\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\napt update\r\napt -y install curl jq unzip git\r\n\r\n\r\n#Check for latest release & download URLs\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/mypassowordisntweak\/OpenWorld\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/mypassowordisntweak\/OpenWorld\/releases\")\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux-x64\" || echo \"linux-arm64\")\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 ${ARCH} | head -1)\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 ${ARCH} | head -1)\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 -i ${ARCH}| head -1)\r\n fi\r\nfi\r\n\r\n\r\n#Download the Rimworld Open World server\r\necho -e \"Running curl -sSL ${DOWNLOAD_URL} -o ${ARCH}.zip\"\r\ncurl -sSL ${DOWNLOAD_URL} -o ${ARCH}.zip\r\necho -e \"Unzipping ${ARCH}.zip\"\r\nunzip -o ${ARCH}.zip\r\nmv ${ARCH}\/* \/mnt\/server\r\nchmod +x \"OpenWorldServer\"\r\nrm -rf ${ARCH}.zip ${ARCH}\/\r\n\r\n\r\n\r\ncd \/mnt\/server\r\nFILE=\/mnt\/server\/Data\/Config.json\r\nif [ -f \"$FILE\" ]; then\r\n echo \"config already exists.\"\r\nelse \r\n echo \"Config does not exist, making one\"\r\n mkdir -p \/mnt\/server\/Data\r\n cd \/mnt\/server\/Data\r\ncat << EOF > \"Config.json\"\r\n{\r\n \"LocalAddress\": \"0.0.0.0\",\r\n \"ServerPort\": 25555,\r\n \"MaxPlayers\": 10,\r\n \"PlayerVersion\": \"1.2\",\r\n \"EnforceMods\": false,\r\n \"UseModBlacklist\": false,\r\n \"UseCustomDifficulty\": false,\r\n \"UseWhitelist\": false,\r\n \"AllowCustomScenarios\": false\r\n}\r\nEOF\r\nfi\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n\r\n#Create the server directory\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\napt update\r\napt -y install curl jq unzip git\r\n\r\n\r\n#Check for latest release & download URLs\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/D12-Dev\/OpenWorld\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/D12-Dev\/OpenWorld\/releases\")\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux-x64\" || echo \"linux-arm64\")\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 ${ARCH} | head -1)\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 ${ARCH} | head -1)\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 -i ${ARCH}| head -1)\r\n fi\r\nfi\r\n\r\n\r\n#Download the Rimworld Open World server\r\necho -e \"Running curl -sSL ${DOWNLOAD_URL} -o ${ARCH}.zip\"\r\ncurl -sSL ${DOWNLOAD_URL} -o ${ARCH}.zip\r\necho -e \"Unzipping ${ARCH}.zip\"\r\nunzip -o ${ARCH}.zip\r\nmv ${ARCH}\/* \/mnt\/server\r\nchmod +x \"OpenWorldServer\"\r\nrm -rf ${ARCH}.zip ${ARCH}\/\r\n\r\n\r\n\r\ncd \/mnt\/server\r\nFILE=\/mnt\/server\/Data\/Config.json\r\nif [ -f \"$FILE\" ]; then\r\n echo \"config already exists.\"\r\nelse \r\n echo \"Config does not exist, making one\"\r\n mkdir -p \/mnt\/server\/Data\r\n cd \/mnt\/server\/Data\r\ncat << EOF > \"Config.json\"\r\n{\r\n \"LocalAddress\": \"0.0.0.0\",\r\n \"ServerPort\": 25555,\r\n \"MaxPlayers\": 10,\r\n \"PlayerVersion\": \"1.2\",\r\n \"EnforceMods\": false,\r\n \"UseModBlacklist\": false,\r\n \"UseCustomDifficulty\": false,\r\n \"UseWhitelist\": false,\r\n \"AllowCustomScenarios\": false\r\n}\r\nEOF\r\nfi\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "debian:bullseye-slim", "entrypoint": "bash" } 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 229/473] 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 2ba047325c541ca6dd89d034dea1bd61f44d61a3 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Fri, 2 Jun 2023 19:20:03 +0200 Subject: [PATCH 230/473] add support for PM5 --- .../bedrock/pocketmine_mp/egg-pocketmine-m-p.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json index 9b39b2a5..b658775c 100644 --- a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json +++ b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-18T11:08:07+02:00", + "exported_at": "2023-06-02T19:18:56+02:00", "name": "PocketmineMP", "author": "info@swisscrafting.ch", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt-get update\r\napt-get install -y git curl wget jq file tar unzip zip\r\n\r\nmkdir -p \/mnt\/server\/ # Not required. Only here for parkervcp's local test setup\r\n\r\ncd \/mnt\/server || exit 1\r\n\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && printf \"amd64\" || printf \"arm64\")\r\n\r\n# Shouldn't be possible to be empty, but default to PM4 if it is and convert to uppercase\r\nVERSION=\"${VERSION:-PM4}\"\r\nVERSION=\"${VERSION^^}\"\r\n\r\n# Helper functions\r\n\r\ndownload_php_binary() {\r\n printf \"Downloading latest PHP %s binary for %s\\n\" \"$REQUIRED_PHP_VERSION\" \"$VERSION\"\r\n curl --location --progress-bar https:\/\/github.com\/pmmp\/PHP-Binaries\/releases\/download\/php-\"$REQUIRED_PHP_VERSION\"-latest\/PHP-Linux-x86_64-\"$VERSION\".tar.gz | tar -xzv\r\n}\r\n\r\nset_php_extension_dir() {\r\n printf \"Configuring php.ini\\n\"\r\n EXTENSION_DIR=$(find \"bin\" -name '*debug-zts*')\r\n grep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n}\r\n\r\ndownload_pmmp() {\r\n DOWNLOAD_LINK=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'download_url' | cut -d '\"' -f 4)\r\n printf \"Downloading %s from %s\\n\" \"$VERSION\" \"${DOWNLOAD_LINK}\"\r\n curl --location --progress-bar \"${DOWNLOAD_LINK}\" --output PocketMine-MP.phar\r\n}\r\n\r\n# We have to convert VERSION into an API channel\r\nif [[ \"${VERSION}\" == \"PM4\" ]]; then\r\n API_CHANNEL=\"stable\"\r\n\r\n# Disabled until PM5 is released and API channels or structure are decided for PM4\/PM5\r\n# elif [[ \"${VERSION}\" == \"PM5\" ]]; then\r\n# API_CHANNEL=\"alpha\"\r\nelse\r\n printf \"Unsupported version: %s\" \"${VERSION}\"\r\n exit 1\r\nfi\r\n\r\nREQUIRED_PHP_VERSION=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'php_version' | cut -d '\"' -f 4)\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\n download_php_binary\r\n\r\n# There are no ARM64 PHP binaries yet, so we have to compile them\r\nelse\r\n apt install -y make autoconf automake m4 bzip2 bison g++ cmake pkg-config re2c libtool-bin\r\n \r\n mkdir -p \/mnt\/server\/build_cache\/archives\r\n mkdir -p \/mnt\/server\/build_cache\/compilation\r\n \r\n # Each PHP version has its own compile script, so we have to download the correct one\r\n echo \"running curl --location --progress-bar --remote-name https:\/\/raw.githubusercontent.com\/pmmp\/PHP-Binaries\/php\/\"$REQUIRED_PHP_VERSION\"\/compile.sh\"\r\n curl --location --progress-bar --remote-name https:\/\/raw.githubusercontent.com\/pmmp\/PHP-Binaries\/php\/\"$REQUIRED_PHP_VERSION\"\/compile.sh\r\n chmod +x compile.sh\r\n\r\n cat <>bin\/php7\/bin\/php.ini\r\n}\r\n\r\ndownload_pmmp() {\r\n DOWNLOAD_LINK=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'download_url' | cut -d '\"' -f 4)\r\n printf \"Downloading %s from %s\\n\" \"$VERSION\" \"${DOWNLOAD_LINK}\"\r\n curl --location --progress-bar \"${DOWNLOAD_LINK}\" --output PocketMine-MP.phar\r\n}\r\n\r\n# We have to convert VERSION into an API channel\r\nif [[ \"${VERSION}\" == \"PM4\" ]]; then\r\n API_CHANNEL=\"4\"\r\n\r\n# Disabled until PM5 is released and API channels or structure are decided for PM4\/PM5\r\nelif [[ \"${VERSION}\" == \"PM5\" ]]; then\r\n API_CHANNEL=\"stable\"\r\nelse\r\n printf \"Unsupported version: %s\" \"${VERSION}\"\r\n exit 1\r\nfi\r\n\r\nREQUIRED_PHP_VERSION=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'php_version' | cut -d '\"' -f 4)\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\n download_php_binary\r\n\r\n# There are no ARM64 PHP binaries yet, so we have to compile them\r\nelse\r\n apt install -y make autoconf automake m4 bzip2 bison g++ cmake pkg-config re2c libtool-bin\r\n \r\n mkdir -p \/mnt\/server\/build_cache\/archives\r\n mkdir -p \/mnt\/server\/build_cache\/compilation\r\n \r\n # Each PHP version has its own compile script, so we have to download the correct one\r\n echo \"running curl --location --progress-bar --remote-name https:\/\/raw.githubusercontent.com\/pmmp\/PHP-Binaries\/php\/\"$REQUIRED_PHP_VERSION\"\/compile.sh\"\r\n curl --location --progress-bar --remote-name https:\/\/raw.githubusercontent.com\/pmmp\/PHP-Binaries\/php\/\"$REQUIRED_PHP_VERSION\"\/compile.sh\r\n chmod +x compile.sh\r\n\r\n cat < Date: Fri, 2 Jun 2023 19:35:52 +0200 Subject: [PATCH 231/473] use JQ for DOWNLOAD_LINK & REQUIRED_PHP_VERSION --- .../minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json index b658775c..085229e1 100644 --- a/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json +++ b/game_eggs/minecraft/bedrock/pocketmine_mp/egg-pocketmine-m-p.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-06-02T19:18:56+02:00", + "exported_at": "2023-06-02T19:34:57+02:00", "name": "PocketmineMP", "author": "info@swisscrafting.ch", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt-get update\r\napt-get install -y git curl wget jq file tar unzip zip\r\n\r\nmkdir -p \/mnt\/server\/ # Not required. Only here for parkervcp's local test setup\r\n\r\ncd \/mnt\/server || exit 1\r\n\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && printf \"amd64\" || printf \"arm64\")\r\n\r\n# Shouldn't be possible to be empty, but default to PM5 if it is and convert to uppercase\r\nVERSION=\"${VERSION:-PM5}\"\r\nVERSION=\"${VERSION^^}\"\r\n\r\n# Helper functions\r\n\r\ndownload_php_binary() {\r\n printf \"Downloading latest PHP %s binary for %s\\n\" \"$REQUIRED_PHP_VERSION\" \"$VERSION\"\r\n curl --location --progress-bar https:\/\/github.com\/pmmp\/PHP-Binaries\/releases\/download\/php-\"$REQUIRED_PHP_VERSION\"-latest\/PHP-Linux-x86_64-\"$VERSION\".tar.gz | tar -xzv\r\n}\r\n\r\nset_php_extension_dir() {\r\n printf \"Configuring php.ini\\n\"\r\n EXTENSION_DIR=$(find \"bin\" -name '*debug-zts*')\r\n grep -q '^extension_dir' bin\/php7\/bin\/php.ini && sed -i'bak' \"s{^extension_dir=.*{extension_dir=\\\"$EXTENSION_DIR\\\"{\" bin\/php7\/bin\/php.ini || echo \"extension_dir=\\\"$EXTENSION_DIR\\\"\" >>bin\/php7\/bin\/php.ini\r\n}\r\n\r\ndownload_pmmp() {\r\n DOWNLOAD_LINK=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'download_url' | cut -d '\"' -f 4)\r\n printf \"Downloading %s from %s\\n\" \"$VERSION\" \"${DOWNLOAD_LINK}\"\r\n curl --location --progress-bar \"${DOWNLOAD_LINK}\" --output PocketMine-MP.phar\r\n}\r\n\r\n# We have to convert VERSION into an API channel\r\nif [[ \"${VERSION}\" == \"PM4\" ]]; then\r\n API_CHANNEL=\"4\"\r\n\r\n# Disabled until PM5 is released and API channels or structure are decided for PM4\/PM5\r\nelif [[ \"${VERSION}\" == \"PM5\" ]]; then\r\n API_CHANNEL=\"stable\"\r\nelse\r\n printf \"Unsupported version: %s\" \"${VERSION}\"\r\n exit 1\r\nfi\r\n\r\nREQUIRED_PHP_VERSION=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | grep 'php_version' | cut -d '\"' -f 4)\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\n download_php_binary\r\n\r\n# There are no ARM64 PHP binaries yet, so we have to compile them\r\nelse\r\n apt install -y make autoconf automake m4 bzip2 bison g++ cmake pkg-config re2c libtool-bin\r\n \r\n mkdir -p \/mnt\/server\/build_cache\/archives\r\n mkdir -p \/mnt\/server\/build_cache\/compilation\r\n \r\n # Each PHP version has its own compile script, so we have to download the correct one\r\n echo \"running curl --location --progress-bar --remote-name https:\/\/raw.githubusercontent.com\/pmmp\/PHP-Binaries\/php\/\"$REQUIRED_PHP_VERSION\"\/compile.sh\"\r\n curl --location --progress-bar --remote-name https:\/\/raw.githubusercontent.com\/pmmp\/PHP-Binaries\/php\/\"$REQUIRED_PHP_VERSION\"\/compile.sh\r\n chmod +x compile.sh\r\n\r\n cat <>bin\/php7\/bin\/php.ini\r\n}\r\n\r\ndownload_pmmp() {\r\n DOWNLOAD_LINK=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | jq -r '.download_url')\r\n printf \"Downloading %s from %s\\n\" \"$VERSION\" \"${DOWNLOAD_LINK}\"\r\n curl --location --progress-bar \"${DOWNLOAD_LINK}\" --output PocketMine-MP.phar\r\n}\r\n\r\n# We have to convert VERSION into an API channel\r\nif [[ \"${VERSION}\" == \"PM4\" ]]; then\r\n API_CHANNEL=\"4\"\r\n\r\nelif [[ \"${VERSION}\" == \"PM5\" ]]; then\r\n API_CHANNEL=\"stable\"\r\nelse\r\n printf \"Unsupported version: %s\" \"${VERSION}\"\r\n exit 1\r\nfi\r\n\r\nREQUIRED_PHP_VERSION=$(curl -sSL https:\/\/update.pmmp.io\/api?channel=\"$API_CHANNEL\" | jq -r '.php_version')\r\n\r\nif [[ \"${ARCH}\" == \"amd64\" ]]; then\r\n download_php_binary\r\n\r\n# There are no ARM64 PHP binaries yet, so we have to compile them\r\nelse\r\n apt install -y make autoconf automake m4 bzip2 bison g++ cmake pkg-config re2c libtool-bin\r\n \r\n mkdir -p \/mnt\/server\/build_cache\/archives\r\n mkdir -p \/mnt\/server\/build_cache\/compilation\r\n \r\n # Each PHP version has its own compile script, so we have to download the correct one\r\n echo \"running curl --location --progress-bar --remote-name https:\/\/raw.githubusercontent.com\/pmmp\/PHP-Binaries\/php\/\"$REQUIRED_PHP_VERSION\"\/compile.sh\"\r\n curl --location --progress-bar --remote-name https:\/\/raw.githubusercontent.com\/pmmp\/PHP-Binaries\/php\/\"$REQUIRED_PHP_VERSION\"\/compile.sh\r\n chmod +x compile.sh\r\n\r\n cat < Date: Fri, 2 Jun 2023 20:38:20 +0200 Subject: [PATCH 232/473] 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 065d88be667cee6bcd6445dd9760efd17cd24a4a Mon Sep 17 00:00:00 2001 From: Elite Espeon Date: Sat, 3 Jun 2023 11:17:34 -0400 Subject: [PATCH 233/473] Add Neos VR --- README.md | 1 + game_eggs/README.md | 1 + game_eggs/steamcmd_servers/README.md | 3 + game_eggs/steamcmd_servers/neosvr/README.md | 10 +++ .../steamcmd_servers/neosvr/egg-neos-v-r.json | 82 +++++++++++++++++++ 5 files changed, 97 insertions(+) create mode 100644 game_eggs/steamcmd_servers/neosvr/README.md create mode 100644 game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json diff --git a/README.md b/README.md index 5e782063..d5ec3f26 100644 --- a/README.md +++ b/README.md @@ -247,6 +247,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Left 4 Dead 2](game_eggs/steamcmd_servers/left4dead_2) * [Modiverse](game_eggs/steamcmd_servers/modiverse) * [Mordhau](game_eggs/steamcmd_servers/mordhau) +* [Neos VR](game_eggs/steamcmd_servers/neosvr) * [No More Room in Hell](game_eggs/steamcmd_servers/nmrih) * [Onset](game_eggs/steamcmd_servers/onset) * [Open Fortress](game_eggs/steamcmd_servers/open_fortress) diff --git a/game_eggs/README.md b/game_eggs/README.md index 978c5961..e0d5bfc1 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -145,6 +145,7 @@ * [Left 4 Dead 2](steamcmd_servers/left4dead_2) * [Modiverse](steamcmd_servers/modiverse) * [Mordhau](steamcmd_servers/mordhau) +* [Neos VR](steamcmd_servers/neosvr) * [No More Room in Hell](steamcmd_servers/nmrih) * [Onset](steamcmd_servers/onset) * [Open Fortress](steamcmd_servers/open_fortress) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index b338a27c..3e9b1780 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -118,6 +118,9 @@ This is a collection of servers that use SteamCMD to install. [Mordhau](mordhau) +## Neos VR +[Neos VR](neosvr) + ## Onset [Onset](onset) diff --git a/game_eggs/steamcmd_servers/neosvr/README.md b/game_eggs/steamcmd_servers/neosvr/README.md new file mode 100644 index 00000000..0e0a49dd --- /dev/null +++ b/game_eggs/steamcmd_servers/neosvr/README.md @@ -0,0 +1,10 @@ +# Neos VR headless client +## From https://neos.com +Developing Neos, short for neo spatium - new space, a highly collaborative virtual and augmented reality metaverse. + +# Notice + +To use this egg you will need a beta code and a steam account. The account will also need to have neos vr in its library. You can do this by running app_license_request 740250 in steamcmd if you have never installed neos on this account. +For more information related to configuration go here: https://wiki.neos.com/Headless_Client/Server + +This game does not require any port forwarding, but instead uses UDP NAT hole punching (and/or relay) on a random port. You can force a certain port in the config for direct connections, but most communcation is done via NAT hole punch using LiteNetLib (LNL). \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json b/game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json new file mode 100644 index 00000000..7f32ac03 --- /dev/null +++ b/game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.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-06-03T10:59:04-04:00", + "name": "NeosVR", + "author": "espeon@espeon.dev", + "description": "Neos VR is a metaverse engineered for the unknown! It\u2019s one of the most versatile and feature rich metaverses for virtual reality, designed so everybody can find something interesting or useful to do in a social setting.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:mono_latest": "ghcr.io\/parkervcp\/yolks:mono_latest" + }, + "file_denylist": [], + "startup": "exec mono Neos.exe -c .\/Config\/Config.json -l .\/Logs $(if {{ENABLE_MODLOADER}}; then echo \"-LoadAssembly .\/NeosModLoaderHeadless.dll\"; fi)", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"World running...\",\r\n \"userInteraction\": []\r\n}", + "logs": "{}", + "stop": "shutdown" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\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\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\necho -e \"steam user is not set.\\n\"\r\necho -e \"Using anonymous user.\\n\"\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nelse\r\necho -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 +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update 740250 -beta headless-client -betapassword ${BETA_PASSWORD} validate +quit\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## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n## create default config\r\nmkdir \/mnt\/server\/Config\r\nrm -rf \/mnt\/server\/Config\/Config.json\r\ncat >> \/mnt\/server\/Config\/Config.json << EOF\r\n{\r\n\"$schema\": \"https:\/\/raw.githubusercontent.com\/Neos-Metaverse\/JSONSchemas\/main\/schemas\/NeosHeadlessConfig.schema.json\",\r\n\"universeId\": null,\r\n\"tickRate\": 60.0,\r\n\"maxConcurrentAssetTransfers\": 4,\r\n\"usernameOverride\": null,\r\n\"loginCredential\": \"\",\r\n\"loginPassword\": \"\",\r\n\"startWorlds\": [\r\n{\r\n\"isEnabled\": true,\r\n\"saveAsOwner\": null,\r\n\"autoInviteUsernames\": null,\r\n\"parentSessionIds\": null,\r\n\"autoInviteMessage\": null,\r\n\"autoRecover\": true,\r\n\"idleRestartInterval\": -1.0,\r\n\"forcedRestartInterval\": -1.0,\r\n\"saveOnExit\": false,\r\n\"autosaveInterval\": -1.0,\r\n\"autoSleep\": true,\r\n\"sessionName\": null,\r\n\"customSessionId\": null,\r\n\"description\": null,\r\n\"maxUsers\": 32,\r\n\"accessLevel\": \"Anyone\",\r\n\"hideFromPublicListing\": null,\r\n\"tags\": null,\r\n\"mobileFriendly\": false,\r\n\"loadWorldURL\": null,\r\n\"loadWorldPresetName\": \"SpaceWorld\",\r\n\"overrideCorrespondingWorldId\": null,\r\n\"forcePort\": null,\r\n\"keepOriginalRoles\": false,\r\n\"defaultUserRoles\": null,\r\n\"roleCloudVariable\": null,\r\n\"allowUserCloudVariable\": null,\r\n\"denyUserCloudVariable\": null,\r\n\"requiredUserJoinCloudVariable\": null,\r\n\"requiredUserJoinCloudVariableDenyMessage\": null,\r\n\"awayKickMinutes\": -1.0\r\n}\r\n],\r\n\"dataFolder\": null,\r\n\"cacheFolder\": null,\r\n\"logsFolder\": null,\r\n\"allowedUrlHosts\": null,\r\n\"autoSpawnItems\": null,\r\n\"metamovieRoles\": null\r\n}\r\nEOF", + "container": "ghcr.io\/pterodactyl\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Steam Account User", + "description": "The username for your Steam account.", + "env_variable": "STEAM_USER", + "default_value": "null", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:128", + "field_type": "text" + }, + { + "name": "Steam Account Password", + "description": "The password for your Steam account.", + "env_variable": "STEAM_PASS", + "default_value": "null", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:128", + "field_type": "text" + }, + { + "name": "Steam Account Token\/Code", + "description": "The Steam Guard code or Login Token emailed to you.", + "env_variable": "STEAM_AUTH", + "default_value": "0000000", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Enable Mod Loader", + "description": "See: https:\/\/github.com\/neos-modding-group\/NeosModLoader for more information on Neos Mod Loader.", + "env_variable": "ENABLE_MODLOADER", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "Beta Password", + "description": "This is the \"Beta Password\" that is only acquired by going to the Neos Patreon, subscribing to the \"Gunter\" level, and linking your Patreon to Discord. Then you will be able to see the #headless-client channel and the password will be pinned in the command after -betapassword.", + "env_variable": "BETA_PASSWORD", + "default_value": "none", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:30", + "field_type": "text" + } + ] +} \ No newline at end of file From 6f406f45fdb8011eb05aea969535b0e0d80faf01 Mon Sep 17 00:00:00 2001 From: Elite Espeon Date: Sat, 3 Jun 2023 12:23:28 -0400 Subject: [PATCH 234/473] Remove exec from startup as its unneeded --- game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json b/game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json index 7f32ac03..2a3d1268 100644 --- a/game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json +++ b/game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-06-03T10:59:04-04:00", + "exported_at": "2023-06-03T12:21:23-04:00", "name": "NeosVR", "author": "espeon@espeon.dev", "description": "Neos VR is a metaverse engineered for the unknown! It\u2019s one of the most versatile and feature rich metaverses for virtual reality, designed so everybody can find something interesting or useful to do in a social setting.", @@ -13,7 +13,7 @@ "ghcr.io\/parkervcp\/yolks:mono_latest": "ghcr.io\/parkervcp\/yolks:mono_latest" }, "file_denylist": [], - "startup": "exec mono Neos.exe -c .\/Config\/Config.json -l .\/Logs $(if {{ENABLE_MODLOADER}}; then echo \"-LoadAssembly .\/NeosModLoaderHeadless.dll\"; fi)", + "startup": "mono Neos.exe -c .\/Config\/Config.json -l .\/Logs $(if {{ENABLE_MODLOADER}}; then echo \"-LoadAssembly .\/NeosModLoaderHeadless.dll\"; fi)", "config": { "files": "{}", "startup": "{\r\n \"done\": \"World running...\",\r\n \"userInteraction\": []\r\n}", From cf17d3eee2350e01da3038d974fca7680676bfc0 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 3 Jun 2023 18:49:20 +0200 Subject: [PATCH 235/473] add config to github --- game_eggs/steamcmd_servers/neosvr/Config.json | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 game_eggs/steamcmd_servers/neosvr/Config.json diff --git a/game_eggs/steamcmd_servers/neosvr/Config.json b/game_eggs/steamcmd_servers/neosvr/Config.json new file mode 100644 index 00000000..648a31ca --- /dev/null +++ b/game_eggs/steamcmd_servers/neosvr/Config.json @@ -0,0 +1,48 @@ +{ + "$schema": "https://raw.githubusercontent.com/Neos-Metaverse/JSONSchemas/main/schemas/NeosHeadlessConfig.schema.json", + "universeId": null, + "tickRate": 60.0, + "maxConcurrentAssetTransfers": 4, + "usernameOverride": null, + "loginCredential": "", + "loginPassword": "", + "startWorlds": [{ + "isEnabled": true, + "saveAsOwner": null, + "autoInviteUsernames": null, + "parentSessionIds": null, + "autoInviteMessage": null, + "autoRecover": true, + "idleRestartInterval": -1.0, + "forcedRestartInterval": -1.0, + "saveOnExit": false, + "autosaveInterval": -1.0, + "autoSleep": true, + "sessionName": null, + "customSessionId": null, + "description": null, + "maxUsers": 32, + "accessLevel": "Anyone", + "hideFromPublicListing": null, + "tags": null, + "mobileFriendly": false, + "loadWorldURL": null, + "loadWorldPresetName": "SpaceWorld", + "overrideCorrespondingWorldId": null, + "forcePort": null, + "keepOriginalRoles": false, + "defaultUserRoles": null, + "roleCloudVariable": null, + "allowUserCloudVariable": null, + "denyUserCloudVariable": null, + "requiredUserJoinCloudVariable": null, + "requiredUserJoinCloudVariableDenyMessage": null, + "awayKickMinutes": -1.0 + }], + "dataFolder": null, + "cacheFolder": null, + "logsFolder": null, + "allowedUrlHosts": null, + "autoSpawnItems": null, + "metamovieRoles": null +} \ No newline at end of file From 529350f68bd3e03105e1148ca4cbe22e6cdbe3e8 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 3 Jun 2023 18:52:41 +0200 Subject: [PATCH 236/473] standardize NeosVR --- .../steamcmd_servers/neosvr/egg-neos-v-r.json | 40 ++++++++++++++----- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json b/game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json index 2a3d1268..3891b69b 100644 --- a/game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json +++ b/game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json @@ -4,26 +4,26 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-06-03T12:21:23-04:00", + "exported_at": "2023-06-03T18:51:27+02:00", "name": "NeosVR", "author": "espeon@espeon.dev", "description": "Neos VR is a metaverse engineered for the unknown! It\u2019s one of the most versatile and feature rich metaverses for virtual reality, designed so everybody can find something interesting or useful to do in a social setting.", "features": null, "docker_images": { - "ghcr.io\/parkervcp\/yolks:mono_latest": "ghcr.io\/parkervcp\/yolks:mono_latest" + "Mono": "ghcr.io\/parkervcp\/yolks:mono_latest" }, "file_denylist": [], "startup": "mono Neos.exe -c .\/Config\/Config.json -l .\/Logs $(if {{ENABLE_MODLOADER}}; then echo \"-LoadAssembly .\/NeosModLoaderHeadless.dll\"; fi)", "config": { "files": "{}", - "startup": "{\r\n \"done\": \"World running...\",\r\n \"userInteraction\": []\r\n}", + "startup": "{\r\n \"done\": \"World running...\"\r\n}", "logs": "{}", "stop": "shutdown" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\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\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\necho -e \"steam user is not set.\\n\"\r\necho -e \"Using anonymous user.\\n\"\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nelse\r\necho -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 +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update 740250 -beta headless-client -betapassword ${BETA_PASSWORD} validate +quit\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## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n## create default config\r\nmkdir \/mnt\/server\/Config\r\nrm -rf \/mnt\/server\/Config\/Config.json\r\ncat >> \/mnt\/server\/Config\/Config.json << EOF\r\n{\r\n\"$schema\": \"https:\/\/raw.githubusercontent.com\/Neos-Metaverse\/JSONSchemas\/main\/schemas\/NeosHeadlessConfig.schema.json\",\r\n\"universeId\": null,\r\n\"tickRate\": 60.0,\r\n\"maxConcurrentAssetTransfers\": 4,\r\n\"usernameOverride\": null,\r\n\"loginCredential\": \"\",\r\n\"loginPassword\": \"\",\r\n\"startWorlds\": [\r\n{\r\n\"isEnabled\": true,\r\n\"saveAsOwner\": null,\r\n\"autoInviteUsernames\": null,\r\n\"parentSessionIds\": null,\r\n\"autoInviteMessage\": null,\r\n\"autoRecover\": true,\r\n\"idleRestartInterval\": -1.0,\r\n\"forcedRestartInterval\": -1.0,\r\n\"saveOnExit\": false,\r\n\"autosaveInterval\": -1.0,\r\n\"autoSleep\": true,\r\n\"sessionName\": null,\r\n\"customSessionId\": null,\r\n\"description\": null,\r\n\"maxUsers\": 32,\r\n\"accessLevel\": \"Anyone\",\r\n\"hideFromPublicListing\": null,\r\n\"tags\": null,\r\n\"mobileFriendly\": false,\r\n\"loadWorldURL\": null,\r\n\"loadWorldPresetName\": \"SpaceWorld\",\r\n\"overrideCorrespondingWorldId\": null,\r\n\"forcePort\": null,\r\n\"keepOriginalRoles\": false,\r\n\"defaultUserRoles\": null,\r\n\"roleCloudVariable\": null,\r\n\"allowUserCloudVariable\": null,\r\n\"denyUserCloudVariable\": null,\r\n\"requiredUserJoinCloudVariable\": null,\r\n\"requiredUserJoinCloudVariableDenyMessage\": null,\r\n\"awayKickMinutes\": -1.0\r\n}\r\n],\r\n\"dataFolder\": null,\r\n\"cacheFolder\": null,\r\n\"logsFolder\": null,\r\n\"allowedUrlHosts\": null,\r\n\"autoSpawnItems\": null,\r\n\"metamovieRoles\": null\r\n}\r\nEOF", - "container": "ghcr.io\/pterodactyl\/installers:debian", + "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 ## 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## create default config\r\nmkdir -p \/mnt\/server\/Config\r\nrm -rf \/mnt\/server\/Config\/Config.json\r\ncurl -sSL -o \/mnt\/server\/Config\/Config.json https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/neosvr\/Config.json\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } }, @@ -32,7 +32,7 @@ "name": "Steam Account User", "description": "The username for your Steam account.", "env_variable": "STEAM_USER", - "default_value": "null", + "default_value": "", "user_viewable": true, "user_editable": true, "rules": "required|string|max:128", @@ -42,7 +42,7 @@ "name": "Steam Account Password", "description": "The password for your Steam account.", "env_variable": "STEAM_PASS", - "default_value": "null", + "default_value": "", "user_viewable": true, "user_editable": true, "rules": "required|string|max:128", @@ -52,7 +52,7 @@ "name": "Steam Account Token\/Code", "description": "The Steam Guard code or Login Token emailed to you.", "env_variable": "STEAM_AUTH", - "default_value": "0000000", + "default_value": "", "user_viewable": true, "user_editable": true, "rules": "nullable|string", @@ -71,12 +71,32 @@ { "name": "Beta Password", "description": "This is the \"Beta Password\" that is only acquired by going to the Neos Patreon, subscribing to the \"Gunter\" level, and linking your Patreon to Discord. Then you will be able to see the #headless-client channel and the password will be pinned in the command after -betapassword.", - "env_variable": "BETA_PASSWORD", - "default_value": "none", + "env_variable": "SRCDS_BETAPASS", + "default_value": "", "user_viewable": true, "user_editable": true, "rules": "required|string|max:30", "field_type": "text" + }, + { + "name": "Beta branch name", + "description": "", + "env_variable": "SRCDS_BETAID", + "default_value": "headless-client", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|", + "field_type": "text" + }, + { + "name": "Auto update", + "description": "Auto update the server on startup", + "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 f8ce51ab5b6ae8fe78a4b2c6fea3c0b89149d086 Mon Sep 17 00:00:00 2001 From: Elite Espeon Date: Sat, 3 Jun 2023 13:32:42 -0400 Subject: [PATCH 237/473] Update wording about Steam account --- game_eggs/steamcmd_servers/neosvr/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/neosvr/README.md b/game_eggs/steamcmd_servers/neosvr/README.md index 0e0a49dd..83007b28 100644 --- a/game_eggs/steamcmd_servers/neosvr/README.md +++ b/game_eggs/steamcmd_servers/neosvr/README.md @@ -4,7 +4,7 @@ Developing Neos, short for neo spatium - new space, a highly collaborative virtu # Notice -To use this egg you will need a beta code and a steam account. The account will also need to have neos vr in its library. You can do this by running app_license_request 740250 in steamcmd if you have never installed neos on this account. +To use this egg you will need a beta code and a Steam account. Currently the beta code can only acquired by going to the Neos Patreon, subscribing to the "Gunter" level, and linking your Patreon to Discord. Then you will be able to see the #headless-client channel and the password will be pinned in the command after -betapassword. The account will also need to have Neos VR in its library. You can do this by running `app_license_request 740250` in steamcmd if you have never installed Neos VR on this Steam account. For more information related to configuration go here: https://wiki.neos.com/Headless_Client/Server This game does not require any port forwarding, but instead uses UDP NAT hole punching (and/or relay) on a random port. You can force a certain port in the config for direct connections, but most communcation is done via NAT hole punch using LiteNetLib (LNL). \ No newline at end of file From db8b2180d451879fb671ba348e1abd9567887873 Mon Sep 17 00:00:00 2001 From: Elite Espeon Date: Sat, 3 Jun 2023 13:34:08 -0400 Subject: [PATCH 238/473] Added Steam App ID variable --- game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json b/game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json index 3891b69b..a9c11cb2 100644 --- a/game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json +++ b/game_eggs/steamcmd_servers/neosvr/egg-neos-v-r.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-06-03T18:51:27+02:00", + "exported_at": "2023-06-03T13:33:19-04:00", "name": "NeosVR", "author": "espeon@espeon.dev", "description": "Neos VR is a metaverse engineered for the unknown! It\u2019s one of the most versatile and feature rich metaverses for virtual reality, designed so everybody can find something interesting or useful to do in a social setting.", @@ -97,6 +97,16 @@ "user_editable": true, "rules": "required|boolean", "field_type": "text" + }, + { + "name": "Steam App ID", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "740250", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "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 239/473] 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 240/473] [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 241/473] 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 242/473] 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 243/473] 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 244/473] 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 245/473] 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 246/473] 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 247/473] 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 248/473] 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 249/473] 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 250/473] 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 251/473] 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 252/473] 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 253/473] 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 254/473] 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 255/473] 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 256/473] 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 257/473] 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 258/473] 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 259/473] 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 260/473] 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 261/473] 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 262/473] 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 263/473] 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 264/473] 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 265/473] 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 266/473] 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 267/473] 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 268/473] 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 4d0946f9cf5bfe1bc59e51928095be567e061d78 Mon Sep 17 00:00:00 2001 From: Daniel Barton Date: Thu, 6 Jul 2023 09:53:09 +0800 Subject: [PATCH 269/473] Fix RedM download link parser --- game_eggs/rdr/redm/egg-red-m.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/rdr/redm/egg-red-m.json b/game_eggs/rdr/redm/egg-red-m.json index fca67286..9d7a6f78 100644 --- a/game_eggs/rdr/redm/egg-red-m.json +++ b/game_eggs/rdr/redm/egg-red-m.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-07-19T11:52:55-04:00", + "exported_at": "2023-07-06T01:51:39+00:00", "name": "RedM", "author": "parker@parkervcp.com", "description": "A new RedM egg for the latest builds due to recent changes in RedM", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# CFx Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update -y\r\napt install -y tar xz-utils file jq\r\n\r\nmkdir -p \/mnt\/server\/resources \/mnt\/server\/logs\/\r\n\r\ncd \/mnt\/server\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/\r\n\r\nRELEASE_PAGE=$(curl -sSL https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/)\r\nCHANGELOGS_PAGE=$(curl -sSL https:\/\/changelogs-live.fivem.net\/api\/changelog\/versions\/linux\/server)\r\n\r\nif [[ \"${CFX_VERSION}\" == \"recommended\" ]] || [[ -z ${CFX_VERSION} ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\nelif [[ \"${CFX_VERSION}\" == \"latest\" ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.latest_download')\r\nelse\r\n VERSION_LINK=$(echo -e \"${RELEASE_PAGE}\" | grep -Eo '\".*\/*.tar.xz\"' | grep -Eo '\".*\"' | sed 's\/\\\"\/\/g' | sed 's\/\\.\\\/\/\/1' | grep ${CFX_VERSION})\r\n if [[ \"${VERSION_LINK}\" == \"\" ]]; then\r\n echo -e \"defaulting to recommedned as the version requested was invalid.\"\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\n else\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${VERSION_LINK})\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then\r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\necho -e \"Running curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\necho \"Extracting fivem files\"\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2\r\nfi\r\n\r\nrm -rf ${DOWNLOAD_LINK##*\/} run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"server config file exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/gta\/fivem\/server.cfg >>server.cfg\r\nfi\r\n\r\necho \"install complete\"", + "script": "#!\/bin\/ash\r\n# CFx Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update -y\r\napt install -y tar xz-utils file jq\r\n\r\nmkdir -p \/mnt\/server\/resources \/mnt\/server\/logs\/\r\n\r\ncd \/mnt\/server\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/\r\n\r\nRELEASE_PAGE=$(curl -sSL https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/)\r\nCHANGELOGS_PAGE=$(curl -sSL https:\/\/changelogs-live.fivem.net\/api\/changelog\/versions\/linux\/server)\r\n\r\nif [[ \"${CFX_VERSION}\" == \"recommended\" ]] || [[ -z ${CFX_VERSION} ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\nelif [[ \"${CFX_VERSION}\" == \"latest\" ]]; then\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.latest_download')\r\nelse\r\n VERSION_LINK=$(echo -e \"${RELEASE_PAGE}\" | grep -Eo '\".*\/*.tar.xz\"' | grep -Po '(?<=href=\")[^\"]*' | sed 's\/\\\"\/\/g' | sed 's\/\\.\\\/\/\/1' | grep ${CFX_VERSION})\r\n if [[ \"${VERSION_LINK}\" == \"\" ]]; then\r\n echo -e \"defaulting to recommedned as the version requested was invalid.\"\r\n DOWNLOAD_LINK=$(echo $CHANGELOGS_PAGE | jq -r '.recommended_download')\r\n else\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${VERSION_LINK})\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then\r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\necho -e \"Running curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\necho \"Extracting fivem files\"\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2\r\nfi\r\n\r\nrm -rf ${DOWNLOAD_LINK##*\/} run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"server config file exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/gta\/fivem\/server.cfg >>server.cfg\r\nfi\r\n\r\necho \"install complete\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -89,4 +89,4 @@ "field_type": "text" } ] -} +} \ 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 270/473] 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 271/473] 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 272/473] 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 273/473] 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 274/473] 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 275/473] 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 276/473] 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 277/473] 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 278/473] 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 279/473] 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 280/473] 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 281/473] 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 From f081890e264b5e70a83112c68d9ba2b5c470d936 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Sat, 22 Jul 2023 09:05:43 +0200 Subject: [PATCH 282/473] updated Risk of Rain 2 --- .../steamcmd_servers/risk_of_rain_2/README.md | 12 +- .../risk_of_rain_2/egg-risk-of-rain2.json | 118 +++++++++++++++--- 2 files changed, 110 insertions(+), 20 deletions(-) diff --git a/game_eggs/steamcmd_servers/risk_of_rain_2/README.md b/game_eggs/steamcmd_servers/risk_of_rain_2/README.md index f14ec862..a4a7c8a6 100644 --- a/game_eggs/steamcmd_servers/risk_of_rain_2/README.md +++ b/game_eggs/steamcmd_servers/risk_of_rain_2/README.md @@ -2,6 +2,13 @@ Escape a chaotic alien planet by fighting through hordes of frenzied monsters – with your friends, or on your own. +### Author & Contributers +| Name | Github Profile | Buy me a Coffee | +| ------------- |-------------|-------------| +| alex.chang-lam@protonmail.com| | | +| gOOvER | https://github.com/gOOvER | [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/B0B351D0Q) | + + ## Minimum Specifications - At least 1GB RAM @@ -15,7 +22,4 @@ The Risk of Rain 2 server requires a single port for access. Steam Query ports a |-------|---------| | Game | 27015 | | Query | 27016 | - -## Installation Notes - -The server will get stuck on the very fist start. Kill and restart it. +| Steam | 27017 (must be queryport +1) | diff --git a/game_eggs/steamcmd_servers/risk_of_rain_2/egg-risk-of-rain2.json b/game_eggs/steamcmd_servers/risk_of_rain_2/egg-risk-of-rain2.json index cc578645..ee160f5d 100644 --- a/game_eggs/steamcmd_servers/risk_of_rain_2/egg-risk-of-rain2.json +++ b/game_eggs/steamcmd_servers/risk_of_rain_2/egg-risk-of-rain2.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-06-02T12:27:48+03:00", + "exported_at": "2023-07-22T09:00:30+02:00", "name": "Risk of Rain 2", "author": "alex.chang-lam@protonmail.com", "description": "Risk of Rain 2 dedicated server.", "features": [ "steam_disk_space" ], - "images": [ - "quay.io\/parkervcp\/pterodactyl-images:debian_wine-5" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest" + }, "file_denylist": [], "startup": "xvfb-run wine .\/\"Risk of Rain 2.exe\"", "config": { - "files": "{\r\n \".\/Risk of Rain 2_Data\/Config\/server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"sv_password\": \"sv_password \\\"{{server.build.env.PASSWORD}}\\\";\",\r\n \"steam_server_heartbeat_enabled\": \"steam_server_heartbeat_enabled {{server.build.env.ADVERTISE}};\",\r\n \"sv_hostname\": \"sv_hostname \\\"{{server.build.env.HOSTNAME}}\\\";\",\r\n \"steam_server_query_port\": \"steam_server_query_port {{server.build.env.QUERY}};\",\r\n \"steam_server_steam_port\": \"steam_server_steam_port {{server.build.env.STEAM}};\",\r\n \"sv_maxplayers\": \"sv_maxplayers {{server.build.env.PLAYERS}};\",\r\n \"exec server;\": \"\",\r\n \"host\": \"\",\r\n \"remove_all_local_users;\": \"\"\r\n }\r\n }\r\n}", + "files": "{\r\n \".\/Risk of Rain 2_Data\/Config\/server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"sv_password\": \"sv_password \\\"{{server.build.env.PASSWORD}}\\\";\",\r\n \"steam_server_heartbeat_enabled\": \"steam_server_heartbeat_enabled {{server.build.env.ADVERTISE}};\",\r\n \"sv_hostname\": \"sv_hostname \\\"{{server.build.env.HOSTNAME}}\\\";\",\r\n \"sv_port\": \"sv_port {{server.build.default.port}};\",\r\n \"steam_server_query_port\": \"steam_server_query_port {{server.build.env.QUERY}};\",\r\n \"steam_server_steam_port\": \"steam_server_steam_port {{server.build.env.STEAM}};\",\r\n \"sv_maxplayers\": \"sv_maxplayers {{server.build.env.PLAYERS}};\",\r\n \"exec server;\": \"\",\r\n \"host\": \"\",\r\n \"remove_all_local_users;\": \"\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Press Enter to chat.\"\r\n}", "logs": "{}", - "stop": "^V" + "stop": "^^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Risk of Rain 2 Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napt update\r\napt -y install curl unzip lib32gcc1 ca-certificates xvfb\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\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\n\r\nexport WINETRICKS_RUN=mono\r\nexport HOME=\/mnt\/server\r\nexport AUTO_UPDATE=1\r\nexport SRCDS_APPID=1180760\r\n\r\ncd \/mnt\/server\/steam\r\nchown -R root:root \/mnt\r\n\r\n.\/steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir \/mnt\/server +app_update 1180760 validate +quit\r\n\r\n## setup 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\n\r\n## setup 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v \/mnt\/server\/steam\/linux64\/steamclient.so \/mnt\/server\/.steam\/sdk64\/steamclient.so\r\n\r\n#create custom server.cfg\r\ncp \"\/mnt\/server\/Risk of Rain 2_Data\/Config\/server_startup.cfg\" \"\/mnt\/server\/Risk of Rain 2_Data\/Config\/server.cfg\"", - "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#\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##steam serverlist fix\r\nmkdir -p \/mnt\/server\/steamworks_sdk\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server\/steamworks_sdk +@sSteamCmdForcePlatformType windows +login anonymous +app_update 1007 +quit\r\ncp \/mnt\/server\/steamworks_sdk\/*64.dll \/mnt\/server\/\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#create custom server.cfg\r\ncp \"\/mnt\/server\/Risk of Rain 2_Data\/Config\/server_startup.cfg\" \"\/mnt\/server\/Risk of Rain 2_Data\/Config\/server.cfg\"\r\ntouch \"\/mnt\/server\/Risk of Rain 2_Data\/Config\/server_pregame.cfg\"\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": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:40" + "rules": "nullable|string|max:40", + "field_type": "text" }, { "name": "Server Hostname", @@ -46,7 +47,8 @@ "default_value": "\"Risk of Rain 2 Dedicated Server\"", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:40" + "rules": "required|string|max:40", + "field_type": "text" }, { "name": "Max Players", @@ -55,7 +57,8 @@ "default_value": "4", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Advertise Server", @@ -64,7 +67,8 @@ "default_value": "1", "user_viewable": true, "user_editable": true, - "rules": "required|boolean" + "rules": "required|boolean", + "field_type": "text" }, { "name": "Query Port", @@ -73,7 +77,8 @@ "default_value": "27016", "user_viewable": true, "user_editable": false, - "rules": "required|numeric" + "rules": "required|numeric", + "field_type": "text" }, { "name": "Steam Port", @@ -82,7 +87,88 @@ "default_value": "27017", "user_viewable": false, "user_editable": false, - "rules": "required|numeric" + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Auto Update", + "description": "", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "boolean", + "field_type": "text" + }, + { + "name": "SRCDS_APPID", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "1180760", + "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": "XVFB", + "description": "", + "env_variable": "XVFB", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "boolean", + "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" + }, + { + "name": "WINETRICKS_RUN", + "description": "", + "env_variable": "WINETRICKS_RUN", + "default_value": "mono", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" } ] -} +} \ No newline at end of file From a8fc5c133e64e50561f6f96fcfeaf4703f1c9cf7 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Sat, 22 Jul 2023 09:12:51 +0200 Subject: [PATCH 283/473] add author gh profile --- game_eggs/steamcmd_servers/risk_of_rain_2/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/risk_of_rain_2/README.md b/game_eggs/steamcmd_servers/risk_of_rain_2/README.md index a4a7c8a6..6d106d5b 100644 --- a/game_eggs/steamcmd_servers/risk_of_rain_2/README.md +++ b/game_eggs/steamcmd_servers/risk_of_rain_2/README.md @@ -5,7 +5,7 @@ Escape a chaotic alien planet by fighting through hordes of frenzied monsters ### Author & Contributers | Name | Github Profile | Buy me a Coffee | | ------------- |-------------|-------------| -| alex.chang-lam@protonmail.com| | | +| acl1704 | https://github.com/acl1704 | | | gOOvER | https://github.com/gOOvER | [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/B0B351D0Q) | From 9c77a46c708ba1fdfeb49ca47f5bf4ad814d4296 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 22 Jul 2023 10:57:50 +0200 Subject: [PATCH 284/473] Update Arma Reforger --- .../arma/arma_reforger/egg-arma-reforger.json | 62 ++++++++++++------- 1 file changed, 39 insertions(+), 23 deletions(-) diff --git a/game_eggs/steamcmd_servers/arma/arma_reforger/egg-arma-reforger.json b/game_eggs/steamcmd_servers/arma/arma_reforger/egg-arma-reforger.json index 569471da..f5e97fa6 100644 --- a/game_eggs/steamcmd_servers/arma/arma_reforger/egg-arma-reforger.json +++ b/game_eggs/steamcmd_servers/arma/arma_reforger/egg-arma-reforger.json @@ -1,31 +1,32 @@ { - "_comment": "Pterodactyl Arma Reforger Egg ~ Red-Thirten ~ 2022-05-20", + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1", + "version": "PTDL_v2", "update_url": null }, + "exported_at": "2023-07-22T10:56:26+02:00", "name": "Arma Reforger", "author": "rehlmgaming@gmail.com", "description": "Experience authentic Cold War combat and join friends in the struggle for a sprawling, 51 km\u00b2 mid-Atlantic island \u2014 or take on the role of Game Master and create your very own scenarios for others to enjoy.", "features": [ "steam_disk_space" ], - "images": [ - "ghcr.io\/parkervcp\/games:source" - ], + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" + }, "file_denylist": [], "startup": ".\/ArmaReforgerServer -gproj .\/addons\/data\/ArmaReforger.gproj -config .\/config.json -profile .\/profile -backendlog -nothrow -listScenarios -logStats $(({{LOG_INTERVAL}}*1000)) -maxFPS {{MAX_FPS}}", "config": { - "files": "{\r\n \"config.json\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \" \\\"region\\\"\": \" \\\"region\\\": \\\"{{server.build.env.REGION}}\\\",\",\r\n \" \\\"gameHostBindAddress\\\"\": \" \\\"gameHostBindAddress\\\": \\\"0.0.0.0\\\",\",\r\n \" \\\"gameHostBindPort\\\"\": \" \\\"gameHostBindPort\\\": {{server.build.default.port}},\",\r\n \" \\\"gameHostRegisterBindAddress\\\"\": \" \\\"gameHostRegisterBindAddress\\\": \\\"{{server.build.default.ip}}\\\",\",\r\n \" \\\"gameHostRegisterPort\\\"\": \" \\\"gameHostRegisterPort\\\": {{server.build.default.port}},\",\r\n \" \\\"adminPassword\\\"\": \" \\\"adminPassword\\\": \\\"{{server.build.env.ADMIN_PASS}}\\\",\",\r\n \" \\\"name\\\"\": \" \\\"name\\\": \\\"{{server.build.env.SERVER_NAME}}\\\",\",\r\n \" \\\"password\\\"\": \" \\\"password\\\": \\\"{{server.build.env.SERVER_PASS}}\\\",\",\r\n \" \\\"scenarioId\\\"\": \" \\\"scenarioId\\\": \\\"{{server.build.env.SCENARIO_ID}}\\\",\",\r\n \" \\\"playerCountLimit\\\"\": \" \\\"playerCountLimit\\\": {{server.build.env.MAX_PLAYERS}},\",\r\n\t\t\t\" \\\"autoJoinable\\\"\": \" \\\"autoJoinable\\\": {{server.build.env.AUTO_JOINABLE}},\",\r\n\t\t\t\" \\\"visible\\\"\": \" \\\"visible\\\": {{server.build.env.VISIBLE}},\",\r\n\t\t\t\" \\\"disableThirdPerson\\\"\": \" \\\"disableThirdPerson\\\": {{server.build.env.DISABLE_THIRD}},\",\r\n\t\t\t\" \\\"battlEye\\\"\": \" \\\"battlEye\\\": {{server.build.env.BATTLEYE}},\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"bindAddress\": \"0.0.0.0\",\r\n \"bindPort\": \"{{server.build.default.port}}\",\r\n \"publicAddress\": \"{{server.build.default.ip}}\",\r\n \"publicPort\": \"{{server.build.default.port}}\",\r\n \"game.name\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"game.password\": \"{{server.build.env.SERVER_PASS}}\",\r\n \"game.passwordAdmin\": \"{{server.build.env.ADMIN_PASS}}\",\r\n \"game.scenarioId\": \"{{server.build.env.SCENARIO_ID}}\",\r\n \"game.maxPlayers\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"game.gameProperties.fastValidation\": true\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Starting RPL server\"\r\n}", "logs": "{}", "stop": "^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl Arma Reforger Egg - egg-arma-reforger.json\r\n## Author: David Wolfe (Red-Thirten)\r\n## Date: 2022\/05\/20\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n# Install packages. Default packages below are skipped if using image noted above, thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\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 +app_update ${SRCDS_APPID} 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## Arma Reforger setup\r\n# Check for successful installation\r\nif [[ ! -f $HOME\/ArmaReforgerServer ]]; then\r\n echo -e \"\\n\\nSteamCMD failed to install the Arma Reforger Dedicated Server!\"\r\n echo -e \"\\tTry reinstalling the server again.\\n\"\r\n exit 1\r\nfi\r\n\r\nmkdir -p $HOME\/profile\r\n\r\necho -e 'Creating default \"config.json\" configuration file...'\r\ncat > $HOME\/config.json << EOF\r\n{\r\n\t\"dedicatedServerId\": \"\",\r\n\t\"region\": \"${REGION}\",\r\n\t\"gameHostBindAddress\": \"0.0.0.0\",\r\n\t\"gameHostBindPort\": ${SERVER_PORT},\r\n\t\"gameHostRegisterBindAddress\": \"${SERVER_IP}\",\r\n\t\"gameHostRegisterPort\": ${SERVER_PORT},\r\n\t\"adminPassword\": \"${ADMIN_PASS}\",\r\n\t\"game\": {\r\n\t\t\"name\": \"${SERVER_NAME}\",\r\n\t\t\"password\": \"${SERVER_PASS}\",\r\n\t\t\"scenarioId\": \"${SCENARIO_ID}\",\r\n\t\t\"playerCountLimit\": ${MAX_PLAYERS},\r\n\t\t\"autoJoinable\": ${AUTO_JOINABLE},\r\n\t\t\"visible\": ${VISIBLE},\r\n\t\t\"gameProperties\": {\r\n\t\t\t\"serverMaxViewDistance\": 2500,\r\n\t\t\t\"serverMinGrassDistance\": 50,\r\n\t\t\t\"networkViewDistance\": 1000,\r\n\t\t\t\"disableThirdPerson\": ${DISABLE_THIRD},\r\n\t\t\t\"fastValidation\": true,\r\n\t\t\t\"battlEye\": ${BATTLEYE},\r\n\t\t\t\"missionHeader\": {}\r\n\t\t},\r\n\t\t\"mods\": []\r\n\t}\r\n}\r\nEOF\r\n\r\necho -e \"\\nArma Reforger Dedicated Server successfully installed!\\n\"", + "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 ## 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\r\n## Arma Reforger setup\r\n# Check for successful installation\r\nif [[ ! -f $HOME\/ArmaReforgerServer ]]; then\r\n echo -e \"\\n\\nSteamCMD failed to install the Arma Reforger Dedicated Server!\"\r\n echo -e \"\\tTry reinstalling the server again.\\n\"\r\n exit 1\r\nfi\r\n\r\nmkdir -p $HOME\/profile\r\n\r\necho -e 'Creating default \"config.json\" configuration file...'\r\ncat > $HOME\/config.json << EOF\r\n{\r\n\t\"bindAddress\": \"0.0.0.0\",\r\n\t\"bindPort\": ${SERVER_PORT},\r\n\t\"publicAddress\": \"${SERVER_IP}\",\r\n\t\"publicPort\": ${SERVER_PORT},\r\n\t\"game\": {\r\n\t\t\"name\": \"${SERVER_NAME}\",\r\n\t\t\"password\": \"${SERVER_PASS}\",\r\n\t\t\"passwordAdmin\": \"${ADMIN_PASS}\",\r\n\t\t\"scenarioId\": \"${SCENARIO_ID}\",\r\n\t\t\"maxPlayers\": ${MAX_PLAYERS},\r\n\t\t\"visible\": true,\r\n\t\t\"gameProperties\": {\r\n\t\t\t\"serverMaxViewDistance\": 500,\r\n\t\t\t\"serverMinGrassDistance\": 50,\r\n\t\t\t\"networkViewDistance\": 500,\r\n\t\t\t\"disableThirdPerson\": ${DISABLE_THIRD},\r\n\t\t\t\"fastValidation\": true,\r\n\t\t\t\"battlEye\": ${BATTLEYE},\r\n\t\t\t\"VONDisableUI\": false,\r\n\t\t\t\"VONDisableDirectSpeechUI\": false\r\n\t\t},\r\n\t\t\"mods\": []\r\n\t}\r\n}\r\nEOF\r\n\r\necho -e \"\\nArma Reforger Dedicated Server successfully installed!\\n\"", "container": "ghcr.io\/parkervcp\/installers:debian", - "entrypoint": "\/bin\/bash" + "entrypoint": "bash" } }, "variables": [ @@ -36,7 +37,8 @@ "default_value": "1", "user_viewable": true, "user_editable": true, - "rules": "boolean" + "rules": "boolean", + "field_type": "text" }, { "name": "Server Region", @@ -45,7 +47,8 @@ "default_value": "US", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:AD,AE,AF,AG,AI,AL,AM,AO,AQ,AR,AS,AT,AU,AW,AX,AZ,BA,BB,BD,BE,BF,BG,BH,BI,BJ,BL,BM,BN,BO,BQ,BR,BS,BT,BV,BW,BY,BZ,CA,CC,CD,CF,CG,CH,CI,CK,CL,CM,CN,CO,CR,CU,CV,CW,CX,CY,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,EH,ER,ES,ET,EU,FI,FJ,FK,FM,FO,FR,GA,GB,GD,GE,GF,GG,GH,GI,GL,GM,GN,GP,GQ,GR,GS,GT,GU,GW,GY,HK,HM,HN,HR,HT,HU,ID,IE,IL,IM,IN,IO,IQ,IR,IS,IT,JE,JM,JO,JP,KE,KG,KH,KI,KM,KN,KP,KR,KW,KY,KZ,LA,LB,LC,LI,LK,LR,LS,LT,LU,LV,LY,MA,MC,MD,ME,MF,MG,MH,MK,ML,MM,MN,MO,MP,MQ,MR,MS,MT,MU,MV,MW,MX,MY,MZ,NA,NC,NE,NF,NG,NI,NL,NO,NP,NR,NU,NZ,OM,PA,PE,PF,PG,PH,PK,PL,PM,PN,PR,PS,PT,PW,PY,QA,RE,RO,RS,RU,RW,SA,SB,SC,SD,SE,SG,SH,SI,SJ,SK,SL,SM,SN,SO,SR,SS,ST,SV,SX,SY,SZ,TC,TD,TF,TG,TH,TJ,TK,TL,TM,TN,TO,TR,TT,TV,TW,TZ,UA,UG,UM,US,UY,UZ,VA,VC,VE,VG,VI,VN,VU,WF,WS,YE,YT,ZA,ZM,ZW" + "rules": "required|string|in:AD,AE,AF,AG,AI,AL,AM,AO,AQ,AR,AS,AT,AU,AW,AX,AZ,BA,BB,BD,BE,BF,BG,BH,BI,BJ,BL,BM,BN,BO,BQ,BR,BS,BT,BV,BW,BY,BZ,CA,CC,CD,CF,CG,CH,CI,CK,CL,CM,CN,CO,CR,CU,CV,CW,CX,CY,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,EH,ER,ES,ET,EU,FI,FJ,FK,FM,FO,FR,GA,GB,GD,GE,GF,GG,GH,GI,GL,GM,GN,GP,GQ,GR,GS,GT,GU,GW,GY,HK,HM,HN,HR,HT,HU,ID,IE,IL,IM,IN,IO,IQ,IR,IS,IT,JE,JM,JO,JP,KE,KG,KH,KI,KM,KN,KP,KR,KW,KY,KZ,LA,LB,LC,LI,LK,LR,LS,LT,LU,LV,LY,MA,MC,MD,ME,MF,MG,MH,MK,ML,MM,MN,MO,MP,MQ,MR,MS,MT,MU,MV,MW,MX,MY,MZ,NA,NC,NE,NF,NG,NI,NL,NO,NP,NR,NU,NZ,OM,PA,PE,PF,PG,PH,PK,PL,PM,PN,PR,PS,PT,PW,PY,QA,RE,RO,RS,RU,RW,SA,SB,SC,SD,SE,SG,SH,SI,SJ,SK,SL,SM,SN,SO,SR,SS,ST,SV,SX,SY,SZ,TC,TD,TF,TG,TH,TJ,TK,TL,TM,TN,TO,TR,TT,TV,TW,TZ,UA,UG,UM,US,UY,UZ,VA,VC,VE,VG,VI,VN,VU,WF,WS,YE,YT,ZA,ZM,ZW", + "field_type": "text" }, { "name": "Server Name", @@ -54,7 +57,8 @@ "default_value": "Arma Reforger Server", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:255" + "rules": "required|string|max:255", + "field_type": "text" }, { "name": "Max Players", @@ -63,7 +67,8 @@ "default_value": "32", "user_viewable": true, "user_editable": true, - "rules": "required|integer|between:1,256" + "rules": "required|integer|between:1,256", + "field_type": "text" }, { "name": "Server Password", @@ -72,7 +77,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:32" + "rules": "nullable|string|max:32", + "field_type": "text" }, { "name": "Admin Password", @@ -81,7 +87,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:32" + "rules": "nullable|string|max:32", + "field_type": "text" }, { "name": "Scenario ID", @@ -90,7 +97,8 @@ "default_value": "{ECC61978EDCC2B5A}Missions\/23_Campaign.conf", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { "name": "Auto Joinable", @@ -99,7 +107,8 @@ "default_value": "true", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:true,false" + "rules": "required|string|in:true,false", + "field_type": "text" }, { "name": "Visible in Server Browser", @@ -108,7 +117,8 @@ "default_value": "true", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:true,false" + "rules": "required|string|in:true,false", + "field_type": "text" }, { "name": "Enable BattlEye", @@ -117,7 +127,8 @@ "default_value": "true", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:true,false" + "rules": "required|string|in:true,false", + "field_type": "text" }, { "name": "Disable Third Person", @@ -126,7 +137,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" }, { "name": "[Advanced] Max FPS", @@ -135,7 +147,8 @@ "default_value": "120", "user_viewable": true, "user_editable": true, - "rules": "nullable|integer|gt:0" + "rules": "nullable|integer|gt:0", + "field_type": "text" }, { "name": "[Advanced] Log FPS Interval", @@ -144,7 +157,8 @@ "default_value": "0", "user_viewable": true, "user_editable": true, - "rules": "required|integer|min:0" + "rules": "required|integer|min:0", + "field_type": "text" }, { "name": "[Repair] Validate Server Files", @@ -153,7 +167,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string" + "rules": "nullable|string", + "field_type": "text" }, { "name": "[Advanced] Arma Reforger Dedicated Server App ID", @@ -162,7 +177,8 @@ "default_value": "1874900", "user_viewable": false, "user_editable": false, - "rules": "required|integer" + "rules": "required|integer", + "field_type": "text" } ] } \ No newline at end of file From c38cb0de4b410d0725fe6e61af0505b624b81b8f Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 22 Jul 2023 11:24:22 +0200 Subject: [PATCH 285/473] make AUTO_UPDATE user editable --- .../steamcmd_servers/risk_of_rain_2/egg-risk-of-rain2.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/risk_of_rain_2/egg-risk-of-rain2.json b/game_eggs/steamcmd_servers/risk_of_rain_2/egg-risk-of-rain2.json index ee160f5d..24bddb2b 100644 --- a/game_eggs/steamcmd_servers/risk_of_rain_2/egg-risk-of-rain2.json +++ b/game_eggs/steamcmd_servers/risk_of_rain_2/egg-risk-of-rain2.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-07-22T09:00:30+02:00", + "exported_at": "2023-07-22T11:23:29+02:00", "name": "Risk of Rain 2", "author": "alex.chang-lam@protonmail.com", "description": "Risk of Rain 2 dedicated server.", @@ -95,8 +95,8 @@ "description": "", "env_variable": "AUTO_UPDATE", "default_value": "1", - "user_viewable": false, - "user_editable": false, + "user_viewable": true, + "user_editable": true, "rules": "boolean", "field_type": "text" }, From 10f7c8abdd53d2fcf0dc560968e7e73f4cc782fa Mon Sep 17 00:00:00 2001 From: "Z. Feuerborn" Date: Sat, 22 Jul 2023 07:41:49 -0600 Subject: [PATCH 286/473] Space Engineers Vanilla: Add ExperimentalMode and InGameScript options. (#2353) * Added ExperimentalMode and InGameScript options. --------- Co-authored-by: Zac Feuerborn --- .gitignore | 3 +- .../default/egg-space-engineers.json | 64 +++++++++++++++---- 2 files changed, 54 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 74893bfd..5cc91bae 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ *.DS_Store node_modules/ .vuepress/* -.vscode \ No newline at end of file +.vscode +.idea \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/space_engineers/default/egg-space-engineers.json b/game_eggs/steamcmd_servers/space_engineers/default/egg-space-engineers.json index 6257b68d..05aaccf1 100644 --- a/game_eggs/steamcmd_servers/space_engineers/default/egg-space-engineers.json +++ b/game_eggs/steamcmd_servers/space_engineers/default/egg-space-engineers.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-11-26T17:47:55+01:00", + "exported_at": "2023-07-22T12:57:51+02:00", "name": "Space Engineers", "author": "info@goover.de", "description": "Space Engineers is a voxel-based sandbox game set in space and on planets.", @@ -12,15 +12,15 @@ "steam_disk_space" ], "docker_images": { - "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + "ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest" }, "file_denylist": [], - "startup": "winetricks sound=disabled; export WINEARCH=\"win64\"; export WINEDLLOVERRIDES=\"mscoree=n,b;mshtml=n,b\"; wine \/home\/container\/DedicatedServer64\/SpaceEngineersDedicated.exe -path Z:\\\\home\\\\container\\\\config -noconsole -ignorelastsession", + "startup": "export WINEDLLOVERRIDES=\"mscoree=n,b;mshtml=n,b\"; wine \/home\/container\/DedicatedServer64\/SpaceEngineersDedicated.exe -path Z:\\\\home\\\\container\\\\config -noconsole -ignorelastsession", "config": { - "files": "{\r\n \"config\/SpaceEngineers-Dedicated.cfg\": {\r\n \"parser\": \"xml\",\r\n \"find\": {\r\n \"MyConfigDedicated.SessionSettings.GameMode\": \"{{server.build.env.SERVER_MODE}}\",\r\n \"MyConfigDedicated.SessionSettings.MaxPlayers\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"MyConfigDedicated.SessionSettings.AutoSaveInMinutes\": \"{{server.build.env.SAVE_INTERVAL}}\",\r\n \"MyConfigDedicated.SessionSettings.EnableSaving\": \"{{server.build.env.SAVE_ENABLED}}\",\r\n \"MyConfigDedicated.LoadWorld\": \"Z:\\\\home\\\\container\\\\config\\\\Saves\\\\{{server.build.env.WORLD_NAME}}\\\\Sandbox.sbc\",\r\n \"MyConfigDedicated.ServerPort\": \"{{server.build.default.port}}\",\r\n \"MyConfigDedicated.SteamPort\": \"{{server.build.env.STEAM_PORT}}\",\r\n \"MyConfigDedicated.ServerName\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"MyConfigDedicated.WorldName\": \"{{server.build.env.WORLD_NAME}}\",\r\n \"MyConfigDedicated.ServerDescription\": \"{{server.build.env.SERVER_DESC}}\",\r\n \"MyConfigDedicated.RemoteApiEnabled\": \"{{server.build.env.REMOTEAPI_ENABLE}}\",\r\n \"MyConfigDedicated.RemoteApiPort\": \"{{server.build.env.REMOTEAPI_PORT}}\"\r\n }\r\n\t},\r\n\t\"config\/Saves\/World\/Sandbox.sbc\": {\r\n \"parser\": \"xml\",\r\n \"find\": {\r\n \"MyConfigDedicated.SessionSettings.GameMode\": \"{{server.build.env.SERVER_MODE}}\",\r\n \"MyConfigDedicated.SessionSettings.MaxPlayers\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"MyConfigDedicated.SessionSettings.AutoSaveInMinutes\": \"{{server.build.env.SAVE_INTERVAL}}\",\r\n \"MyConfigDedicated.SessionSettings.EnableSaving\": \"{{server.build.env.SAVE_ENABLED}}\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"config\/SpaceEngineers-Dedicated.cfg\": {\r\n \"parser\": \"xml\",\r\n \"find\": {\r\n \"MyConfigDedicated.SessionSettings.GameMode\": \"{{server.build.env.SERVER_MODE}}\",\r\n \"MyConfigDedicated.SessionSettings.MaxPlayers\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"MyConfigDedicated.SessionSettings.AutoSaveInMinutes\": \"{{server.build.env.SAVE_INTERVAL}}\",\r\n \"MyConfigDedicated.SessionSettings.EnableSaving\": \"{{server.build.env.SAVE_ENABLED}}\",\r\n \"MyConfigDedicated.SessionSettings.ExperimentalMode\": \"{{server.build.env.EXPERIMENTAL_ENABLED}}\",\r\n \"MyConfigDedicated.SessionSettings.EnableIngameScripts\": \"{{server.build.env.INGAMESCRIPTS_ENABLED}}\",\r\n \"MyConfigDedicated.LoadWorld\": \"Z:\\\\home\\\\container\\\\config\\\\Saves\\\\{{server.build.env.WORLD_NAME}}\\\\Sandbox.sbc\",\r\n \"MyConfigDedicated.ServerPort\": \"{{server.build.default.port}}\",\r\n \"MyConfigDedicated.SteamPort\": \"{{server.build.env.STEAM_PORT}}\",\r\n \"MyConfigDedicated.ServerName\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"MyConfigDedicated.WorldName\": \"{{server.build.env.WORLD_NAME}}\",\r\n \"MyConfigDedicated.ServerDescription\": \"{{server.build.env.SERVER_DESC}}\",\r\n \"MyConfigDedicated.RemoteApiEnabled\": \"{{server.build.env.REMOTEAPI_ENABLE}}\",\r\n \"MyConfigDedicated.RemoteApiPort\": \"{{server.build.env.REMOTEAPI_PORT}}\"\r\n }\r\n },\r\n \"config\/Saves\/World\/Sandbox.sbc\": {\r\n \"parser\": \"xml\",\r\n \"find\": {\r\n \"MyObjectBuilder_Checkpoint.Settings.GameMode\": \"{{server.build.env.SERVER_MODE}}\",\r\n \"MyObjectBuilder_Checkpoint.Settings.MaxPlayers\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"MyObjectBuilder_Checkpoint.Settings.AutoSaveInMinutes\": \"{{server.build.env.SAVE_INTERVAL}}\",\r\n \"MyObjectBuilder_Checkpoint.Settings.EnableSaving\": \"{{server.build.env.SAVE_ENABLED}}\",\r\n \"MyObjectBuilder_Checkpoint.Settings.ExperimentalMode\": \"{{server.build.env.EXPERIMENTAL_ENABLED}}\",\r\n \"MyObjectBuilder_Checkpoint.Settings.EnableIngameScripts\": \"{{server.build.env.INGAMESCRIPTS_ENABLED}}\"\r\n }\r\n },\r\n \"config\/Saves\/World\/Sandbox_config.sbc\": {\r\n \"parser\": \"xml\",\r\n \"find\": {\r\n \"MyObjectBuilder_WorldConfiguration.Settings.GameMode\": \"{{server.build.env.SERVER_MODE}}\",\r\n \"MyObjectBuilder_WorldConfiguration.Settings.MaxPlayers\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"MyObjectBuilder_WorldConfiguration.Settings.AutoSaveInMinutes\": \"{{server.build.env.SAVE_INTERVAL}}\",\r\n \"MyObjectBuilder_WorldConfiguration.Settings.EnableSaving\": \"{{server.build.env.SAVE_ENABLED}}\",\r\n \"MyObjectBuilder_WorldConfiguration.Settings.ExperimentalMode\": \"{{server.build.env.EXPERIMENTAL_ENABLED}}\",\r\n \"MyObjectBuilder_WorldConfiguration.Settings.EnableIngameScripts\": \"{{server.build.env.INGAMESCRIPTS_ENABLED}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Game ready...\"\r\n}", "logs": "{}", - "stop": "^C" + "stop": "^^C" }, "scripts": { "installation": { @@ -140,6 +140,36 @@ "rules": "required|numeric|max:65535", "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": "Enable Experimental Mode", + "description": "Enable Experimental Mode. Must be 'true' when using mods", + "env_variable": "EXPERIMENTAL_ENABLED", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "Enable In-Game Scripts", + "description": "Allow players to run In-Game Scripts", + "env_variable": "INGAMESCRIPTS_ENABLED", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, { "name": "WINEDEBUG", "description": "WINEDEBUG: Debug Level of wine", @@ -164,20 +194,30 @@ "name": "WINETRICKS_RUN", "description": "", "env_variable": "WINETRICKS_RUN", - "default_value": "vcrun2013 vcrun2017 corefonts dotnet48", + "default_value": "vcrun2019 dotnet48 corefonts", "user_viewable": false, "user_editable": false, "rules": "required|string", "field_type": "text" }, { - "name": "Auto Update", + "name": "WINEARCH", "description": "", - "env_variable": "AUTO_UPDATE", - "default_value": "1", - "user_viewable": true, - "user_editable": true, - "rules": "required|boolean", + "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" } ] From a9fe173a9f610bbb994e9e00f4d9a4f64727a460 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Sat, 22 Jul 2023 19:52:32 +0200 Subject: [PATCH 287/473] remove stock eggs --- stock_eggs/README.md | 5 -- stock_eggs/minecraft/README.md | 13 ----- stock_eggs/rust/README.md | 21 -------- stock_eggs/source-engine/README.md | 83 ------------------------------ stock_eggs/voice-servers/README.md | 33 ------------ 5 files changed, 155 deletions(-) delete mode 100644 stock_eggs/README.md delete mode 100644 stock_eggs/minecraft/README.md delete mode 100644 stock_eggs/rust/README.md delete mode 100644 stock_eggs/source-engine/README.md delete mode 100644 stock_eggs/voice-servers/README.md diff --git a/stock_eggs/README.md b/stock_eggs/README.md deleted file mode 100644 index 9800efe2..00000000 --- a/stock_eggs/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Stock Pterodactyl eggs - -Eggs based on the stock [Pterodactyl eggs](https://github.com/pterodactyl/panel/tree/develop/database/Seeders/eggs). - -These are mostly fixes that should make it into the main repo eventually as I pr them over. diff --git a/stock_eggs/minecraft/README.md b/stock_eggs/minecraft/README.md deleted file mode 100644 index 4e0654a9..00000000 --- a/stock_eggs/minecraft/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Minecraft - -[Click here to go to the download page](https://github.com/pterodactyl/panel/tree/1.0-develop/database/Seeders/eggs/minecraft) - -All the default minecraft things - -## Server Ports - -The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. - -| Port | Default | -|------|---------| -| Game | 25565 | diff --git a/stock_eggs/rust/README.md b/stock_eggs/rust/README.md deleted file mode 100644 index 2761eb13..00000000 --- a/stock_eggs/rust/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# Rust - -[Click here to go to the download page](https://github.com/pterodactyl/panel/tree/1.0-develop/database/Seeders/eggs/rust) - -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. - -## Minimum RAM warning - -The server requires at least 4096MB to run properly. -This is mostly needed for the startup only, once it is running (depending on your world size) it should consume less. - -## Server Ports - -Ports required to run the server. - -| Port | default | -|----------------|-----------| -| Game | 28015 UDP | -| RCON | 28016 TCP | -| Query | 28017 UDP | -| Rust+ App | 28082 TCP | diff --git a/stock_eggs/source-engine/README.md b/stock_eggs/source-engine/README.md deleted file mode 100644 index 5d8ff1ea..00000000 --- a/stock_eggs/source-engine/README.md +++ /dev/null @@ -1,83 +0,0 @@ -# Source-Engine - -[Click here to go to the download page](https://github.com/pterodactyl/panel/tree/1.0-develop/database/Seeders/eggs/source-engine) - -The Source Dedicated Server or SRCDS is a tool that runs the server component of a Source game without the client component. In other words, it simulates the game without drawing it. - -This also covers games that are installed using the steamcmd utility. - -## Server Ports - -Many of these servers will require the steam query ports to be open for the server. -The default steam query port is 27015 - -## ARK Survival Evolved - - -### Port Requirements - -The ARK server requires 4 ports minimum. - -| Port | default | -|---------|---------| -| Game | 7777 | -| Game +1 | 7778 | -| Query | 27015 | -| RCON | 27020 | - -Please note the server may not show up on steam game server lists due to this requirement if all ports are not set/added. - -## Counter Strike: Global Offensive - -Counter-Strike: Global Offensive (CS: GO) expands upon the team-based action gameplay that it pioneered when it was launched 19 years ago. CS: GO features new maps, characters, weapons, and game modes, and delivers updated versions of the classic CS content (de_dust2, etc.). - -### Port Requirements - -| Port | default | -|----------|---------| -| Game | 27015 | - -## Custom Source Engine Game - - -This is a generic one size fit's all egg that supports srcds game servers. - -This is not for games like Counter Strike 1.6 which is an HLDS title. See [HLDS server](game_eggs/steamcmd_servers/hlds_server) - -### Port Requirements - -| Port | default | -|----------|---------| -| Game | 27015 | - -## Garry's Mod - - -Garry's Mod is a physics sandbox. There aren't any predefined aims or goals. We give you the tools and leave you to play. - -### Port Requirements - -| Port | default | -|----------|---------| -| Game | 27015 | - -## Insurgency - - -Take to the streets for intense close quarters combat, where a team's survival depends upon securing crucial strongholds and destroying enemy supply in this multiplayer and cooperative Source Engine based experience. - -### Port Requirements - -| Port | default | -|----------|---------| -| Game | 27015 | - -## Team Fortress 2 - -Nine distinct classes provide a broad range of tactical abilities and personalities. Constantly updated with new game modes, maps, equipment and, most importantly, hats! - -### Port Requirements - -| Port | default | -|----------|---------| -| Game | 27015 | diff --git a/stock_eggs/voice-servers/README.md b/stock_eggs/voice-servers/README.md deleted file mode 100644 index 757dc72c..00000000 --- a/stock_eggs/voice-servers/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# Voice Servers - -[Click here to go to the download page](https://github.com/pterodactyl/panel/tree/1.0-develop/database/Seeders/eggs/voice-servers) - -## Mumble - -Mumble is an open source, low-latency, high quality voice chat software primarily intended for use while gaming. - -### Required Server Ports - -Mumble only requires a single port to run. The default is 64738 - -| Port | default | -|---------|---------| -| Game | 64738 | - -## Teamspeak 3 - -Use crystal clear sound to communicate with your team mates cross-platform with military-grade security, lag-free performance & unparalleled reliability and uptime. - -### Required Server Ports - -Teamspeak 3 only requires a single port to run. The default is 9987 - -Other ports for ServerQuery and File Transfers are required for specific things. - -| Port | default | -|---------|---------| -| Server | 9987 | -| Query | 10011 | -| Files | 30033 | - -By default pteordactyl sets the query port to the same as the server port. From e30fde9443994b6879bfe890cd25895424db3499 Mon Sep 17 00:00:00 2001 From: Dexuan Ren <81537377+KenRen98@users.noreply.github.com> Date: Sun, 23 Jul 2023 05:01:10 -0400 Subject: [PATCH 288/473] Fix server state change for running indicator MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit NEW Server loading finishing line: "#DSL Dedicated server loaded." OLD Server loading finishing line: ”ServerStart Success“ --- .../sonsoftheforest/egg-sons-of-the-forest.json | 6 +++--- 1 file changed, 3 insertions(+), 3 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 7d6cbfdf..98660cc5 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-07-10T16:14:35+02:00", + "exported_at": "2023-07-23T04:57:30-04: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.", @@ -18,7 +18,7 @@ "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}", + "startup": "{\r\n \"done\": \"#DSL Dedicated server loaded.\"\r\n}", "logs": "{}", "stop": "^^C" }, @@ -171,4 +171,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 99fbddc1cdf849ea1656ec30f1e46e21cb6118b9 Mon Sep 17 00:00:00 2001 From: Alexander Ballauf Date: Sun, 23 Jul 2023 15:22:27 +0200 Subject: [PATCH 289/473] Adding ?MaxPlayers variable to config and startup command (#2360) * ARK: Adding ?MaxPlayers variable to config and startup command --- .../egg-ark--survival-evolved.json | 34 ++++++++++++------- 1 file changed, 22 insertions(+), 12 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 1a3b73d4..d020882d 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-07-02T14:54:47+00:00", + "exported_at": "2023-07-23T15:07:41+02: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})<&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?MaxPlayers={{MAX_PLAYERS}}?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}", @@ -110,16 +110,6 @@ "rules": "required|boolean", "field_type": "text" }, - { - "name": "Mods", - "description": "Specifies the order and which mods are loaded. ModIDs need to be comma-separated such as: ModID1,ModID2", - "env_variable": "MOD_ID", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string", - "field_type": "text" - }, { "name": "App ID", "description": "ARK steam app id for auto updates. Leave blank to avoid auto update.", @@ -139,6 +129,26 @@ "user_editable": true, "rules": "nullable|string", "field_type": "text" + }, + { + "name": "Mods", + "description": "Specifies the order and which mods are loaded. ModIDs need to be comma-separated such as: ModID1,ModID2", + "env_variable": "MOD_ID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "Specifies the maximum amount of players able to join the server.", + "env_variable": "MAX_PLAYERS", + "default_value": "12", + "user_viewable": true, + "user_editable": true, + "rules": "numeric", + "field_type": "text" } ] } \ No newline at end of file From f4e3924353de27e6ddb4376c08f929f95a919beb Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sun, 23 Jul 2023 17:43:56 -0400 Subject: [PATCH 290/473] update waterfall install script resolves #2384 --- .../proxy/java/waterfall/egg-waterfall.json | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/game_eggs/minecraft/proxy/java/waterfall/egg-waterfall.json b/game_eggs/minecraft/proxy/java/waterfall/egg-waterfall.json index 4d7fc579..a3a0007c 100644 --- a/game_eggs/minecraft/proxy/java/waterfall/egg-waterfall.json +++ b/game_eggs/minecraft/proxy/java/waterfall/egg-waterfall.json @@ -1,10 +1,10 @@ { "_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-12-09T13:31:54-05:00", + "exported_at": "2023-07-23T17:42:22-04:00", "name": "Waterfall", "author": "hostmaster@waterfallgaming.net", "description": "Waterfall is a fork of the well-known BungeeCord server teleportation suite.", @@ -13,12 +13,12 @@ "java_version", "pid_limit" ], - "images": [ - "ghcr.io\/pterodactyl\/yolks:java_17", - "ghcr.io\/pterodactyl\/yolks:java_16", - "ghcr.io\/pterodactyl\/yolks:java_11", - "ghcr.io\/pterodactyl\/yolks:java_8" - ], + "docker_images": { + "ghcr.io\/pterodactyl\/yolks:java_17": "ghcr.io\/pterodactyl\/yolks:java_17", + "ghcr.io\/pterodactyl\/yolks:java_16": "ghcr.io\/pterodactyl\/yolks:java_16", + "ghcr.io\/pterodactyl\/yolks:java_11": "ghcr.io\/pterodactyl\/yolks:java_11", + "ghcr.io\/pterodactyl\/yolks:java_8": "ghcr.io\/pterodactyl\/yolks:java_8" + }, "file_denylist": [], "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}", "config": { @@ -29,7 +29,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Waterfall Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nPROJECT=waterfall\r\n\r\napt update\r\napt install -y curl jq\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n\techo -e \"Using supplied download url: ${DL_PATH}\"\r\n\tDOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n\tVER_EXISTS=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | contains($VERSION)' | grep true`\r\n\tLATEST_VERSION=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r '.versions' | jq -r '.[-1]'`\r\n\r\n\tif [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n\t\techo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n\telse\r\n\t\techo -e \"Using the latest ${PROJECT} version\"\r\n\t\tMINECRAFT_VERSION=${LATEST_VERSION}\r\n\tfi\r\n\t\r\n\tBUILD_EXISTS=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep true`\r\n\tLATEST_BUILD=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION} | jq -r '.builds' | jq -r '.[-1]'`\r\n\t\r\n\tif [ \"${BUILD_EXISTS}\" == \"true\" ]; then\r\n\t\techo -e \"Build is valid for version ${MINECRAFT_VERSION}. Using build ${BUILD_NUMBER}\"\r\n\telse\r\n\t\techo -e \"Using the latest ${PROJECT} build for version ${MINECRAFT_VERSION}\"\r\n\t\tBUILD_NUMBER=${LATEST_BUILD}\r\n\tfi\r\n\t\r\n\tJAR_NAME=${PROJECT}-${MINECRAFT_VERSION}-${BUILD_NUMBER}.jar\r\n\t\r\n\techo \"Version being downloaded\"\r\n\techo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n\techo -e \"Build: ${BUILD_NUMBER}\"\r\n\techo -e \"JAR Name of Build: ${JAR_NAME}\"\r\n\tDOWNLOAD_URL=https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION}\/builds\/${BUILD_NUMBER}\/downloads\/${JAR_NAME}\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"Running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n\tmv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f config.yml ]; then\r\n\techo -e \"Downloading ${PROJECT} config.yml\"\r\n\tcurl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/proxy\/java\/waterfall\/config.yml\r\nelse\r\n\techo -e \"${PROJECT} config.yml exists. Will not pull a new file\"\r\nfi", + "script": "#!\/bin\/bash\r\n# Waterfall Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nPROJECT=waterfall\r\n\r\napt update\r\napt install -y curl jq\r\n\r\nif [ -n \"${DL_LINK}\" ]; then\r\n\techo -e \"Using supplied download url: ${DL_PATH}\"\r\n\tDOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n\tVER_EXISTS=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | contains($VERSION)' | grep true`\r\n\tLATEST_VERSION=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r '.versions' | jq -r '.[-1]'`\r\n\r\n\tif [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n\t\techo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n\telse\r\n\t\techo -e \"Using the latest ${PROJECT} version\"\r\n\t\tMINECRAFT_VERSION=${LATEST_VERSION}\r\n\tfi\r\n\t\r\n\tBUILD_EXISTS=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep true`\r\n\tLATEST_BUILD=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION} | jq -r '.builds' | jq -r '.[-1]'`\r\n\t\r\n\tif [ \"${BUILD_EXISTS}\" == \"true\" ]; then\r\n\t\techo -e \"Build is valid for version ${MINECRAFT_VERSION}. Using build ${BUILD_NUMBER}\"\r\n\telse\r\n\t\techo -e \"Using the latest ${PROJECT} build for version ${MINECRAFT_VERSION}\"\r\n\t\tBUILD_NUMBER=${LATEST_BUILD}\r\n\tfi\r\n\t\r\n\tJAR_NAME=${PROJECT}-${MINECRAFT_VERSION}-${BUILD_NUMBER}.jar\r\n\t\r\n\techo \"Version being downloaded\"\r\n\techo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n\techo -e \"Build: ${BUILD_NUMBER}\"\r\n\techo -e \"JAR Name of Build: ${JAR_NAME}\"\r\n\tDOWNLOAD_URL=https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION}\/builds\/${BUILD_NUMBER}\/downloads\/${JAR_NAME}\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"Running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n\tmv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f config.yml ]; then\r\n\techo -e \"Downloading ${PROJECT} config.yml\"\r\n\tcurl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/proxy\/java\/waterfall\/config.yml\r\nelse\r\n\techo -e \"${PROJECT} config.yml exists. Will not pull a new file\"\r\nfi", "container": "debian:buster-slim", "entrypoint": "bash" } @@ -42,7 +42,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|alpha_num|between:1,6" + "rules": "required|alpha_num|between:1,6", + "field_type": "text" }, { "name": "Waterfall Jar File", @@ -51,7 +52,8 @@ "default_value": "waterfall.jar", "user_viewable": true, "user_editable": true, - "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/", + "field_type": "text" }, { "name": "Download Link", @@ -60,7 +62,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string" + "rules": "nullable|string", + "field_type": "text" }, { "name": "Waterfall build number", @@ -69,7 +72,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" } ] -} +} \ No newline at end of file From 13ad8f95d7c2a0da0a3ea7e9a7ee119d7e6df495 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Mon, 24 Jul 2023 09:29:11 -0400 Subject: [PATCH 291/473] updated var in more places --- game_eggs/minecraft/proxy/java/waterfall/egg-waterfall.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/minecraft/proxy/java/waterfall/egg-waterfall.json b/game_eggs/minecraft/proxy/java/waterfall/egg-waterfall.json index a3a0007c..02f8940b 100644 --- a/game_eggs/minecraft/proxy/java/waterfall/egg-waterfall.json +++ b/game_eggs/minecraft/proxy/java/waterfall/egg-waterfall.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-07-23T17:42:22-04:00", + "exported_at": "2023-07-24T09:28:42-04:00", "name": "Waterfall", "author": "hostmaster@waterfallgaming.net", "description": "Waterfall is a fork of the well-known BungeeCord server teleportation suite.", @@ -29,7 +29,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Waterfall Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nPROJECT=waterfall\r\n\r\napt update\r\napt install -y curl jq\r\n\r\nif [ -n \"${DL_LINK}\" ]; then\r\n\techo -e \"Using supplied download url: ${DL_PATH}\"\r\n\tDOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n\tVER_EXISTS=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | contains($VERSION)' | grep true`\r\n\tLATEST_VERSION=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r '.versions' | jq -r '.[-1]'`\r\n\r\n\tif [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n\t\techo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n\telse\r\n\t\techo -e \"Using the latest ${PROJECT} version\"\r\n\t\tMINECRAFT_VERSION=${LATEST_VERSION}\r\n\tfi\r\n\t\r\n\tBUILD_EXISTS=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep true`\r\n\tLATEST_BUILD=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION} | jq -r '.builds' | jq -r '.[-1]'`\r\n\t\r\n\tif [ \"${BUILD_EXISTS}\" == \"true\" ]; then\r\n\t\techo -e \"Build is valid for version ${MINECRAFT_VERSION}. Using build ${BUILD_NUMBER}\"\r\n\telse\r\n\t\techo -e \"Using the latest ${PROJECT} build for version ${MINECRAFT_VERSION}\"\r\n\t\tBUILD_NUMBER=${LATEST_BUILD}\r\n\tfi\r\n\t\r\n\tJAR_NAME=${PROJECT}-${MINECRAFT_VERSION}-${BUILD_NUMBER}.jar\r\n\t\r\n\techo \"Version being downloaded\"\r\n\techo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n\techo -e \"Build: ${BUILD_NUMBER}\"\r\n\techo -e \"JAR Name of Build: ${JAR_NAME}\"\r\n\tDOWNLOAD_URL=https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION}\/builds\/${BUILD_NUMBER}\/downloads\/${JAR_NAME}\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"Running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n\tmv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f config.yml ]; then\r\n\techo -e \"Downloading ${PROJECT} config.yml\"\r\n\tcurl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/proxy\/java\/waterfall\/config.yml\r\nelse\r\n\techo -e \"${PROJECT} config.yml exists. Will not pull a new file\"\r\nfi", + "script": "#!\/bin\/bash\r\n# Waterfall Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nPROJECT=waterfall\r\n\r\napt update\r\napt install -y curl jq\r\n\r\nif [ -n \"${DL_LINK}\" ]; then\r\n\techo -e \"Using supplied download url: ${DL_LINK}\"\r\n\tDOWNLOAD_URL=`eval echo $(echo ${DL_LINK} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n\tVER_EXISTS=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | contains($VERSION)' | grep true`\r\n\tLATEST_VERSION=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT} | jq -r '.versions' | jq -r '.[-1]'`\r\n\r\n\tif [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n\t\techo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n\telse\r\n\t\techo -e \"Using the latest ${PROJECT} version\"\r\n\t\tMINECRAFT_VERSION=${LATEST_VERSION}\r\n\tfi\r\n\t\r\n\tBUILD_EXISTS=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep true`\r\n\tLATEST_BUILD=`curl -s https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION} | jq -r '.builds' | jq -r '.[-1]'`\r\n\t\r\n\tif [ \"${BUILD_EXISTS}\" == \"true\" ]; then\r\n\t\techo -e \"Build is valid for version ${MINECRAFT_VERSION}. Using build ${BUILD_NUMBER}\"\r\n\telse\r\n\t\techo -e \"Using the latest ${PROJECT} build for version ${MINECRAFT_VERSION}\"\r\n\t\tBUILD_NUMBER=${LATEST_BUILD}\r\n\tfi\r\n\t\r\n\tJAR_NAME=${PROJECT}-${MINECRAFT_VERSION}-${BUILD_NUMBER}.jar\r\n\t\r\n\techo \"Version being downloaded\"\r\n\techo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n\techo -e \"Build: ${BUILD_NUMBER}\"\r\n\techo -e \"JAR Name of Build: ${JAR_NAME}\"\r\n\tDOWNLOAD_URL=https:\/\/papermc.io\/api\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION}\/builds\/${BUILD_NUMBER}\/downloads\/${JAR_NAME}\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"Running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n\tmv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f config.yml ]; then\r\n\techo -e \"Downloading ${PROJECT} config.yml\"\r\n\tcurl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/proxy\/java\/waterfall\/config.yml\r\nelse\r\n\techo -e \"${PROJECT} config.yml exists. Will not pull a new file\"\r\nfi", "container": "debian:buster-slim", "entrypoint": "bash" } From 9bcb3451c4717cb77c4da37aa3ecc00a9096b958 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Fri, 28 Jul 2023 16:36:58 +0200 Subject: [PATCH 292/473] update SvenCOOP --- .../svencoop/egg-sven-co-op.json | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/game_eggs/steamcmd_servers/svencoop/egg-sven-co-op.json b/game_eggs/steamcmd_servers/svencoop/egg-sven-co-op.json index 07374e03..4218b289 100644 --- a/game_eggs/steamcmd_servers/svencoop/egg-sven-co-op.json +++ b/game_eggs/steamcmd_servers/svencoop/egg-sven-co-op.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:02:23-05:00", + "exported_at": "2023-07-28T16:36:08+02:00", "name": "Sven Co-op", "author": "pteroducktyl@yildri.nl", "description": "Sven Co-op is a co-operative game originally based around Valve Software's Half-Life. In this game players must work together against computer controlled enemies and solve puzzles as a team.", "features": [ "steam_disk_space" ], - "images": [ - "quay.io\/pterodactyl\/core:source" - ], + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" + }, "file_denylist": [], "startup": ".\/svends_run -console -port {{SERVER_PORT}} +maxplayers {{SC_PLAYERS}} +map {{SC_MAP}} +ip 0.0.0.0 -strictportbind -norestart", "config": { @@ -24,8 +24,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Sven co-op Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 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 +login anonymous +force_install_dir \/mnt\/server +app_update 276060 validate +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so", - "container": "ubuntu:16.04", + "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" } }, @@ -37,7 +37,8 @@ "default_value": "svencoop1", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { "name": "Max Players", @@ -46,7 +47,8 @@ "default_value": "12", "user_viewable": true, "user_editable": true, - "rules": "required|numeric|between:2,32" + "rules": "required|numeric|between:2,32", + "field_type": "text" }, { "name": "Server Name", @@ -55,7 +57,8 @@ "default_value": "Sven Co-op server", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:40" + "rules": "required|string|max:40", + "field_type": "text" }, { "name": "Password", @@ -64,7 +67,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:20" + "rules": "nullable|string|max:20", + "field_type": "text" }, { "name": "Region", @@ -73,7 +77,8 @@ "default_value": "255", "user_viewable": true, "user_editable": true, - "rules": "required|numeric|between:-1,255" + "rules": "required|numeric|between:-1,255", + "field_type": "text" }, { "name": "Source AppID", @@ -82,7 +87,8 @@ "default_value": "276060", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" } ] -} +} \ No newline at end of file From 2e3acd1e2a556d57c3f5505baae26a9da1f5353e Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 29 Jul 2023 17:46:53 +0200 Subject: [PATCH 293/473] Magma: support ARM64 --- game_eggs/minecraft/java/magma/egg-magma.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/minecraft/java/magma/egg-magma.json b/game_eggs/minecraft/java/magma/egg-magma.json index f9c7276a..28bc9370 100644 --- a/game_eggs/minecraft/java/magma/egg-magma.json +++ b/game_eggs/minecraft/java/magma/egg-magma.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-17T23:20:29+01:00", + "exported_at": "2023-07-29T17:46:23+02:00", "name": "Magma", "author": "support@pterodactyl.io", "description": "Magma is most powerful Forge server providing you with Forge mods and Bukkit Plugins using Spigot and Paper for Performance Optimization and Stability.", @@ -30,8 +30,8 @@ }, "scripts": { "installation": { - "script": "apt update\r\napt install -y curl jq\r\n\r\ncd \/mnt\/server\/\r\n\r\n# Hard coded latest version as the magma API doesn't have an endpoint to query for it\r\nLATEST_VERSION=\"1.18.2\"\r\n\r\n# Default TAG_VERSION if empty\r\nif [[ -z \"${TAG_VERSION}\" ]]; then\r\n TAG_VERSION=\"latest\"\r\nfi\r\n\r\n\r\nif [[ -z \"${MC_VERSION}\" ]] || [[ \"${MC_VERSION}\" == \"latest\" ]]; then\r\n echo -e \"Version not set. Defaulting to latest\"\r\n MC_VERSION=${LATEST_VERSION}\r\nfi\r\n\r\necho \"Attempting to install Magma - Version ${MC_VERSION} - Tag ${TAG_VERSION}\"\r\n\r\nif [[ \"${TAG_VERSION}\" == \"latest\" ]]; then\r\n # Didn't ask for a specific tag\r\n VERSION_JSON=$(curl --silent \"https:\/\/api.magmafoundation.org\/api\/v2\/${MC_VERSION}\/latest\")\r\nelse\r\n # Asked for a specific tag\r\n VERSION_JSON=$(curl --silent \"https:\/\/api.magmafoundation.org\/api\/v2\/${MC_VERSION}\/latest\/${TAG_VERSION}\")\r\nfi\r\n\r\nDOWNLOAD_LINK=$(echo ${VERSION_JSON} | jq -r .link)\r\necho \"Download Link: '${DOWNLOAD_LINK}'\"\r\n\r\n# Check we found a download link\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ]; then\r\n \r\n # Validate that link works\r\n echo -e \"Validating download link\"\r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_LINK}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_LINK}\r\n else\r\n echo -e \"Download URL ${DOWNLOAD_LINK} is invalid. Terminating install.\"\r\n exit 2\r\n fi\r\nelse\r\n echo -e \"No download URL found. Terminating install.\"\r\n exit 2\r\nfi\r\n\r\n\r\n# Download server.jar\r\necho -e \"running: curl -sSL -o ${SERVER_JARFILE} ${DOWNLOAD_LINK}\"\r\ncurl -sSL -o ${SERVER_JARFILE} -sSL ${DOWNLOAD_LINK}\r\necho -e \"Install Complete\"", - "container": "ghcr.io\/parkervcp\/installers:debian", + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt -y install curl git jq\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\/\r\n\r\n# Hard coded latest version as the magma API doesn't have an endpoint to query for it\r\nLATEST_VERSION=\"1.18.2\"\r\n\r\n# Default TAG_VERSION if empty\r\nif [[ -z \"${TAG_VERSION}\" ]]; then\r\n TAG_VERSION=\"latest\"\r\nfi\r\n\r\n\r\nif [[ -z \"${MC_VERSION}\" ]] || [[ \"${MC_VERSION}\" == \"latest\" ]]; then\r\n echo -e \"Version not set. Defaulting to latest\"\r\n MC_VERSION=${LATEST_VERSION}\r\nfi\r\n\r\necho \"Attempting to install Magma - Version ${MC_VERSION} - Tag ${TAG_VERSION}\"\r\n\r\nif [[ \"${TAG_VERSION}\" == \"latest\" ]]; then\r\n # Didn't ask for a specific tag\r\n VERSION_JSON=$(curl --silent \"https:\/\/api.magmafoundation.org\/api\/v2\/${MC_VERSION}\/latest\")\r\nelse\r\n # Asked for a specific tag\r\n VERSION_JSON=$(curl --silent \"https:\/\/api.magmafoundation.org\/api\/v2\/${MC_VERSION}\/latest\/${TAG_VERSION}\")\r\nfi\r\n\r\nDOWNLOAD_LINK=$(echo ${VERSION_JSON} | jq -r .link)\r\necho \"Download Link: '${DOWNLOAD_LINK}'\"\r\n\r\n# Check we found a download link\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ]; then\r\n \r\n # Validate that link works\r\n echo -e \"Validating download link\"\r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_LINK}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_LINK}\r\n else\r\n echo -e \"Download URL ${DOWNLOAD_LINK} is invalid. Terminating install.\"\r\n exit 2\r\n fi\r\nelse\r\n echo -e \"No download URL found. Terminating install.\"\r\n exit 2\r\nfi\r\n\r\n\r\n# Download server.jar\r\necho -e \"running: curl -sSL -o ${SERVER_JARFILE} ${DOWNLOAD_LINK}\"\r\ncurl -sSL -o ${SERVER_JARFILE} -sSL ${DOWNLOAD_LINK}\r\necho -e \"Install Complete\"", + "container": "debian:bullseye-slim", "entrypoint": "bash" } }, @@ -67,4 +67,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 3f20e732b8c99bd549309a83ddc56a54a3d18c60 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 29 Jul 2023 17:53:35 +0200 Subject: [PATCH 294/473] Update JMusicBot --- bots/discord/jmusicbot/egg-j-music-bot.json | 50 +++++++++++++-------- 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/bots/discord/jmusicbot/egg-j-music-bot.json b/bots/discord/jmusicbot/egg-j-music-bot.json index 31f440c7..528dad38 100644 --- a/bots/discord/jmusicbot/egg-j-music-bot.json +++ b/bots/discord/jmusicbot/egg-j-music-bot.json @@ -1,16 +1,17 @@ { - "_comment": "Pterodactyl JMusicBot Egg ~ parkervcp, Software-Noob, Proxymiity, and Red-Thirten ~ 2021-11-29", + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1", + "version": "PTDL_v2", "update_url": null }, + "exported_at": "2023-07-29T17:52:45+02:00", "name": "JMusicBot", "author": "parker@parkervcp.com", "description": "A Discord music bot that's easy to set up and run yourself!", "features": null, - "images": [ - "ghcr.io\/pterodactyl\/yolks:java_16" - ], + "docker_images": { + "ghcr.io\/pterodactyl\/yolks:java_16": "ghcr.io\/pterodactyl\/yolks:java_16" + }, "file_denylist": [], "startup": "java -Dnogui=true -jar JMusicBot.jar", "config": { @@ -21,8 +22,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n## this is a simple script to use the github API for release versions.\r\n## this requires the egg has a variable for GITHUB_PACKAGE and VERSION\r\n## this supports using oauth\/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.)\r\n## if you are getting hit with GitHub API limit issues then you need to have the user and token set.\r\n\r\napt update\r\napt install -y jq curl\r\n\r\nGITHUB_PACKAGE=\"jagrosh\/MusicBot\"\r\nCONFIG_LINK=\"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/jmusicbot\/config.txt\"\r\nPLAYLIST_LINK=\"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/jmusicbot\/example_playlist.txt\"\r\n\r\nif [ -z \"${GITHUB_USER}\" ] && [ -z \"${GITHUB_OAUTH_TOKEN}\" ] ; then\r\n echo -e \"No Github user set. Using anonymous API call...\"\r\nelse\r\n echo -e \"User and OAuth token set.\"\r\n alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} '\r\nfi\r\n\r\n# get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\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_LINK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i config)\r\n else\r\n echo -e \"Defaulting to the latest release.\"\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\n## JMusicBot Setup\r\n[ ! -d \/mnt\/server ] && mkdir \/mnt\/server\r\ncd \/mnt\/server\r\necho -e \"\\nInstalling\/Updating JMusicBot...\\n\"\r\n\r\nif [ -f JMusicBot.jar ]; then\r\n echo -e \"Updating JMusicBot.jar to latest version...\"\r\n echo -e '\\t(Old version can be found at \"JMusicBot.jar-old\")'\r\n mv -f JMusicBot.jar JMusicBot.jar-old\r\nfi\r\necho -e \"Running: curl -sSLo JMusicBot.jar ${DOWNLOAD_LINK}\\n\"\r\ncurl -sSLo JMusicBot.jar ${DOWNLOAD_LINK}\r\n\r\nif [ -f config.txt ]; then\r\n echo -e \"Updating config.txt to latest version...\"\r\n echo -e '\\t(Old version can be found at \"config.txt-old\")'\r\n mv -f config.txt config.txt-old\r\nfi\r\necho -e \"Running: curl -sSLo config.txt ${CONFIG_LINK}\\n\"\r\ncurl -sSLo config.txt ${CONFIG_LINK}\r\n\r\n[ ! -d Playlists ] && mkdir Playlists\r\ncd Playlists\r\nif [ -f example_playlist.txt ]; then\r\n echo -e \"example_playlist.txt already exists. Skipping default download.\"\r\nelse\r\n echo -e \"example_playlist.txt not found. Downloading default example_playlist...\"\r\n echo -e \"Running: curl -sSLo example_playlist.txt ${PLAYLIST_LINK}\"\r\n curl -sSLo example_playlist.txt ${PLAYLIST_LINK}\r\nfi\r\n\r\necho -e \"\\nJMusicBot Successfully Installed!\"", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y jq curl\r\n\r\nCONFIG_LINK=\"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/jmusicbot\/config.txt\"\r\nPLAYLIST_LINK=\"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/jmusicbot\/example_playlist.txt\"\r\n\r\n\r\nif [ -z \"${GITHUB_USER}\" ] && [ -z \"${GITHUB_OAUTH_TOKEN}\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} '\r\nfi\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/jagrosh\/MusicBot\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/jagrosh\/MusicBot\/releases\")\r\nMATCH=JMusicBot\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)\r\n fi\r\nfi\r\n\r\n## JMusicBot Setup\r\n[ ! -d \/mnt\/server ] && mkdir \/mnt\/server\r\ncd \/mnt\/server\r\necho -e \"\\nInstalling\/Updating JMusicBot...\\n\"\r\n\r\nif [ -f JMusicBot.jar ]; then\r\n echo -e \"Updating JMusicBot.jar to latest version...\"\r\n echo -e '\\t(Old version can be found at \"JMusicBot.jar-old\")'\r\n mv -f JMusicBot.jar JMusicBot.jar-old\r\nfi\r\n\r\necho -e \"Running: curl -sSLo JMusicBot.jar ${DOWNLOAD_URL}\\n\"\r\ncurl -sSLo JMusicBot.jar ${DOWNLOAD_URL}\r\n\r\nif [ -f config.txt ]; then\r\n echo -e \"Updating config.txt to latest version...\"\r\n echo -e '\\t(Old version can be found at \"config.txt-old\")'\r\n mv -f config.txt config.txt-old\r\nfi\r\necho -e \"Running: curl -sSLo config.txt ${CONFIG_LINK}\\n\"\r\ncurl -sSLo config.txt ${CONFIG_LINK}\r\n\r\n[ ! -d Playlists ] && mkdir Playlists\r\ncd Playlists\r\nif [ -f example_playlist.txt ]; then\r\n echo -e \"example_playlist.txt already exists. Skipping default download.\"\r\nelse\r\n echo -e \"example_playlist.txt not found. Downloading default example_playlist...\"\r\n echo -e \"Running: curl -sSLo example_playlist.txt ${PLAYLIST_LINK}\"\r\n curl -sSLo example_playlist.txt ${PLAYLIST_LINK}\r\nfi\r\n\r\necho -e \"\\nJMusicBot Successfully Installed!\"", + "container": "debian:bullseye-slim", "entrypoint": "\/bin\/bash" } }, @@ -31,10 +32,11 @@ "name": "[REQUIRED] Discord Bot Token", "description": "The token for your Discord bot. Learn how to obtain a token and configure your bot application properly here: https:\/\/jmusicbot.com\/getting-a-bot-token\/", "env_variable": "BOT_TOKEN", - "default_value": "You need to get a token", + "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { "name": "[REQUIRED] Bot Owner ID", @@ -43,7 +45,8 @@ "default_value": "Change This To Your Discord User ID", "user_viewable": true, "user_editable": true, - "rules": "required|digits:18" + "rules": "required|digits:18", + "field_type": "text" }, { "name": "Bot Prefix", @@ -52,7 +55,8 @@ "default_value": "@mention", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:20" + "rules": "nullable|string|max:20", + "field_type": "text" }, { "name": "Bot Alternate Prefix", @@ -61,7 +65,8 @@ "default_value": "NONE", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Bot Default Game", @@ -70,7 +75,8 @@ "default_value": "DEFAULT", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:20" + "rules": "nullable|string|max:20", + "field_type": "text" }, { "name": "Bot Default Status", @@ -79,7 +85,8 @@ "default_value": "ONLINE", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:ONLINE,IDLE,DND,INVISIBLE" + "rules": "required|string|in:ONLINE,IDLE,DND,INVISIBLE", + "field_type": "text" }, { "name": "Bot Show Song in Status", @@ -88,7 +95,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" }, { "name": "Bot Show Images for \"Now Playing\"", @@ -97,7 +105,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" }, { "name": "Bot Stay In Channel", @@ -106,7 +115,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" }, { "name": "Bot Alone Time Until Disconnect", @@ -115,7 +125,8 @@ "default_value": "0", "user_viewable": true, "user_editable": true, - "rules": "required|integer" + "rules": "required|integer", + "field_type": "text" }, { "name": "Bot Max Song Length", @@ -124,7 +135,8 @@ "default_value": "0", "user_viewable": true, "user_editable": true, - "rules": "required|integer" + "rules": "required|integer", + "field_type": "text" } ] } From 95d7f016607a3516daddc893db377ac5bff37fd9 Mon Sep 17 00:00:00 2001 From: HoleInTheSeat <58385663+HoleInTheSeat@users.noreply.github.com> Date: Sun, 30 Jul 2023 10:09:34 -0500 Subject: [PATCH 295/473] AssaultCube (#2394) Add: AssaultCube --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- README.md | 3 + game_eggs/README.md | 3 + game_eggs/cubeengine/assaultcube/README.md | 30 +++++ .../assaultcube/egg-assault-cube.json | 112 ++++++++++++++++++ 4 files changed, 148 insertions(+) create mode 100644 game_eggs/cubeengine/assaultcube/README.md create mode 100644 game_eggs/cubeengine/assaultcube/egg-assault-cube.json diff --git a/README.md b/README.md index 6cd1060f..0605f64a 100644 --- a/README.md +++ b/README.md @@ -114,6 +114,9 @@ If you are reading this it looks like you are looking to add an egg to your serv * [MCGalaxy](game_eggs/classicube/mcgalaxy) +[Cube Engine](game_eggs/cubeengine) +* [AssaultCube](game_eggs/cubeengine/assaultcube) + [DDRaceNetwork](game_eggs/ddracenetwork) [Doom](game_eggs/doom) diff --git a/game_eggs/README.md b/game_eggs/README.md index 3dc06826..88a9b2ee 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -16,6 +16,9 @@ [CS2D](cs2d) +[Cube Engine](cubeengine) +* [AssaultCube](cubeengine/assaultcube) + [DDRaceNetwork](ddracenetwork/) [Doom](doom) diff --git a/game_eggs/cubeengine/assaultcube/README.md b/game_eggs/cubeengine/assaultcube/README.md new file mode 100644 index 00000000..cdcaceb9 --- /dev/null +++ b/game_eggs/cubeengine/assaultcube/README.md @@ -0,0 +1,30 @@ +# AssaultCube +[assault.cubers.net](https://assault.cubers.net/) + +AssaultCube is a FREE, multiplayer, first-person shooter game, based on the CUBE engine. + +Taking place in realistic environments, with fast, arcade gameplay, it's addictive and fun! + +With efficient bandwidth usage, it's low-latency and can even run over a 56 Kbps connection. +It's tiny too, weighing in at a lightweight about 50 MB package available for Windows, Mac and Linux. +On the correct settings, it can even run on old hardware (Pentium III and above). + +--- + +## Server Ports + +Ports required to run the server. + +| Port | default | +|---------|---------| +| Game | 25510 | +| Game +1 | 255101 | + +The second port is only used for the server master list to be able to update the server info. (Description, player count, etc.) + +**Must be Game +1!** + +### Notes + + +25510 is the default port, but any port can be used. \ No newline at end of file diff --git a/game_eggs/cubeengine/assaultcube/egg-assault-cube.json b/game_eggs/cubeengine/assaultcube/egg-assault-cube.json new file mode 100644 index 00000000..f9dad6b4 --- /dev/null +++ b/game_eggs/cubeengine/assaultcube/egg-assault-cube.json @@ -0,0 +1,112 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-07-30T10:56:35+02:00", + "name": "AssaultCube", + "author": "holeintheseat@gmail.com", + "description": "AssaultCube is a FREE, multiplayer, first-person shooter game, based on the CUBE engine.\r\n\r\nTaking place in realistic environments, with fast, arcade gameplay, it's addictive and fun!", + "features": null, + "docker_images": { + "Debian": "ghcr.io\/parkervcp\/yolks:debian" + }, + "file_denylist": [], + "startup": ".\/bin_unix\/linux_64_server -Y{{ASSAULT_SERVER_KEY}} -n\"{{ASSAULT_SERVER_DESCRIPTION}}\" -o\"{{ASSAULT_SERVER_MOTD}}\" -c{{ASSAULT_SERVER_MAXPLAYERS}} -x{{ASSAULT_SERVER_ADMINPASSWORD}} -f{{SERVER_PORT}} -p{{ASSAULT_SERVER_PLAYERPASSWORD}} -m{{ASSAULT_SERVER_MASTERSERVER}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"dedicated server started, waiting for clients...\"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# AssaultCube Server Egg (By HoleInTheSeat) <|-|> (https:\/\/assault.cubers.net\/)\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n#######-|Dependencies|-#######\r\napt update\r\napt -y install tar make bzip2 build-essential clang libclang-dev libclang1 llvm llvm-dev clang-tools libz-dev curl jq\r\n\r\n#######-|Downloading files|-#######\r\ncd \/mnt\/server\r\n## get release info and download links\r\n\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/assaultcube\/AC\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/assaultcube\/AC\/releases\")\r\nMATCH=tar.bz2\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 | head -1)\r\n fi\r\nfi\r\n\r\n\r\ncurl -sSL -o AssaultCube.tar.bz2 ${DOWNLOAD_URL}\r\ntar -xf AssaultCube.tar.bz2\r\nrm AssaultCube.tar.bz2\r\n\r\n#######-|Setting Up Server|-#######\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\nrm -rf bin_win32\/ *.sh\r\n\r\nif [ \"$(uname -m)\" = \"x86_64\" ]; then\r\n echo -e \"x86 System\"\r\nelse\r\n cd \/mnt\/server\/source\/src\r\n make server_install\r\nfi\r\n#######-|Insert Server Authkey|-#######\r\ncd \/mnt\/server\r\nsed -i 's\/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\/{{ASSAULT_SERVER_KEY}}\/' .\/config\/servercmdline.txt\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "debian:bullseye-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Server Auth Key", + "description": "You must provide your own key for the server to register on the masterserver.\r\nTo generate a key you can run the client and issue the command:\r\n\r\n authkey new server \r\n \r\nSee: (https:\/\/assault.cubers.net\/docs\/server.html)", + "env_variable": "ASSAULT_SERVER_KEY", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|required|string|max:64", + "field_type": "text" + }, + { + "name": "Server Description", + "description": "", + "env_variable": "ASSAULT_SERVER_DESCRIPTION", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:512", + "field_type": "text" + }, + { + "name": "Message of the Day", + "description": "", + "env_variable": "ASSAULT_SERVER_MOTD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:512", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "Set the limit on amount of players able to join (MAX 16)", + "env_variable": "ASSAULT_SERVER_MAXPLAYERS", + "default_value": "16", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|integer|max:16", + "field_type": "text" + }, + { + "name": "Admin Password", + "description": "", + "env_variable": "ASSAULT_SERVER_ADMINPASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:512|min:5", + "field_type": "text" + }, + { + "name": "Player Password", + "description": "Password need to join the server.", + "env_variable": "ASSAULT_SERVER_PLAYERPASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:512", + "field_type": "text" + }, + { + "name": "Master Server", + "description": "Forces the server to register with the hostname or IP address of a different masterserver.\r\nThe default is ms.cubers.net\r\nIf you want your server to be hidden and not report to the masterserver, use -mlocalhost", + "env_variable": "ASSAULT_SERVER_MASTERSERVER", + "default_value": "ms.cubers.net", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:512", + "field_type": "text" + }, + { + "name": "Version", + "description": "The version of the engine you want to download.", + "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 875192991cc157da1597bfd94419838e819d5a5b Mon Sep 17 00:00:00 2001 From: HoleInTheSeat <58385663+HoleInTheSeat@users.noreply.github.com> Date: Sun, 30 Jul 2023 10:11:19 -0500 Subject: [PATCH 296/473] Cube 2 sauerbraten (#2395) Add: Cube 2 sauerbraten --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- README.md | 5 ++ game_eggs/README.md | 2 + game_eggs/cubeengine/cube2/README.md | 23 ++++++ .../cube2/egg-cube2--sauerbraten.json | 72 +++++++++++++++++++ 4 files changed, 102 insertions(+) create mode 100644 game_eggs/cubeengine/cube2/README.md create mode 100644 game_eggs/cubeengine/cube2/egg-cube2--sauerbraten.json diff --git a/README.md b/README.md index 0605f64a..0edd7045 100644 --- a/README.md +++ b/README.md @@ -112,6 +112,11 @@ If you are reading this it looks like you are looking to add an egg to your serv [CS2D](game_eggs/cs2d) +[Cube Engine](cubeengine) + +* [AssaultCube](cubeengine/assaultcube) +* [Cube 2: Sauerbraten](cubeengine/cube2) + * [MCGalaxy](game_eggs/classicube/mcgalaxy) [Cube Engine](game_eggs/cubeengine) diff --git a/game_eggs/README.md b/game_eggs/README.md index 88a9b2ee..43c296f0 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -18,6 +18,8 @@ [Cube Engine](cubeengine) * [AssaultCube](cubeengine/assaultcube) +* [Cube 2: Sauerbraten](cubeengine/cube2) + [DDRaceNetwork](ddracenetwork/) diff --git a/game_eggs/cubeengine/cube2/README.md b/game_eggs/cubeengine/cube2/README.md new file mode 100644 index 00000000..0ef76d33 --- /dev/null +++ b/game_eggs/cubeengine/cube2/README.md @@ -0,0 +1,23 @@ +# Cube 2: Sauerbraten +[sauerbraten.org](http://sauerbraten.org/) + +Cube 2: Sauerbraten is a free multiplayer & singleplayer first person shooter, the successor of the Cube FPS. +Much like the original Cube, the aim of this game is fun, old school deathmatch gameplay and also to allow map/geometry editing to be done cooperatively in-game. + +## Server Ports + +Ports required to run the server. + +| Port | default | +|---------|---------| +| Game | 25510 | +| Game +1 | 255101 | + +The second port is only used for the server master list to be able to update the server info. (Description, player count, etc.) + +**Must be Game +1!** + +### Notes + + +25510 is the default port, but any port can be used. \ No newline at end of file diff --git a/game_eggs/cubeengine/cube2/egg-cube2--sauerbraten.json b/game_eggs/cubeengine/cube2/egg-cube2--sauerbraten.json new file mode 100644 index 00000000..063cd22a --- /dev/null +++ b/game_eggs/cubeengine/cube2/egg-cube2--sauerbraten.json @@ -0,0 +1,72 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-07-30T11:20:16+02:00", + "name": "Cube 2: Sauerbraten", + "author": "holeintheseat@gmail.com", + "description": "Cube 2: Sauerbraten is a free multiplayer & singleplayer first person shooter, the successor of the Cube FPS.\r\nMuch like the original Cube, the aim of this game is fun, old school deathmatch gameplay and also to allow map\/geometry editing to be done cooperatively in-game.", + "features": null, + "docker_images": { + "Debian": "ghcr.io\/parkervcp\/yolks:debian" + }, + "file_denylist": [], + "startup": ".\/bin_unix\/linux_64_server -j{{SERVER_PORT}} -n{{CUBE_SERVERDESCRIPTION}} -c{{CUBE_MAXPLAYERS}} -m{{CUBE_MASTERSERVER}} -p{{CUBE_ADMINPASSWORD}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"dedicated server started, waiting for clients...\"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# AssaultCube Server Egg (By HoleInTheSeat) <|-|> (https:\/\/assault.cubers.net\/)\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\napt update \r\n#######-|Dependencies|-#######\r\napt -y install tar curl bzip2\r\n#######-|Downloading files|-#######\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\necho -e \"\\n\"\r\necho -e \"\\n\"\r\necho -e \"###############################################\"\r\necho -e \"## Downloading and unarchiving Sauerbraten ##\"\r\necho -e \"## THIS WILL TAKE A WHILE. PLEASE BE PATIENT ##\"\r\necho -e \"###############################################\"\r\necho -e \"\\n\"\r\necho -e \"\\n\"\r\ncurl -sSL -o sauerbraten_2020_12_29_linux.tar.bz2 https:\/\/cfhcable.dl.sourceforge.net\/project\/sauerbraten\/sauerbraten\/2020_11_29\/sauerbraten_2020_12_29_linux.tar.bz2\r\ntar -xf sauerbraten_2020_12_29_linux.tar.bz2 -strip-components=1\r\nrm sauerbraten_2020_12_29_linux.tar.bz2\r\nchmod +x bin_unix\/linux_64_server\r\n\r\n#######-|Alert Completion|-#######\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "debian:stable", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Server Description", + "description": "", + "env_variable": "CUBE_SERVERDESCRIPTION", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:512", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "Sets the max number of clients to N. The default is 4. If you want to set it higher, be aware that bandwidth usage almost doubles with each extra client, so only do this if the server runs on a serious pipe (not your home DSL or Cable connection).", + "env_variable": "CUBE_MAXPLAYERS", + "default_value": "4", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|max:16", + "field_type": "text" + }, + { + "name": "Master Server", + "description": "Sets the master server to use for either server (registering) and client (updating) to S. (default: sauerbraten.org).", + "env_variable": "CUBE_MASTERSERVER", + "default_value": "sauerbraten.org", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:512", + "field_type": "text" + }, + { + "name": "Admin Password", + "description": "", + "env_variable": "CUBE_ADMINPASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:512", + "field_type": "text" + } + ] +} \ No newline at end of file From e501dd4ae055a9712b111686f7d69c975cb111fa Mon Sep 17 00:00:00 2001 From: Panda260 <52088459+Panda260@users.noreply.github.com> Date: Sun, 30 Jul 2023 17:24:53 +0200 Subject: [PATCH 297/473] add Folia (#2345) * add Folia --- README.md | 1 + game_eggs/README.md | 1 + game_eggs/minecraft/README.md | 1 + game_eggs/minecraft/java/README.md | 6 ++ game_eggs/minecraft/java/folia/README.MD | 13 ++++ game_eggs/minecraft/java/folia/egg-folia.json | 77 +++++++++++++++++++ 6 files changed, 99 insertions(+) create mode 100644 game_eggs/minecraft/java/folia/README.MD create mode 100644 game_eggs/minecraft/java/folia/egg-folia.json diff --git a/README.md b/README.md index 0edd7045..9b4cd446 100644 --- a/README.md +++ b/README.md @@ -188,6 +188,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Mohist](game_eggs/minecraft/java/mohist) * [NanoLimbo](game_eggs/minecraft/java/nanolimbo) * [Paper](game_eggs/minecraft/java/paper) + * [Folia](game_eggs/minecraft/java/folia) * [Purpur](game_eggs/minecraft/java/purpur) * [Spigot](game_eggs/minecraft/java/spigot) * [SpongeForge](game_eggs/minecraft/java/spongeforge) diff --git a/game_eggs/README.md b/game_eggs/README.md index 43c296f0..5d1c58d2 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -80,6 +80,7 @@ * [Mohist](minecraft/java/mohist) * [NanoLimbo](minecraft/java/nanolimbo) * [Paper](minecraft/java/paper) + * [Folia](minecraft/java/folia) * [Purpur](minecraft/java/purpur) * [Spigot](minecraft/java/spigot) * [SpongeForge](minecraft/java/spongeforge) diff --git a/game_eggs/minecraft/README.md b/game_eggs/minecraft/README.md index 7814da60..9e374b05 100644 --- a/game_eggs/minecraft/README.md +++ b/game_eggs/minecraft/README.md @@ -29,6 +29,7 @@ It’s set in infinitely-generated worlds of wide open terrain - icy mountains, * [Mohist](java/mohist) * [NanoLimbo](java/nanolimbo) * [Paper](java/paper) +* [Folia](java/folia) * [Purpur](java/purpur) * [Quilt](java/quilt/) * [Spigot](java/spigot) diff --git a/game_eggs/minecraft/java/README.md b/game_eggs/minecraft/java/README.md index 1a741073..11f583f3 100644 --- a/game_eggs/minecraft/java/README.md +++ b/game_eggs/minecraft/java/README.md @@ -114,6 +114,12 @@ A collection of spigot and forked spigot eggs. High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies Currently the default on pterodactyl for many reasons. First being that you don't need to build the jar. +### [Folia](folia) + +[Folia GitHub](https://github.com/PaperMC/Folia) +High performance Fork of Paper which adds regionised multithreading to the dedicated server. designed for many players. +Spigot Plugins are not compatible with this fork. unless they are optimised for Folia. + ### [Purpur](purpur) [Purpur Website](https://purpurmc.org/) diff --git a/game_eggs/minecraft/java/folia/README.MD b/game_eggs/minecraft/java/folia/README.MD new file mode 100644 index 00000000..ab62b844 --- /dev/null +++ b/game_eggs/minecraft/java/folia/README.MD @@ -0,0 +1,13 @@ +# Folia + +Fork of Paper which adds regionised multithreading to the dedicated server. + +Check out the [Folia Website](https://papermc.io/) for more information. + +## Server Ports + +The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. + +| Port | default | +|-------|---------| +| Game | 25565 | diff --git a/game_eggs/minecraft/java/folia/egg-folia.json b/game_eggs/minecraft/java/folia/egg-folia.json new file mode 100644 index 00000000..9b232860 --- /dev/null +++ b/game_eggs/minecraft/java/folia/egg-folia.json @@ -0,0 +1,77 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-07-24T16:49:48+02:00", + "name": "Folia", + "author": "Hosting@NeverStopGaming.net", + "description": "Fork of Paper which adds regionised multithreading to the dedicated server.", + "features": [ + "eula", + "java_version", + "pid_limit" + ], + "docker_images": { + "Java 17": "ghcr.io\/pterodactyl\/yolks:java_17", + "Java 18": "ghcr.io\/pterodactyl\/yolks:java_18" + }, + "file_denylist": [], + "startup": "java -Xms128M -XX:MaxRAMPercentage=95.0 -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}", + "config": { + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\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\/ash\r\n# Folia Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nPROJECT=folia\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n\techo -e \"Using supplied download url: ${DL_PATH}\"\r\n\tDOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n\tVER_EXISTS=`curl -s https:\/\/api.papermc.io\/v2\/projects\/${PROJECT} | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | contains($VERSION)' | grep -m1 true`\r\n\tLATEST_VERSION=`curl -s https:\/\/api.papermc.io\/v2\/projects\/${PROJECT} | jq -r '.versions' | jq -r '.[-1]'`\r\n\r\n\tif [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n\t\techo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n\telse\r\n\t\techo -e \"Specified version not found. Defaulting to the latest ${PROJECT} version\"\r\n\t\tMINECRAFT_VERSION=${LATEST_VERSION}\r\n\tfi\r\n\r\n\tBUILD_EXISTS=`curl -s https:\/\/api.papermc.io\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep -m1 true`\r\n\tLATEST_BUILD=`curl -s https:\/\/api.papermc.io\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION} | jq -r '.builds' | jq -r '.[-1]'`\r\n\r\n\tif [ \"${BUILD_EXISTS}\" == \"true\" ]; then\r\n\t\techo -e \"Build is valid for version ${MINECRAFT_VERSION}. Using build ${BUILD_NUMBER}\"\r\n\telse\r\n\t\techo -e \"Using the latest ${PROJECT} build for version ${MINECRAFT_VERSION}\"\r\n\t\tBUILD_NUMBER=${LATEST_BUILD}\r\n\tfi\r\n\r\n\tJAR_NAME=${PROJECT}-${MINECRAFT_VERSION}-${BUILD_NUMBER}.jar\r\n\r\n\techo \"Version being downloaded\"\r\n\techo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n\techo -e \"Build: ${BUILD_NUMBER}\"\r\n\techo -e \"JAR Name of Build: ${JAR_NAME}\"\r\n\tDOWNLOAD_URL=https:\/\/api.papermc.io\/v2\/projects\/${PROJECT}\/versions\/${MINECRAFT_VERSION}\/builds\/${BUILD_NUMBER}\/downloads\/${JAR_NAME}\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"Running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\nif [ -f ${SERVER_JARFILE} ]; then\r\n\tmv ${SERVER_JARFILE} ${SERVER_JARFILE}.old\r\nfi\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft\/java\/server.properties\r\nfi", + "container": "ghcr.io\/pterodactyl\/installers:alpine", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Minecraft Version", + "description": "The version of minecraft to download. \r\n\r\nLeave at latest to always get the latest version. Invalid versions will default to latest.", + "env_variable": "MINECRAFT_VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:20", + "field_type": "text" + }, + { + "name": "Server Jar File", + "description": "The name of the server jarfile to run the server with.", + "env_variable": "SERVER_JARFILE", + "default_value": "server.jar", + "user_viewable": true, + "user_editable": true, + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/", + "field_type": "text" + }, + { + "name": "Download Path", + "description": "A URL to use to download a server.jar rather than the ones in the install script. This is not user viewable.", + "env_variable": "DL_PATH", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Build Number", + "description": "The build number for the folia release.\r\n\r\nLeave at latest to always get the latest version. Invalid versions will default to latest.", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + } + ] +} \ No newline at end of file From 71d876f7f24d3ce6020cfc8cdff844cc1c3c4816 Mon Sep 17 00:00:00 2001 From: HoleInTheSeat <58385663+HoleInTheSeat@users.noreply.github.com> Date: Sun, 30 Jul 2023 10:33:28 -0500 Subject: [PATCH 298/473] Read me fix (#2396) Fix some README's --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- README.md | 9 +++------ game_eggs/README.md | 3 ++- game_eggs/cubeengine/assaultcube/README.md | 6 +++--- game_eggs/cubeengine/cube2/README.md | 7 ++++--- generic/README.md | 2 +- 5 files changed, 13 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 9b4cd446..3b9510fc 100644 --- a/README.md +++ b/README.md @@ -55,7 +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#/) +* [C#](/generic/c%23/) * [dart](/generic/dart/) * [deno](/generic/deno/) * [golang](/generic/golang/) @@ -108,6 +108,8 @@ If you are reading this it looks like you are looking to add an egg to your serv [ClassiCube](game_eggs/classicube) +* [MCGalaxy](game_eggs/classicube/mcgalaxy) + [Clone Hero](game_eggs/clone_hero) [CS2D](game_eggs/cs2d) @@ -117,11 +119,6 @@ If you are reading this it looks like you are looking to add an egg to your serv * [AssaultCube](cubeengine/assaultcube) * [Cube 2: Sauerbraten](cubeengine/cube2) -* [MCGalaxy](game_eggs/classicube/mcgalaxy) - -[Cube Engine](game_eggs/cubeengine) -* [AssaultCube](game_eggs/cubeengine/assaultcube) - [DDRaceNetwork](game_eggs/ddracenetwork) [Doom](game_eggs/doom) diff --git a/game_eggs/README.md b/game_eggs/README.md index 5d1c58d2..52ae1908 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -12,6 +12,8 @@ [ClassiCube](classicube) +* [MCGalaxy](classicube/mcgalaxy) + [Clone Hero](clone_hero) [CS2D](cs2d) @@ -20,7 +22,6 @@ * [AssaultCube](cubeengine/assaultcube) * [Cube 2: Sauerbraten](cubeengine/cube2) - [DDRaceNetwork](ddracenetwork/) [Doom](doom) diff --git a/game_eggs/cubeengine/assaultcube/README.md b/game_eggs/cubeengine/assaultcube/README.md index cdcaceb9..fcf5d50a 100644 --- a/game_eggs/cubeengine/assaultcube/README.md +++ b/game_eggs/cubeengine/assaultcube/README.md @@ -17,8 +17,8 @@ Ports required to run the server. | Port | default | |---------|---------| -| Game | 25510 | -| Game +1 | 255101 | +| Game | 28763 | +| Game +1 | 28764 | The second port is only used for the server master list to be able to update the server info. (Description, player count, etc.) @@ -27,4 +27,4 @@ The second port is only used for the server master list to be able to update the ### Notes -25510 is the default port, but any port can be used. \ No newline at end of file +28763 & 28764 is the default ports, but any port can be used. diff --git a/game_eggs/cubeengine/cube2/README.md b/game_eggs/cubeengine/cube2/README.md index 0ef76d33..e22ee5bd 100644 --- a/game_eggs/cubeengine/cube2/README.md +++ b/game_eggs/cubeengine/cube2/README.md @@ -10,8 +10,8 @@ Ports required to run the server. | Port | default | |---------|---------| -| Game | 25510 | -| Game +1 | 255101 | +| Game | 28785 | +| Game +1 | 28786 | The second port is only used for the server master list to be able to update the server info. (Description, player count, etc.) @@ -20,4 +20,5 @@ The second port is only used for the server master list to be able to update the ### Notes -25510 is the default port, but any port can be used. \ No newline at end of file +28785 & 28786 is the default ports, but any port can be used. +Port 28784 must be available for pinging servers over a LAN to work. diff --git a/generic/README.md b/generic/README.md index d3ddba3c..f18701ea 100644 --- a/generic/README.md +++ b/generic/README.md @@ -1,6 +1,6 @@ # Generic Language -### [C#](c#) +### [C#](c%23) [C#](https://learn.microsoft.com/en-us/dotnet/csharp//) A generic C# language egg running with dotnet From 2d2e88900f49a7dba7c4f000dbe5b31e3cb32f30 Mon Sep 17 00:00:00 2001 From: HoleInTheSeat <58385663+HoleInTheSeat@users.noreply.github.com> Date: Sun, 30 Jul 2023 13:14:06 -0500 Subject: [PATCH 299/473] Update egg-project-zomboid.json startup (#2399) Project-zomboid: Do not use a script as startup and do some cleanup --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- .../project_zomboid/egg-project-zomboid.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/game_eggs/steamcmd_servers/project_zomboid/egg-project-zomboid.json b/game_eggs/steamcmd_servers/project_zomboid/egg-project-zomboid.json index 88fb636c..45844dc4 100644 --- a/game_eggs/steamcmd_servers/project_zomboid/egg-project-zomboid.json +++ b/game_eggs/steamcmd_servers/project_zomboid/egg-project-zomboid.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-10T03:31:04+02:00", + "exported_at": "2023-07-30T20:12:08+02:00", "name": "Project Zomboid", "author": "iamkubi@gmail.com", "description": "Project Zomboid is an open world survival horror video game in alpha stage development by British and Canadian independent developer, The Indie Stone. The game is set in a post apocalyptic, zombie infested world where the player is challenged to survive for as long as possible before inevitably dying.", @@ -12,10 +12,10 @@ "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\/start-server.sh -port {{SERVER_PORT}} -udpport {{STEAM_PORT}} -cachedir=\/home\/container\/.cache -servername \"{{SERVER_NAME}}\" -adminusername {{ADMIN_USER}} -adminpassword \"{{ADMIN_PASSWORD}}\"", + "startup": "export PATH=\".\/jre64\/bin:$PATH\" ; export LD_LIBRARY_PATH=\".\/linux64:.\/natives:.:.\/jre64\/lib\/amd64:${LD_LIBRARY_PATH}\" ; JSIG=\"libjsig.so\" ; LD_PRELOAD=\"${LD_PRELOAD}:${JSIG}\" .\/ProjectZomboid64 -port {{SERVER_PORT}} -udpport {{STEAM_PORT}} -cachedir=\/home\/container\/.cache -servername \"{{SERVER_NAME}}\" -adminusername {{ADMIN_USER}} -adminpassword \"{{ADMIN_PASSWORD}}\"", "config": { "files": "{}", "startup": "{\r\n \"done\": \"SERVER STARTED\"\r\n}", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n\r\n\r\n## 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", + "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## 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\ncd \/mnt\/server\r\nrm start-server.sh\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -54,7 +54,7 @@ "name": "Admin Password", "description": "Password for the admin account", "env_variable": "ADMIN_PASSWORD", - "default_value": "password", + "default_value": "", "user_viewable": true, "user_editable": true, "rules": "required|string|max:32", From a8c477b10366e4cc62b5d2ecb23d1167727f88d4 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Tue, 1 Aug 2023 16:54:25 +0200 Subject: [PATCH 300/473] Update mohaa --- game_eggs/mohaa/egg-mohaa.json | 72 +++++++++++++++++++--------------- 1 file changed, 40 insertions(+), 32 deletions(-) diff --git a/game_eggs/mohaa/egg-mohaa.json b/game_eggs/mohaa/egg-mohaa.json index 832621d3..65e6e7ea 100644 --- a/game_eggs/mohaa/egg-mohaa.json +++ b/game_eggs/mohaa/egg-mohaa.json @@ -1,104 +1,112 @@ { "_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-09-29T23:01:20+02:00", + "exported_at": "2023-08-01T16:53:44+02:00", "name": "mohaa", "author": "th3dilli@gmx.at", - "description": null, + "description": "Medal of Honor: Allied Assault", "features": null, - "images": [ - "ghcr.io\/parkervcp\/games:mohaa" - ], + "docker_images": { + "Mohaa": "ghcr.io\/parkervcp\/games:mohaa" + }, "file_denylist": [], "startup": ".\/mohaa_lnxded +set sv_punkbuster 0 +set fs_basepath {{BASE_PATH}} +set fs_outputpath {{LOG_DIR}} +set dedicated 2 +set sv_maxclients {{SERVER_MAXCLIENTS}} +set net_ip 0.0.0.0 +set net_port {{SERVER_PORT}} +exec server.cfg", "config": { "files": "{\r\n \"main\/server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"seta sv_hostname\": \"seta sv_hostname \\\"{{env.SERVER_NAME}}\\\"\",\r\n \"seta sv_maxClients\": \"seta sv_maxClients \\\"{{env.SERVER_MAXCLIENTS}}\\\"\",\r\n \"seta rconPassword\": \"seta rconPassword \\\"{{env.RCON_PASSWORD}}\\\"\",\r\n \"seta g_password\": \"seta g_password \\\"{{env.SERVER_PASSWORD}}\\\"\",\r\n \"Map\": \"Map {{env.SERVER_MAP}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"------ Server Initialization Complete ------\",\r\n \"userInteraction\": []\r\n}", + "startup": "{\r\n \"done\": \"------ Server Initialization Complete ------\"\r\n}", "logs": "{}", "stop": "quit" }, "scripts": { "installation": { - "script": "apk --no-cache add curl\r\n\r\nif [[ ! -d \/mnt\/server\/ ]]; then\r\n mkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\nDOWNLOAD_URL=https:\/\/linuxgsm.download\/MedalofHonorAlliedAssault\/moh_revival_v1.12_RC3.5.1.tar.xz\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\necho -e \"running 'curl -sSL ${DOWNLOAD_LINK} -o mohaaserver.tar.xz'\" \r\ncurl -sSL ${DOWNLOAD_LINK} -o mohaaserver.tar.xz\r\n\r\necho -e \"Unpacking server files\"\r\ntar xvf mohaaserver.tar.xz\r\n\r\nrm mohaaserver.tar.xz\r\n\r\necho -e \"checking for default server.cfg\"\r\n[[ -f main\/server.cfg ]] || curl -sSL ${CONFIG_URL} -o main\/server.cfg\r\n\r\necho -e \"running 'chmod +x .\/mohaa_lnxded'\"\r\nchmod +x .\/mohaa_lnxded", - "container": "alpine:3.4", + "script": "#!\/bin\/ash\r\n\r\napk --no-cache add curl\r\n\r\nif [[ ! -d \/mnt\/server\/ ]]; then\r\n mkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\nDOWNLOAD_URL=http:\/\/linuxgsm.download\/MedalofHonorAlliedAssault\/moh_revival_v1.12_RC3.5.1.tar.xz\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\necho -e \"running 'curl -sSL ${DOWNLOAD_LINK} -o mohaaserver.tar.xz'\" \r\ncurl -sSL ${DOWNLOAD_LINK} -o mohaaserver.tar.xz\r\n\r\necho -e \"Unpacking server files\"\r\ntar xvf mohaaserver.tar.xz\r\n\r\nrm mohaaserver.tar.xz\r\n\r\necho -e \"checking for default server.cfg\"\r\n[[ -f main\/server.cfg ]] || curl -sSL ${CONFIG_URL} -o main\/server.cfg\r\n\r\necho -e \"running 'chmod +x .\/mohaa_lnxded'\"\r\nchmod +x .\/mohaa_lnxded\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "alpine:latest", "entrypoint": "ash" } }, "variables": [ { - "name": "SERVER_MAXCLIENTS", + "name": "Max clients", "description": "", "env_variable": "SERVER_MAXCLIENTS", "default_value": "14", "user_viewable": true, "user_editable": true, - "rules": "required|integer" + "rules": "required|integer", + "field_type": "text" }, { - "name": "CONFIG_URL", + "name": "Config URL", "description": "URL from where to get the initial server.cfg", "env_variable": "CONFIG_URL", "default_value": "https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/mohaa\/game_eggs\/mohaa\/server.cfg", - "user_viewable": true, - "user_editable": true, - "rules": "required|string" + "user_viewable": false, + "user_editable": false, + "rules": "required|string", + "field_type": "text" }, { - "name": "SERVER_NAME", + "name": "Server name", "description": "The name of the server", "env_variable": "SERVER_NAME", "default_value": "MOHAA Server running on Pterodactyl", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { - "name": "RCON_PASSWORD", + "name": "Rcon password", "description": "Admin password for rcon", "env_variable": "RCON_PASSWORD", - "default_value": "ADMINPASSWORD", + "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { - "name": "SERVER_MAP", - "description": "Select the map\r\n\r\nobj\/obj_team2\r\ndm\/mohdm7\r\ndm\/mohdm1\r\ndm\/mohdm3\r\ndm\/mohdm2\r\ndm\/mohdm6", + "name": "Server map", + "description": "Select the map", "env_variable": "SERVER_MAP", "default_value": "dm\/mohdm7", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string|in:obj\/obj_team2,dm\/mohdm7,dm\/mohdm1,dm\/mohdm3,dm\/mohdm2,dm\/mohdm6", + "field_type": "text" }, { - "name": "LOG_DIR", + "name": "Logs dir", "description": "", "env_variable": "LOG_DIR", "default_value": "\/home\/container\/Logs", "user_viewable": true, - "user_editable": true, - "rules": "required|string" + "user_editable": false, + "rules": "required|string", + "field_type": "text" }, { - "name": "BASE_PATH", + "name": "Base PATH", "description": "", "env_variable": "BASE_PATH", "default_value": "\/home\/container", "user_viewable": true, - "user_editable": true, - "rules": "required|string" + "user_editable": false, + "rules": "required|string", + "field_type": "text" }, { - "name": "SERVER_PASSWORD", + "name": "Server password", "description": "", "env_variable": "SERVER_PASSWORD", "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" } ] -} \ No newline at end of file +} From 4e708487158c53e2e0923af448c7e68079a07e93 Mon Sep 17 00:00:00 2001 From: HttpRafa Date: Tue, 1 Aug 2023 20:58:38 +0200 Subject: [PATCH 301/473] Updated java version used in the installation of modrinth packs from 8 to 17 --- game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json b/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json index 2938c759..e13e624b 100644 --- a/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json +++ b/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-06T12:29:46-07:00", + "exported_at": "2023-08-01T20:54:48+02:00", "name": "Modrinth Generic", "author": "contact@chromozone.dev", "description": "A generic egg for a Modrinth modpack.", @@ -30,7 +30,7 @@ "scripts": { "installation": { "script": "#!\/bin\/bash\r\n# shellcheck disable=SC2155\r\n#\r\n# Modrinth Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n: \"${SERVER_DIR:=\/mnt\/server}\"\r\n: \"${PROJECT_ID:=}\"\r\n: \"${VERSION_ID:=}\"\r\n\r\nif [[ ! -d $SERVER_DIR ]]; then\r\n mkdir -p \"$SERVER_DIR\"\r\nfi\r\n\r\nif ! cd \"$SERVER_DIR\"; then\r\n echo -e \"Failed to change directory to ${SERVER_DIR}\"\r\n exit 1\r\nfi\r\n\r\nfunction install_required {\r\n echo -e \"Installing required packages...\"\r\n\r\n echo -e \"\\tRunning apt update\"\r\n if ! apt update > \/dev\/null 2>&1; then\r\n echo -e \"\\tERROR: apt update failed!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tRunning apt install\"\r\n if ! apt install -y wget jq unzip dos2unix > \/dev\/null 2>&1; then\r\n echo -e \"\\tERROR: apt install failed!\"\r\n exit 1\r\n fi\r\n}\r\n\r\nMODRINTH_API_URL=\"https:\/\/api.modrinth.com\/v2\"\r\n\r\nfunction get_download {\r\n echo -e \"Retrieving Modrinth project information...\"\r\n local PROJECT_DATA=$(wget -q \"${MODRINTH_API_URL}\/project\/${PROJECT_ID}\" -O -)\r\n local PROJECT_TITLE=$(echo \"$PROJECT_DATA\" | jq -r '.title \/\/ empty')\r\n local PROJECT_SUPPORTED=$(echo \"$PROJECT_DATA\" | jq -r '.\"server_side\" \/\/ empty')\r\n\r\n if [[ -z \"${PROJECT_DATA}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve project data for project id '${PROJECT_ID}'\"\r\n exit 1\r\n fi\r\n\r\n if [[ \"${PROJECT_SUPPORTED}\" == \"unsupported\" ]]; then\r\n echo -e \"\\tWARNING: The project '${PROJECT_TITLE}' is listed as unsupported for server use. Continuing anyway...\"\r\n fi\r\n\r\n if [[ -z \"${VERSION_ID}\" || \"${VERSION_ID}\" == \"latest\" ]]; then\r\n echo -e \"\\tNo version ID specified, using latest version\"\r\n VERSION_ID=$(echo \"$PROJECT_DATA\" | jq -r '.versions[-1] \/\/ empty')\r\n else\r\n echo -e \"\\tChecking if provided version id '${VERSION_ID}' exists\"\r\n if [[ $(echo \"$PROJECT_DATA\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.versions[]? | select(. == $VERSION_ID)') != \"${VERSION_ID}\" ]]; then\r\n echo -e \"\\tERROR: Version id '${VERSION_ID}' not found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n fi\r\n\r\n if [[ -z \"${VERSION_ID}\" ]]; then\r\n echo -e \"\\tERROR: No version id found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n\r\n # get json data to work with\r\n echo -e \"\\tRetrieving version information for '${VERSION_ID}'\"\r\n local JSON_DATA=$(wget -q \"${MODRINTH_API_URL}\/version\/${VERSION_ID}\" -O -)\r\n\r\n if [[ -z \"${JSON_DATA}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve version data for version id '${VERSION_ID}'\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tParsing Modrinth pack download url\"\r\n\r\n local DOWNLOAD_URL=$(echo \"$JSON_DATA\" | jq -r '.files[]? | select(.primary == true) | .url')\r\n\r\n if [[ -z \"${DOWNLOAD_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for version ${VERSION_ID}\"\r\n exit 1\r\n fi\r\n\r\n ## download modpack files\r\n echo -e \"\\tDownloading ${DOWNLOAD_URL}\"\r\n if ! wget -q \"${DOWNLOAD_URL}\" -O server.zip; then\r\n echo -e \"\\tERROR: Failed to download modpack files!\"\r\n exit 1\r\n fi\r\n}\r\n\r\nfunction unpack_zip {\r\n unzip -o server.zip\r\n rm -rf server.zip\r\n}\r\n\r\nfunction json_download_mods {\r\n echo \"Downloading mods...\"\r\n\r\n local MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n jq -c '.files[]? | select(.env.server == \"required\") | {name: .path, url: .downloads[0]}' \"${MANIFEST}\" | while read -r mod; do\r\n local FILE_URL=$(echo \"${mod}\" | jq -r '.url \/\/ empty')\r\n local FILE_NAME=$(echo \"${mod}\" | jq -r '.name \/\/ empty')\r\n\r\n if [[ -z \"${FILE_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for mod '${mod}'\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading ${FILE_URL}\"\r\n \r\n if ! wget -q \"${FILE_URL}\" -P \"${SERVER_DIR}\/mods\"; then\r\n echo -e \"\\tERROR: Failed to download mod '${FILE_NAME}'\"\r\n exit 1\r\n fi\r\n done\r\n}\r\n\r\nfunction json_download_overrides {\r\n echo \"Copying overrides...\"\r\n if [[ -d \"${SERVER_DIR}\/overrides\" ]]; then\r\n echo -e \"\\tCopying shared overrides\"\r\n cp -r \"${SERVER_DIR}\/overrides\/\"* \"${SERVER_DIR}\"\r\n rm -r \"${SERVER_DIR}\/overrides\"\r\n fi\r\n\r\n if [[ -d \"${SERVER_DIR}\/server-overrides\" ]]; then\r\n echo -e \"\\tCopying server overrides\"\r\n cp -r \"${SERVER_DIR}\/server-overrides\/\"* \"${SERVER_DIR}\"\r\n rm -r \"${SERVER_DIR}\/server-overrides\"\r\n fi\r\n}\r\n\r\nFORGE_INSTALLER_URL=\"https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/\"\r\n\r\nfunction json_download_forge {\r\n echo \"Downloading Forge...\"\r\n\r\n local MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n local MC_VERSION=$(jq -r '.dependencies.minecraft \/\/ empty' \"${MANIFEST}\")\r\n local FORGE_VERSION=$(jq -r '.dependencies.forge \/\/ empty' \"${MANIFEST}\")\r\n\r\n if [[ -z \"${MC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Minecraft version found in manifest '${MANIFEST}'\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${FORGE_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Forge version found in manifest '${MANIFEST}'\"\r\n exit 1\r\n fi\r\n\r\n FORGE_VERSION=\"${MC_VERSION}-${FORGE_VERSION}\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" || \"${MC_VERSION}\" == \"1.8.9\" ]]; then\r\n FORGE_VERSION=\"${FORGE_VERSION}-${MC_VERSION}\"\r\n fi\r\n\r\n local FORGE_JAR=\"forge-${FORGE_VERSION}.jar\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" ]]; then\r\n FORGE_JAR=\"forge-${FORGE_VERSION}-universal.jar\"\r\n fi\r\n\r\n local FORGE_URL=\"${FORGE_INSTALLER_URL}${FORGE_VERSION}\/forge-${FORGE_VERSION}\"\r\n\r\n echo -e \"\\tUsing Forge ${FORGE_VERSION} from ${FORGE_URL}\"\r\n\r\n local FORGE_INSTALLER=\"${FORGE_URL}-installer.jar\"\r\n echo -e \"\\tDownloading Forge Installer ${FORGE_VERSION} from ${FORGE_INSTALLER}\"\r\n\r\n if ! wget -q -O forge-installer.jar \"${FORGE_INSTALLER}\"; then\r\n echo -e \"\\tERROR: Failed to download Forge Installer ${FORGE_VERSION}\"\r\n exit 1\r\n fi\r\n\r\n rm -rf libraries\/net\/minecraftforge\/forge\/\r\n rm -f unix_args.txt\r\n\r\n echo -e \"\\tInstalling Forge Server ${FORGE_VERSION}\"\r\n if ! java -jar forge-installer.jar --installServer > \/dev\/null 2>&1; then\r\n echo -e \"\\tERROR: Failed to install Forge Server ${FORGE_VERSION}\"\r\n exit 1\r\n fi\r\n\r\n if [[ $MC_VERSION =~ ^1\\.(17|18|19|20|21|22|23) || $FORGE_VERSION =~ ^1\\.(17|18|19|20|21|22|23) ]]; then\r\n echo -e \"\\tDetected Forge 1.17 or newer version. Setting up Forge Unix arguments\"\r\n ln -sf libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt unix_args.txt\r\n else\r\n mv \"$FORGE_JAR\" forge-server-launch.jar\r\n echo \"forge-server-launch.jar\" > \".serverjar\"\r\n fi\r\n\r\n rm -f forge-installer.jar\r\n}\r\n\r\nFABRIC_INSTALLER_URL=\"https:\/\/meta.fabricmc.net\/v2\/versions\/installer\"\r\n\r\nfunction json_download_fabric {\r\n echo \"Downloading Fabric...\"\r\n\r\n local MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n local MC_VERSION=$(jq -r '.dependencies.minecraft \/\/ empty' \"${MANIFEST}\")\r\n local FABRIC_VERSION=$(jq -r '.dependencies.\"fabric-loader\" \/\/ empty' \"${MANIFEST}\")\r\n\r\n if [[ -z \"${MC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Minecraft version found in manifest '${MANIFEST}'\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${FABRIC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric version found in manifest '${MANIFEST}'\"\r\n exit 1\r\n fi\r\n\r\n local INSTALLER_JSON=$(wget -q -O - ${FABRIC_INSTALLER_URL} )\r\n local INSTALLER_VERSION=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].version \/\/ empty')\r\n local INSTALLER_URL=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].url \/\/ empty')\r\n\r\n if [[ -z \"${INSTALLER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric installer version found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${INSTALLER_URL}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric installer url found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading Fabric Installer ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n\r\n if ! wget -q -O fabric-installer.jar \"${INSTALLER_URL}\"; then\r\n echo -e \"\\tERROR: Failed to download Fabric Installer ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Fabric Server ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n if ! java -jar fabric-installer.jar server -mcversion \"${MC_VERSION}\" -loader \"${FABRIC_VERSION}\" -downloadMinecraft; then\r\n echo -e \"\\tERROR: Failed to install Fabric Server ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo \"fabric-server-launch.jar\" > \".serverjar\"\r\n\r\n rm -f fabric-installer.jar\r\n}\r\n\r\nQUILT_INSTALLER_URL=\"https:\/\/meta.quiltmc.org\/v3\/versions\/installer\"\r\n\r\nfunction json_download_quilt {\r\n echo \"Downloading Quilt...\"\r\n\r\n local MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n local MC_VERSION=$(jq -r '.dependencies.minecraft \/\/ empty' \"${MANIFEST}\")\r\n local QUILT_VERSION=$(jq -r '.dependencies.\"quilt-loader\" \/\/ empty' \"${MANIFEST}\")\r\n\r\n if [[ -z \"${MC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Minecraft version found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${QUILT_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt version found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n local INSTALLER_JSON=$(wget -q -O - ${QUILT_INSTALLER_URL} )\r\n local INSTALLER_VERSION=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].version \/\/ empty')\r\n local INSTALLER_URL=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].url \/\/ empty')\r\n\r\n if [[ -z \"${INSTALLER_JSON}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve Quilt installer information from manifest!\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${INSTALLER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt installer version found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${INSTALLER_URL}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt installer URL found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading Quilt Installer ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n\r\n if ! wget -q -O quilt-installer.jar \"${INSTALLER_URL}\"; then\r\n echo -e \"\\tERROR: Failed to download Quilt installer ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Quilt Server ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n if ! java -jar quilt-installer.jar install server \"${MC_VERSION}\" \"${QUILT_VERSION}\" --download-server --install-dir=.\/; then\r\n echo -e \"\\tERROR: Failed to install Quilt Server ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo \"quilt-server-launch.jar\" > \".serverjar\"\r\n\r\n rm quilt-installer.jar\r\n}\r\n\r\ninstall_required\r\n\r\nif [[ -z \"${PROJECT_ID}\" ]]; then\r\n echo \"ERROR: You must specify a PROJECT_ID environment variable!\"\r\n exit 1\r\nfi\r\n\r\nif [[ ! \"${PROJECT_ID}\" = \"zip\" ]]; then\r\n\tget_download\r\n\tunpack_zip\r\nelse\r\n\tunpack_zip\r\nfi\r\n\r\nif [[ -f \"${SERVER_DIR}\/modrinth.index.json\" ]]; then\r\n echo \"Found modrinth.index.json, installing mods\"\r\n json_download_mods\r\n json_download_overrides\r\nfi\r\n\r\nif [[ -f \"${SERVER_DIR}\/modrinth.index.json\" ]]; then\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n if [[ $(jq -r '.dependencies.forge' \"${MANIFEST}\") != \"null\" ]]; then\r\n json_download_forge\r\n fi\r\n\r\n if [[ $(jq -r '.dependencies.\"fabric-loader\"' \"${MANIFEST}\") != \"null\" ]]; then\r\n json_download_fabric\r\n fi\r\n\r\n if [[ $(jq -r '.dependencies.\"quilt-loader\"' \"${MANIFEST}\") != \"null\" ]]; then\r\n json_download_quilt\r\n fi\r\nfi\r\n\r\necho -e \"\\nInstall completed succesfully, enjoy!\"", - "container": "openjdk:8-jdk-slim", + "container": "eclipse-temurin:17-jdk", "entrypoint": "bash" } }, From 612f17658da1ce4bfec77bc235fe17d32d9983c0 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Tue, 1 Aug 2023 14:09:18 -0700 Subject: [PATCH 302/473] [Ground Branch] Fix Boot Freeze & Mod Directory - Changes the default Docker image to use `wine_latest`. `wine_staging` is causing the server to freeze on boot, but it is left as an optional Docker image to easily switch back if desired. - Added `GroundBranch/Config/DefaultModding.ini` to Configuration Files to direct the server to an accessible Mod Path. - Only change in the installation script is the Egg's date. - Updated the README's "Modding" section with more accurate information. --- game_eggs/steamcmd_servers/ground_branch/README.md | 8 +------- .../ground_branch/egg-ground-branch.json | 9 +++++---- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/game_eggs/steamcmd_servers/ground_branch/README.md b/game_eggs/steamcmd_servers/ground_branch/README.md index 0a681074..40c95595 100644 --- a/game_eggs/steamcmd_servers/ground_branch/README.md +++ b/game_eggs/steamcmd_servers/ground_branch/README.md @@ -89,10 +89,4 @@ ___ ### 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. +At the time of writing this (2023/08/01), no workshop mods for Ground Branch exist. However, if they were to be introduced or you would like to install a mod, mods can be installed to `/home/container/steamapps/workshop/content/16900/`. The server should then stage them to `/home/container/GroundBranch/Mods` and show up as "Mod ID #" in the in-game modding menu. diff --git a/game_eggs/steamcmd_servers/ground_branch/egg-ground-branch.json b/game_eggs/steamcmd_servers/ground_branch/egg-ground-branch.json index f8534e13..d7c408fc 100644 --- a/game_eggs/steamcmd_servers/ground_branch/egg-ground-branch.json +++ b/game_eggs/steamcmd_servers/ground_branch/egg-ground-branch.json @@ -4,25 +4,26 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-25T02:52:19+00:00", + "exported_at": "2023-08-01T20:51:33+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" + "Wine [Latest]": "ghcr.io\/parkervcp\/yolks:wine_latest", + "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}", + "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 \"GroundBranch\/Config\/DefaultModding.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ModPath=\": \"ModPath=..\/steamapps\/workshop\/content\/16900\/\"\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\"", + "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\/08\/01\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" } From ab46b489faa9157df071e2aa97bd63de64e9f537 Mon Sep 17 00:00:00 2001 From: vp-en <67713433+vp-en@users.noreply.github.com> Date: Wed, 2 Aug 2023 16:28:31 +0200 Subject: [PATCH 303/473] Add PowerNukkitX to the readme The previous PR (https://github.com/parkervcp/eggs/pull/2354) forgot to edit the `README.md`. So here's a little fix for that. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3b9510fc..95ad3868 100644 --- a/README.md +++ b/README.md @@ -170,6 +170,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [LiteLoaderBDS](game_eggs/bedrock/LiteLoader-bedrock) * [Nukkit](game_eggs/minecraft/bedrock/nukkit) * [PocketMine MP](game_eggs/minecraft/bedrock/pocketmine_mp) + * [PowerNukkitX](game_eggs/minecraft/bedrock/PowerNukkitX) * [Java](game_eggs/minecraft/java) Servers for Java Minecraft * [CurseForge](game_eggs/minecraft/java/curseforge) From 424915300f447bb588dc6849323615dccd74a1a9 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Thu, 3 Aug 2023 09:43:05 +0200 Subject: [PATCH 304/473] updated unturned --- game_eggs/steamcmd_servers/unturned/README.md | 9 +- .../unturned/egg-unturned.json | 84 ++++++++++++------- 2 files changed, 59 insertions(+), 34 deletions(-) diff --git a/game_eggs/steamcmd_servers/unturned/README.md b/game_eggs/steamcmd_servers/unturned/README.md index 3376abb0..ad425f9b 100644 --- a/game_eggs/steamcmd_servers/unturned/README.md +++ b/game_eggs/steamcmd_servers/unturned/README.md @@ -7,12 +7,17 @@ You're one of the few not yet turned zombie. Keeping it that way will be a chall - Take a subtle approach sneaking around and making use of distractions. - Confront and learn to counter special abilities ranging from invisibility to fire breathing to lightning attacks. +## GSLT + +You can manually create GSLTs while logged in with your Steam account here: https://steamcommunity.com/dev/managegameservers + +Use Unturned's app ID 304930, and a memo to remind you which server the token is for. + ## Server Ports -Rocketmod requires 3 ports to run properly. +Unturned requires 2 ports to run properly. | Port | default | |---------|---------| | Game | 27015 | | Game +1 | 27016 | -| Game +2 | 27017 | diff --git a/game_eggs/steamcmd_servers/unturned/egg-unturned.json b/game_eggs/steamcmd_servers/unturned/egg-unturned.json index ac3293fa..bda91e0b 100644 --- a/game_eggs/steamcmd_servers/unturned/egg-unturned.json +++ b/game_eggs/steamcmd_servers/unturned/egg-unturned.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-07-02T17:36:50+02:00", + "exported_at": "2023-08-03T09:39:35+02:00", "name": "Unturned", "author": "parker@parkervcp.com", "description": "Vanilla Unturned with the included RockerMod.", @@ -15,7 +15,7 @@ "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}}", + "startup": ".\/Unturned_Headless.x86_64 -batchmode -nographics -bind 0.0.0.0 -port {{SERVER_PORT}} -GSLT {{GSLT}} -Name \"{{SRV_NAME}}\" -Password {{SRV_PW}} +InternetServer\/{{SRV_ID}}", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Loading level: 100%\"\r\n}", @@ -30,6 +30,56 @@ } }, "variables": [ + { + "name": "Server Name", + "description": "", + "env_variable": "SRV_NAME", + "default_value": "Pterodactyl hosted Server", + "user_viewable": true, + "user_editable": true, + "rules": "string|max:50", + "field_type": "text" + }, + { + "name": "Server Password", + "description": "", + "env_variable": "SRV_PW", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "GSLT", + "description": "", + "env_variable": "GSLT", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Server ID", + "description": "ID of the server for savegames", + "env_variable": "SRV_ID", + "default_value": "PterodactylUnturned", + "user_viewable": false, + "user_editable": false, + "rules": "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" + }, { "name": "Steam App ID", "description": "Steam App ID require for install and startup update", @@ -49,36 +99,6 @@ "user_editable": false, "rules": "required|string", "field_type": "text" - }, - { - "name": "Steam User", - "description": "Should be left blank for anon user", - "env_variable": "STEAM_USER", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string", - "field_type": "text" - }, - { - "name": "Steam Password", - "description": "", - "env_variable": "STEAM_PASS", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "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 d59fbda74db101a2ec2c2dad3dda9bacef66a047 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Fri, 4 Aug 2023 08:41:45 +0200 Subject: [PATCH 305/473] add version selection --- voice_servers/lavalink/egg-lavalink.json | 37 ++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/voice_servers/lavalink/egg-lavalink.json b/voice_servers/lavalink/egg-lavalink.json index 6ac3512e..7d68dc65 100644 --- a/voice_servers/lavalink/egg-lavalink.json +++ b/voice_servers/lavalink/egg-lavalink.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-07-04T22:10:59+02:00", + "exported_at": "2023-08-04T08:40:49+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", @@ -22,10 +22,41 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# NodeJS Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git curl\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\ncurl -L -o Lavalink.jar https:\/\/github.com\/freyacodes\/Lavalink\/releases\/latest\/download\/Lavalink.jar\r\n\r\ncurl -L -o application.yml https:\/\/raw.githubusercontent.com\/freyacodes\/Lavalink\/master\/LavalinkServer\/application.yml.example\r\n\r\necho -e \"install complete\"\r\nexit 0", + "script": "## this is a simple script to use the github API for release versions.\r\n## this requires the egg has a variable for GITHUB_PACKAGE, VERSION and MATCH (match is to match the filename in some way)\r\n## this supports using oauth\/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.)\r\n## if you are getting hit with GitHub API limit issues then you need to have the user and token set.\r\napt update\r\napt install -y curl jq git\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -z \"${GITHUB_USER}\" ] && [ -z \"${GITHUB_OAUTH_TOKEN}\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} '\r\nfi\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\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)\r\n fi\r\nfi\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -L -o Lavalink.jar ${DOWNLOAD_URL}\r\ncurl -L -o application.yml https:\/\/raw.githubusercontent.com\/freyacodes\/Lavalink\/master\/LavalinkServer\/application.yml.example\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Installation completed\"\r\necho \"-------------------------------------------------------\"", "container": "debian:bullseye-slim", "entrypoint": "bash" } }, - "variables": [] + "variables": [ + { + "name": "Version", + "description": "", + "env_variable": "VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "GITHUB_PACKAGE", + "description": "", + "env_variable": "GITHUB_PACKAGE", + "default_value": "lavalink-devs\/Lavalink", + "user_viewable": false, + "user_editable": false, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Match", + "description": "", + "env_variable": "MATCH", + "default_value": "Lavalink.jar", + "user_viewable": false, + "user_editable": false, + "rules": "required|string", + "field_type": "text" + } + ] } \ No newline at end of file From bf1451928c468c0cef0fc1094f2b0697043184d2 Mon Sep 17 00:00:00 2001 From: Jay <10658010+xXTheBigBearXx@users.noreply.github.com> Date: Sat, 5 Aug 2023 02:17:02 +0000 Subject: [PATCH 306/473] Update velocity.toml --- .../proxy/java/velocity/velocity.toml | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/game_eggs/minecraft/proxy/java/velocity/velocity.toml b/game_eggs/minecraft/proxy/java/velocity/velocity.toml index bb22e994..0dbe3049 100644 --- a/game_eggs/minecraft/proxy/java/velocity/velocity.toml +++ b/game_eggs/minecraft/proxy/java/velocity/velocity.toml @@ -1,12 +1,12 @@ # Config version. Do not change this -config-version = "2.5" +config-version = "2.6" # What port should the proxy be bound to? By default, we'll bind to all addresses on port 25577. bind = "0.0.0.0:25577" # What should be the MOTD? This gets displayed when the player adds your server to -# their server list. Legacy color codes and JSON are accepted. -motd = " add3A Velocity Server" +# their server list. Only MiniMessage format is accepted. +motd = "<#09add3>A Velocity Server" # What should we display for the maximum number of players? (Velocity does not support a cap # on the number of players online.) @@ -34,7 +34,7 @@ prevent-client-proxy-connections = false # unable to implement network level firewalling (on a shared host). # - "modern": Forward player IPs and UUIDs as part of the login process using # Velocity's native forwarding. Only applicable for Minecraft 1.13 or higher. -player-info-forwarding-mode = "legacy" +player-info-forwarding-mode = "NONE" # If you are using modern or BungeeGuard IP forwarding, configure a file that contains a unique secret here. # The file is expected to be UTF-8 encoded and not empty. @@ -42,7 +42,7 @@ forwarding-secret-file = "forwarding.secret" # Announce whether or not your server supports Forge. If you run a modded server, we # suggest turning this on. -# +# # If your network runs one modpack consistently, consider using ping-passthrough = "mods" # instead for a nicer display in the server list. announce-forge = false @@ -72,25 +72,25 @@ enable-player-address-logging = true [servers] # Configure your servers here. Each key represents the server's name, and the value # represents the IP address of the server to connect to. -lobby = "127.0.0.1:30066" -factions = "127.0.0.1:30067" -minigames = "127.0.0.1:30068" +lobby = "172.18.0.1:30066" +factions = "172.18.0.1:30067" +minigames = "172.18.0.1:30068" # In what order we should try servers when a player logs in or is kicked from a server. try = [ - "lobby" + "lobby" ] [forced-hosts] # Configure your forced hosts here. "lobby.example.com" = [ - "lobby" + "lobby" ] "factions.example.com" = [ - "factions" + "factions" ] "minigames.example.com" = [ - "minigames" + "minigames" ] [advanced] @@ -152,4 +152,4 @@ port = 25577 map = "Velocity" # Whether plugins should be shown in query response by default or not -show-plugins = false \ No newline at end of file +show-plugins = false From b841df834e9156976a4d44b16bc2b10638b50f53 Mon Sep 17 00:00:00 2001 From: Jay <10658010+xXTheBigBearXx@users.noreply.github.com> Date: Sat, 5 Aug 2023 02:26:37 +0000 Subject: [PATCH 307/473] Add files via upload Removes text in "Velocity Version Variable" referring to 1.1.x as dev builds --- game_eggs/minecraft/proxy/java/velocity/egg-velocity.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/minecraft/proxy/java/velocity/egg-velocity.json b/game_eggs/minecraft/proxy/java/velocity/egg-velocity.json index 544ca2b6..9a1eafc6 100644 --- a/game_eggs/minecraft/proxy/java/velocity/egg-velocity.json +++ b/game_eggs/minecraft/proxy/java/velocity/egg-velocity.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-04-03T16:55:25+02:00", + "exported_at": "2023-08-05T03:24:56+01:00", "name": "Velocity", "author": "parker@parkervcp.com", "description": "Velocity is a Minecraft server proxy with unparalleled server support, scalability, and flexibility.", @@ -37,7 +37,7 @@ "variables": [ { "name": "Velocity Version", - "description": "The Velocity Proxy version to download.\r\n\r\nSet to 'latest ' the download the last stable build.\r\nSet to '1.1.x-SNAPSHOT' to get the latest dev build.", + "description": "The Velocity Proxy version to download.\r\n\r\nSet to 'latest ' the download the last stable build.", "env_variable": "VELOCITY_VERSION", "default_value": "latest", "user_viewable": true, From 5211f38ae7f5daf0b0330a9d0d0831f9604e701d Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Sat, 5 Aug 2023 10:50:50 +0200 Subject: [PATCH 308/473] update redbot --- bots/discord/redbot/egg-red.json | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/bots/discord/redbot/egg-red.json b/bots/discord/redbot/egg-red.json index 9a8c1052..cc75b41e 100644 --- a/bots/discord/redbot/egg-red.json +++ b/bots/discord/redbot/egg-red.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-04T15:34:30-07:00", + "exported_at": "2023-08-05T10:50:21+02:00", "name": "Red", "author": "parker@parkervcp.com", "description": "A multifunction Discord bot \r\n\r\nhttps:\/\/github.com\/Cog-Creators\/Red-DiscordBot", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# red-discordbot install script\r\n## install deps\r\nmkdir -p \/usr\/share\/man\/man1\r\napt update\r\napt -y install git ca-certificates dnsutils iproute2 make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libgdbm-dev uuid-dev git openjdk-11-jre\r\n## config folder layouts\r\necho -e \"generating config folder layout\"\r\nmkdir -p \/mnt\/server\/.config\/{Red-DiscordBot,share}\/ \/mnt\/server\/.local\/share\/Red-DiscordBot\/data\/pterodactyl\/\r\ncd \/mnt\/server\/\r\nln -s .local\/share\/Red-DiscordBot\/data\/pterodactyl\/ .\/configs\r\n## install red\r\necho -e \"add container user to install\"\r\nln -s \/mnt\/server\/ \/home\/container\r\nuseradd -m -d \/home\/container container\r\nchown -R container \/mnt\/server\/\r\necho -e \"install red locally as user\"\r\nsu - container -c 'pip install -U Red-DiscordBot'\r\n## ensure the config is in place if it doesn't exist\r\nif [ ! -f \/mnt\/server\/.config\/Red-DiscordBot\/config.json ]; then\r\ncurl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/redbot\/config.json -o \/mnt\/server\/.config\/Red-DiscordBot\/config.json\r\nfi\r\necho -e \"install finished\"", + "script": "#!\/bin\/bash\r\n# red-discordbot install script\r\n\r\n## install deps\r\nmkdir -p \/usr\/share\/man\/man1\r\napt update\r\napt -y install git ca-certificates dnsutils iproute2 make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libgdbm-dev uuid-dev git openjdk-17-jre-headless\r\n\r\n## config folder layouts\r\necho -e \"generating config folder layout\"\r\nmkdir -p \/mnt\/server\/.config\/{Red-DiscordBot,share}\/ \/mnt\/server\/.local\/share\/Red-DiscordBot\/data\/pterodactyl\/\r\ncd \/mnt\/server\/\r\nln -s .local\/share\/Red-DiscordBot\/data\/pterodactyl\/ .\/configs\r\n\r\n## install red\r\necho -e \"add container user to install\"\r\nln -s \/mnt\/server\/ \/home\/container\r\nuseradd -m -d \/home\/container container\r\nchown -R container \/mnt\/server\/\r\necho -e \"install red locally as user\"\r\npip install --upgrade pip\r\nsu - container -c 'pip install -U pip wheel'\r\nsu - container -c 'pip install -U Red-DiscordBot'\r\n\r\n## ensure the config is in place if it doesn't exist\r\nif [ ! -f \/mnt\/server\/.config\/Red-DiscordBot\/config.json ]; then\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/redbot\/config.json -o \/mnt\/server\/.config\/Red-DiscordBot\/config.json\r\nfi\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Installation completed\"\r\necho \"-------------------------------------------------------\"", "container": "python:3.11-slim", "entrypoint": "bash" } @@ -47,6 +47,16 @@ "user_editable": true, "rules": "required|string", "field_type": "text" + }, + { + "name": "Owner", + "description": "Owner of the Bot to use special commands", + "env_variable": "OWNER", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:30", + "field_type": "text" } ] -} +} \ No newline at end of file From 03aa2eb403fe056d75ebbfabd002b845838c8bbd Mon Sep 17 00:00:00 2001 From: Jay <10658010+xXTheBigBearXx@users.noreply.github.com> Date: Sat, 5 Aug 2023 15:09:38 +0100 Subject: [PATCH 309/473] Revert IP Changes --- game_eggs/minecraft/proxy/java/velocity/velocity.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/minecraft/proxy/java/velocity/velocity.toml b/game_eggs/minecraft/proxy/java/velocity/velocity.toml index 0dbe3049..0f18208b 100644 --- a/game_eggs/minecraft/proxy/java/velocity/velocity.toml +++ b/game_eggs/minecraft/proxy/java/velocity/velocity.toml @@ -72,9 +72,9 @@ enable-player-address-logging = true [servers] # Configure your servers here. Each key represents the server's name, and the value # represents the IP address of the server to connect to. -lobby = "172.18.0.1:30066" -factions = "172.18.0.1:30067" -minigames = "172.18.0.1:30068" +lobby = "127.0.0.1:30066" +factions = "127.0.0.1:30067" +minigames = "127.0.0.1:30068" # In what order we should try servers when a player logs in or is kicked from a server. try = [ From 2d6c215de76dbfb3da90a6aba7f134628fa6bd78 Mon Sep 17 00:00:00 2001 From: TubaApollo <86665265+TubaApollo@users.noreply.github.com> Date: Sun, 6 Aug 2023 21:31:20 +0200 Subject: [PATCH 310/473] Update README.md --- bots/discord/README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bots/discord/README.md b/bots/discord/README.md index 2640948c..1793f497 100644 --- a/bots/discord/README.md +++ b/bots/discord/README.md @@ -27,6 +27,11 @@ The bot that runs as the fragforce `@Fragbot` offering looking-for-group service [jagrosh/MusicBot](https://github.com/jagrosh/MusicBot) A Discord music bot that's easy to set up and run yourself! +### [Muse](muse) + +[codetheweb/muse](https://github.com/codetheweb/muse) +🎧 a self-hosted midwestern Discord music bot that doesn't suck + ### [parkertron](parkertron) [parkervcp/parkertron](https://github.com/parkervcp/parkertron) From 3abb20e996fe62198929c41bee3127bb8d1fc579 Mon Sep 17 00:00:00 2001 From: TubaApollo <86665265+TubaApollo@users.noreply.github.com> Date: Sun, 6 Aug 2023 21:37:41 +0200 Subject: [PATCH 311/473] Muse music bot Added Egg for Muse music bot (discord) --- bots/discord/muse/README.md | 9 ++++ bots/discord/muse/egg-muse.json | 82 +++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 bots/discord/muse/README.md create mode 100644 bots/discord/muse/egg-muse.json diff --git a/bots/discord/muse/README.md b/bots/discord/muse/README.md new file mode 100644 index 00000000..0e784539 --- /dev/null +++ b/bots/discord/muse/README.md @@ -0,0 +1,9 @@ +# ATLBot + +## Their [Github](https://github.com/codetheweb/muse) + +Muse is a highly-opinionated midwestern self-hosted Discord music bot that doesn't suck. + +## Server Ports + +There are no ports required for the atl bot diff --git a/bots/discord/muse/egg-muse.json b/bots/discord/muse/egg-muse.json new file mode 100644 index 00000000..c6d7772c --- /dev/null +++ b/bots/discord/muse/egg-muse.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-08-06T19:26:29+00:00", + "name": "Muse", + "author": "hello@apollo.moe", + "description": "\ud83c\udfa7 a self-hosted midwestern Discord music bot that doesn't suck", + "features": null, + "docker_images": { + "ghcr.io\/software-noob\/pterodactyl-images:nodejs_16": "ghcr.io\/software-noob\/pterodactyl-images:nodejs_16" + }, + "file_denylist": [], + "startup": "npm start", + "config": { + "files": "{\r\n \".env\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"DISCORD_TOKEN\": \"DISCORD_TOKEN={{env.discord_token}}\",\r\n \"DATA_DIR\": \"DATA_DIR={{env.data_dir}}\",\r\n \"YOUTUBE_API_KEY\": \"YOUTUBE_API_KEY={{env.api_key}}\",\r\n \"SPOTIFY_CLIENT_ID\": \"SPOTIFY_CLIENT_ID={{env.client_id}}\",\r\n \"SPOTIFY_CLIENT_SECRET\": \"SPOTIFY_CLIENT_SECRET={{env.client_secret}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Running version \"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "apt-get update\r\napt-get install openssl git ffmpeg -y -qq\r\ncd \/mnt\/server\r\nif [[ -d .git\/ ]]; then\r\n git pull\r\nelse\r\n git clone https:\/\/github.com\/codetheweb\/muse.git .;\r\nfi;\r\ncp .env.example .env\r\nyarn install --frozen-lockfile", + "container": "node:lts-bullseye-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "TOKEN", + "description": "Discord Bot Token", + "env_variable": "discord_token", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Data directory", + "description": "Default: .\/data", + "env_variable": "data_dir", + "default_value": ".\/data", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "YouTube API Key", + "description": "You can get it here: https:\/\/console.developers.google.com\/", + "env_variable": "api_key", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Spotify Client ID", + "description": "You can get it here: https:\/\/developer.spotify.com\/dashboard\/applications", + "env_variable": "client_id", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Spotify Client Secret", + "description": "You can get it here: https:\/\/developer.spotify.com\/dashboard\/applications", + "env_variable": "client_secret", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + } + ] +} \ No newline at end of file From ac234e4cb4bfefa37a50e9938616523430356ce3 Mon Sep 17 00:00:00 2001 From: TubaApollo <86665265+TubaApollo@users.noreply.github.com> Date: Sun, 6 Aug 2023 21:47:27 +0200 Subject: [PATCH 312/473] Update README.md --- bots/discord/muse/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bots/discord/muse/README.md b/bots/discord/muse/README.md index 0e784539..80026370 100644 --- a/bots/discord/muse/README.md +++ b/bots/discord/muse/README.md @@ -6,4 +6,4 @@ Muse is a highly-opinionated midwestern self-hosted Discord music bot that doesn ## Server Ports -There are no ports required for the atl bot +There are no ports required for the Muse bot From dfea0391a542b9280f2970c5a32f17ff6286d078 Mon Sep 17 00:00:00 2001 From: TubaApollo <86665265+TubaApollo@users.noreply.github.com> Date: Sun, 6 Aug 2023 22:18:05 +0200 Subject: [PATCH 313/473] Fix See: https://github.com/TimeForANinja/node-ytsr/issues/180 --- bots/discord/muse/egg-muse.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bots/discord/muse/egg-muse.json b/bots/discord/muse/egg-muse.json index c6d7772c..e7801db1 100644 --- a/bots/discord/muse/egg-muse.json +++ b/bots/discord/muse/egg-muse.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-08-06T19:26:29+00:00", + "exported_at": "2023-08-06T20:16:08+00:00", "name": "Muse", "author": "hello@apollo.moe", "description": "\ud83c\udfa7 a self-hosted midwestern Discord music bot that doesn't suck", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "apt-get update\r\napt-get install openssl git ffmpeg -y -qq\r\ncd \/mnt\/server\r\nif [[ -d .git\/ ]]; then\r\n git pull\r\nelse\r\n git clone https:\/\/github.com\/codetheweb\/muse.git .;\r\nfi;\r\ncp .env.example .env\r\nyarn install --frozen-lockfile", + "script": "apt-get update\r\napt-get install openssl git ffmpeg -y -qq\r\ncd \/mnt\/server\r\nif [[ -d .git\/ ]]; then\r\n git pull\r\nelse\r\n git clone https:\/\/github.com\/codetheweb\/muse.git .;\r\nfi;\r\ncp .env.example .env\r\nyarn install --frozen-lockfile\r\nsed -i 's\/of filterWrapper[)]\/of filterWrapper|| [])\/g' \/mnt\/server\/node_modules\/ytsr\/lib\/utils.js", "container": "node:lts-bullseye-slim", "entrypoint": "bash" } From 91871ea5c5e4652544343310d0008a25701632f1 Mon Sep 17 00:00:00 2001 From: TubaApollo <86665265+TubaApollo@users.noreply.github.com> Date: Sun, 6 Aug 2023 22:23:49 +0200 Subject: [PATCH 314/473] Replaced Replaced --- bots/discord/muse/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bots/discord/muse/README.md b/bots/discord/muse/README.md index 80026370..e9fd5d4d 100644 --- a/bots/discord/muse/README.md +++ b/bots/discord/muse/README.md @@ -1,4 +1,4 @@ -# ATLBot +# Muse ## Their [Github](https://github.com/codetheweb/muse) From e98b8878a6021da1e5ba1b70d69c740fdf46ea11 Mon Sep 17 00:00:00 2001 From: TubaApollo <86665265+TubaApollo@users.noreply.github.com> Date: Mon, 7 Aug 2023 12:26:38 +0200 Subject: [PATCH 315/473] replace repo --- bots/discord/muse/egg-muse.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bots/discord/muse/egg-muse.json b/bots/discord/muse/egg-muse.json index e7801db1..f65302d8 100644 --- a/bots/discord/muse/egg-muse.json +++ b/bots/discord/muse/egg-muse.json @@ -4,13 +4,13 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-08-06T20:16:08+00:00", + "exported_at": "2023-08-07T10:22:41+00:00", "name": "Muse", "author": "hello@apollo.moe", "description": "\ud83c\udfa7 a self-hosted midwestern Discord music bot that doesn't suck", "features": null, "docker_images": { - "ghcr.io\/software-noob\/pterodactyl-images:nodejs_16": "ghcr.io\/software-noob\/pterodactyl-images:nodejs_16" + "ghcr.io\/parkervcp\/yolks:nodejs_16": "ghcr.io\/parkervcp\/yolks:nodejs_16" }, "file_denylist": [], "startup": "npm start", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "apt-get update\r\napt-get install openssl git ffmpeg -y -qq\r\ncd \/mnt\/server\r\nif [[ -d .git\/ ]]; then\r\n git pull\r\nelse\r\n git clone https:\/\/github.com\/codetheweb\/muse.git .;\r\nfi;\r\ncp .env.example .env\r\nyarn install --frozen-lockfile\r\nsed -i 's\/of filterWrapper[)]\/of filterWrapper|| [])\/g' \/mnt\/server\/node_modules\/ytsr\/lib\/utils.js", + "script": "apt-get update\r\napt-get install openssl git -y -qq\r\ncd \/mnt\/server\r\nif [[ -d .git\/ ]]; then\r\n git pull\r\nelse\r\n git clone https:\/\/github.com\/codetheweb\/muse.git .;\r\nfi;\r\ncp .env.example .env\r\nyarn install --frozen-lockfile\r\nsed -i 's\/of filterWrapper[)]\/of filterWrapper|| [])\/g' \/mnt\/server\/node_modules\/ytsr\/lib\/utils.js", "container": "node:lts-bullseye-slim", "entrypoint": "bash" } From d2ce5690cba4c90687851b9076eebe55b6ac50d4 Mon Sep 17 00:00:00 2001 From: TubaApollo <86665265+TubaApollo@users.noreply.github.com> Date: Tue, 8 Aug 2023 19:24:12 +0200 Subject: [PATCH 316/473] Updating Readme / Install Script Update --- bots/discord/muse/README.md | 26 ++++++++++++++++++++++++++ bots/discord/muse/egg-muse.json | 16 +++++++++++++--- 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/bots/discord/muse/README.md b/bots/discord/muse/README.md index e9fd5d4d..20c3dee7 100644 --- a/bots/discord/muse/README.md +++ b/bots/discord/muse/README.md @@ -1,3 +1,29 @@ +### Authors / Contributors + + + + + + + +
+ +
TubaApollo +
+
+ 💻 + 🔨 +
+ +
Red-Thirten +
+
+ 💻 + 💡 +
+ + + # Muse ## Their [Github](https://github.com/codetheweb/muse) diff --git a/bots/discord/muse/egg-muse.json b/bots/discord/muse/egg-muse.json index e7801db1..5ec059d9 100644 --- a/bots/discord/muse/egg-muse.json +++ b/bots/discord/muse/egg-muse.json @@ -4,13 +4,13 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-08-06T20:16:08+00:00", + "exported_at": "2023-08-08T17:23:08+00:00", "name": "Muse", "author": "hello@apollo.moe", "description": "\ud83c\udfa7 a self-hosted midwestern Discord music bot that doesn't suck", "features": null, "docker_images": { - "ghcr.io\/software-noob\/pterodactyl-images:nodejs_16": "ghcr.io\/software-noob\/pterodactyl-images:nodejs_16" + "ghcr.io\/parkervcp\/yolks:nodejs_16": "ghcr.io\/parkervcp\/yolks:nodejs_16" }, "file_denylist": [], "startup": "npm start", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "apt-get update\r\napt-get install openssl git ffmpeg -y -qq\r\ncd \/mnt\/server\r\nif [[ -d .git\/ ]]; then\r\n git pull\r\nelse\r\n git clone https:\/\/github.com\/codetheweb\/muse.git .;\r\nfi;\r\ncp .env.example .env\r\nyarn install --frozen-lockfile\r\nsed -i 's\/of filterWrapper[)]\/of filterWrapper|| [])\/g' \/mnt\/server\/node_modules\/ytsr\/lib\/utils.js", + "script": "## Credits: Red-Thirten (https:\/\/github.com\/lilkingjr1) for providing most of the installation script\r\napt-get update\r\napt-get install curl jq -y -qq\r\n\r\nGITHUB_PACKAGE=\"codetheweb\/muse\"\r\n\r\n# Find GitHub download URL for Muse for specified version\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\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) | .tarball_url')\r\n else\r\n echo -e \"Could not find version \\\"${VERSION}\\\" of Muse. Defaulting to latest release...\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\r\n fi\r\nfi\r\n\r\n# Download Muse from GitHub & Extract\r\ncd \/mnt\/server\r\necho -e \"Downloading Muse from GitHub...\"\r\ncurl -L ${DOWNLOAD_URL} -o muse.tar.gz\r\necho -e \"Extracting Muse from tarball...\"\r\ntar -xvzf muse.tar.gz --strip-components=1\r\nrm muse.tar.gz\r\n\r\n# Verify and clean up Muse installation\r\nif [ ! -f .env.example ]; then\r\n echo -e \"\\nFailed to download release: ${DOWNLOAD_URL}\\n\"\r\n exit 1\r\nfi\r\ncp .env.example .env\r\nrm -rf .dockerignore Dockerfile .gitignore .github\/\r\nyarn install --frozen-lockfile\r\nsed -i 's\/of filterWrapper[)]\/of filterWrapper|| [])\/g' \/mnt\/server\/node_modules\/ytsr\/lib\/utils.js\r\n\r\necho -e \"\\nMuse Successfully Installed!\"", "container": "node:lts-bullseye-slim", "entrypoint": "bash" } @@ -77,6 +77,16 @@ "user_editable": true, "rules": "required|string", "field_type": "text" + }, + { + "name": "Version", + "description": "Specify a version, for example: \"v2.4.1\"\r\nFor the latest version, type \"latest\"", + "env_variable": "VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" } ] } \ No newline at end of file From a99b4e861aa2a9af7d08804cb59d8832e9fd2691 Mon Sep 17 00:00:00 2001 From: TubaApollo <86665265+TubaApollo@users.noreply.github.com> Date: Tue, 8 Aug 2023 19:25:58 +0200 Subject: [PATCH 317/473] Updating install script --- bots/discord/muse/egg-muse.json | 92 +++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 bots/discord/muse/egg-muse.json diff --git a/bots/discord/muse/egg-muse.json b/bots/discord/muse/egg-muse.json new file mode 100644 index 00000000..0517e7d6 --- /dev/null +++ b/bots/discord/muse/egg-muse.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-08-08T17:25:35+00:00", + "name": "Muse", + "author": "hello@apollo.moe", + "description": "\ud83c\udfa7 a self-hosted midwestern Discord music bot that doesn't suck", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:nodejs_16": "ghcr.io\/parkervcp\/yolks:nodejs_16" + }, + "file_denylist": [], + "startup": "npm start", + "config": { + "files": "{\r\n \".env\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"DISCORD_TOKEN\": \"DISCORD_TOKEN={{env.discord_token}}\",\r\n \"DATA_DIR\": \"DATA_DIR={{env.data_dir}}\",\r\n \"YOUTUBE_API_KEY\": \"YOUTUBE_API_KEY={{env.api_key}}\",\r\n \"SPOTIFY_CLIENT_ID\": \"SPOTIFY_CLIENT_ID={{env.client_id}}\",\r\n \"SPOTIFY_CLIENT_SECRET\": \"SPOTIFY_CLIENT_SECRET={{env.client_secret}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Running version \"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "## Credits: Red-Thirten (https:\/\/github.com\/lilkingjr1) for providing most of the installation script\r\napt-get update\r\napt-get install curl jq -y -qq\r\n\r\nGITHUB_PACKAGE=\"codetheweb\/muse\"\r\n\r\n# Find GitHub download URL for Muse for specified version\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\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) | .tarball_url')\r\n else\r\n echo -e \"Could not find version \\\"${VERSION}\\\" of Muse. Defaulting to latest release...\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\r\n fi\r\nfi\r\n\r\n# Download Muse from GitHub & Extract\r\ncd \/mnt\/server\r\necho -e \"Downloading Muse from GitHub...\"\r\ncurl -L ${DOWNLOAD_URL} -o muse.tar.gz\r\necho -e \"Extracting Muse from tarball...\"\r\ntar -xvzf muse.tar.gz --strip-components=1\r\nrm muse.tar.gz\r\n\r\n# Verify and clean up Muse installation\r\nif [ ! -f .env.example ]; then\r\n echo -e \"\\nFailed to download release: ${DOWNLOAD_URL}\\n\"\r\n exit 1\r\nfi\r\ncp .env.example .env\r\nrm -rf .dockerignore Dockerfile .gitignore .github\/\r\nyarn install --frozen-lockfile\r\nsed -i 's\/of filterWrapper[)]\/of filterWrapper|| [])\/g' \/mnt\/server\/node_modules\/ytsr\/lib\/utils.js\r\n\r\necho -e \"\\nMuse Successfully Installed!\"", + "container": "node:lts-bullseye-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "TOKEN", + "description": "Discord Bot Token", + "env_variable": "discord_token", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Data directory", + "description": "Default: .\/data", + "env_variable": "data_dir", + "default_value": ".\/data", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "YouTube API Key", + "description": "You can get it here: https:\/\/console.developers.google.com\/", + "env_variable": "api_key", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Spotify Client ID", + "description": "You can get it here: https:\/\/developer.spotify.com\/dashboard\/applications", + "env_variable": "client_id", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Spotify Client Secret", + "description": "You can get it here: https:\/\/developer.spotify.com\/dashboard\/applications", + "env_variable": "client_secret", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Version", + "description": "Specify a version, for example: \"v2.4.1\"\r\nFor the latest version, type \"latest\"", + "env_variable": "VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + } + ] +} \ No newline at end of file From dd0727693baf748676dde0a5d328c317a9bfa91e Mon Sep 17 00:00:00 2001 From: TubaApollo <86665265+TubaApollo@users.noreply.github.com> Date: Tue, 8 Aug 2023 22:15:36 +0000 Subject: [PATCH 318/473] Update README.md --- bots/discord/muse/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bots/discord/muse/README.md b/bots/discord/muse/README.md index 20c3dee7..4c84437f 100644 --- a/bots/discord/muse/README.md +++ b/bots/discord/muse/README.md @@ -1,3 +1,5 @@ +# Muse + ### Authors / Contributors @@ -24,8 +26,6 @@ -# Muse - ## Their [Github](https://github.com/codetheweb/muse) Muse is a highly-opinionated midwestern self-hosted Discord music bot that doesn't suck. From f23b01f3849327f4d06f6197e57e68df4e9f1ff0 Mon Sep 17 00:00:00 2001 From: TubaApollo <86665265+TubaApollo@users.noreply.github.com> Date: Wed, 9 Aug 2023 20:04:25 +0000 Subject: [PATCH 319/473] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 95ad3868..1f7de48e 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Dynamica](/bots/discord/dynamica) Node JS * [fragbot](/bots/discord/fragbot) Golang * [JMusicBot](/bots/discord/jmusicbot) Java +* [Muse](/bots/discord/muse) Node JS * [parkertron](/bots/discord/parkertron) Golang * [pixel-bot](/bots/discord/pixelbot) Python * [Redbot](/bots/discord/redbot) Python From 6b98069d1a8f7c66e7ddb871ade007b2235188f0 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 10 Aug 2023 18:09:55 +0200 Subject: [PATCH 320/473] Update Vintage Story --- game_eggs/vintage_story/egg-vintage-story.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/game_eggs/vintage_story/egg-vintage-story.json b/game_eggs/vintage_story/egg-vintage-story.json index aad82472..d9ff2f7f 100644 --- a/game_eggs/vintage_story/egg-vintage-story.json +++ b/game_eggs/vintage_story/egg-vintage-story.json @@ -4,16 +4,16 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-09T19:41:11+01:00", + "exported_at": "2023-08-10T18:09:03+02:00", "name": "Vintage Story", "author": "mail@wuffy.eu", "description": "Vintage Story is an uncompromising wilderness survival sandbox game inspired by lovecraftian horror themes. Find yourself in a ruined world reclaimed by nature and permeated by unnerving temporal disturbances. Relive the advent of human civilization, or take your own path.", "features": null, "docker_images": { - "ghcr.io\/parkervcp\/yolks:mono_latest": "ghcr.io\/parkervcp\/yolks:mono_latest" + "Dotnet 7": "ghcr.io\/parkervcp\/yolks:dotnet_7" }, "file_denylist": [], - "startup": "mono VintagestoryServer.exe --dataPath .\/data --port={{SERVER_PORT}} --maxclients={{MAX_CLIENTS}} {{OPTIONS}}", + "startup": ".\/VintagestoryServer --dataPath .\/data --port={{SERVER_PORT}} --maxclients={{MAX_CLIENTS}} {{OPTIONS}}", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Dedicated Server now running on Port \"\r\n}", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Vintage Story Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt -y install curl jq\r\n\r\nBRANCH=\"${FILES_BRANCH}\"\r\n\r\n# Fetching latest stable server release\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n \"unstable\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/unstable.json\"\r\n ;;\r\n \"pre\")\r\n API_URL=\"http:\/\/api.vintagestory.at\/pre.json\"\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n API_URL=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n ;;\r\n esac\r\n DOWNLOAD_URL=$(curl -SsL \"$API_URL\" | jq -r 'if ([.[]] | .[0].server.urls.cdn) != null then [.[]] | .[0].server.urls.cdn else [.[]] | .[0].server.urls.local end');\r\n# Use specified server release\r\nelse\r\n case \"${BRANCH}\" in\r\n \"stable\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"unstable\")\r\n DOWNLOAD_URL=https:\/\/account.vintagestory.at\/files\/unstable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n \"pre\")\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/pre\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n *)\r\n echo \"Invalid stage; fallback to stable\"\r\n DOWNLOAD_URL=https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\r\n ;;\r\n esac\r\nfi\r\n\r\ncd \/mnt\/server\/ || exit\r\n\r\ncurl -o vs_server.tar.gz \"${DOWNLOAD_URL}\"\r\ntar -xzf vs_server.tar.gz\r\n\r\nrm vs_server.tar.gz\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n# Vintage Story Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt -y install curl jq\r\n\r\n#!\/bin\/bash\r\n\r\ndeclare -A API_URLS=(\r\n [\"stable\"]=\"http:\/\/api.vintagestory.at\/stable.json\"\r\n [\"unstable\"]=\"http:\/\/api.vintagestory.at\/unstable.json\"\r\n [\"pre\"]=\"http:\/\/api.vintagestory.at\/pre.json\"\r\n)\r\n\r\ndeclare -A DOWNLOAD_URLS=(\r\n [\"stable\"]=\"https:\/\/cdn.vintagestory.at\/gamefiles\/stable\/vs_server_${RELEASE_VERSION}.tar.gz\"\r\n [\"unstable\"]=\"https:\/\/account.vintagestory.at\/files\/unstable\/vs_server_${RELEASE_VERSION}.tar.gz\"\r\n [\"pre\"]=\"https:\/\/cdn.vintagestory.at\/gamefiles\/pre\/vs_server_${RELEASE_VERSION}.tar.gz\"\r\n)\r\n\r\nBRANCH=\"${FILES_BRANCH}\"\r\n\r\nif [ -z \"${RELEASE_VERSION}\" ] || [ \"${RELEASE_VERSION}\" == \"latest\" ]; then\r\n API_URL=\"${API_URLS[$BRANCH]}\"\r\n DOWNLOAD_URL=$(curl -SsL \"$API_URL\" | jq -r 'if ([.[]] | .[0].linuxserver.urls.cdn) != null then [.[]] | .[0].linuxserver.urls.cdn else [.[]] | .[0].linuxserver.urls.local end')\r\nelse\r\n API_URL=\"${API_URLS[$BRANCH]}\"\r\n DOWNLOAD_URL=\"${DOWNLOAD_URLS[$BRANCH]}\"\r\nfi\r\n\r\n# Fallback to stable API URL if the branch is not recognized\r\nif [ -z \"$API_URL\" ]; then\r\n echo \"Invalid stage; fallback to stable\"\r\n API_URL=\"${API_URLS[\"stable\"]}\"\r\nfi\r\n\r\necho \"API URL: $API_URL\"\r\necho \"Download URL: $DOWNLOAD_URL\"\r\n\r\n\r\ncd \/mnt\/server\/ || exit\r\n\r\ncurl -o vs_server.tar.gz \"${DOWNLOAD_URL}\"\r\ntar -xzf vs_server.tar.gz\r\n\r\nrm vs_server.tar.gz\r\nrm server.sh\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "debian:bullseye-slim", "entrypoint": "bash" } @@ -69,4 +69,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From b8adc9556e98650034bf20d5f57369a25e645546 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 10 Aug 2023 18:31:45 +0200 Subject: [PATCH 321/473] Update: Swords 'n Magic and Stuff --- .../egg-swords-n-magic-and-stuff.json | 18 +-- .../swords_'n_Magic_and_Stuff/wrapper | Bin 17784 -> 0 bytes .../swords_'n_Magic_and_Stuff/wrapper.c | 133 ------------------ 3 files changed, 4 insertions(+), 147 deletions(-) delete mode 100644 game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/wrapper delete mode 100644 game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/wrapper.c diff --git a/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/egg-swords-n-magic-and-stuff.json b/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/egg-swords-n-magic-and-stuff.json index f731ae45..0e9cd8f5 100644 --- a/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/egg-swords-n-magic-and-stuff.json +++ b/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/egg-swords-n-magic-and-stuff.json @@ -4,16 +4,16 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-06T10:38:52+02:00", + "exported_at": "2023-08-10T18:31:24+02:00", "name": "Swords 'n Magic and Stuff", "author": "josdekurk@gmail.com", "description": "Grab your friends and set out for adventure in a world of swords, magic, and stuff. Discover tons of cool loot, uncover hidden secrets, and meet new friends and foes along the way. Make your mark and find a place to call home in this cute, multiplayer, open world RPG", "features": null, "docker_images": { - "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + "Wine": "ghcr.io\/parkervcp\/yolks:wine_latest" }, "file_denylist": [], - "startup": ".\/wrapper \/usr\/bin\/wine \/home\/container\/SNM2020\/Binaries\/Win64\/SNMASServer-Win64-Shipping.exe -port={{SERVER_PORT}} -QueryPort={{QUERY_PORT}}", + "startup": "wine \/home\/container\/SNM2020\/Binaries\/Win64\/SNMASServer-Win64-Shipping.exe -port={{SERVER_PORT}} -QueryPort={{QUERY_PORT}} -log", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Succeeded to create Steam session with ID\"\r\n}", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## add below your custom commands if needed\r\nmkdir -p \/mnt\/server\/SNM2020\/Saved\/Config\/WindowsServer\/\r\n\r\nif [ ! -f \/mnt\/server\/SNM2020\/Saved\/Config\/WindowsServer\/Game.ini ]\r\nthen\r\n echo \"The config file does not yet exists, making a new one\"\r\n mv \/mnt\/server\/SNM2020\/Content\/Docs\/Dedicated-Server-Game.ini \/mnt\/server\/SNM2020\/Saved\/Config\/WindowsServer\/Game.ini\r\nelse\r\n echo \"Old config file found. Replacing it with a up to date one but a backup will be made\"\r\n mv \/mnt\/server\/SNM2020\/Saved\/Config\/WindowsServer\/Game.ini \/mnt\/server\/SNM2020\/Saved\/Config\/WindowsServer\/Game-$(date \"+%Y.%m.%d-%H.%M.%S\").ini.old\r\n mv \/mnt\/server\/SNM2020\/Content\/Docs\/Dedicated-Server-Game.ini \/mnt\/server\/SNM2020\/Saved\/Config\/WindowsServer\/Game.ini\r\nfi\r\n\r\nif [ ! -f \/mnt\/server\/wrapper ]\r\nthen\r\n echo \"The wrapper does not yet exists, download a new one\"\r\n curl -sSL -o \/mnt\/server\/wrapper \"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/swords_'n_Magic_and_Stuff\/wrapper\"\r\n chmod +x wrapper\r\nelse\r\n echo \"wrapper found. skipping\"\r\nfi\r\n\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# 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\nmkdir -p \/mnt\/server\/SNM2020\/Saved\/Config\/WindowsServer\/\r\n\r\nif [ ! -f \/mnt\/server\/SNM2020\/Saved\/Config\/WindowsServer\/Game.ini ]\r\nthen\r\n echo \"The config file does not yet exists, making a new one\"\r\n mv \/mnt\/server\/SNM2020\/Content\/Docs\/Dedicated-Server-Game.ini \/mnt\/server\/SNM2020\/Saved\/Config\/WindowsServer\/Game.ini\r\nelse\r\n echo \"Old config file found. Replacing it with a up to date one but a backup will be made\"\r\n mv \/mnt\/server\/SNM2020\/Saved\/Config\/WindowsServer\/Game.ini \/mnt\/server\/SNM2020\/Saved\/Config\/WindowsServer\/Game-$(date \"+%Y.%m.%d-%H.%M.%S\").ini.old\r\n mv \/mnt\/server\/SNM2020\/Content\/Docs\/Dedicated-Server-Game.ini \/mnt\/server\/SNM2020\/Saved\/Config\/WindowsServer\/Game.ini\r\nfi\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -157,16 +157,6 @@ "user_editable": true, "rules": "required|string|max:20", "field_type": "text" - }, - { - "name": "logs dir", - "description": "", - "env_variable": "LOGS_DIR", - "default_value": "\/home\/container\/SNM2020\/Saved\/Logs", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|", - "field_type": "text" } ] } \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/wrapper b/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/wrapper deleted file mode 100644 index dc959e19edd2d38aa7e0fd37c49ba270a18afaac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17784 zcmeHPeQ;dWb-$~{wlMZe_$vZCctbEX6s;r&TpMs%$y)oFk&R z4?$hy{ni49O%jo+M=w`sH+5520>sW3UXw@VMNq0zZ;g}IYTOMcDE-%*SRpp|D9@hRdwd+xAa*awar{l+TQtJr{1SRbk!K62( z^*HWKC&(crrW{X-3H@Htc1vkHDIqZ>SxTFKo(fZb!51VujdmzlFlD_jLy!FYtckVe*BfiJJ-CNCcnuCvPUwMNS>R4=wke+T%Fg~z|>0&kXZitCziZv zz0pVca_Rd3=anhAy#oFgaBmrTYR__ZZmocaD&SwNfZtaEPgKCyR=}UGfS(8M#ji9` z#LJ!64=do*p5^54uYgm#m6IQ+fZtdFud9IXu7FH z__g9XG44kOiN}Fq zbSf#jzt)fyE^qGLxxbB4zdkBQepPum~Oigc?vtm-kAszGFk% zT62Z3<@REBh3^hwZrHZb3|k4SCz4EAiESI#M&mJSTd*riMtb_TvaqGbgUrW!d0 z(9!;nMh81jc_quJim(g#kC5f@?U`>pi{Zm9{#Ik@>myf_-f1N+c>L$~+NV3iq@Eub z_iKF2uM`<)e*7MV(^%zJS$UkW;n&#koDH92!zXR{A{#zs!+8#-V(xD=m(qC2sll&u zG>y`=$jR$hIl?J|oR<4lj&Pn+2x<1yQ3%52d@VU4R{2$ia5X+F-fzRHjFaJ4Il?%0 zglzWHQQ1es6w?mB%96akg^<95HhiuUk;h&e?y=$hHk`&1P6K|GBm3M}2-)YSqw+`J za!LM={gTKy%u`u;JZQt`+wkXXIE|g04*OM(>Rren=nwpgA^dYHE00I~iXpr~W##cj zzhVf#PG#lsgkLd)U$3&&V>JTR2vj3bjllnd2pGfXYK@T@XL0{&>_3sJDU2DzuhgC@ zdS1BWT@)3Ty@zAnQa^IU_fmO&qJXsQr^M5gpC6O_Tg2B8e?s!F6Hm7&`6H5lnRuG= z^M@t>67e+E=MPH$uZX89KEF@$FAz`DOTJ(7-zA==^!$U8{}%BymFG80{%PWA3eWo` z|8?T&Rw&;r`9CC{Zh`V%$v;9oP3`%5$tQ@XDLpSFzl-=f;wLWySk^^6P2u?o$^Sm_ zGcT|b(tTw3l%|k>lLWJOyiVkn%SL9>IC=gaH@zC=QSoH0C<6LtH??WL!2Qn#T+ zUnHH}w;-8+4IR=L2}~HnC+6c^Z$+t*8O=S4h#MoFfM1?(tRAb|PjR=&&DC<-Ne=N# z$+E05-xxV0J<0ALBmc5@P<;Gzs=l=nhCdy?P zN6;YxQ*}?iL>OF0JwKrs6&=3}jZEO3;h}fLpjS&68M3;nX!TyQI;gD5HX5lN3B2=? zvhxP~Tn&NIzy%3pvt#EA1zCjAaCNMrcG%o6%JPWZAFgcg;T;0*fXOQ^av(qb# zk-4jHlSM{oj64DU6B=bG5`Tmm&?y@rK8#RvpwsHn$P$^1^H7-;&J`VxbSLQ}@@BdobDmjC?XHL`|J&_4q zkf-_7CkXZM&;^m6eVm4-+^bUQ9cl<6n*dI^;1v3m>i0FpHtU=+GWCccBz^&{4_pUd zJ0≤d7faL&uCv`pEFmG1p^@&`N&+6>B&r?_T%^(bgD;H)E+V?w1+Rjmi{uF6Hqv>~ z2)$*TeAjJc@126ixZ!%;KtIdW3*xpx10>_|Ab!0a~3btKi#wgi=A?S<* zP?Nku{+=AjuDO9uV+yS8E^dOz&QY!m?v1}L0j^991`$%^*Fec582F^&D zopCkfaZVFPw)2dU-AD~Pq5Huw;-PA2m-S8)=z_opXJ0#oLGN)gCt826BfI7=Z$@VO zhRoZoof|Trwr*?9T0{oDbC&b9V}_P) zRS(q&R3lK0Ks5r@2vj3bjlgG)0KLDU6i6iE2`|0EiNt!mc#UI)Qt`x~cUf|_*c#i| zZiTld_B0A#G~OeYC7YHdbq$;1UO?XNNYqMtyW{Ct*c*wJ=sRtbs5C1rbS8s6)}7vm zBQfjYM6kc#O31v~A58VCTrkm-^x_qjf+$0Xb~qYL$3ng2GFkBUC*mP1$%XV1i;5Vf z3Y&W4eO6N_9!uekla*-Nx@qHz<`vCNTZ4P7a8pMdmW6Av`z`~r^pIiBFA9ZcK=)1- z3dca701bma^iiSkkD%YZP$+L4(g|SVo&`#Ps6=+*F0RiPuz3;UAKPerW?r! z>9^zeBK#)*Ig#%D_#HxhE%Y>|)l+|{S8J@+W4rdzuf-G(4+@XRY`6cX?K|dYW53%iBEO zHctcO+dQ?>zxSZt06SC-C#(*|Mf~c4Q@)z25vWF>8i8sAsu8G0pc;W{1ga6JM&N%R z0shX6zboT=Z~AtP5?=49q;J0Q;!CC@`r{z}=7+yu<8Qxsjltjk@ONxWv_6-AdbtoM zsFv0qNc6&&Qch?1o33VEj%W5VeNH=ijpiFPwSUV*kX94IuLRVp7V8O};dK?gNT$T! zJQ>so)3zpDBkZ#-mmrXa!&FbXDqvvye`M1e90I6*7f{f z6aKEewBD7vAFR`KyQbZm?$Pvsrq62nyrxGrJ+0~6n*O_{ztnW5{^)IyrZ;Q4Qqy&s zZr8M1(>`CFP>TAEp_Jayws zM&6fTm!L00`TKe&?iM-jc(wvJzHsDzZ-dciX9(`^PJCwZx^Uv?Ji7ll@mj(C&WT?w zxIa7b*@FAM6USAi+r^2`5#F-+Tyd}@{-oy?p5p!yr=2>%@U zuH`QCr6i3LSBZ}bb~(z^xLkvHj+MmOqj7}7kti%A&*MB7{thxOe7QN{R|wTdX)S)P zGV$33ob2o?vA;*kPml8<;N|?UbYAo<$pz=XeIqg@shpj8Fhu?w)&nFqv<>%0cLpr&0f@N*vgJgEKTIM)+iGu?lh z-%3I(Jy~7>zZT$j2{Mr#s+}i$OJ)ZEh=RW~X z@}=$jBQ3vQH=2BQ3|lX2{HVSWlh2HSk4oHGCvoEy@N*ULOBL{X+%QqQl=`^@xOaNB zVkPi${mlS=V;T8S1^ILZ{6GaB;F%7um5{*_Iw8#keyi(Y{5P>pSji zYwa-aTeog&V4JzEwXGvSR^{%VP%*ITk2B5DJe12WC7WKz2+ zcYm4DV9H9SOnS>Fw`9=^L5GUoCFa0rGnoTWJHQ-}X<~yG_c+?QRdzd;+$dI}XWumD zD3aUO90To{lXWErz~GjEbZ$`N3i2G64p>_ z+lIzeut&(U-XONq`ND%S*i#gHr`3*AoYu zvIcOZYaBvx*=K!LufD2#!!W{}QdO6?(%?L52=+xns6L(|%W#hRz7K6Jd>CN*Fm99? z`Tl1Rt^YBl;vPsPUMDf-^}jBbvYaRSMf_+f!}`3QVtNw^*%HsE46Q`QuFvZ(rd}4* zv{b(xI9}1xbSo3D&zLUPI6tT0=K&fPn~HLxo$9`)mx#yKcSfAJFOgmUm)6)8n1Gnq*dY-BOH`M-SO>tLv*8evYP!q8}uQU1YHcV*$xfxlH z`_FUGB@x!==MCdc0Fjm}QarLgQ?)L=qA&bfv{}(JMNO4qJ*J-kw%5<=qBB~b{bVz& z$NaC5A*|@XUzLo1M*YhWr~0+HQpS<>f2)Y7j1H&NA%uADdrCqdTNK@)9j1B6hadaT o<1bww?7PxX#~rH`{bora*Uz%Fd@2!R diff --git a/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/wrapper.c b/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/wrapper.c deleted file mode 100644 index c38eadb5..00000000 --- a/game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff/wrapper.c +++ /dev/null @@ -1,133 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -void print_latest_log(const char* log_directory, off_t* last_pos, time_t* last_time) { - DIR *dir; - struct dirent *entry; - time_t latest_time = 0; - char latest_file[256]; - - dir = opendir(log_directory); - if (dir == NULL) { - printf("Error opening directory %s\n", log_directory); - return; - } - - while ((entry = readdir(dir)) != NULL) { - if (strstr(entry->d_name, "SnMDedSrv-") == entry->d_name && - strstr(entry->d_name, ".log") != NULL) { - char filename[256]; - sprintf(filename, "%s/%s", log_directory, entry->d_name); - struct stat file_stat; - stat(filename, &file_stat); - if (file_stat.st_mtime > latest_time) { - latest_time = file_stat.st_mtime; - strcpy(latest_file, filename); - } - } - } - - if (latest_time == 0) { - printf("No log files found in directory %s\n", log_directory); - return; - } - - if (latest_time <= *last_time) { - return; - } - - int fd = open(latest_file, O_RDONLY); - if (fd < 0) { - printf("Error opening file %s\n", latest_file); - return; - } - - // Move the file pointer to the last printed position - lseek(fd, *last_pos, SEEK_SET); - - char buffer[4096]; - int bytes_read; - int last_line_printed = 0; // Flag to check whether we have printed the last line - do { - bytes_read = read(fd, buffer, sizeof(buffer)); - if (bytes_read > 0) { - // Check if the last character is a newline - if (buffer[bytes_read - 1] == '\n') { - fwrite(buffer, 1, bytes_read, stdout); - fflush(stdout); - } else { - // If the last character is not a newline, add one - char* temp = (char*) malloc(bytes_read + 1); - memcpy(temp, buffer, bytes_read); - temp[bytes_read] = '\n'; - fwrite(temp, 1, bytes_read + 1, stdout); - fflush(stdout); - free(temp); - } - last_line_printed = (buffer[bytes_read - 1] == '\n'); - } - } while (bytes_read > 0); - - // If the last line was not printed, print it now - if (!last_line_printed) { - printf("\n"); - } - - // Remember the last position and time that was read - *last_pos = lseek(fd, 0, SEEK_CUR); - *last_time = latest_time; - - close(fd); -} - - - - -int main(int argc, char** argv) { - if (argc < 2) { - printf("Usage: winewrapper wine_path wine_args exe_path exe_args\n"); - return 0; - } - - char* wine_path = argv[1]; - - pid_t pid = fork(); - if (pid == 0) { - char** wine_argv = (char**) malloc(sizeof(char*) * (argc - 1)); - wine_argv[0] = wine_path; - for (int i = 2; i < argc; i++) { - wine_argv[i - 1] = argv[i]; - } - wine_argv[argc - 1] = NULL; - execv(wine_path, wine_argv); - printf("Error launching wine process\n"); - exit(1); - } else if (pid < 0) { - printf("Error forking process\n"); - exit(1); - } - - sleep(30); - - off_t last_pos = 0; - off_t last_size = 0; - char* log_directory = "/home/container/SNM2020/Saved/Logs"; - print_latest_log(log_directory, &last_pos, &last_size); - - - while (1) { - sleep(1); - print_latest_log(log_directory, &last_pos, &last_size); - } - - kill(pid, SIGTERM); - - return 0; -} \ No newline at end of file From 3d0013edc6efa1e75d68e7d3ac9fa2275acd0b9d Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Fri, 11 Aug 2023 21:41:18 +0200 Subject: [PATCH 322/473] update pixark --- .../pixark/egg-pix-a-r-k.json | 102 ++++++++++++++---- 1 file changed, 81 insertions(+), 21 deletions(-) diff --git a/game_eggs/steamcmd_servers/pixark/egg-pix-a-r-k.json b/game_eggs/steamcmd_servers/pixark/egg-pix-a-r-k.json index 9c93cc3d..60d943e5 100644 --- a/game_eggs/steamcmd_servers/pixark/egg-pix-a-r-k.json +++ b/game_eggs/steamcmd_servers/pixark/egg-pix-a-r-k.json @@ -1,30 +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-01-01T19:35:46+01:00", + "exported_at": "2023-08-11T21:40:04+02:00", "name": "PixARK", "author": "hello@venatus.digital", "description": "A simple Docker container with Wine to run PixARK using Pterodactyl Panel", "features": [ "steam_disk_space" ], - "images": [ - "quay.io\/parkervcp\/pterodactyl-images:ubuntu_wine-source" - ], - "startup": "wine64 .\/ShooterGame\/Binaries\/Win64\/PixARKServer.exe CubeWorld_Light?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SRV_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QPORT}}?RCONPort={{RCPORT}}?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?CULTUREFORCOOKING=en -NoBattlEye -CubePort={{CUBEPORT}} -cubeworld=world -nosteamclient -NoHangDetection -game -server -log", + "docker_images": { + "ghcr.io\/parkervcp\/yolks:wine_devel": "ghcr.io\/parkervcp\/yolks:wine_devel" + }, + "file_denylist": [], + "startup": "wine64 .\/ShooterGame\/Binaries\/Win64\/PixARKServer.exe \"CubeWorld_Light?listen?DelayRegisterServer=True?bRawSockets=True?SessionName=\"{{SRV_NAME}}\"?AltSaveDirectoryName=PteroPixArk?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?MaxPlayers={{MAX_PLAYERS}}?RCONEnabled=True?RCONPort={{RCPORT}}\" -Seed=12345 -OreSeed=1234 -ConfigsUseAltDir -server -gameplaylogging -log -CULTUREFORCOOKING=en -NoBattlEye -QueryPort={{QPORT}} -Port={{SERVER_PORT}} -CubePort={{CUBEPORT}} -cubeworld={{SRV_NAME}} -nosteamclient -NoHangDetection", "config": { "files": "{}", - "startup": "{\r\n \"done\": \"Full Startup:\",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": false,\r\n \"location\": \"Logs\/\"\r\n}", - "stop": "^C" + "startup": "{\r\n \"done\": \"Full Startup:\"\r\n}", + "logs": "{}", + "stop": "^^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\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 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\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} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +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 ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", - "container": "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#\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 1007 +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" } }, @@ -36,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", @@ -45,7 +47,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": "Maximum Players", @@ -54,7 +57,8 @@ "default_value": "10", "user_viewable": true, "user_editable": false, - "rules": "required|numeric|digits_between:1,4" + "rules": "required|numeric|digits_between:1,4", + "field_type": "text" }, { "name": "Query Port", @@ -63,7 +67,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|numeric|digits_between:1,5" + "rules": "required|numeric|digits_between:1,5", + "field_type": "text" }, { "name": "RCON Port", @@ -72,7 +77,8 @@ "default_value": "", "user_viewable": true, "user_editable": false, - "rules": "required|numeric|digits_between:1,5" + "rules": "required|numeric|digits_between:1,5", + "field_type": "text" }, { "name": "Cube Port", @@ -81,7 +87,8 @@ "default_value": "", "user_viewable": true, "user_editable": false, - "rules": "required|numeric|digits_between:1,5" + "rules": "required|numeric|digits_between:1,5", + "field_type": "text" }, { "name": "App ID", @@ -90,7 +97,8 @@ "default_value": "824360", "user_viewable": false, "user_editable": false, - "rules": "required|numeric" + "rules": "required|numeric", + "field_type": "text" }, { "name": "WINDOWS_INSTALL", @@ -99,7 +107,8 @@ "default_value": "1", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Server Name", @@ -108,7 +117,58 @@ "default_value": "PteroPixARKServer", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:30" + "rules": "required|string|max:30", + "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": "XVFB", + "description": "XVFB", + "env_variable": "XVFB", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "WINETRICKS_RUN", + "description": "", + "env_variable": "WINETRICKS_RUN", + "default_value": "vcrun2019 dotnet6", + "user_viewable": false, + "user_editable": false, + "rules": "required|string", + "field_type": "text" } ] -} +} \ No newline at end of file From c85a141eabf16e9d656cc1edd2a74b0b10a87dcf Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 13 Aug 2023 10:45:58 +0200 Subject: [PATCH 323/473] Generic nodejs: Add typescript support --- generic/nodejs/egg-node-js-generic.json | 30 ++++++++++++------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/generic/nodejs/egg-node-js-generic.json b/generic/nodejs/egg-node-js-generic.json index fab9c874..6f5ecec3 100644 --- a/generic/nodejs/egg-node-js-generic.json +++ b/generic/nodejs/egg-node-js-generic.json @@ -4,32 +4,32 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-19T17:43:09+02:00", + "exported_at": "2023-08-13T10:45:06+02:00", "name": "node.js generic", "author": "parker@parkervcp.com", "description": "a generic node.js egg\r\n\r\nThis will clone a git repo. it defaults to master if no branch is specified.\r\n\r\nInstalls the node_modules on install. If you set user_upload then I assume you know what you are doing.", "features": null, "docker_images": { - "ghcr.io\/parkervcp\/yolks:nodejs_19": "ghcr.io\/parkervcp\/yolks:nodejs_19", - "ghcr.io\/parkervcp\/yolks:nodejs_18": "ghcr.io\/parkervcp\/yolks:nodejs_18", - "ghcr.io\/parkervcp\/yolks:nodejs_17": "ghcr.io\/parkervcp\/yolks:nodejs_17", - "ghcr.io\/parkervcp\/yolks:nodejs_16": "ghcr.io\/parkervcp\/yolks:nodejs_16", - "ghcr.io\/parkervcp\/yolks:nodejs_15": "ghcr.io\/parkervcp\/yolks:nodejs_15", - "ghcr.io\/parkervcp\/yolks:nodejs_14": "ghcr.io\/parkervcp\/yolks:nodejs_14", - "ghcr.io\/parkervcp\/yolks:nodejs_12": "ghcr.io\/parkervcp\/yolks:nodejs_12" + "Nodejs 20": "ghcr.io\/parkervcp\/yolks:nodejs_20", + "Nodejs 19": "ghcr.io\/parkervcp\/yolks:nodejs_19", + "Nodejs 18": "ghcr.io\/parkervcp\/yolks:nodejs_18", + "Nodejs 17": "ghcr.io\/parkervcp\/yolks:nodejs_17", + "Nodejs 16": "ghcr.io\/parkervcp\/yolks:nodejs_16", + "Nodejs 14": "ghcr.io\/parkervcp\/yolks:nodejs_14", + "Nodejs 12": "ghcr.io\/parkervcp\/yolks:nodejs_12" }, "file_denylist": [], - "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install; fi; \/usr\/local\/bin\/node \/home\/container\/{{JS_FILE}}", + "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install; fi; if [[ \"${MAIN_FILE}\" == *.js ]]; then \/usr\/local\/bin\/node \"\/home\/container\/${MAIN_FILE}\"; else \/usr\/local\/bin\/ts-node \"${MAIN_FILE}\"; fi", "config": { "files": "{}", - "startup": "{\r\n \"done\": \"change this part\"\r\n}", + "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# NodeJS 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\necho -e \"updating npm. please wait...\"\r\nnpm install npm@latest -g\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 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\necho \"Installing nodejs packages\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0", - "container": "node:14-buster-slim", + "container": "node:14-bullseye-slim", "entrypoint": "bash" } }, @@ -75,9 +75,9 @@ "field_type": "text" }, { - "name": "JS file", - "description": "The file that starts the app", - "env_variable": "JS_FILE", + "name": "Main file", + "description": "The file that starts the app.\r\nCan be .js and .ts", + "env_variable": "MAIN_FILE", "default_value": "index.js", "user_viewable": true, "user_editable": true, @@ -125,4 +125,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 295e769a05a2ce4de21305d87b4c24b05091da54 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 13 Aug 2023 19:34:23 +0200 Subject: [PATCH 324/473] Generic nodejs: change installer image to nodejs 18 --- generic/nodejs/egg-node-js-generic.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/generic/nodejs/egg-node-js-generic.json b/generic/nodejs/egg-node-js-generic.json index 6f5ecec3..ae495ddb 100644 --- a/generic/nodejs/egg-node-js-generic.json +++ b/generic/nodejs/egg-node-js-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-08-13T10:45:06+02:00", + "exported_at": "2023-08-13T19:33:59+02:00", "name": "node.js generic", "author": "parker@parkervcp.com", "description": "a generic node.js egg\r\n\r\nThis will clone a git repo. it defaults to master if no branch is specified.\r\n\r\nInstalls the node_modules on install. If you set user_upload then I assume you know what you are doing.", @@ -29,7 +29,7 @@ "scripts": { "installation": { "script": "#!\/bin\/bash\r\n# NodeJS 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\necho -e \"updating npm. please wait...\"\r\nnpm install npm@latest -g\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 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\necho \"Installing nodejs packages\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\necho -e \"install complete\"\r\nexit 0", - "container": "node:14-bullseye-slim", + "container": "node:18-bullseye-slim", "entrypoint": "bash" } }, From 90d0642ed5c5623331ed8d004350d529a3d0c7f9 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 13 Aug 2023 19:49:51 +0200 Subject: [PATCH 325/473] Update egg-mohist.json --- .../minecraft/java/mohist/egg-mohist.json | 36 ++++++++----------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/game_eggs/minecraft/java/mohist/egg-mohist.json b/game_eggs/minecraft/java/mohist/egg-mohist.json index 3ffe1a49..d66da2c0 100644 --- a/game_eggs/minecraft/java/mohist/egg-mohist.json +++ b/game_eggs/minecraft/java/mohist/egg-mohist.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-17T23:20:29+01:00", + "exported_at": "2023-08-13T19:49:14+02:00", "name": "Mohist", "author": "alex.chang-lam@protonmail.com", "description": "Spigot fork with performance optimizations.", @@ -14,24 +14,24 @@ "pid_limit" ], "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 16": "ghcr.io\/pterodactyl\/yolks:java_16", + "Java 11": "ghcr.io\/pterodactyl\/yolks:java_11", + "Java 8": "ghcr.io\/pterodactyl\/yolks:java_8", "Java 18": "ghcr.io\/pterodactyl\/yolks:java_18" }, "file_denylist": [], - "startup": "java -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}} pause", + "startup": "java -Xms128M -XX:MaxRAMPercentage=95.0 -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}", "config": { "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\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}", + "startup": "{\r\n \"done\": \")! For help, type \"\r\n}", "logs": "{}", "stop": "stop" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Mohist Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl\r\n\r\n#Go into main direction\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\nif [ ! -z ${BUILD_VERSION} ]; then\r\n DOWNLOAD_LINK=https:\/\/mohistmc.com\/api\/${MC_VERSION}\/${BUILD_VERSION}\/download\r\nelse\r\n DOWNLOAD_LINK=https:\/\/mohistmc.com\/api\/${MC_VERSION}\/${BUILD_TYPE}\/download\r\nfi\r\n\r\n#Downloading jars\r\necho -e \"Download link is ${DOWNLOAD_LINK}\"\r\necho -e \"Downloading build version ${BUILD_VERSION}\"\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ]; then \r\n if curl --output \/dev\/null --silent --fail ${DOWNLOAD_LINK}; then\r\n echo -e \"Download link is valid.\"\r\n else\r\n echo -e \"Link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -s -o server.jar -sS ${DOWNLOAD_LINK}\r\n\r\n#Checking if downloaded jars exist\r\nif [ ! -f .\/server.jar ]; then\r\n echo \"!!! Error downloading build version ${BUILD_VERSION} !!!\"\r\n exit\r\nfi", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\n# Mohist Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt -y install curl\r\n\r\n#Go into main direction\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir -p \/mnt\/server\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\nif [ ! -z ${BUILD_VERSION} ]; then\r\n DOWNLOAD_LINK=https:\/\/mohistmc.com\/api\/${MC_VERSION}\/${BUILD_VERSION}\/download\r\nelse\r\n DOWNLOAD_LINK=https:\/\/mohistmc.com\/api\/${MC_VERSION}\/latest\/download\r\nfi\r\n\r\n#Downloading jars\r\necho -e \"Download link is ${DOWNLOAD_LINK}\"\r\necho -e \"Downloading build version ${BUILD_VERSION}\"\r\n\r\ncurl -sSL -o ${SERVER_JARFILE} ${DOWNLOAD_LINK}\r\n\r\n#Checking if downloaded jars exist\r\nif [ ! -f .\/${SERVER_JARFILE} ]; then\r\n echo \"!!! Error downloading build version ${BUILD_VERSION} !!!\"\r\n exit\r\nfi\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "debian:bullseye-slim", "entrypoint": "bash" } }, @@ -43,16 +43,18 @@ "default_value": "server.jar", "user_viewable": true, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Minecraft Version", "description": "The version of Minecraft to download.", "env_variable": "MC_VERSION", - "default_value": "1.16.5", + "default_value": "1.19.4", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Build Number", @@ -61,16 +63,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:20" - }, - { - "name": "Build Type", - "description": "The type of server jar to download from Mohist.\r\n\r\nValid types are \"recommended\" and \"latest\".", - "env_variable": "BUILD_TYPE", - "default_value": "latest", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|max:20" + "rules": "nullable|string|max:20", + "field_type": "text" } ] } From 4c2b97eacbe59d80952580eb3d85b14151fbdfb5 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Mon, 14 Aug 2023 15:15:28 +0200 Subject: [PATCH 326/473] Update sinusbot. --- bots/discord/sinusbot/egg-sinusbot.json | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/bots/discord/sinusbot/egg-sinusbot.json b/bots/discord/sinusbot/egg-sinusbot.json index 00e5f239..7ddb20f3 100644 --- a/bots/discord/sinusbot/egg-sinusbot.json +++ b/bots/discord/sinusbot/egg-sinusbot.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-11-04T12:46:17+01:00", + "exported_at": "2023-08-14T15:15:05+02:00", "name": "Sinusbot", "author": "support@pterodactyl.io", "description": "Musicbot for Discord and Teamspeak.", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Sinusbot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install ca-certificates bzip2 wget tar curl jq\r\napt -q clean all\r\n\r\n#Create needed directories\r\nmkdir -p \/mnt\/server\/TeamSpeak3-Client-linux_amd64\/plugins\r\nmkdir \/mnt\/server\/youtube-dlp\r\n\r\ncd \/mnt\/server\r\n\r\n#Download Sinusbot\r\n\r\nif [ \"${PRE_RELEASE}\" == \"1\" ]; then\r\necho \"pre\"\r\nDOWNLOAD_URL=$(curl -sSL https:\/\/forum.sinusbot.com\/threads\/upcoming-changes.8659\/ | grep -Eo \"(http|https):\/\/[a-zA-Z0-9.\/?=_-]*\" | sort -u | grep pre\/)\r\nwget -qO - ${DOWNLOAD_URL} | tar xj \r\nelse\r\necho \"release\"\r\nwget -qO - https:\/\/www.sinusbot.com\/dl\/sinusbot.current.tar.bz2 | tar xj\r\nfi\r\n\r\n#Download Latest TeamSpeak Client\r\nTS_VERSION=$(curl https:\/\/teamspeak.com\/versions\/client.json | jq -r '.linux.x86_64.version')\r\nTS_DL_LINK=$(curl https:\/\/teamspeak.com\/versions\/client.json | jq -r '.linux.x86_64.mirrors.\"teamspeak.com\"')\r\n\r\necho -e \"downloading teamspeak version ${TS_VERSION}\"\r\necho -e \"running 'wget ${TS_DL_LINK}'\"\r\n\r\nwget ${TS_DL_LINK}\r\n\r\n# Install TeamSpeak Client\r\nchmod 0755 TeamSpeak3-Client-linux_amd64*.run\r\n.\/TeamSpeak3-Client-linux_amd64*.run --tar xfv -C TeamSpeak3-Client-linux_amd64\r\n\r\n## Cleaning up \r\n\r\nrm TeamSpeak3-Client-linux_amd64*.run\r\n# Remove glx-integration lib\r\nrm TeamSpeak3-Client-linux_amd64\/xcbglintegrations\/libqxcb-glx-integration.so\r\n\r\n#Install Sinusbot\r\nchmod +x sinusbot\r\ncp config.ini.dist config.ini\r\nsed -i \"s|^TS3Path.*|TS3Path = \\\"\/home\/container\/TeamSpeak3-Client-linux_amd64\/ts3client_linux_amd64\\\"|g\" config.ini\r\necho 'YoutubeDLPath = \"\/home\/container\/youtube-dlp\/youtube-dlp\"' >> config.ini\r\n\r\n#Install Sinusbot plugin\r\ncp plugin\/libsoundbot_plugin.so TeamSpeak3-Client-linux_amd64\/plugins\r\n\r\n#Download youtube-dlp\r\ncd \/mnt\/server\/youtube-dlp\r\nwget https:\/\/github.com\/yt-dlp\/yt-dlp\/releases\/latest\/download\/yt-dlp -O youtube-dlp\r\nchmod a+rx youtube-dlp\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n# Sinusbot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install ca-certificates bzip2 wget tar curl jq\r\napt -q clean all\r\n\r\n#Create needed directories\r\nmkdir -p \/mnt\/server\/TeamSpeak3-Client-linux_amd64\/plugins\r\nmkdir \/mnt\/server\/youtube-dlp\r\n\r\ncd \/mnt\/server\r\n\r\n#Download Sinusbot\r\nwget -qO - https:\/\/www.sinusbot.com\/dl\/sinusbot.current.tar.bz2 | tar xj\r\n\r\n\r\n#Download Latest TeamSpeak Client\r\n#TS_VERSION=$(curl https:\/\/teamspeak.com\/versions\/client.json | jq -r '.linux.x86_64.version')\r\n#TS_DL_LINK=$(curl https:\/\/teamspeak.com\/versions\/client.json | jq -r '.linux.x86_64.mirrors.\"teamspeak.com\"')\r\n\r\n# Sinusbot is not yet updated...\r\nTS_VERSION=3.5.6\r\nTS_DL_LINK=https:\/\/files.teamspeak-services.com\/releases\/client\/3.5.6\/TeamSpeak3-Client-linux_amd64-3.5.6.run\r\n\r\necho -e \"downloading teamspeak version ${TS_VERSION}\"\r\necho -e \"running 'wget ${TS_DL_LINK}'\"\r\n\r\nwget ${TS_DL_LINK}\r\n\r\n# Install TeamSpeak Client\r\nchmod 0755 TeamSpeak3-Client-linux_amd64*.run\r\n.\/TeamSpeak3-Client-linux_amd64*.run --tar xfv -C TeamSpeak3-Client-linux_amd64\r\n\r\n## Cleaning up \r\n\r\nrm TeamSpeak3-Client-linux_amd64*.run\r\n# Remove glx-integration lib\r\nrm TeamSpeak3-Client-linux_amd64\/xcbglintegrations\/libqxcb-glx-integration.so\r\n\r\n#Install Sinusbot\r\nchmod +x sinusbot\r\ncp config.ini.dist config.ini\r\nsed -i \"s|^TS3Path.*|TS3Path = \\\"\/home\/container\/TeamSpeak3-Client-linux_amd64\/ts3client_linux_amd64\\\"|g\" config.ini\r\necho 'YoutubeDLPath = \"\/home\/container\/youtube-dlp\/youtube-dlp\"' >> config.ini\r\n\r\n#Install Sinusbot plugin\r\ncp plugin\/libsoundbot_plugin.so TeamSpeak3-Client-linux_amd64\/plugins\r\n\r\n#Download youtube-dlp\r\ncd \/mnt\/server\/youtube-dlp\r\nwget https:\/\/github.com\/yt-dlp\/yt-dlp\/releases\/latest\/download\/yt-dlp -O youtube-dlp\r\nchmod a+rx youtube-dlp\r\n\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "debian:bullseye-slim", "entrypoint": "bash" } @@ -37,16 +37,6 @@ "user_editable": true, "rules": "required|string|max:20", "field_type": "text" - }, - { - "name": "Pre release", - "description": "Download the pre-release version?", - "env_variable": "PRE_RELEASE", - "default_value": "0", - "user_viewable": true, - "user_editable": true, - "rules": "required|boolean", - "field_type": "text" } ] } From a2f29cd3b73263dca35cdcfee460646031a1f44a Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 17 Aug 2023 18:58:24 +0200 Subject: [PATCH 327/473] Update: Conan Exiles --- .../steamcmd_servers/conan_exiles/README.md | 15 +++- .../conan_exiles/egg-conan-exiles.json | 80 ++++++++++++------- 2 files changed, 62 insertions(+), 33 deletions(-) diff --git a/game_eggs/steamcmd_servers/conan_exiles/README.md b/game_eggs/steamcmd_servers/conan_exiles/README.md index d0236fee..10ab080f 100644 --- a/game_eggs/steamcmd_servers/conan_exiles/README.md +++ b/game_eggs/steamcmd_servers/conan_exiles/README.md @@ -14,8 +14,17 @@ Ports required to run the server in a table format. | Port | default | |---------|---------| -| Game | 7777 | -| UDP Query | 7778 | -| Steam Query | 27015 | +| Game | 7777 | +| Game +1 | 7778 | +| UDP Server query| 27015 | +| RCON| 25575 | + + +## Mods + +If you want mods download you have to allocated 1 extra port and manualy set Engine.ini. + +See: [Here](https://www.conanexiles.com/dedicated-servers/) + ## More information can be found [here](https://forums.funcom.com/t/conan-exiles-dedicated-server-app-latest-version-1-0-21/21699) diff --git a/game_eggs/steamcmd_servers/conan_exiles/egg-conan-exiles.json b/game_eggs/steamcmd_servers/conan_exiles/egg-conan-exiles.json index 3b043f51..84fa01b2 100644 --- a/game_eggs/steamcmd_servers/conan_exiles/egg-conan-exiles.json +++ b/game_eggs/steamcmd_servers/conan_exiles/egg-conan-exiles.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-10-23T13:08:22+02:00", + "exported_at": "2023-08-17T16:55:04+02:00", "name": "Conan Exiles", "author": "brycea@terrahost.cloud", "description": "Conan Exiles is an open-world survival game set in the brutal lands of Conan the Barbarian. Survive in a savage world, build your kingdom, and dominate your enemies in brutal combat and epic warfare.", @@ -12,15 +12,15 @@ "steam_disk_space" ], "docker_images": { - "Wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + "ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest" }, "file_denylist": [], - "startup": "export WINEDEBUG=-all; xvfb-run --auto-servernum wine \/home\/container\/ConanSandboxServer.exe ConanSandbox?listen?PVPEnabled={{PVP}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}} -ServerName=\"{{SRV_NAME}}\" -ServerPassword={{SRV_PW}} -console -log", + "startup": "xvfb-run --auto-servernum wine \/home\/container\/ConanSandbox\/Binaries\/Win64\/ConanSandboxServer-Win64-Shipping.exe -Port={{SERVER_PORT}} -QueryPort={{QUERY_PORT}} -RconPort={{RCON_PORT}} -ServerName=\"{{SRV_NAME}}\" -ServerPassword=\"{{SRV_PW}}\" -console -log", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Started SourceServerQueries\"\r\n}", "logs": "{}", - "stop": "^C" + "stop": "^^C" }, "scripts": { "installation": { @@ -31,33 +31,13 @@ }, "variables": [ { - "name": "Game ID", + "name": "App id", "description": "The ID corresponding to the game to download.", "env_variable": "SRCDS_APPID", "default_value": "443030", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:7", - "field_type": "text" - }, - { - "name": "XVFB Enable", - "description": "MUST BE 1", - "env_variable": "XVFB", - "default_value": "1", - "user_viewable": false, - "user_editable": false, - "rules": "required|numeric|min:0|max:1", - "field_type": "text" - }, - { - "name": "Windows install variable", - "description": "Required for windows applications to install with steam.\r\n\r\n1 to enable auto-updates", - "env_variable": "WINDOWS_INSTALL", - "default_value": "1", - "user_viewable": false, - "user_editable": false, - "rules": "required|boolean", + "rules": "required|string|in:443030", "field_type": "text" }, { @@ -101,14 +81,54 @@ "field_type": "text" }, { - "name": "PvP Enabled", + "name": "WINEDEBUG", "description": "", - "env_variable": "PVP", + "env_variable": "WINEDEBUG", + "default_value": "-all", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|", + "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": "vcrun2013 vcrun2015 corefonts", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|", + "field_type": "text" + }, + { + "name": "Windows", + "description": "", + "env_variable": "WINDOWS_INSTALL", "default_value": "1", - "user_viewable": true, - "user_editable": true, + "user_viewable": false, + "user_editable": false, "rules": "required|boolean", "field_type": "text" + }, + { + "name": "Rcon port", + "description": "Remote administrative access", + "env_variable": "RCON_PORT", + "default_value": "25575", + "user_viewable": true, + "user_editable": false, + "rules": "required|numeric", + "field_type": "text" } ] } \ No newline at end of file From 78f4e8f36b63559c8ad0ed1b7268106c433e3178 Mon Sep 17 00:00:00 2001 From: Loki <59907407+Loki-101@users.noreply.github.com> Date: Thu, 17 Aug 2023 18:38:17 -0700 Subject: [PATCH 328/473] Fix error in startup command Changed ``if [[ "${MAIN_FILE}" == *.js ]]`` To ``if [[ "${MAIN_FILE}" == "*.js" ]]`` The *.js without quotes compared MAIN_FILE to all files in the current directory that end with .js, resulting in errors like: ```bash :/home/container$ if [[ -d .git ]] && [[ ${AUTO_UPDATE} == "1" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then /usr/local/bin/npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then /usr/local/bin/npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f /home/container/package.json ]; then /usr/local/bin/npm install; fi; if [[ "${MAIN_FILE}" == start.js test.js ]]; then /usr/local/bin/node "/home/container/${MAIN_FILE}"; else /usr/local/bin/ts-node "${MAIN_FILE}"; fi /entrypoint.sh: eval: line 16: syntax error in conditional expression /entrypoint.sh: eval: line 16: syntax error near `test.js' /entrypoint.sh: eval: line 16: `if [[ -d .git ]] && [[ ${AUTO_UPDATE} == "1" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then /usr/local/bin/npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then /usr/local/bin/npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f /home/container/package.json ]; then /usr/local/bin/npm install; fi; if [[ "${MAIN_FILE}" == start.js test.js ]]; then /usr/local/bin/node "/home/container/${MAIN_FILE}"; else /usr/local/bin/ts-node "${MAIN_FILE}"; fi' ``` because it's interpreted as ``if [[ "${MAIN_FILE}" == start.js test.js ]];`` --- generic/nodejs/egg-node-js-generic.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/generic/nodejs/egg-node-js-generic.json b/generic/nodejs/egg-node-js-generic.json index ae495ddb..8cc30526 100644 --- a/generic/nodejs/egg-node-js-generic.json +++ b/generic/nodejs/egg-node-js-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-08-13T19:33:59+02:00", + "exported_at": "2023-08-17T18:34:59-07:00", "name": "node.js generic", "author": "parker@parkervcp.com", "description": "a generic node.js egg\r\n\r\nThis will clone a git repo. it defaults to master if no branch is specified.\r\n\r\nInstalls the node_modules on install. If you set user_upload then I assume you know what you are doing.", @@ -19,7 +19,7 @@ "Nodejs 12": "ghcr.io\/parkervcp\/yolks:nodejs_12" }, "file_denylist": [], - "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install; fi; if [[ \"${MAIN_FILE}\" == *.js ]]; then \/usr\/local\/bin\/node \"\/home\/container\/${MAIN_FILE}\"; else \/usr\/local\/bin\/ts-node \"${MAIN_FILE}\"; fi", + "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install; fi; if [[ \"${MAIN_FILE}\" == \"*.js\" ]]; then \/usr\/local\/bin\/node \"\/home\/container\/${MAIN_FILE}\"; else \/usr\/local\/bin\/ts-node \"${MAIN_FILE}\"; fi", "config": { "files": "{}", "startup": "{\r\n \"done\": [\r\n \"change this text 1\",\r\n \"change this text 2\"\r\n ]\r\n}", @@ -74,16 +74,6 @@ "rules": "required|boolean", "field_type": "text" }, - { - "name": "Main file", - "description": "The file that starts the app.\r\nCan be .js and .ts", - "env_variable": "MAIN_FILE", - "default_value": "index.js", - "user_viewable": true, - "user_editable": true, - "rules": "required|string", - "field_type": "text" - }, { "name": "Additional Node packages", "description": "Install additional node packages.\r\n\r\nUse spaces to separate.", @@ -123,6 +113,16 @@ "user_editable": true, "rules": "nullable|string", "field_type": "text" + }, + { + "name": "Main file", + "description": "The file that starts the app.\r\nCan be .js and .ts", + "env_variable": "MAIN_FILE", + "default_value": "index.js", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" } ] } From 4dc87d6044f0eda9957ac76c7e908361de4bd056 Mon Sep 17 00:00:00 2001 From: diedyesterday <81169193+diedyesterdaywashere@users.noreply.github.com> Date: Fri, 18 Aug 2023 18:05:58 +0300 Subject: [PATCH 329/473] Update the egg to run dynamica-v2 (#2435) * Update the egg to run dynamica-v2 --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- bots/discord/dynamica/README.md | 7 ++- bots/discord/dynamica/egg-dynamica.json | 77 +++++++++++++++++++------ 2 files changed, 65 insertions(+), 19 deletions(-) diff --git a/bots/discord/dynamica/README.md b/bots/discord/dynamica/README.md index ef2e45e4..377918ac 100644 --- a/bots/discord/dynamica/README.md +++ b/bots/discord/dynamica/README.md @@ -1,5 +1,8 @@ # Dynamica -### Their [Github](https://github.com/dynamicabot/dynamica) +## Their [Github](https://github.com/dynamicabot/dynamica-v2) -This is a discord bot for dynamically managing voice channels. +An easy-to-use dynamic voice channel bot. + +## Port +You will manual have to change the web port in the src/main.ts on line 24. \ No newline at end of file diff --git a/bots/discord/dynamica/egg-dynamica.json b/bots/discord/dynamica/egg-dynamica.json index 185beb40..063b1bdb 100644 --- a/bots/discord/dynamica/egg-dynamica.json +++ b/bots/discord/dynamica/egg-dynamica.json @@ -1,29 +1,29 @@ { "_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-12-13T10:34:52+11:00", + "exported_at": "2023-08-18T17:01:43+02:00", "name": "Dynamica", "author": "sebastian.pietschner@gmail.com", - "description": "The dynamica discord bot", + "description": "An easy-to-use dynamic voice channel bot.", "features": null, - "images": [ - "ghcr.io\/parkervcp\/yolks:nodejs_16" - ], + "docker_images": { + "Nodejs 18": "ghcr.io\/parkervcp\/yolks:nodejs_18" + }, "file_denylist": [], - "startup": "yarn deploy && yarn prisma migrate deploy && yarn start", + "startup": "npx prisma migrate deploy && yarn start", "config": { "files": "{}", - "startup": "{\r\n \"done\": \"Ready! Logged in as \"\r\n}", + "startup": "{\r\n \"done\": \"Bot logged in as \"\r\n}", "logs": "{}", - "stop": "^C" + "stop": "^^C" }, "scripts": { "installation": { - "script": "apt-get update\r\napt-get install openssl git -y -qq\r\ncd \/mnt\/server\r\nif [[ -d .git\/ ]]; then\r\n git pull\r\nelse\r\n git clone https:\/\/github.com\/dynamicabot\/dynamica.git .;\r\nfi;\r\nyarn install --frozen-lockfile", - "container": "node:lts-buster-slim", + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt -y install tar curl jq git\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nGITHUB_PACKAGE=\"DynamicaBot\/Dynamica-V2\"\r\n\r\n# Find GitHub download URL for Muse for specified version\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\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) | .tarball_url')\r\n else\r\n echo -e \"Could not find version \\\"${VERSION}\\\" of Muse. Defaulting to latest release...\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\r\n fi\r\nfi\r\n\r\ncurl -sSL -o dynamica.tar.gz ${DOWNLOAD_URL}\r\ntar xvf dynamica.tar.gz --strip-components=1\r\nrm dynamica.tar.gz\r\n\r\n#curl -sSL -o tsconfig.json https:\/\/pteropaste.com\/xqhjja443pbm\r\n\r\nyarn add tsup --dev\r\nyarn install --frozen-lockfile\r\n\r\nyarn generate\r\nyarn build\r\n\r\nrm -rf .github\/ .vscode\/ Dockerfile partial.Dockerfile entrypoint.sh dynamica-egg.json\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "node:18-bullseye-slim", "entrypoint": "bash" } }, @@ -35,7 +35,8 @@ "default_value": "file:\/home\/container\/dynamica\/db.sqlite", "user_viewable": true, "user_editable": false, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { "name": "Token", @@ -44,16 +45,58 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { - "name": "Client ID", - "description": "The client ID of your discord bot.", - "env_variable": "CLIENT_ID", + "name": "Guild ID", + "description": "Add only if using the bot in a single guild.", + "env_variable": "GUILD_ID", "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|string|size:18" + "rules": "string|nullable", + "field_type": "text" + }, + { + "name": "Sentry DSN", + "description": "The DSN for Sentry.", + "env_variable": "SENTRY_DSN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "string|nullable", + "field_type": "text" + }, + { + "name": "MQTT URL", + "description": "The URL for the MQTT broker.", + "env_variable": "MQTT_URL", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "string|nullable", + "field_type": "text" + }, + { + "name": "MQTT Username", + "description": "The username for the MQTT broker.", + "env_variable": "MQTT_USER", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "string|nullable", + "field_type": "text" + }, + { + "name": "MQTT Password", + "description": "The password for the MQTT broker.", + "env_variable": "MQTT_PASS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "string|nullable", + "field_type": "text" } ] } \ No newline at end of file From 3a0712b8f90355894dad2d1f7942379cfa51c0fe Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Fri, 18 Aug 2023 17:14:40 +0200 Subject: [PATCH 330/473] Generic Nodejs: allow for extra node args --- generic/nodejs/egg-node-js-generic.json | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/generic/nodejs/egg-node-js-generic.json b/generic/nodejs/egg-node-js-generic.json index 8cc30526..0b1dc2bb 100644 --- a/generic/nodejs/egg-node-js-generic.json +++ b/generic/nodejs/egg-node-js-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-08-17T18:34:59-07:00", + "exported_at": "2023-08-18T17:13:50+02:00", "name": "node.js generic", "author": "parker@parkervcp.com", "description": "a generic node.js egg\r\n\r\nThis will clone a git repo. it defaults to master if no branch is specified.\r\n\r\nInstalls the node_modules on install. If you set user_upload then I assume you know what you are doing.", @@ -19,7 +19,7 @@ "Nodejs 12": "ghcr.io\/parkervcp\/yolks:nodejs_12" }, "file_denylist": [], - "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install; fi; if [[ \"${MAIN_FILE}\" == \"*.js\" ]]; then \/usr\/local\/bin\/node \"\/home\/container\/${MAIN_FILE}\"; else \/usr\/local\/bin\/ts-node \"${MAIN_FILE}\"; fi", + "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install; fi; if [[ \"${MAIN_FILE}\" == \"*.js\" ]]; then \/usr\/local\/bin\/node \"\/home\/container\/${MAIN_FILE}\" ${NODE_ARGS}; else \/usr\/local\/bin\/ts-node \"\/home\/container\/${MAIN_FILE}\" ${NODE_ARGS}; fi", "config": { "files": "{}", "startup": "{\r\n \"done\": [\r\n \"change this text 1\",\r\n \"change this text 2\"\r\n ]\r\n}", @@ -121,7 +121,17 @@ "default_value": "index.js", "user_viewable": true, "user_editable": true, - "rules": "required|string", + "rules": "required|string|max:16", + "field_type": "text" + }, + { + "name": "Additional Arguments.", + "description": "Any extra arguments for nodejs or ts-node", + "env_variable": "NODE_ARGS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:64", "field_type": "text" } ] From f082b76d974eeaccf21de9a640963ab6bd3d037a Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Tue, 22 Aug 2023 19:14:50 +0200 Subject: [PATCH 331/473] Fix muse (#2427) * Fix muse * Update README.md * Remove wrapper --- bots/discord/muse/README.md | 8 ++++++++ bots/discord/muse/egg-muse.json | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/bots/discord/muse/README.md b/bots/discord/muse/README.md index 4c84437f..0ffa88ed 100644 --- a/bots/discord/muse/README.md +++ b/bots/discord/muse/README.md @@ -21,6 +21,14 @@
💻 💡 + + +
QuintenQVD0 +
+
+ 💻 + 💡 + diff --git a/bots/discord/muse/egg-muse.json b/bots/discord/muse/egg-muse.json index 0517e7d6..4aea39a8 100644 --- a/bots/discord/muse/egg-muse.json +++ b/bots/discord/muse/egg-muse.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-08-08T17:25:35+00:00", + "exported_at": "2023-08-22T18:48:00+02:00", "name": "Muse", "author": "hello@apollo.moe", "description": "\ud83c\udfa7 a self-hosted midwestern Discord music bot that doesn't suck", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "## Credits: Red-Thirten (https:\/\/github.com\/lilkingjr1) for providing most of the installation script\r\napt-get update\r\napt-get install curl jq -y -qq\r\n\r\nGITHUB_PACKAGE=\"codetheweb\/muse\"\r\n\r\n# Find GitHub download URL for Muse for specified version\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\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) | .tarball_url')\r\n else\r\n echo -e \"Could not find version \\\"${VERSION}\\\" of Muse. Defaulting to latest release...\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\r\n fi\r\nfi\r\n\r\n# Download Muse from GitHub & Extract\r\ncd \/mnt\/server\r\necho -e \"Downloading Muse from GitHub...\"\r\ncurl -L ${DOWNLOAD_URL} -o muse.tar.gz\r\necho -e \"Extracting Muse from tarball...\"\r\ntar -xvzf muse.tar.gz --strip-components=1\r\nrm muse.tar.gz\r\n\r\n# Verify and clean up Muse installation\r\nif [ ! -f .env.example ]; then\r\n echo -e \"\\nFailed to download release: ${DOWNLOAD_URL}\\n\"\r\n exit 1\r\nfi\r\ncp .env.example .env\r\nrm -rf .dockerignore Dockerfile .gitignore .github\/\r\nyarn install --frozen-lockfile\r\nsed -i 's\/of filterWrapper[)]\/of filterWrapper|| [])\/g' \/mnt\/server\/node_modules\/ytsr\/lib\/utils.js\r\n\r\necho -e \"\\nMuse Successfully Installed!\"", + "script": "## Credits: Red-Thirten (https:\/\/github.com\/lilkingjr1) for providing most of the installation script\r\napt-get update\r\napt-get install curl jq -y -qq\r\n\r\nGITHUB_PACKAGE=\"codetheweb\/muse\"\r\n\r\n# Find GitHub download URL for Muse for specified version\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\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) | .tarball_url')\r\n else\r\n echo -e \"Could not find version \\\"${VERSION}\\\" of Muse. Defaulting to latest release...\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\r\n fi\r\nfi\r\n\r\n# Download Muse from GitHub & Extract\r\ncd \/mnt\/server\r\necho -e \"Downloading Muse from GitHub...\"\r\ncurl -L ${DOWNLOAD_URL} -o muse.tar.gz\r\necho -e \"Extracting Muse from tarball...\"\r\ntar -xvzf muse.tar.gz --strip-components=1\r\nrm muse.tar.gz\r\n\r\n# Verify and clean up Muse installation\r\nif [ ! -f .env.example ]; then\r\n echo -e \"\\nFailed to download release: ${DOWNLOAD_URL}\\n\"\r\n exit 1\r\nfi\r\ncp .env.example .env\r\nrm -rf .dockerignore Dockerfile .gitignore .github\/\r\nyarn install --prod #--frozen-lockfile\r\n#sed -i 's\/of filterWrapper[)]\/of filterWrapper|| [])\/g' \/mnt\/server\/node_modules\/ytsr\/lib\/utils.js\r\n\r\necho -e \"\\nMuse Successfully Installed!\"", "container": "node:lts-bullseye-slim", "entrypoint": "bash" } From 633b084c6054ca017ad57c89ebec20648395c222 Mon Sep 17 00:00:00 2001 From: mratox <143298194+mratox@users.noreply.github.com> Date: Sun, 27 Aug 2023 00:53:51 +0100 Subject: [PATCH 332/473] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e9e8a74c..84756656 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [java](/generic/java/) * [lua](/generic/lua/) * [nodejs](/generic/nodejs/) +* [bun](/generic/bun/) * [nodemon](/generic/nodemon/) * [python](/generic/python/) * [rust](/generic/rust/) From 3d8d7aacfcb259f82892f18ec4b40cf5752bd7b4 Mon Sep 17 00:00:00 2001 From: mratox <143298194+mratox@users.noreply.github.com> Date: Sun, 27 Aug 2023 00:57:12 +0100 Subject: [PATCH 333/473] Create egg-bun.json --- generic/bun/egg-bun.json | 122 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 generic/bun/egg-bun.json diff --git a/generic/bun/egg-bun.json b/generic/bun/egg-bun.json new file mode 100644 index 00000000..96a90df0 --- /dev/null +++ b/generic/bun/egg-bun.json @@ -0,0 +1,122 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-08-27T01:47:23+02:00", + "name": "Bun", + "author": "mratox@protonmail.com", + "description": "Bun is an incredibly fast JavaScript runtime, transpiler bundler, and npm package manager all-in-one.", + "features": null, + "docker_images": { + "ghcr.io\/mratox\/images:bun": "ghcr.io\/mratox\/images:bun" + }, + "file_denylist": [], + "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${BUN_PACKAGES} ]]; then bun install ${BUN_PACKAGES}; fi; if [[ ! -z ${RMBUN_PACKAGES} ]]; then bun remove ${RMBUN_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then bun install; fi; {{STARTUP_COMMAND}};", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"\"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# Bun 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\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\necho -e \"assuming user knows what they are doing have a good day.\"\r\nexit 0\r\nfi\r\n## add git ending if it's not on the address\r\nif [[ ${GIT_ADDRESS} != *.git ]]; then\r\nGIT_ADDRESS=${GIT_ADDRESS}.git\r\nfi\r\nif [ -z \"${GIT_USERNAME}\" ] && [ -z \"${GIT_ACCESS_TOKEN}\" ]; then\r\necho -e \"using anon api call.\"\r\nelse\r\nGIT_ADDRESS=\"https:\/\/${USERNAME}:${GIT_ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n## pull git js repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\necho -e \"\/mnt\/server directory is not empty.\"\r\nif [ -d .git ]; then\r\necho -e \".git directory exists.\"\r\nif [ -f .git\/config ]; then\r\necho -e \"loading information from git config.\"\r\nORIGIN=$(git config --get remote.origin.url)\r\nelse\r\necho -e \"files found with no git config.\"\r\necho -e \"closing out without touching things to not break anything.\"\r\nexit 10\r\nfi\r\nfi\r\nif [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\necho \"pulling latest files from the git repository.\"\r\ngit pull\r\nfi\r\nelse\r\necho -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\nif [ -z ${GIT_BRANCH} ]; then\r\necho -e \"cloning default branch\"\r\ngit clone ${GIT_ADDRESS} .\r\nelse\r\necho -e \"cloning ${GIT_BRANCH}'\"\r\ngit clone --single-branch --branch ${GIT_BRANCH} ${GIT_ADDRESS} .\r\nfi\r\nfi\r\necho \"Installing bun packages\"\r\nif [[ ! -z ${BUN_PACKAGES} ]]; then\r\nbun install ${BUN_PACKAGES}\r\nfi\r\nif [ -f \/mnt\/server\/package.json ]; then\r\nbun install --production\r\nfi\r\necho -e \"install complete\"\r\nexit 0", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Git Repository Address", + "description": "The Git repository address to clone .", + "env_variable": "GIT_ADDRESS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Git Branch", + "description": "The Git branch to install.", + "env_variable": "GIT_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\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 Git Repository.\r\n0 = false (default)\r\n1 = true", + "env_variable": "AUTO_UPDATE", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Git Username", + "description": "Git username for authentication.", + "env_variable": "GIT_USERNAME", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Git Access Token", + "description": "Git access token for authentication.", + "env_variable": "GIT_ACCESS_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Startup Command", + "description": "The command used to start the server.", + "env_variable": "STARTUP_COMMAND", + "default_value": "bun run index.js", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Additional Bun Packages", + "description": "Install additional bun packages.\r\nUse spaces to separate", + "env_variable": "BUN_PACKAGES", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Uninstall Bun Packages", + "description": "Uninstall bun packages.\r\nUse spaces to separate", + "env_variable": "RMBUN_PACKAGES", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + } + ] +} From e725261626c137d07eb2e9f7a5efdeb6ab59e63c Mon Sep 17 00:00:00 2001 From: mratox <143298194+mratox@users.noreply.github.com> Date: Sun, 27 Aug 2023 00:59:29 +0100 Subject: [PATCH 334/473] Create README.md --- generic/bun/README.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 generic/bun/README.md diff --git a/generic/bun/README.md b/generic/bun/README.md new file mode 100644 index 00000000..6f2b7adc --- /dev/null +++ b/generic/bun/README.md @@ -0,0 +1,24 @@ +# Bun - JavaScript & TypeScript Generic + +## From their [site](https://bun.sh/) + +This egg is designed to run any generic Bun application, allowing users to pull their own Bun source code from a Git repository. + +There is an option to allow a user to upload their own files to run a server. + +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" + ] +} From 9c31dec600813a554abb8c6d9c8c4712166015d9 Mon Sep 17 00:00:00 2001 From: mratox <143298194+mratox@users.noreply.github.com> Date: Sun, 27 Aug 2023 01:01:00 +0100 Subject: [PATCH 335/473] Update README.md --- generic/README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/generic/README.md b/generic/README.md index f18701ea..a549b2d4 100644 --- a/generic/README.md +++ b/generic/README.md @@ -35,6 +35,11 @@ A generic Lua (Luvit) language egg [nodejs](https://nodejs.org) A generic Node.JS egg +### [Bun](bun) + +[bun](https://bun.sh) +A generic Bun egg + ### [nodemon](nodemon) [nodemon](https://nodemon.io/) From 66d0af68d80d46958b5cc43de0fb3be517aaaa30 Mon Sep 17 00:00:00 2001 From: mratox <143298194+mratox@users.noreply.github.com> Date: Sun, 27 Aug 2023 01:03:32 +0100 Subject: [PATCH 336/473] Update egg-bun.json --- generic/bun/egg-bun.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generic/bun/egg-bun.json b/generic/bun/egg-bun.json index 96a90df0..9d932c32 100644 --- a/generic/bun/egg-bun.json +++ b/generic/bun/egg-bun.json @@ -16,7 +16,7 @@ "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${BUN_PACKAGES} ]]; then bun install ${BUN_PACKAGES}; fi; if [[ ! -z ${RMBUN_PACKAGES} ]]; then bun remove ${RMBUN_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then bun install; fi; {{STARTUP_COMMAND}};", "config": { "files": "{}", - "startup": "{\r\n \"done\": \"\"\r\n}", + "startup": "{\r\n \"done\": [\r\n \"change this text 1\",\r\n \"change this text 2\"\r\n ]\r\n}", "logs": "{}", "stop": "^^C" }, From 640ff589f1a4d7379fb3adf00ab0f7567775b924 Mon Sep 17 00:00:00 2001 From: mratox <143298194+mratox@users.noreply.github.com> Date: Sun, 27 Aug 2023 01:50:13 +0100 Subject: [PATCH 337/473] Update egg-bun.json --- generic/bun/egg-bun.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generic/bun/egg-bun.json b/generic/bun/egg-bun.json index 9d932c32..095b4695 100644 --- a/generic/bun/egg-bun.json +++ b/generic/bun/egg-bun.json @@ -10,7 +10,7 @@ "description": "Bun is an incredibly fast JavaScript runtime, transpiler bundler, and npm package manager all-in-one.", "features": null, "docker_images": { - "ghcr.io\/mratox\/images:bun": "ghcr.io\/mratox\/images:bun" + "ghcr.io\/parkervcp\/yolks:bun": "ghcr.io\/parkervcp\/yolks:bun" }, "file_denylist": [], "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${BUN_PACKAGES} ]]; then bun install ${BUN_PACKAGES}; fi; if [[ ! -z ${RMBUN_PACKAGES} ]]; then bun remove ${RMBUN_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then bun install; fi; {{STARTUP_COMMAND}};", From abe8ed59311e07a28ebf03b3f6e41f9eb8237d99 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 27 Aug 2023 11:48:11 +0200 Subject: [PATCH 338/473] cleanup --- generic/bun/egg-bun.json | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/generic/bun/egg-bun.json b/generic/bun/egg-bun.json index 095b4695..9ce16e7c 100644 --- a/generic/bun/egg-bun.json +++ b/generic/bun/egg-bun.json @@ -4,16 +4,17 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-08-27T01:47:23+02:00", + "exported_at": "2023-08-27T11:46:37+02:00", "name": "Bun", "author": "mratox@protonmail.com", "description": "Bun is an incredibly fast JavaScript runtime, transpiler bundler, and npm package manager all-in-one.", "features": null, "docker_images": { - "ghcr.io\/parkervcp\/yolks:bun": "ghcr.io\/parkervcp\/yolks:bun" + "Bun Latest": "ghcr.io\/parkervcp\/yolks:bun_latest", + "Bun Canary": "ghcr.io\/parkervcp\/yolks:bun_canary" }, "file_denylist": [], - "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${BUN_PACKAGES} ]]; then bun install ${BUN_PACKAGES}; fi; if [[ ! -z ${RMBUN_PACKAGES} ]]; then bun remove ${RMBUN_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then bun install; fi; {{STARTUP_COMMAND}};", + "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${BUN_PACKAGES} ]]; then bun install ${BUN_PACKAGES}; fi; if [[ ! -z ${RMBUN_PACKAGES} ]]; then bun remove ${RMBUN_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then bun install; fi; bun run {{MAIN_FILE}}", "config": { "files": "{}", "startup": "{\r\n \"done\": [\r\n \"change this text 1\",\r\n \"change this text 2\"\r\n ]\r\n}", @@ -22,8 +23,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Bun 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\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\necho -e \"assuming user knows what they are doing have a good day.\"\r\nexit 0\r\nfi\r\n## add git ending if it's not on the address\r\nif [[ ${GIT_ADDRESS} != *.git ]]; then\r\nGIT_ADDRESS=${GIT_ADDRESS}.git\r\nfi\r\nif [ -z \"${GIT_USERNAME}\" ] && [ -z \"${GIT_ACCESS_TOKEN}\" ]; then\r\necho -e \"using anon api call.\"\r\nelse\r\nGIT_ADDRESS=\"https:\/\/${USERNAME}:${GIT_ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n## pull git js repo\r\nif [ \"$(ls -A \/mnt\/server)\" ]; then\r\necho -e \"\/mnt\/server directory is not empty.\"\r\nif [ -d .git ]; then\r\necho -e \".git directory exists.\"\r\nif [ -f .git\/config ]; then\r\necho -e \"loading information from git config.\"\r\nORIGIN=$(git config --get remote.origin.url)\r\nelse\r\necho -e \"files found with no git config.\"\r\necho -e \"closing out without touching things to not break anything.\"\r\nexit 10\r\nfi\r\nfi\r\nif [ \"${ORIGIN}\" == \"${GIT_ADDRESS}\" ]; then\r\necho \"pulling latest files from the git repository.\"\r\ngit pull\r\nfi\r\nelse\r\necho -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\nif [ -z ${GIT_BRANCH} ]; then\r\necho -e \"cloning default branch\"\r\ngit clone ${GIT_ADDRESS} .\r\nelse\r\necho -e \"cloning ${GIT_BRANCH}'\"\r\ngit clone --single-branch --branch ${GIT_BRANCH} ${GIT_ADDRESS} .\r\nfi\r\nfi\r\necho \"Installing bun packages\"\r\nif [[ ! -z ${BUN_PACKAGES} ]]; then\r\nbun install ${BUN_PACKAGES}\r\nfi\r\nif [ -f \/mnt\/server\/package.json ]; then\r\nbun install --production\r\nfi\r\necho -e \"install complete\"\r\nexit 0", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\n# Bun 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\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\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\r\necho \"Installing bun packages\"\r\nif [[ ! -z ${BUN_PACKAGES} ]]; then\r\n bun install ${BUN_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n bun install --production\r\nfi\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "debian:bullseye-slim", "entrypoint": "bash" } }, @@ -89,10 +90,10 @@ "field_type": "text" }, { - "name": "Startup Command", - "description": "The command used to start the server.", - "env_variable": "STARTUP_COMMAND", - "default_value": "bun run index.js", + "name": "Main file", + "description": "The main file passed to the bun run command", + "env_variable": "MAIN_FILE", + "default_value": "index.js", "user_viewable": true, "user_editable": true, "rules": "required|string", @@ -119,4 +120,4 @@ "field_type": "text" } ] -} +} \ No newline at end of file From ad6bbb5602689a900337105645e2f377a2fe21e1 Mon Sep 17 00:00:00 2001 From: Smith Date: Sun, 27 Aug 2023 21:43:00 +0200 Subject: [PATCH 339/473] adds bots/discord/game-server-watcher --- README.md | 1 + bots/discord/README.md | 5 + bots/discord/game-server-watcher/README.md | 18 +++ .../egg-game-server-watcher.json | 114 ++++++++++++++++++ 4 files changed, 138 insertions(+) create mode 100644 bots/discord/game-server-watcher/README.md create mode 100644 bots/discord/game-server-watcher/egg-game-server-watcher.json diff --git a/README.md b/README.md index 84756656..a0dfc883 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [CorpBot](/bots/discord/corpbot) Python * [Dynamica](/bots/discord/dynamica) Node JS * [fragbot](/bots/discord/fragbot) Golang +* [Game Server Watcher](/bots/discord/game-server-watcher) Node JS * [JMusicBot](/bots/discord/jmusicbot) Java * [Muse](/bots/discord/muse) Node JS * [parkertron](/bots/discord/parkertron) Golang diff --git a/bots/discord/README.md b/bots/discord/README.md index 1793f497..070b5148 100644 --- a/bots/discord/README.md +++ b/bots/discord/README.md @@ -22,6 +22,11 @@ A very clumsy python bot for discord [fragforce/fragbot](https://github.com/fragforce/fragbot) The bot that runs as the fragforce `@Fragbot` offering looking-for-group services for now +### [Game Server Watcher](game-server-watcher) + +[a-sync/game-server-watcher](https://github.com/a-sync/game-server-watcher) +A simple discord/telegram/slack bot that can be hosted on a free service to monitor your game servers and players in style. 😎 + ### [JMusicBot](jmusicbot) [jagrosh/MusicBot](https://github.com/jagrosh/MusicBot) diff --git a/bots/discord/game-server-watcher/README.md b/bots/discord/game-server-watcher/README.md new file mode 100644 index 00000000..7e668c4c --- /dev/null +++ b/bots/discord/game-server-watcher/README.md @@ -0,0 +1,18 @@ +# Game Server Watcher + +## From [Github](https://github.com/a-sync/game-server-watcher#readme) +A simple discord/telegram/slack bot that can be hosted on a free service to monitor your game servers and players in style. 😎 + +## Screenshots + + +## Running the bot +Refer to the wiki on how to acquire tokens for: + * [steam](https://github.com/a-sync/game-server-watcher/wiki/Steam-Web-API-key) + * [discord](https://github.com/a-sync/game-server-watcher/wiki/Discord-bot-token) + * [telegram](https://github.com/a-sync/game-server-watcher/wiki/Telegram-bot-token) + * [slack](https://github.com/a-sync/game-server-watcher/wiki/Slack-bot-token) + +## Server Ports +GSW Control Panel requires one port for http traffic. +(It can be any port.) diff --git a/bots/discord/game-server-watcher/egg-game-server-watcher.json b/bots/discord/game-server-watcher/egg-game-server-watcher.json new file mode 100644 index 00000000..d503199f --- /dev/null +++ b/bots/discord/game-server-watcher/egg-game-server-watcher.json @@ -0,0 +1,114 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-08-15T04:20:09+02:00", + "name": "Game Server Watcher", + "author": "a-sync@devs.space", + "description": "A simple discord\/telegram\/slack bot that can be hosted on a free service to monitor your game servers and players in style. 😎", + "features": null, + "docker_images": { + "Node.js 20": "ghcr.io\/parkervcp\/yolks:nodejs_20" + }, + "file_denylist": [], + "startup": "env PORT={{SERVER_PORT}} \/usr\/local\/bin\/node \/home\/container\/dist\/server.js", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"starting loop...\"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\napt-get update && apt-get install ca-certificates git -yq --no-install-suggests --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages\r\ncd \/mnt\/server\r\ngit config --global --add safe.directory \/mnt\/server\r\ngit clone https:\/\/github.com\/a-sync\/game-server-watcher.git . || git pull\r\nnpm install && npm run build\r\nnpm prune --omit=dev", + "container": "node:20-bookworm-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "SECRET", + "description": "Admin secret", + "env_variable": "SECRET", + "default_value": "secret", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|min:1|max:255" + }, + { + "name": "DATA_PATH", + "description": "Writable folder for data storage", + "env_variable": "DATA_PATH", + "default_value": ".\/data\/", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|min:1|max:255" + }, + { + "name": "REFRESH_TIME_MINUTES", + "description": "Game server info refresh interval in minutes", + "env_variable": "REFRESH_TIME_MINUTES", + "default_value": "2", + "user_viewable": true, + "user_editable": true, + "field_type": "integer", + "rules": "required|integer|min:1" + }, + { + "name": "DISCORD_BOT_TOKEN", + "description": "Discord bot token", + "env_variable": "DISCORD_BOT_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string" + }, + { + "name": "TELEGRAM_BOT_TOKEN", + "description": "Telegram bot token", + "env_variable": "TELEGRAM_BOT_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string" + }, + { + "name": "SLACK_BOT_TOKEN", + "description": "Slack bot token", + "env_variable": "SLACK_BOT_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string" + }, + { + "name": "SLACK_APP_TOKEN", + "description": "Slack app token", + "env_variable": "SLACK_APP_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string" + }, + { + "name": "STEAM_WEB_API_KEY", + "description": "Steam web API key", + "env_variable": "STEAM_WEB_API_KEY", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string" + }, + { + "name": "Debug Mode", + "description": "Enable or disable debug mode.", + "env_variable": "DBG", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|in:0,1" + } + ] +} From d8ceda1715dc3d509370a3346a18fbeee1a90b8b Mon Sep 17 00:00:00 2001 From: FreemoX Date: Sun, 3 Sep 2023 01:29:38 +0200 Subject: [PATCH 340/473] Update egg-phantom-bot.json Removed deprecated Java 11 Added Java 16 (deprecated after version 3.9.0.7) Added Java 19 --- bots/twitch/phantombot/egg-phantom-bot.json | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/bots/twitch/phantombot/egg-phantom-bot.json b/bots/twitch/phantombot/egg-phantom-bot.json index ede55fc3..81f85301 100644 --- a/bots/twitch/phantombot/egg-phantom-bot.json +++ b/bots/twitch/phantombot/egg-phantom-bot.json @@ -4,13 +4,14 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-10-02T18:28:42+02:00", + "exported_at": "2023-09-02T23:24:58+00:00", "name": "PhantomBot", "author": "mail@wuffy.eu", "description": "PhantomBot is an actively developed open source interactive Twitch bot with a vibrant community that provides entertainment and moderation for your channel, allowing you to focus on what matters the most to you - your game and your viewers.", "features": null, "docker_images": { - "ghcr.io\/parkervcp\/yolks:java_11": "ghcr.io\/parkervcp\/yolks:java_11" + "Java 16 [DEPRECATED]": "ghcr.io\/parkervcp\/yolks:java_16", + "Java 19": "ghcr.io\/parkervcp\/yolks:java_19" }, "file_denylist": [], "startup": "java --add-opens java.base\/java.lang=ALL-UNNAMED -Djava.security.policy=config\/security -Dinteractive -Xms1m -Dfile.encoding=UTF-8 -jar PhantomBot.jar", @@ -30,12 +31,12 @@ "variables": [ { "name": "Version", - "description": "latest = Latest Stable\r\nmaster = latest Github", + "description": "latest = Latest Stable\r\nmaster = latest Github\r\n3.9.0.7 = Latest known working with Java 16", "env_variable": "RELEASE_VERSION", "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:9", + "rules": "required|string|in:latest,master,3.9.0.7", "field_type": "text" }, { @@ -109,4 +110,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 1f6b552f669e6ff7618af1a3d44f57a7819359e0 Mon Sep 17 00:00:00 2001 From: FreemoX Date: Sun, 3 Sep 2023 01:36:07 +0200 Subject: [PATCH 341/473] Update egg-phantom-bot.json --- bots/twitch/phantombot/egg-phantom-bot.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bots/twitch/phantombot/egg-phantom-bot.json b/bots/twitch/phantombot/egg-phantom-bot.json index 81f85301..5acd461b 100644 --- a/bots/twitch/phantombot/egg-phantom-bot.json +++ b/bots/twitch/phantombot/egg-phantom-bot.json @@ -36,7 +36,7 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:latest,master,3.9.0.7", + "rules": "required|string|max:9", "field_type": "text" }, { From 6e17f7f25261a96550aa3fb239a12e69bafd7875 Mon Sep 17 00:00:00 2001 From: Alexander Ballauf Date: Sun, 3 Sep 2023 21:32:02 +0200 Subject: [PATCH 342/473] Update egg-icarus--dedicated (#2458) adjusted wine version from staging to latest to fix server not starting properly --- .../steamcmd_servers/icarus/egg-icarus--dedicated.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/icarus/egg-icarus--dedicated.json b/game_eggs/steamcmd_servers/icarus/egg-icarus--dedicated.json index da78753b..c6def84a 100644 --- a/game_eggs/steamcmd_servers/icarus/egg-icarus--dedicated.json +++ b/game_eggs/steamcmd_servers/icarus/egg-icarus--dedicated.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-12-10T14:40:39+01:00", + "exported_at": "2023-09-03T21:07:28+02:00", "name": "Icarus-Dedicated", "author": "bolverblitz@ebg.pw", "description": "Icarus is a survival game that with dedicated servers as a public beta", @@ -12,7 +12,7 @@ "steam_disk_space" ], "docker_images": { - "Wine Staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + "Wine Staging": "ghcr.io\/parkervcp\/yolks:wine_latest" }, "file_denylist": [], "startup": "wine64 .\/Icarus\/Binaries\/Win64\/IcarusServer-Win64-Shipping.exe -Log -SteamServerName=${SERVER_NAME} -PORT=\"${SERVER_PORT}\" -QueryPort=\"${QUERY_PORT}\"", @@ -121,4 +121,4 @@ "field_type": "text" } ] -} +} \ No newline at end of file From ecaf733d7f718b95cdb50470500200a5aa290730 Mon Sep 17 00:00:00 2001 From: Cart <81428538+Cartrigger@users.noreply.github.com> Date: Fri, 8 Sep 2023 01:09:35 -0400 Subject: [PATCH 343/473] Fix Spelling in Astroneer egg --- game_eggs/steamcmd_servers/astroneer/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/astroneer/README.md b/game_eggs/steamcmd_servers/astroneer/README.md index ea3ee017..21857148 100644 --- a/game_eggs/steamcmd_servers/astroneer/README.md +++ b/game_eggs/steamcmd_servers/astroneer/README.md @@ -13,7 +13,7 @@ The following variables are required to prevent the server to crash on startup : Astroneer required at least 700MiB to run. If more than one player will connect, 1GiB seems to be a minimum. -## Minumim Sorage warning +## Minimum Storage warning Astroneer required at least 3GiB. The size may increase with larger save file. @@ -37,4 +37,4 @@ To be able to connect to the server you need to edit Engine.ini (located at %Loc ``` [SystemSettings] net.AllowEncryption=False -``` \ No newline at end of file +``` From 916a81a4e595801d9f701bed6ad4c7fdebc01819 Mon Sep 17 00:00:00 2001 From: Smith Date: Tue, 12 Sep 2023 20:38:17 +0200 Subject: [PATCH 344/473] use the yolks base image for the installer --- bots/discord/game-server-watcher/egg-game-server-watcher.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bots/discord/game-server-watcher/egg-game-server-watcher.json b/bots/discord/game-server-watcher/egg-game-server-watcher.json index d503199f..3699b492 100644 --- a/bots/discord/game-server-watcher/egg-game-server-watcher.json +++ b/bots/discord/game-server-watcher/egg-game-server-watcher.json @@ -23,7 +23,7 @@ "scripts": { "installation": { "script": "#!\/bin\/bash\r\napt-get update && apt-get install ca-certificates git -yq --no-install-suggests --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages\r\ncd \/mnt\/server\r\ngit config --global --add safe.directory \/mnt\/server\r\ngit clone https:\/\/github.com\/a-sync\/game-server-watcher.git . || git pull\r\nnpm install && npm run build\r\nnpm prune --omit=dev", - "container": "node:20-bookworm-slim", + "container": "node:20-bullseye-slim", "entrypoint": "bash" } }, From 83fa92a600a2a4a8c84012945903029345f65b2b Mon Sep 17 00:00:00 2001 From: Shinaii Date: Wed, 13 Sep 2023 17:53:08 +0200 Subject: [PATCH 345/473] Update egg-bun.json (#2466) Update Bun: to use the right variable names --- generic/bun/egg-bun.json | 64 ++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/generic/bun/egg-bun.json b/generic/bun/egg-bun.json index 9ce16e7c..97eeaad6 100644 --- a/generic/bun/egg-bun.json +++ b/generic/bun/egg-bun.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-08-27T11:46:37+02:00", + "exported_at": "2023-09-13T17:51:41+02:00", "name": "Bun", "author": "mratox@protonmail.com", "description": "Bun is an incredibly fast JavaScript runtime, transpiler bundler, and npm package manager all-in-one.", @@ -39,16 +39,6 @@ "rules": "nullable|string", "field_type": "text" }, - { - "name": "Git Branch", - "description": "The Git branch to install.", - "env_variable": "GIT_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\n0 = false (default)\r\n1 = true", @@ -69,26 +59,6 @@ "rules": "required|boolean", "field_type": "text" }, - { - "name": "Git Username", - "description": "Git username for authentication.", - "env_variable": "GIT_USERNAME", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string", - "field_type": "text" - }, - { - "name": "Git Access Token", - "description": "Git access token for authentication.", - "env_variable": "GIT_ACCESS_TOKEN", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string", - "field_type": "text" - }, { "name": "Main file", "description": "The main file passed to the bun run command", @@ -118,6 +88,36 @@ "user_editable": true, "rules": "nullable|string", "field_type": "text" + }, + { + "name": "Git Branch", + "description": "The Git branch to install.", + "env_variable": "BRANCH", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Git Username", + "description": "Git username for authentication.", + "env_variable": "USERNAME", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Git Access Token", + "description": "Git access token for authentication.", + "env_variable": "ACCESS_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" } ] -} \ No newline at end of file +} From d89a95494eb0217ef16a1daea2f0c2c65e19f321 Mon Sep 17 00:00:00 2001 From: Smith Date: Wed, 13 Sep 2023 20:37:52 +0200 Subject: [PATCH 346/473] re-export json --- .../egg-game-server-watcher.json | 66 +++++++++++-------- 1 file changed, 37 insertions(+), 29 deletions(-) diff --git a/bots/discord/game-server-watcher/egg-game-server-watcher.json b/bots/discord/game-server-watcher/egg-game-server-watcher.json index 3699b492..820675ce 100644 --- a/bots/discord/game-server-watcher/egg-game-server-watcher.json +++ b/bots/discord/game-server-watcher/egg-game-server-watcher.json @@ -4,10 +4,10 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-08-15T04:20:09+02:00", + "exported_at": "2023-09-13T18:34:19+00:00", "name": "Game Server Watcher", "author": "a-sync@devs.space", - "description": "A simple discord\/telegram\/slack bot that can be hosted on a free service to monitor your game servers and players in style. 😎", + "description": "A simple discord\/telegram\/slack bot that can be hosted on a free service to monitor your game servers and players in style. \ud83d\ude0e", "features": null, "docker_images": { "Node.js 20": "ghcr.io\/parkervcp\/yolks:nodejs_20" @@ -35,7 +35,8 @@ "default_value": "secret", "user_viewable": true, "user_editable": true, - "rules": "required|string|min:1|max:255" + "rules": "required|string|min:1|max:255", + "field_type": "text" }, { "name": "DATA_PATH", @@ -44,7 +45,8 @@ "default_value": ".\/data\/", "user_viewable": true, "user_editable": true, - "rules": "required|string|min:1|max:255" + "rules": "required|string|min:1|max:255", + "field_type": "text" }, { "name": "REFRESH_TIME_MINUTES", @@ -53,8 +55,8 @@ "default_value": "2", "user_viewable": true, "user_editable": true, - "field_type": "integer", - "rules": "required|integer|min:1" + "rules": "required|integer|min:1", + "field_type": "text" }, { "name": "DISCORD_BOT_TOKEN", @@ -63,7 +65,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string" + "rules": "nullable|string", + "field_type": "text" }, { "name": "TELEGRAM_BOT_TOKEN", @@ -72,25 +75,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string" - }, - { - "name": "SLACK_BOT_TOKEN", - "description": "Slack bot token", - "env_variable": "SLACK_BOT_TOKEN", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string" - }, - { - "name": "SLACK_APP_TOKEN", - "description": "Slack app token", - "env_variable": "SLACK_APP_TOKEN", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string" + "rules": "nullable|string", + "field_type": "text" }, { "name": "STEAM_WEB_API_KEY", @@ -99,7 +85,8 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string" + "rules": "nullable|string", + "field_type": "text" }, { "name": "Debug Mode", @@ -108,7 +95,28 @@ "default_value": "0", "user_viewable": true, "user_editable": true, - "rules": "required|in:0,1" + "rules": "required|in:0,1", + "field_type": "text" + }, + { + "name": "SLACK_BOT_TOKEN", + "description": "Slack bot token", + "env_variable": "SLACK_BOT_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "SLACK_APP_TOKEN", + "description": "Slack app token", + "env_variable": "SLACK_APP_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" } ] -} +} \ No newline at end of file From d18ea7979f4c6b484db97f5a3a8035e1f4f60e2a Mon Sep 17 00:00:00 2001 From: Chris Cox Date: Sun, 17 Sep 2023 13:38:41 +0100 Subject: [PATCH 347/473] Update README.md Added a sample ignore file that disallows anything that's pulled from the container image and restricts backups to the server's unique files. --- .../steamcmd_servers/7_days_to_die/README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/game_eggs/steamcmd_servers/7_days_to_die/README.md b/game_eggs/steamcmd_servers/7_days_to_die/README.md index 890b3d11..8b48da48 100644 --- a/game_eggs/steamcmd_servers/7_days_to_die/README.md +++ b/game_eggs/steamcmd_servers/7_days_to_die/README.md @@ -12,3 +12,18 @@ Set in a brutally unforgiving post-apocalyptic world overrun by the undead, 7 Da | Game | 26900 - 26902 | | RCON | 8080 - 8081 | | webmap | 8082 | + +## Sample ignore file for backups + +By default the backup includes a lot of files that can be reacquired by pulling the image. Using the following file limits backups to the files that are unique to your server: your config files, logs, saves and generated worlds. + +``` +# Ignore all +* +# Except server config file +!serverconfig.xml +# Except server data dir +!.local/ +# Except logs +!logs/ +``` From 5620a4ad8b96e160db5215b5ee0f49090658848c Mon Sep 17 00:00:00 2001 From: Philip T <2097483+phit@users.noreply.github.com> Date: Wed, 20 Sep 2023 23:31:29 +0200 Subject: [PATCH 348/473] Fix GH-2474 (#2475) * Fix GH-2474 * Update JMusicBot images switch to Java LTS and use the official installer image --- bots/discord/jmusicbot/egg-j-music-bot.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bots/discord/jmusicbot/egg-j-music-bot.json b/bots/discord/jmusicbot/egg-j-music-bot.json index 528dad38..8a640fd6 100644 --- a/bots/discord/jmusicbot/egg-j-music-bot.json +++ b/bots/discord/jmusicbot/egg-j-music-bot.json @@ -4,13 +4,13 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-07-29T17:52:45+02:00", + "exported_at": "2023-09-20T21:17:10+02:00", "name": "JMusicBot", "author": "parker@parkervcp.com", "description": "A Discord music bot that's easy to set up and run yourself!", "features": null, "docker_images": { - "ghcr.io\/pterodactyl\/yolks:java_16": "ghcr.io\/pterodactyl\/yolks:java_16" + "ghcr.io\/pterodactyl\/yolks:java_17": "ghcr.io\/pterodactyl\/yolks:java_17" }, "file_denylist": [], "startup": "java -Dnogui=true -jar JMusicBot.jar", @@ -23,7 +23,7 @@ "scripts": { "installation": { "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y jq curl\r\n\r\nCONFIG_LINK=\"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/jmusicbot\/config.txt\"\r\nPLAYLIST_LINK=\"https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/bots\/discord\/jmusicbot\/example_playlist.txt\"\r\n\r\n\r\nif [ -z \"${GITHUB_USER}\" ] && [ -z \"${GITHUB_OAUTH_TOKEN}\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} '\r\nfi\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/jagrosh\/MusicBot\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/jagrosh\/MusicBot\/releases\")\r\nMATCH=JMusicBot\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)\r\n fi\r\nfi\r\n\r\n## JMusicBot Setup\r\n[ ! -d \/mnt\/server ] && mkdir \/mnt\/server\r\ncd \/mnt\/server\r\necho -e \"\\nInstalling\/Updating JMusicBot...\\n\"\r\n\r\nif [ -f JMusicBot.jar ]; then\r\n echo -e \"Updating JMusicBot.jar to latest version...\"\r\n echo -e '\\t(Old version can be found at \"JMusicBot.jar-old\")'\r\n mv -f JMusicBot.jar JMusicBot.jar-old\r\nfi\r\n\r\necho -e \"Running: curl -sSLo JMusicBot.jar ${DOWNLOAD_URL}\\n\"\r\ncurl -sSLo JMusicBot.jar ${DOWNLOAD_URL}\r\n\r\nif [ -f config.txt ]; then\r\n echo -e \"Updating config.txt to latest version...\"\r\n echo -e '\\t(Old version can be found at \"config.txt-old\")'\r\n mv -f config.txt config.txt-old\r\nfi\r\necho -e \"Running: curl -sSLo config.txt ${CONFIG_LINK}\\n\"\r\ncurl -sSLo config.txt ${CONFIG_LINK}\r\n\r\n[ ! -d Playlists ] && mkdir Playlists\r\ncd Playlists\r\nif [ -f example_playlist.txt ]; then\r\n echo -e \"example_playlist.txt already exists. Skipping default download.\"\r\nelse\r\n echo -e \"example_playlist.txt not found. Downloading default example_playlist...\"\r\n echo -e \"Running: curl -sSLo example_playlist.txt ${PLAYLIST_LINK}\"\r\n curl -sSLo example_playlist.txt ${PLAYLIST_LINK}\r\nfi\r\n\r\necho -e \"\\nJMusicBot Successfully Installed!\"", - "container": "debian:bullseye-slim", + "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "\/bin\/bash" } }, @@ -45,7 +45,7 @@ "default_value": "Change This To Your Discord User ID", "user_viewable": true, "user_editable": true, - "rules": "required|digits:18", + "rules": "required|digits_between:17,18", "field_type": "text" }, { From c8e214bc11b0a60b7b5f145ffa146e614956aebe Mon Sep 17 00:00:00 2001 From: mvw <73003273+meesvw@users.noreply.github.com> Date: Thu, 21 Sep 2023 09:08:15 +0200 Subject: [PATCH 349/473] Updated the muse egg (#2472) * Muse: Added git as package in the install script --- bots/discord/muse/egg-muse.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bots/discord/muse/egg-muse.json b/bots/discord/muse/egg-muse.json index 4aea39a8..bcb0554c 100644 --- a/bots/discord/muse/egg-muse.json +++ b/bots/discord/muse/egg-muse.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-08-22T18:48:00+02:00", + "exported_at": "2023-09-20T20:25:51+02:00", "name": "Muse", "author": "hello@apollo.moe", "description": "\ud83c\udfa7 a self-hosted midwestern Discord music bot that doesn't suck", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "## Credits: Red-Thirten (https:\/\/github.com\/lilkingjr1) for providing most of the installation script\r\napt-get update\r\napt-get install curl jq -y -qq\r\n\r\nGITHUB_PACKAGE=\"codetheweb\/muse\"\r\n\r\n# Find GitHub download URL for Muse for specified version\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\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) | .tarball_url')\r\n else\r\n echo -e \"Could not find version \\\"${VERSION}\\\" of Muse. Defaulting to latest release...\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\r\n fi\r\nfi\r\n\r\n# Download Muse from GitHub & Extract\r\ncd \/mnt\/server\r\necho -e \"Downloading Muse from GitHub...\"\r\ncurl -L ${DOWNLOAD_URL} -o muse.tar.gz\r\necho -e \"Extracting Muse from tarball...\"\r\ntar -xvzf muse.tar.gz --strip-components=1\r\nrm muse.tar.gz\r\n\r\n# Verify and clean up Muse installation\r\nif [ ! -f .env.example ]; then\r\n echo -e \"\\nFailed to download release: ${DOWNLOAD_URL}\\n\"\r\n exit 1\r\nfi\r\ncp .env.example .env\r\nrm -rf .dockerignore Dockerfile .gitignore .github\/\r\nyarn install --prod #--frozen-lockfile\r\n#sed -i 's\/of filterWrapper[)]\/of filterWrapper|| [])\/g' \/mnt\/server\/node_modules\/ytsr\/lib\/utils.js\r\n\r\necho -e \"\\nMuse Successfully Installed!\"", + "script": "## Credits: Red-Thirten (https:\/\/github.com\/lilkingjr1) for providing most of the installation script\r\napt-get update\r\napt-get install git curl jq -y -qq\r\n\r\nGITHUB_PACKAGE=\"codetheweb\/muse\"\r\n\r\n# Find GitHub download URL for Muse for specified version\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\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) | .tarball_url')\r\n else\r\n echo -e \"Could not find version \\\"${VERSION}\\\" of Muse. Defaulting to latest release...\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\r\n fi\r\nfi\r\n\r\n# Download Muse from GitHub & Extract\r\ncd \/mnt\/server\r\necho -e \"Downloading Muse from GitHub...\"\r\ncurl -L ${DOWNLOAD_URL} -o muse.tar.gz\r\necho -e \"Extracting Muse from tarball...\"\r\ntar -xvzf muse.tar.gz --strip-components=1\r\nrm muse.tar.gz\r\n\r\n# Verify and clean up Muse installation\r\nif [ ! -f .env.example ]; then\r\n echo -e \"\\nFailed to download release: ${DOWNLOAD_URL}\\n\"\r\n exit 1\r\nfi\r\ncp .env.example .env\r\nrm -rf .dockerignore Dockerfile .gitignore .github\/\r\nyarn install --prod #--frozen-lockfile\r\n#sed -i 's\/of filterWrapper[)]\/of filterWrapper|| [])\/g' \/mnt\/server\/node_modules\/ytsr\/lib\/utils.js\r\n\r\necho -e \"\\nMuse Successfully Installed!\"", "container": "node:lts-bullseye-slim", "entrypoint": "bash" } @@ -89,4 +89,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 5d9da83f28237b6f4d2fd89541fa27766340984a Mon Sep 17 00:00:00 2001 From: oliver408i <75344601+oliver408i@users.noreply.github.com> Date: Fri, 22 Sep 2023 10:57:33 -0700 Subject: [PATCH 350/473] Add KSP DMP Server (#2476) Add: KSP DMP Server --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- README.md | 2 + game_eggs/README.md | 2 + game_eggs/ksp/README.md | 12 ++++ game_eggs/ksp/egg-k-s-p-d-m-p.json | 92 ++++++++++++++++++++++++++++++ 4 files changed, 108 insertions(+) create mode 100644 game_eggs/ksp/README.md create mode 100644 game_eggs/ksp/egg-k-s-p-d-m-p.json diff --git a/README.md b/README.md index 84756656..1d14ea79 100644 --- a/README.md +++ b/README.md @@ -152,6 +152,8 @@ If you are reading this it looks like you are looking to add an egg to your serv * GTA * [GTAC](game_eggs/gta/gtac) +[Kerbal Space Program](game_eggs/ksp) + [League Sandbox](game_eggs/leaguesandbox) [Los Angeles Crimes](game_eggs/losangelescrimes) diff --git a/game_eggs/README.md b/game_eggs/README.md index a31104aa..c3f173c3 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -53,6 +53,8 @@ * GTA * [GTAC](gta/gtac) +[Kerbal Space Program](ksp) + [Los Angeles Crimes](losangelescrimes) [League Sandbox](leaguesandbox) diff --git a/game_eggs/ksp/README.md b/game_eggs/ksp/README.md new file mode 100644 index 00000000..a789c820 --- /dev/null +++ b/game_eggs/ksp/README.md @@ -0,0 +1,12 @@ +# Kerbal Space Program + +[Dark Multiplayer](https://d-mp.org/) +Dark Multiplayer is an up-to-date mod adding the long awaited multiplayer feature to Kerbal Space Program while including support for other mods! + +## Server Ports + +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Game | 6702 | diff --git a/game_eggs/ksp/egg-k-s-p-d-m-p.json b/game_eggs/ksp/egg-k-s-p-d-m-p.json new file mode 100644 index 00000000..99c4f75a --- /dev/null +++ b/game_eggs/ksp/egg-k-s-p-d-m-p.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-09-22T19:54:35+02:00", + "name": "KSP DMP", + "author": "rufanyin29@gmail.com", + "description": "Dark Multiplayer mod server for Kerbal Space Program", + "features": null, + "docker_images": { + "Mono": "ghcr.io\/parkervcp\/yolks:mono_latest" + }, + "file_denylist": [], + "startup": "mono DMPServer.exe", + "config": { + "files": "{\r\n \"Config\/Settings.txt\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"port\": \"{{server.build.default.port}}\",\r\n \"modpackMode\": \"{{server.build.env.MODPACKMODE}}\",\r\n \"warpMode\": \"{{server.build.env.WARPMODE}}\",\r\n \"gameMode\": \"{{server.build.env.GAMEMODE}}\",\r\n \"gameDifficulty\": \"{{server.build.env.DIFFICULTY}}\",\r\n \"whitelisted\": \"{{server.build.env.WHITELIST}}\",\r\n \"serverName\": \"{{server.build.env.SERVERNAME}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Ready!\"\r\n}", + "logs": "{}", + "stop": "\/exit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nV=$(curl -s https:\/\/d-mp.org\/downloads | grep \"DMP Server\" | awk -F 'href=\"' 'NR==2 {print $2}' | awk -F '\"' '{print $1}') # \/builds\/release\/v0.3.8.3\/DMPServer.zip\r\n\r\necho \"Download link: https:\/\/d-mp.org${V}\"\r\ncurl -sSL -o DMPServer.zip https:\/\/d-mp.org${V}\r\n\r\nunzip -o DMPServer.zip\r\nmv DMPServer\/* .\/\r\n\r\nrm -rf DMPServer\r\nrm DMPServer.zip\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Mod Pack Mode", + "description": "Specify the modpack type.", + "env_variable": "MODPACKMODE", + "default_value": "NONE", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:NONE,CKAN,GAMEDATA", + "field_type": "text" + }, + { + "name": "Warp Mode", + "description": "Specify the warp type.", + "env_variable": "WARPMODE", + "default_value": "SUBSPACE", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:MCW_FORCE,MCW_VOTE,MCW_LOWEST,SUBSPACE_SIMPLE,SUBSPACE,NONE", + "field_type": "text" + }, + { + "name": "Game Mode", + "description": "Specify the game type.", + "env_variable": "GAMEMODE", + "default_value": "SANDBOX", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:SANDBOX,CAREER,SCIENCE", + "field_type": "text" + }, + { + "name": "Game Difficulty", + "description": "Specify the gameplay difficulty of the server.", + "env_variable": "DIFFICULTY", + "default_value": "NORMAL", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:EASY,NORMAL,MODERATE,HARD,CUSTOM", + "field_type": "text" + }, + { + "name": "Whitelisted", + "description": "Enable white-listing.", + "env_variable": "WHITELIST", + "default_value": "False", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:True,False", + "field_type": "text" + }, + { + "name": "Server Name", + "description": "Name of the server.", + "env_variable": "SERVERNAME", + "default_value": "DMP Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:48", + "field_type": "text" + } + ] +} \ No newline at end of file From 2bd36bc2df94eae483ec076cad44eb7717878268 Mon Sep 17 00:00:00 2001 From: MrAvox <143508913+avoxmr@users.noreply.github.com> Date: Fri, 22 Sep 2023 19:08:48 +0100 Subject: [PATCH 351/473] Added Elixir Egg (#2450) Add: elixir --- README.md | 1 + generic/README.md | 5 ++ generic/elixir/README.md | 22 ++++++++ generic/elixir/egg-elixir.json | 96 ++++++++++++++++++++++++++++++++++ 4 files changed, 124 insertions(+) create mode 100644 generic/elixir/README.md create mode 100644 generic/elixir/egg-elixir.json diff --git a/README.md b/README.md index 1d14ea79..41258ca0 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,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%23/) +* [elixir](/generic/elixir/) * [dart](/generic/dart/) * [deno](/generic/deno/) * [golang](/generic/golang/) diff --git a/generic/README.md b/generic/README.md index a549b2d4..91cd1eb4 100644 --- a/generic/README.md +++ b/generic/README.md @@ -5,6 +5,11 @@ [C#](https://learn.microsoft.com/en-us/dotnet/csharp//) A generic C# language egg running with dotnet +### [Elixir](elixir) + +[elixir](https://elixir-lang.org/) +A generic Elixir language egg + ### [Dart](dart) [dart](https://dart.dev/) diff --git a/generic/elixir/README.md b/generic/elixir/README.md new file mode 100644 index 00000000..98a8c7ed --- /dev/null +++ b/generic/elixir/README.md @@ -0,0 +1,22 @@ +# Elixir Language Generic + +This egg is designed to run any generic Elixir application, allowing users to pull their own Elixir source code from a Git repository. + +There is an option to allow a user to upload their own files to run a server. + +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/elixir/egg-elixir.json b/generic/elixir/egg-elixir.json new file mode 100644 index 00000000..6142957d --- /dev/null +++ b/generic/elixir/egg-elixir.json @@ -0,0 +1,96 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-08-31T14:24:13+02:00", + "name": "Elixir", + "author": "mravox@proton.me", + "description": "Elixir is a functional, concurrent, high-level general-purpose programming language that runs on the BEAM virtual machine, which is also used to implement the Erlang programming language.", + "features": null, + "docker_images": { + "Elixir Latest": "ghcr.io\/parkervcp\/yolks:elixir_latest", + "Elixir 1.15": "ghcr.io\/parkervcp\/yolks:elixir_1.15", + "Elixir 1.14": "ghcr.io\/parkervcp\/yolks:elixir_1.14", + "Elixir 1.13": "ghcr.io\/parkervcp\/yolks:elixir_1.13", + "Elixir 1.12": "ghcr.io\/parkervcp\/yolks:elixir_1.12" + }, + "file_denylist": [], + "startup": "if [[ -d .git ]] && [[ 0 == \"1\" ]]; then git pull; fi; mix deps.get; mix run --no-halt", + "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# Elixir App Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y git\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\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 \"${GIT_USERNAME}\" ] && [ -z \"${GIT_ACCESS_TOKEN}\" ]; then\r\n echo -e \"using anon api call\"\r\nelse\r\n GIT_ADDRESS=\"https:\/\/${USERNAME}:${GIT_ACCESS_TOKEN}@$(echo -e ${GIT_ADDRESS} | cut -d\/ -f3-)\"\r\nfi\r\n\r\n## pull git elixir repository\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 ${GIT_BRANCH} ]; then\r\n echo -e \"cloning default branch\"\r\n git clone ${GIT_ADDRESS} .\r\n else\r\n echo -e \"cloning ${GIT_BRANCH}'\"\r\n git clone --single-branch --branch ${GIT_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 Repository Address", + "description": "The Git repository address to clone .", + "env_variable": "GIT_ADDRESS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Git Branch", + "description": "The Git branch to install.", + "env_variable": "GIT_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\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 Git Repository.\r\n0 = false (default)\r\n1 = true", + "env_variable": "AUTO_UPDATE", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Git Username", + "description": "Git username for authentication.", + "env_variable": "GIT_USERNAME", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Git Access Token", + "description": "Git access token for authentication.", + "env_variable": "GIT_ACCESS_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + } + ] +} From 4a439b322cb500653bda360f7c475dccc241c643 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Tue, 26 Sep 2023 17:51:49 +0200 Subject: [PATCH 352/473] move uptimekuma to alpine (#2479) Co-authored-by: gOOvER <116325+gOOvER@users.noreply.github.com> --- software/uptime-kuma/egg-uptime-kuma.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/software/uptime-kuma/egg-uptime-kuma.json b/software/uptime-kuma/egg-uptime-kuma.json index a8ac9570..ea1da58a 100644 --- a/software/uptime-kuma/egg-uptime-kuma.json +++ b/software/uptime-kuma/egg-uptime-kuma.json @@ -4,13 +4,13 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-22T09:33:11+01:00", + "exported_at": "2023-09-25T18:09:50+02:00", "name": "Uptime Kuma", "author": "info@goover.de", "description": "Uptime Kuma is an easy-to-use self-hosted monitoring tool.", "features": null, "docker_images": { - "ghcr.io\/parkervcp\/yolks:nodejs_16": "ghcr.io\/parkervcp\/yolks:nodejs_16" + "ghcr.io\/parkervcp\/apps:uptimekuma": "ghcr.io\/parkervcp\/apps:uptimekuma" }, "file_denylist": [], "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install; fi; \/usr\/local\/bin\/node \/home\/container\/{{JS_FILE}} --port={{SERVER_PORT}}", @@ -22,9 +22,9 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# NodeJS 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 js 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\necho \"Installing nodejs packages\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\ncd \/mnt\/server\r\nnpm ci --production \r\nnpm run download-dist\r\n\r\n## add below your custom commands if needed\r\n\r\n## install end\r\necho -e \"-----------------------------------------\"\r\necho -e \"Installation completed...\"\r\necho -e \"-----------------------------------------\"\r\nexit 0", - "container": "node:16-bullseye-slim", - "entrypoint": "bash" + "script": "#!\/bin\/ash\r\n# Uptime Kuma App Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk update\r\napk add --no-cache git curl jq file unzip make gcc g++ python3 python3-dev libtool\r\n\r\nnpm install -g npm@latest\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 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\necho \"Installing nodejs packages\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\n## add below your custom commands if needed\r\n\r\ncd \/mnt\/server\r\nnpm ci --production \r\nnpm run download-dist\r\n\r\n## install end\r\necho -e \"-----------------------------------------\"\r\necho -e \"Installation completed...\"\r\necho -e \"-----------------------------------------\"\r\nexit 0", + "container": "node:18-alpine", + "entrypoint": "ash" } }, "variables": [ From e32bcfc472515393c393224d23fe30030cb3e221 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 28 Sep 2023 12:10:49 +0200 Subject: [PATCH 353/473] add Meilisearch --- README.md | 4 + software/meilisearch/README.md | 7 ++ software/meilisearch/egg-meilisearch.json | 112 ++++++++++++++++++++++ 3 files changed, 123 insertions(+) create mode 100644 software/meilisearch/README.md create mode 100644 software/meilisearch/egg-meilisearch.json diff --git a/README.md b/README.md index 41258ca0..afc174a2 100644 --- a/README.md +++ b/README.md @@ -403,6 +403,10 @@ If you are reading this it looks like you are looking to add an egg to your serv * [languagetool](/software/languagetool) +### Meilisearch + +* [Meilisearch](/software/meilisearch) + ### Owncast * [owncast](/software/owncast) diff --git a/software/meilisearch/README.md b/software/meilisearch/README.md new file mode 100644 index 00000000..b8e8a592 --- /dev/null +++ b/software/meilisearch/README.md @@ -0,0 +1,7 @@ +# [Meilisearch](https://www.meilisearch.com/) + +An open-source, lightning-fast, and hyper-relevant search engine that fits effortlessly into your workflow. + +## Server Ports + +One port needs to be allocated to run Meilisearch. diff --git a/software/meilisearch/egg-meilisearch.json b/software/meilisearch/egg-meilisearch.json new file mode 100644 index 00000000..376424b0 --- /dev/null +++ b/software/meilisearch/egg-meilisearch.json @@ -0,0 +1,112 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-09-12T11:04:11+02:00", + "name": "Meilisearch", + "author": "josdekurk@gmail.com", + "description": "A lightning-fast search engine that fits effortlessly into your apps, websites, and workflow.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian" + }, + "file_denylist": [], + "startup": ".\/meilisearch --http-addr \"0.0.0.0:{{SERVER_PORT}}\" --max-indexing-memory=\"{{SERVER_MEMORY}}mb\" $([ \"$NO_ANALYTICS\" -eq 1 ] && echo \"--no-analytics\")", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Actix runtime found; starting in Actix runtime\"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/meilisearch\/meilisearch\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/meilisearch\/meilisearch\/releases\")\r\nMATCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux-amd64\" || echo \"linux-aarch64\")\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)\r\n fi\r\nfi\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n## Config file\r\nFILE=\/mnt\/server\/config.toml\r\nif [ -f \"$FILE\" ]; then\r\n echo \"Config file exits\"\r\nelse \r\n echo \"Config does not exist. Making one\"\r\n curl -sSL -o config.toml https:\/\/raw.githubusercontent.com\/meilisearch\/meilisearch\/latest\/config.toml\r\nfi\r\n\r\ncurl -sSL -o meilisearch ${DOWNLOAD_URL}\r\nchmod +x meilisearch\r\n\r\n# Make the needed directory's \r\nmkdir -p \/mnt\/server\/dumps\r\nmkdir -p \/mnt\/server\/data.ms\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Master key", + "description": "In production, a Master key of at least 16 bytes is mandatory\r\nSets the instance's master key, automatically protecting all routes except GET \/health. This means you will need a valid API key to access all other endpoints.", + "env_variable": "MEILI_MASTER_KEY", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:64", + "field_type": "text" + }, + { + "name": "Environment", + "description": "Configures the instance's environment. Value must be either production or development.", + "env_variable": "MEILI_ENV", + "default_value": "development", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:development,production", + "field_type": "text" + }, + { + "name": "Disable analytics", + "description": "Deactivates Meilisearch's built-in telemetry when provided.", + "env_variable": "NO_ANALYTICS", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Dumps dir", + "description": "Sets the directory where Meilisearch will create dump files.", + "env_variable": "MEILI_DUMP_DIR", + "default_value": "\/home\/container\/dumps", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|max:64", + "field_type": "text" + }, + { + "name": "DB PATH", + "description": "Designates the location where database files will be created and retrieved.", + "env_variable": "MEILI_DB_PATH", + "default_value": "\/home\/container\/data.ms", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|max:64", + "field_type": "text" + }, + { + "name": "Log level", + "description": "Defines how much detail should be present in Meilisearch's logs.", + "env_variable": "MEILI_LOG_LEVEL", + "default_value": "INFO", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:INFO,WARN,ERROR,TRACE", + "field_type": "text" + }, + { + "name": "Config Path", + "description": "Designates the location of the configuration file to load at launch.", + "env_variable": "MEILI_CONFIG_FILE_PATH", + "default_value": "\/home\/container\/config.toml", + "user_viewable": true, + "user_editable": false, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Max threads", + "description": "Sets the maximum number of threads Meilisearch can use during indexing", + "env_variable": "MEILI_MAX_INDEXING_THREADS", + "default_value": "2", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer", + "field_type": "text" + } + ] +} \ No newline at end of file From 08e6ba7ce1c6e513a73fffbb18d958c580deecda Mon Sep 17 00:00:00 2001 From: nateloeffel <60140854+nateloeffel@users.noreply.github.com> Date: Sat, 30 Sep 2023 22:23:53 -0400 Subject: [PATCH 354/473] Fixed Typo in Readme --- software/uptime-kuma/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/software/uptime-kuma/README.md b/software/uptime-kuma/README.md index 3ba818df..e8619a28 100644 --- a/software/uptime-kuma/README.md +++ b/software/uptime-kuma/README.md @@ -17,7 +17,7 @@ After installation and successful start, browse to your : and setup th ## Server Ports -Uptime Kuma requires 1 port. You can choose every port you want +Uptime Kuma requires 1 port. You can choose any port you want | Port | default | |---------|---------------| From 8a71caf41f5364369e673763af930dace575f8b9 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Sun, 1 Oct 2023 17:00:33 +0200 Subject: [PATCH 355/473] Uptime Kuma - fix DB und cleanup (#2484) Co-authored-by: gOOvER <116325+gOOvER@users.noreply.github.com> --- software/uptime-kuma/README.md | 19 ++++++++++++ software/uptime-kuma/egg-uptime-kuma.json | 36 ++--------------------- 2 files changed, 22 insertions(+), 33 deletions(-) diff --git a/software/uptime-kuma/README.md b/software/uptime-kuma/README.md index e8619a28..bcf2444e 100644 --- a/software/uptime-kuma/README.md +++ b/software/uptime-kuma/README.md @@ -22,3 +22,22 @@ Uptime Kuma requires 1 port. You can choose any port you want | Port | default | |---------|---------------| | default | 3000 | + +## Cloudflared, Apprise & Chromium + +The latest image provides support for Cloudflared and Apprise. + +### Cloudflared +With Cloudflared it is possible to create a proxy over Cloudflare without having to use an nginx proxy. More info here: +https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy-with-Cloudflare-Tunnel + +### Apprise +Apprise provides notifications for all kinds of services. Uptime Kuma has a built-in support for Apprise. +More info's here: +https://github.com/caronc/apprise#supported-notifications + +### Monitor HTTP(s) - Browser Engine (Chromium) +The image supports the monitor "HTTP(s) - Browser Engine". +To use this monitor, enter the following path in the settings under "General -> Chrome/Chromium Executable" (at the bottom): + +/usr/bin/chromium-browser \ No newline at end of file diff --git a/software/uptime-kuma/egg-uptime-kuma.json b/software/uptime-kuma/egg-uptime-kuma.json index ea1da58a..5bc89ffa 100644 --- a/software/uptime-kuma/egg-uptime-kuma.json +++ b/software/uptime-kuma/egg-uptime-kuma.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-09-25T18:09:50+02:00", + "exported_at": "2023-10-01T10:06:16+02:00", "name": "Uptime Kuma", "author": "info@goover.de", "description": "Uptime Kuma is an easy-to-use self-hosted monitoring tool.", @@ -13,7 +13,7 @@ "ghcr.io\/parkervcp\/apps:uptimekuma": "ghcr.io\/parkervcp\/apps:uptimekuma" }, "file_denylist": [], - "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install; fi; \/usr\/local\/bin\/node \/home\/container\/{{JS_FILE}} --port={{SERVER_PORT}}", + "startup": "node \/home\/container\/server\/server.js --port={{SERVER_PORT}}", "config": { "files": "{}", "startup": "{\r\n \"done\": \"[SERVER] INFO: Listening on \"\r\n}", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Uptime Kuma App Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk update\r\napk add --no-cache git curl jq file unzip make gcc g++ python3 python3-dev libtool\r\n\r\nnpm install -g npm@latest\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 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\necho \"Installing nodejs packages\"\r\nif [[ ! -z ${NODE_PACKAGES} ]]; then\r\n \/usr\/local\/bin\/npm install ${NODE_PACKAGES}\r\nfi\r\n\r\nif [ -f \/mnt\/server\/package.json ]; then\r\n \/usr\/local\/bin\/npm install --production\r\nfi\r\n\r\n## add below your custom commands if needed\r\n\r\ncd \/mnt\/server\r\nnpm ci --production \r\nnpm run download-dist\r\n\r\n## install end\r\necho -e \"-----------------------------------------\"\r\necho -e \"Installation completed...\"\r\necho -e \"-----------------------------------------\"\r\nexit 0", + "script": "#!\/bin\/ash\r\n# Uptime Kuma App Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk update\r\napk add --no-cache git curl jq file unzip make gcc g++ python3 python3-dev libtool\r\n\r\nif [ -d \"\/mnt\/server\/node_modules\" ]; then\r\n rm -fR \/mnt\/server\/node_modules\r\n npm cache verify\r\nfi\r\n\r\nnpm install -g npm@latest\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\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\n## pull git js 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\n## add below your custom commands if needed\r\ncd \/mnt\/server\r\nmkdir -p \/mnt\/server\/data\r\ngit config --global --add safe.directory \/mnt\/server\r\n\r\nnpm run setup\r\n\r\nif [ ! -f \"\/mnt\/server\/data\/kuma.db\" ]; then\r\n cp \/mnt\/server\/db\/kuma.db \/mnt\/server\/data\/kuma.db\r\nfi\r\n\r\n## install end\r\necho -e \"-----------------------------------------\"\r\necho -e \"Installation completed...\"\r\necho -e \"-----------------------------------------\"\r\nexit 0", "container": "node:18-alpine", "entrypoint": "ash" } @@ -38,16 +38,6 @@ "rules": "nullable|string", "field_type": "text" }, - { - "name": "Auto Update", - "description": "Pull the latest files on startup when using a GitHub repo.", - "env_variable": "AUTO_UPDATE", - "default_value": "1", - "user_viewable": true, - "user_editable": true, - "rules": "required|boolean", - "field_type": "text" - }, { "name": "JS file", "description": "The file that starts the app", @@ -57,26 +47,6 @@ "user_editable": false, "rules": "required|string", "field_type": "text" - }, - { - "name": "Additional Node packages", - "description": "Install additional node packages.\r\n\r\nUse spaces to separate.", - "env_variable": "NODE_PACKAGES", - "default_value": "", - "user_viewable": false, - "user_editable": false, - "rules": "nullable|string", - "field_type": "text" - }, - { - "name": "Uninstall Node packages", - "description": "Uninstall node packages.\r\n\r\nUse spaces to separate.", - "env_variable": "UNNODE_PACKAGES", - "default_value": "", - "user_viewable": false, - "user_editable": false, - "rules": "nullable|string", - "field_type": "text" } ] } \ No newline at end of file From c791eb2261a340ee2dc5082b1b9e37a06e8b05e5 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Thu, 5 Oct 2023 18:47:50 +0200 Subject: [PATCH 356/473] gOOvER changed my email to new one (#2489) Co-authored-by: gOOvER <116325+gOOvER@users.noreply.github.com> --- bots/twitch/sogebot/egg-soge-bot.json | 4 ++-- .../impostor_server/egg-among-us--impostor-server.json | 2 +- .../citadel/egg-citadel-forged-with-fire.json | 2 +- game_eggs/steamcmd_servers/craftopia/egg-craftopia.json | 2 +- game_eggs/steamcmd_servers/eco/egg-eco.json | 2 +- .../empyrion/egg-empyrion--galactic-survival.json | 2 +- .../rising_world/legacy/egg-rising-world-legacy.json | 2 +- .../rising_world/unity/egg-rising-world-unity.json | 2 +- game_eggs/steamcmd_servers/scpsl/dedicated/egg-scpsl.json | 2 +- .../steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json | 2 +- .../multiadmin/egg-s-c-p--secret-laboratory--multi-admin.json | 2 +- .../steamcmd_servers/solace_crafting/egg-solace-crafting.json | 2 +- game_eggs/steamcmd_servers/soldat/egg-soldat.json | 2 +- .../sonsoftheforest/egg-sons-of-the-forest.json | 2 +- .../space_engineers/default/egg-space-engineers.json | 2 +- .../torch/egg-space-engineers--torch-server.json | 2 +- game_eggs/steamcmd_servers/stationeers/egg-stationeers.json | 2 +- .../valheim/valheim_bepinex/egg-valheim-bep-i-nex.json | 2 +- .../valheim/valheim_plus/egg-valheim-plus-mod.json | 2 +- software/uptime-kuma/egg-uptime-kuma.json | 2 +- voice_servers/ts3_manager/egg-t-s3-manager.json | 2 +- 21 files changed, 22 insertions(+), 22 deletions(-) diff --git a/bots/twitch/sogebot/egg-soge-bot.json b/bots/twitch/sogebot/egg-soge-bot.json index 4e68d540..2cd2c32f 100644 --- a/bots/twitch/sogebot/egg-soge-bot.json +++ b/bots/twitch/sogebot/egg-soge-bot.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-04-23T18:47:53+02:00", "name": "SogeBot", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "sogeBot - Free Twitch Bot built on Node.js https:\/\/sogebot.xyz\/", "features": null, "docker_images": { @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#\/bin\/bash\r\n# Installscript for sogeBot | Author: info@goover.de\r\n\r\nexport DEBIAN_FRONTEND=noninteractive\r\n\r\napt -y update\r\napt install -y curl unzip jq python3 build-essential ca-certificates\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\nexport NODE_OPTIONS=--max-old-space-size=8192\r\nchown -R root:root \/mnt\r\n\r\n#Backup database & config\r\nmkdir -p .backup\r\ncp -f .env \/mnt\/server\/.backup\r\ncp -f sogebot.db \/mnt\/server\/.backup\r\n\r\n#delete old dir's to prevent errors on update\r\nrm -fR dest\r\nrm -fR public\r\nrm -fR node-modules\r\nrm -fR tools\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/sogebot\/sogeBot\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/sogebot\/sogeBot\/releases\")\r\nMATCH=sogeBot\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(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_LINK=$(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_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\necho -e \"Downloading from $DOWNLOAD_LINK\"\r\ncurl -sSL -o sogeBot.zip ${DOWNLOAD_LINK}\r\n\r\nunzip -o sogeBot.zip\r\nrm -rf sogeBot.zip\r\n\r\n\r\necho \"--------------------------------------------------------------------------\"\r\necho \"Installing dependencies, this will take some time so sit back and relax...\"\r\necho \"IGNORE WARNINGS. THESE ARE NOT ERRORS !!!\"\r\necho \"--------------------------------------------------------------------------\"\r\n\r\nnpm install -g npm@8\r\n\r\nnpm install --verbose --force\r\n\r\necho -e \"install completed\"\r\nexit 0", + "script": "#\/bin\/bash\r\n# Installscript for sogeBot | Author: eggs@goover.dev\r\n\r\nexport DEBIAN_FRONTEND=noninteractive\r\n\r\napt -y update\r\napt install -y curl unzip jq python3 build-essential ca-certificates\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\nexport NODE_OPTIONS=--max-old-space-size=8192\r\nchown -R root:root \/mnt\r\n\r\n#Backup database & config\r\nmkdir -p .backup\r\ncp -f .env \/mnt\/server\/.backup\r\ncp -f sogebot.db \/mnt\/server\/.backup\r\n\r\n#delete old dir's to prevent errors on update\r\nrm -fR dest\r\nrm -fR public\r\nrm -fR node-modules\r\nrm -fR tools\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/sogebot\/sogeBot\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/sogebot\/sogeBot\/releases\")\r\nMATCH=sogeBot\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(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_LINK=$(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_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)\r\n fi\r\nfi\r\n\r\necho -e \"Downloading from $DOWNLOAD_LINK\"\r\ncurl -sSL -o sogeBot.zip ${DOWNLOAD_LINK}\r\n\r\nunzip -o sogeBot.zip\r\nrm -rf sogeBot.zip\r\n\r\n\r\necho \"--------------------------------------------------------------------------\"\r\necho \"Installing dependencies, this will take some time so sit back and relax...\"\r\necho \"IGNORE WARNINGS. THESE ARE NOT ERRORS !!!\"\r\necho \"--------------------------------------------------------------------------\"\r\n\r\nnpm install -g npm@8\r\n\r\nnpm install --verbose --force\r\n\r\necho -e \"install completed\"\r\nexit 0", "container": "node:18-bullseye-slim", "entrypoint": "bash" } diff --git a/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json b/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json index ba3d3b54..c93e5617 100644 --- a/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json +++ b/game_eggs/among_us/impostor_server/egg-among-us--impostor-server.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-03-04T15:04:21+01:00", "name": "Among Us - Impostor Server", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "Impostor is one of the first Among Us private servers, written in C#.\r\n\r\nThere are no special features at this moment, the goal is aiming to be as close as possible to the real server, for now. In a later stage, making modifications to game logic by modifying GameData packets can be looked at.", "features": null, "docker_images": { diff --git a/game_eggs/steamcmd_servers/citadel/egg-citadel-forged-with-fire.json b/game_eggs/steamcmd_servers/citadel/egg-citadel-forged-with-fire.json index 1c294c12..5b3f1232 100644 --- a/game_eggs/steamcmd_servers/citadel/egg-citadel-forged-with-fire.json +++ b/game_eggs/steamcmd_servers/citadel/egg-citadel-forged-with-fire.json @@ -6,7 +6,7 @@ }, "exported_at": "2021-11-26T14:44:12+01:00", "name": "Citadel: Forged with Fire", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "Citadel: Forged With Fire is a massive online sandbox RPG set in the mystical world of Ignus. Featuring magic, spellcasting, building, exploring and crafting as you fight to make a name for yourself and achieve notoriety across the land.", "features": [ "steam_disk_space" diff --git a/game_eggs/steamcmd_servers/craftopia/egg-craftopia.json b/game_eggs/steamcmd_servers/craftopia/egg-craftopia.json index 6d16a070..bdf3df8e 100644 --- a/game_eggs/steamcmd_servers/craftopia/egg-craftopia.json +++ b/game_eggs/steamcmd_servers/craftopia/egg-craftopia.json @@ -6,7 +6,7 @@ }, "exported_at": "2022-10-07T17:08:45+02:00", "name": "Craftopia", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "Craftopia is the brand new multiplayer survival action game made in Japan. We combined many features we find enjoyable, such as hunting, farming, hack-and-slash, building, automation to develop this game.", "features": [ "steam_disk_space" diff --git a/game_eggs/steamcmd_servers/eco/egg-eco.json b/game_eggs/steamcmd_servers/eco/egg-eco.json index f91c6fed..3f8cfcb0 100644 --- a/game_eggs/steamcmd_servers/eco/egg-eco.json +++ b/game_eggs/steamcmd_servers/eco/egg-eco.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-01-04T11:28:40+01:00", "name": "Eco", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "Eco is an online world from Strange Loop Games where players must build civilization using resources from an ecosystem that can be damaged and destroyed. The world of Eco is an incredibly reactive one, and whatever any player does in the world affects the underlying ecosystem.", "features": [ "steam_disk_space" diff --git a/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json b/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json index f9a5ec94..4b5b780d 100644 --- a/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json +++ b/game_eggs/steamcmd_servers/empyrion/egg-empyrion--galactic-survival.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-04-25T19:31:11+02:00", "name": "Empyrion: Galactic Survival", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "Empyrion: Galactic Survival dedicated server", "features": null, "docker_images": { diff --git a/game_eggs/steamcmd_servers/rising_world/legacy/egg-rising-world-legacy.json b/game_eggs/steamcmd_servers/rising_world/legacy/egg-rising-world-legacy.json index 1f3fdf6c..da1fc498 100644 --- a/game_eggs/steamcmd_servers/rising_world/legacy/egg-rising-world-legacy.json +++ b/game_eggs/steamcmd_servers/rising_world/legacy/egg-rising-world-legacy.json @@ -6,7 +6,7 @@ }, "exported_at": "2022-10-16T09:21:36+02:00", "name": "Rising World Java Legacy", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "Rising World is a voxel based open-world sandbox game, featuring a procedurally generated world, playable in single and multi-player.", "features": [ "steam_disk_space" diff --git a/game_eggs/steamcmd_servers/rising_world/unity/egg-rising-world-unity.json b/game_eggs/steamcmd_servers/rising_world/unity/egg-rising-world-unity.json index 3f12eae8..07edfdc0 100644 --- a/game_eggs/steamcmd_servers/rising_world/unity/egg-rising-world-unity.json +++ b/game_eggs/steamcmd_servers/rising_world/unity/egg-rising-world-unity.json @@ -6,7 +6,7 @@ }, "exported_at": "2022-10-23T09:33:48+02:00", "name": "Rising World Unity", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "Rising World is a voxel based open-world sandbox game, featuring a procedurally generated world, playable in single and multi-player.", "features": [ "steam_disk_space" diff --git a/game_eggs/steamcmd_servers/scpsl/dedicated/egg-scpsl.json b/game_eggs/steamcmd_servers/scpsl/dedicated/egg-scpsl.json index d6f12f63..4c0af7df 100644 --- a/game_eggs/steamcmd_servers/scpsl/dedicated/egg-scpsl.json +++ b/game_eggs/steamcmd_servers/scpsl/dedicated/egg-scpsl.json @@ -6,7 +6,7 @@ }, "exported_at": "2021-11-14T11:16:57+01:00", "name": "SCP:SL", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "Egg for SCP: Secret Laboratory Dedicated Linux Server", "features": [ "steam_disk_space" diff --git a/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json b/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json index 2a881b69..00d43318 100644 --- a/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json +++ b/game_eggs/steamcmd_servers/scpsl/exiled/egg-s-c-p--s-l--exiled.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-01-09T14:18:18+01:00", "name": "SCP:SL - Exiled", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "Egg for SCP: Secret Laboratory Dedicated Linux Server with Exiled Plugin Framework", "features": [ "steam_disk_space" diff --git a/game_eggs/steamcmd_servers/scpsl/multiadmin/egg-s-c-p--secret-laboratory--multi-admin.json b/game_eggs/steamcmd_servers/scpsl/multiadmin/egg-s-c-p--secret-laboratory--multi-admin.json index e422fd4b..75f402c4 100644 --- a/game_eggs/steamcmd_servers/scpsl/multiadmin/egg-s-c-p--secret-laboratory--multi-admin.json +++ b/game_eggs/steamcmd_servers/scpsl/multiadmin/egg-s-c-p--secret-laboratory--multi-admin.json @@ -6,7 +6,7 @@ }, "exported_at": "2021-11-14T11:18:28+01:00", "name": "SCP: Secret Laboratory - MultiAdmin", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "The latest vanilla version of SCP:SL running through MultiAdmin for compatibility. LocalAdmin does not work. No SMod2.", "features": [ "steam_disk_space" diff --git a/game_eggs/steamcmd_servers/solace_crafting/egg-solace-crafting.json b/game_eggs/steamcmd_servers/solace_crafting/egg-solace-crafting.json index d60353e0..b05c26fb 100644 --- a/game_eggs/steamcmd_servers/solace_crafting/egg-solace-crafting.json +++ b/game_eggs/steamcmd_servers/solace_crafting/egg-solace-crafting.json @@ -6,7 +6,7 @@ }, "exported_at": "2022-10-24T20:12:31+02:00", "name": "Solace Crafting", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "Open-world fantasy survival RPG. Borderless distance-based difficulty with player built fast-travel, modular-building, and town management.", "features": null, "docker_images": { diff --git a/game_eggs/steamcmd_servers/soldat/egg-soldat.json b/game_eggs/steamcmd_servers/soldat/egg-soldat.json index 235aaa83..13cb12f4 100644 --- a/game_eggs/steamcmd_servers/soldat/egg-soldat.json +++ b/game_eggs/steamcmd_servers/soldat/egg-soldat.json @@ -6,7 +6,7 @@ }, "exported_at": "2022-01-20T12:58:19-05:00", "name": "Soldat", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "Soldat is a unique 2D (side-view) multiplayer action game. It has been influenced by the best of games such as Liero, Worms, Quake, and Counter-Strike and provides a fast-paced gaming experience with tons of blood and flesh. Soldiers fight against each other in 2D battle arenas using a deadly arsenal of military weapons, across 7 default game modes. It features 18 different weapons and 60 maps to frag away on, with full support for user created content.\r\n\r\nSteam: https:\/\/store.steampowered.com\/app\/638490\/Soldat\/", "features": [ "steam_disk_space" 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 98660cc5..789d688c 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 @@ -6,7 +6,7 @@ }, "exported_at": "2023-07-23T04:57:30-04:00", "name": "Sons Of The Forest", - "author": "info@goover.de", + "author": "eggs@goover.dev", "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" diff --git a/game_eggs/steamcmd_servers/space_engineers/default/egg-space-engineers.json b/game_eggs/steamcmd_servers/space_engineers/default/egg-space-engineers.json index 05aaccf1..e4e9d49c 100644 --- a/game_eggs/steamcmd_servers/space_engineers/default/egg-space-engineers.json +++ b/game_eggs/steamcmd_servers/space_engineers/default/egg-space-engineers.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-07-22T12:57:51+02:00", "name": "Space Engineers", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "Space Engineers is a voxel-based sandbox game set in space and on planets.", "features": [ "steam_disk_space" diff --git a/game_eggs/steamcmd_servers/space_engineers/torch/egg-space-engineers--torch-server.json b/game_eggs/steamcmd_servers/space_engineers/torch/egg-space-engineers--torch-server.json index 5f9e6e30..e1fa6c30 100644 --- a/game_eggs/steamcmd_servers/space_engineers/torch/egg-space-engineers--torch-server.json +++ b/game_eggs/steamcmd_servers/space_engineers/torch/egg-space-engineers--torch-server.json @@ -6,7 +6,7 @@ }, "exported_at": "2022-11-26T17:31:15+01:00", "name": "Space Engineers - Torch Server", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "Torch is the successor to SE Server Extender and gives server admins the tools they need to keep their Space Engineers servers running smoothly. It features a user interface with live management tools and a plugin system so you can run your server exactly how you'd like. Torch is still in early development so there may be bugs and incomplete features.\r\n\r\n!!!!! DO NOT CANCEL THE FIRST START, OR YOU NEED TO DELETE THE SERVER AND CREATE FROM SCRATCH !!!!", "features": [ "steam_disk_space" diff --git a/game_eggs/steamcmd_servers/stationeers/egg-stationeers.json b/game_eggs/steamcmd_servers/stationeers/egg-stationeers.json index 21c62948..780f11fa 100644 --- a/game_eggs/steamcmd_servers/stationeers/egg-stationeers.json +++ b/game_eggs/steamcmd_servers/stationeers/egg-stationeers.json @@ -6,7 +6,7 @@ }, "exported_at": "2022-12-30T11:39:51+01:00", "name": "Stationeers", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "Stationeers Server", "features": [ "steam_disk_space" diff --git a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json index b2f3879f..ab2dca35 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-03-03T16:16:01+01:00", "name": "Valheim BepINex", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture incl the Plugin Framework BepInEx", "features": [ "steam_disk_space" diff --git a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json index 82968fc1..1f339ffe 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-03-03T16:15:23+01:00", "name": "Valheim Plus Mod", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture.", "features": [ "steam_disk_space" diff --git a/software/uptime-kuma/egg-uptime-kuma.json b/software/uptime-kuma/egg-uptime-kuma.json index 5bc89ffa..ced614ae 100644 --- a/software/uptime-kuma/egg-uptime-kuma.json +++ b/software/uptime-kuma/egg-uptime-kuma.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-10-01T10:06:16+02:00", "name": "Uptime Kuma", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "Uptime Kuma is an easy-to-use self-hosted monitoring tool.", "features": null, "docker_images": { diff --git a/voice_servers/ts3_manager/egg-t-s3-manager.json b/voice_servers/ts3_manager/egg-t-s3-manager.json index c20c8b53..515bc972 100644 --- a/voice_servers/ts3_manager/egg-t-s3-manager.json +++ b/voice_servers/ts3_manager/egg-t-s3-manager.json @@ -5,7 +5,7 @@ }, "exported_at": "2020-12-05T08:58:33+01:00", "name": "TS3 Manager", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "The Open Source Webinterface For TeamSpeak Servers", "features": null, "image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", From 0b41aa10f634a01426e7e6b42f3574afa86b0807 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Sat, 7 Oct 2023 08:41:49 +0200 Subject: [PATCH 357/473] Update egg-t-s3-manager.json --- .../ts3_manager/egg-t-s3-manager.json | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/voice_servers/ts3_manager/egg-t-s3-manager.json b/voice_servers/ts3_manager/egg-t-s3-manager.json index c20c8b53..54b075b2 100644 --- a/voice_servers/ts3_manager/egg-t-s3-manager.json +++ b/voice_servers/ts3_manager/egg-t-s3-manager.json @@ -1,25 +1,29 @@ { "_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-12-05T08:58:33+01:00", + "exported_at": "2023-10-07T08:41:21+02:00", "name": "TS3 Manager", "author": "info@goover.de", "description": "The Open Source Webinterface For TeamSpeak Servers", "features": null, - "image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", + "docker_images": { + "ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian" + }, + "file_denylist": [], "startup": ".\/start_ts3-manager -p ${SERVER_PORT}", "config": { "files": "{}", - "startup": "{\r\n \"done\": \"Server listening on\",\r\n \"userInteraction\": []\r\n}", + "startup": "{\r\n \"done\": \"Server listening on\"\r\n}", "logs": "{}", "stop": "^C" }, "scripts": { "installation": { - "script": "apt -y update\r\napt -y upgrade\r\napt install -y git unzip jq wget tar curl\r\n\r\nexport HOME=\/mnt\/server\r\ncd $HOME\r\n\r\n## get release info and download links\r\nLATEST_RELEASE=$(curl -L -s -H 'Accept: application\/json' https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/latest)\r\nLATEST_VERSION=$(echo $LATEST_RELEASE | sed -e 's\/.*\"tag_name\":\"\\([^\"]*\\)\".*\/\\1\/')\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/$LATEST_VERSION\/$MATCH-$LATEST_VERSION\"\r\nelse \r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/v$VERSION\/$MATCH-$VERSION-v$VERSION\"\r\nfi\r\n\r\necho $DOWNLOAD_LINK\r\nwget $DOWNLOAD_LINK\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n mv -f $MATCH-$LATEST_VERSION $HOME\/start_ts3-manager\r\n chmod +x start_ts3-manager\r\nelse\r\n mv -f $MATCH-v$VERSION $HOME\/start_ts3-manager\r\n chmod start_ts3-manager\r\nfi", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\n# Valheim Installation Script\r\n\r\n## install needed packages\r\napt update\r\napt install -y git unzip jq wget tar curl\r\n\r\n## env\r\nexport HOME=\/mnt\/server\r\ncd $HOME\r\n\r\n## get release info and download links\r\nLATEST_RELEASE=$(curl -L -s -H 'Accept: application\/json' https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/latest)\r\nLATEST_VERSION=$(echo $LATEST_RELEASE | sed -e 's\/.*\"tag_name\":\"\\([^\"]*\\)\".*\/\\1\/')\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/$LATEST_VERSION\/$MATCH-$LATEST_VERSION\"\r\nelse \r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/v$VERSION\/$MATCH-$VERSION-v$VERSION\"\r\nfi\r\n\r\necho $DOWNLOAD_LINK\r\nwget $DOWNLOAD_LINK\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n mv -f $MATCH-$LATEST_VERSION $HOME\/start_ts3-manager\r\n chmod +x start_ts3-manager\r\nelse\r\n mv -f $MATCH-v$VERSION $HOME\/start_ts3-manager\r\n chmod start_ts3-manager\r\nfi\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Installation completed\"\r\necho \"-------------------------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } }, @@ -31,7 +35,8 @@ "default_value": "joni1802\/ts3-manager", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:50" + "rules": "required|string|max:50", + "field_type": "text" }, { "name": "VERSION", @@ -40,7 +45,8 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:30" + "rules": "required|string|max:30", + "field_type": "text" }, { "name": "MATCH", @@ -49,7 +55,8 @@ "default_value": "ts3-manager-linux-x64", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:50" + "rules": "required|string|max:50", + "field_type": "text" } ] } \ No newline at end of file From dcc696d44ef0f363ebe37cdc531a4ec638b6c6dd Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Sat, 7 Oct 2023 08:43:34 +0200 Subject: [PATCH 358/473] update email --- voice_servers/ts3_manager/egg-t-s3-manager.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/voice_servers/ts3_manager/egg-t-s3-manager.json b/voice_servers/ts3_manager/egg-t-s3-manager.json index 54b075b2..f4bdc7dc 100644 --- a/voice_servers/ts3_manager/egg-t-s3-manager.json +++ b/voice_servers/ts3_manager/egg-t-s3-manager.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-10-07T08:41:21+02:00", "name": "TS3 Manager", - "author": "info@goover.de", + "author": "eggs@goover.dev", "description": "The Open Source Webinterface For TeamSpeak Servers", "features": null, "docker_images": { From b29acbbb8b8a6a258fe8ab441839642261fe5101 Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Sat, 7 Oct 2023 09:24:37 +0200 Subject: [PATCH 359/473] Update egg-languagetool.json (#2493) Co-authored-by: gOOvER <116325+gOOvER@users.noreply.github.com> --- software/languagetool/egg-languagetool.json | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/software/languagetool/egg-languagetool.json b/software/languagetool/egg-languagetool.json index 026432e4..97f0646a 100644 --- a/software/languagetool/egg-languagetool.json +++ b/software/languagetool/egg-languagetool.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-04-06T17:26:12+02:00", + "exported_at": "2023-10-07T07:47:03+02:00", "name": "LanguageTool", "author": "thomasruhl@live.de", "description": "This egg installs a LanguageTool server\r\n\r\nLanguageTool is an Open Source proofreading software for English, French, German, Polish, Russian, and more than 20 other languages. It finds many errors that a simple spell checker cannot find.\r\n\r\nView https:\/\/languagetool.org for more information.", "features": null, - "images": [ - "ghcr.io\/pterodactyl\/yolks:java_8" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:java_17": "ghcr.io\/parkervcp\/yolks:java_17" + }, "file_denylist": [], - "startup": "java -cp languagetool-server.jar org.languagetool.server.HTTPServer --port {{SERVER_PORT}} --allow-origin \\\"*\\\" --public --config config.properties", + "startup": "java -cp languagetool-server.jar org.languagetool.server.HTTPServer --port {{SERVER_PORT}} --allow-origin --public --config config.properties", "config": { "files": "{\r\n \"config.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"languageModel\": \"models\/\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Server started\"\r\n}", @@ -35,7 +35,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 096e97b072b83c4d03787cb4ff8e2fccaecf3e2f Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Sat, 7 Oct 2023 10:26:33 +0200 Subject: [PATCH 360/473] Update egg-valheim-plus-mod.json (#2492) Co-authored-by: gOOvER <116325+gOOvER@users.noreply.github.com> --- .../valheim/valheim_plus/egg-valheim-plus-mod.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json index 1f339ffe..d30ba605 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_plus/egg-valheim-plus-mod.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-03T16:15:23+01:00", + "exported_at": "2023-10-07T06:47:10+02:00", "name": "Valheim Plus Mod", "author": "eggs@goover.dev", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture.", @@ -184,7 +184,7 @@ "name": "[V+] Github Package", "description": "", "env_variable": "GITHUB_PACKAGE", - "default_value": "valheimPlus\/ValheimPlus", + "default_value": "Grantapher\/ValheimPlus", "user_viewable": false, "user_editable": false, "rules": "required|string|max:40", From acfef3feb8778dd450eb8e9a1522bd5968c45e5b Mon Sep 17 00:00:00 2001 From: Wapriaily Date: Sat, 7 Oct 2023 23:20:33 +0800 Subject: [PATCH 361/473] Update egg-hurtworld.json (#2494) --- .../hurtworld/egg-hurtworld.json | 66 ++++++++++++++----- 1 file changed, 50 insertions(+), 16 deletions(-) diff --git a/game_eggs/steamcmd_servers/hurtworld/egg-hurtworld.json b/game_eggs/steamcmd_servers/hurtworld/egg-hurtworld.json index 37d3c695..062daa70 100644 --- a/game_eggs/steamcmd_servers/hurtworld/egg-hurtworld.json +++ b/game_eggs/steamcmd_servers/hurtworld/egg-hurtworld.json @@ -1,32 +1,32 @@ { "_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-20T12:55:06-05:00", + "exported_at": "2023-10-07T22:46:51+08:00", "name": "Hurtworld", "author": "brycea@terrahost.cloud", "description": "Hurtworld is a hardcore multiplayer survival FPS with a focus on deep survival progression that doesn't become trivial once you establish some basic needs. Built for hardcore gamers, Hurtworld aims to punish.", "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": ".\/Hurtworld.x86_64 -batchmode -nographics -exec \"host {{SERVER_PORT}};queryport {{QUERY_PORT}};maxplayers {{MAX_PLAYERS}};servername {{HOSTNAME}};creativemode ${CREATIVE_MODE};${ADMINS}\" -logfile $1", + "startup": ".\/Hurtworld.x86_64 -batchmode -nographics -exec \"host {{SERVER_PORT}};queryport {{QUERY_PORT}};maxplayers {{MAX_PLAYERS}};servername {{HOSTNAME}};creativemode {{CREATIVE_MODE}};addadmin {{ADMINS}}\" -logfile $1", "config": { "files": "{}", "startup": "{\r\n \"done\": \"orphaned items\"\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\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 +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +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 ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", - "container": "debian:buster-slim", - "entrypoint": "bash" + "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## 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## copy 32-bit steamclient.so\r\ncp -v linux32\/steamclient.so ..\/Hurtworld_Data\/Plugins\/x86\/steamclient.so\r\n\r\n## copy 64-bit steamclient.so\r\ncp -v linux64\/steamclient.so ..\/Hurtworld_Data\/Plugins\/x86_64\/steamclient.so\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "\/bin\/bash" } }, "variables": [ @@ -37,16 +37,18 @@ "default_value": "405100", "user_viewable": true, "user_editable": false, - "rules": "required|regex:\/^(405100)$\/" + "rules": "required|in:405100", + "field_type": "text" }, { "name": "Query Port", - "description": "Server Query Default Port", + "description": "Server Query Default Port.", "env_variable": "QUERY_PORT", "default_value": "13871", "user_viewable": true, "user_editable": false, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { "name": "Max Players", @@ -55,7 +57,8 @@ "default_value": "60", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:60" + "rules": "required|string|max:60", + "field_type": "text" }, { "name": "Server Name", @@ -64,7 +67,38 @@ "default_value": "A Hurtworld Server", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:50" + "rules": "required|string|max:50", + "field_type": "text" + }, + { + "name": "Server Owner Guid", + "description": "Steam id of the server owner.", + "env_variable": "ADMINS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:17", + "field_type": "text" + }, + { + "name": "Creative Mode", + "description": "Turn creative mode on and off (free build). Value as 0 for off, 1 for on.", + "env_variable": "CREATIVE_MODE", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "AUTO_UPDATE", + "description": "Disabling or enabling automated updates on boot.", + "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 be0dc642750d613e24d3fcec3e27c01313326f45 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Sat, 7 Oct 2023 18:03:04 +0200 Subject: [PATCH 362/473] Update egg-t-s3-manager.json --- voice_servers/ts3_manager/egg-t-s3-manager.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/voice_servers/ts3_manager/egg-t-s3-manager.json b/voice_servers/ts3_manager/egg-t-s3-manager.json index f4bdc7dc..369f0963 100644 --- a/voice_servers/ts3_manager/egg-t-s3-manager.json +++ b/voice_servers/ts3_manager/egg-t-s3-manager.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-07T08:41:21+02:00", + "exported_at": "2023-10-07T18:01:49+02:00", "name": "TS3 Manager", "author": "eggs@goover.dev", "description": "The Open Source Webinterface For TeamSpeak Servers", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Valheim Installation Script\r\n\r\n## install needed packages\r\napt update\r\napt install -y git unzip jq wget tar curl\r\n\r\n## env\r\nexport HOME=\/mnt\/server\r\ncd $HOME\r\n\r\n## get release info and download links\r\nLATEST_RELEASE=$(curl -L -s -H 'Accept: application\/json' https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/latest)\r\nLATEST_VERSION=$(echo $LATEST_RELEASE | sed -e 's\/.*\"tag_name\":\"\\([^\"]*\\)\".*\/\\1\/')\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/$LATEST_VERSION\/$MATCH-$LATEST_VERSION\"\r\nelse \r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/v$VERSION\/$MATCH-$VERSION-v$VERSION\"\r\nfi\r\n\r\necho $DOWNLOAD_LINK\r\nwget $DOWNLOAD_LINK\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n mv -f $MATCH-$LATEST_VERSION $HOME\/start_ts3-manager\r\n chmod +x start_ts3-manager\r\nelse\r\n mv -f $MATCH-v$VERSION $HOME\/start_ts3-manager\r\n chmod start_ts3-manager\r\nfi\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Installation completed\"\r\necho \"-------------------------------------------------------\"", + "script": "#!\/bin\/bash\r\n\r\n## install needed packages\r\napt update\r\napt install -y git unzip jq wget tar curl\r\n\r\n## env\r\nexport HOME=\/mnt\/server\r\ncd $HOME\r\n\r\n## get release info and download links\r\nLATEST_RELEASE=$(curl -L -s -H 'Accept: application\/json' https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/latest)\r\nLATEST_VERSION=$(echo $LATEST_RELEASE | sed -e 's\/.*\"tag_name\":\"\\([^\"]*\\)\".*\/\\1\/')\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/$LATEST_VERSION\/$MATCH-$LATEST_VERSION\"\r\nelse \r\n DOWNLOAD_LINK=\"https:\/\/github.com\/${GITHUB_PACKAGE}\/releases\/download\/v$VERSION\/$MATCH-$VERSION-v$VERSION\"\r\nfi\r\n\r\necho $DOWNLOAD_LINK\r\nwget $DOWNLOAD_LINK\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n mv -f $MATCH-$LATEST_VERSION $HOME\/start_ts3-manager\r\n chmod +x start_ts3-manager\r\nelse\r\n mv -f $MATCH-v$VERSION $HOME\/start_ts3-manager\r\n chmod start_ts3-manager\r\nfi\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Installation completed\"\r\necho \"-------------------------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } From 0065fbf8cf24578d3b23fd9b6734de768bffc515 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Mon, 9 Oct 2023 19:07:39 +0200 Subject: [PATCH 363/473] Installation and update significantly simplified --- software/uptime-kuma/egg-uptime-kuma.json | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/software/uptime-kuma/egg-uptime-kuma.json b/software/uptime-kuma/egg-uptime-kuma.json index ced614ae..bf756329 100644 --- a/software/uptime-kuma/egg-uptime-kuma.json +++ b/software/uptime-kuma/egg-uptime-kuma.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-01T10:06:16+02:00", + "exported_at": "2023-10-09T19:06:53+02:00", "name": "Uptime Kuma", "author": "eggs@goover.dev", "description": "Uptime Kuma is an easy-to-use self-hosted monitoring tool.", @@ -13,7 +13,7 @@ "ghcr.io\/parkervcp\/apps:uptimekuma": "ghcr.io\/parkervcp\/apps:uptimekuma" }, "file_denylist": [], - "startup": "node \/home\/container\/server\/server.js --port={{SERVER_PORT}}", + "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then npm run setup; fi; \/usr\/local\/bin\/node \/home\/container\/server\/server.js --port={{SERVER_PORT}}", "config": { "files": "{}", "startup": "{\r\n \"done\": \"[SERVER] INFO: Listening on \"\r\n}", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Uptime Kuma App Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk update\r\napk add --no-cache git curl jq file unzip make gcc g++ python3 python3-dev libtool\r\n\r\nif [ -d \"\/mnt\/server\/node_modules\" ]; then\r\n rm -fR \/mnt\/server\/node_modules\r\n npm cache verify\r\nfi\r\n\r\nnpm install -g npm@latest\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\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\n## pull git js 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\n## add below your custom commands if needed\r\ncd \/mnt\/server\r\nmkdir -p \/mnt\/server\/data\r\ngit config --global --add safe.directory \/mnt\/server\r\n\r\nnpm run setup\r\n\r\nif [ ! -f \"\/mnt\/server\/data\/kuma.db\" ]; then\r\n cp \/mnt\/server\/db\/kuma.db \/mnt\/server\/data\/kuma.db\r\nfi\r\n\r\n## install end\r\necho -e \"-----------------------------------------\"\r\necho -e \"Installation completed...\"\r\necho -e \"-----------------------------------------\"\r\nexit 0", + "script": "#!\/bin\/ash\r\n# Uptime Kuma App Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk update\r\napk add --no-cache git curl jq file unzip make gcc g++ python3 python3-dev libtool\r\napk add --no-cache git-lfs --repository=https:\/\/dl-cdn.alpinelinux.org\/alpine\/latest-stable\/community\r\n\r\n## npm update to latest\r\necho -e \"Updating npm to latest....\\n\"\r\nif [ -d \"\/mnt\/server\/node_modules\" ]; then\r\n rm -fR \/mnt\/server\/node_modules\r\n npm cache verify\r\nfi\r\nnpm install -g npm@latest\r\n\r\n## Uptime Kuma install & update\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\ngit config --global --add safe.directory \/mnt\/server\r\n\r\nif [ -d .git ]; then\r\n echo -e \"Updating Uptime Kuma....\\n \"\r\n npm run setup\r\nelse\r\n echo -e \"Download and installing Uptime Kuma...\\n\" \r\n git clone https:\/\/github.com\/louislam\/uptime-kuma.git .\r\n npm run setup\r\nfi\r\n\r\n## only create dir, when .git is present to prevent errors\r\nif [ -d .git ]; then\r\n mkdir -p \/mnt\/server\/data\r\nfi\r\n\r\nif [ ! -f \"\/mnt\/server\/data\/kuma.db\" ]; then\r\n cp \/mnt\/server\/db\/kuma.db \/mnt\/server\/data\/kuma.db\r\nfi\r\n\r\n## install end\r\necho -e \"-----------------------------------------\"\r\necho -e \"Installation completed...\"\r\necho -e \"-----------------------------------------\"\r\nexit 0", "container": "node:18-alpine", "entrypoint": "ash" } @@ -47,6 +47,16 @@ "user_editable": false, "rules": "required|string", "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" } ] } \ No newline at end of file From 55f40f1e11b744304b563b434f174c5157e18c54 Mon Sep 17 00:00:00 2001 From: HoleInTheSeat <58385663+HoleInTheSeat@users.noreply.github.com> Date: Sat, 14 Oct 2023 17:36:42 -0500 Subject: [PATCH 364/473] Add Automatic mod downloading allows user to enter a modpack dependency string from thunderstore.io for automatic mod downloading. --- .../valheim_bepinex/egg-valheim-bep-i-nex.json | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json index ab2dca35..97a0e602 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-03-03T16:16:01+01:00", + "exported_at": "2023-10-14T17:31:55-05:00", "name": "Valheim BepINex", "author": "eggs@goover.dev", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture incl the Plugin Framework BepInEx", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Valheim Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install wget\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 +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +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\necho \"-------------------------------------------------------\"\r\necho \"installing BepInEx...\"\r\necho \"-------------------------------------------------------\"\r\nif ! api_response=$(curl -sfSL -H \"accept: application\/json\" \"https:\/\/valheim.thunderstore.io\/api\/experimental\/package\/denikson\/BepInExPack_Valheim\/\"); then\r\n fatal \"Error: could not retrieve BepInEx release info from Thunderstore.io API\"\r\nfi\r\n\r\ndownload_url=$(jq -r \".latest.download_url\" <<< \"$api_response\" )\r\nversion_number=$(jq -r \".latest.version_number\" <<< \"$api_response\" )\r\n \r\ncd \/mnt\/server\r\n#echo $download_url\r\nwget --content-disposition $download_url\r\nunzip -o denikson-BepInExPack_Valheim-${version_number}.zip\r\ncp -r \/mnt\/server\/BepInExPack_Valheim\/* \/mnt\/server\r\n\r\n\r\n##cleanup\r\necho \"-------------------------------------------------------\"\r\necho \"cleanup files...\"\r\necho \"-------------------------------------------------------\"\r\nrm -fR BepInExPack_Valheim\r\nrm -fR icon.png\r\nrm -fR denikson-BepInExPack_Valheim-*\r\nrm -fR manifest.json\r\nrm -fR README.m\r\n\r\n#rm -fR start_*\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Installation completed\"\r\necho \"-------------------------------------------------------\"", + "script": "#!\/bin\/bash\r\n# Valheim Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install wget\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 +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +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\necho \"-------------------------------------------------------\"\r\necho \"installing BepInEx and Selected ModPacks...\"\r\necho \"-------------------------------------------------------\"\r\nif ! api_response=$(curl -sfSL -H \"accept: application\/json\" \"https:\/\/valheim.thunderstore.io\/api\/experimental\/package\/denikson\/BepInExPack_Valheim\/\"); then\r\n fatal \"Error: could not retrieve BepInEx release info from Thunderstore.io API\"\r\nfi\r\n\r\ndownload_url=$(jq -r \".latest.download_url\" <<< \"$api_response\" )\r\nversion_number=$(jq -r \".latest.version_number\" <<< \"$api_response\" )\r\n\r\nif [ ! -z \"$V_MODPACK\" ]\r\nthen\r\n#Modpack Name dashes to slashes for URL\r\nV_MODPACK=$(echo \"$V_MODPACK\" | sed 's\/-\/\\\/\/g')\r\n\r\n#Extract dependencies from ModPack JSON data\r\nV_MODPACK_DEPENDENCIES=$(curl -sfSL -H \"accept: application\/json\" \"https:\/\/valheim.thunderstore.io\/api\/experimental\/package\/${V_MODPACK}\" | jq -r '.dependencies[]')\r\nfi\r\n\r\ncd \/mnt\/server\r\n#echo $download_url\r\nwget --content-disposition $download_url\r\nunzip -o denikson-BepInExPack_Valheim-${version_number}.zip\r\ncp -r \/mnt\/server\/BepInExPack_Valheim\/* \/mnt\/server\r\n\r\nif [ ! -z \"$V_MODPACK\" ]\r\nthen\r\n#Delete Old Mods\r\nrm -rf \/mnt\/server\/BepInEx\/plugins\/*\r\n\r\n#Download and extract the modpack dlls files\r\nfor V_MODPACK_DEPENDENCY in $V_MODPACK_DEPENDENCIES; do\r\n #ignore bepinex\r\n if [[ \"$V_MODPACK_DEPENDENCY\" == *\"denikson-BepInExPack_Valheim\"* ]]; then\r\n continue # Skip this dependency\r\n fi\r\n \r\n #replace dashes with slashes for url\r\n V_MODPACK_DEPENDENCY_WITH_SLASH=$(echo \"$V_MODPACK_DEPENDENCY\" | sed 's\/-\/\\\/\/g')\r\n \r\n #download dependencies\r\n wget -O \"$V_MODPACK_DEPENDENCY.zip\" \"https:\/\/thunderstore.io\/package\/download\/$V_MODPACK_DEPENDENCY_WITH_SLASH\"\r\n\r\n #Set the destination directory and ensure it exists\r\n destination_directory=\"\/mnt\/server\/BepInEx\/plugins\"\r\n if [ ! -d \"$destination_directory\" ]; then\r\n mkdir -p \"$destination_directory\"\r\n fi\r\n\r\n #Extract DLL files from the ZIP and delete the zip file\r\n unzip -j \"$V_MODPACK_DEPENDENCY.zip\" \"*.dll\" -d \"$destination_directory\"\r\n \r\n #Cleanup\r\n rm $V_MODPACK_DEPENDENCY.zip\r\ndone\r\nfi\r\n\r\n##cleanup\r\necho \"-------------------------------------------------------\"\r\necho \"cleanup files...\"\r\necho \"-------------------------------------------------------\"\r\nrm -fR BepInExPack_Valheim\r\nrm -fR icon.png\r\nrm -fR denikson-BepInExPack_Valheim-*\r\nrm -fR manifest.json\r\nrm -fR README.m\r\n\r\n#rm -fR start_*\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Installation completed\"\r\necho \"-------------------------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -189,6 +189,16 @@ "user_editable": false, "rules": "required|string|max:20", "field_type": "text" + }, + { + "name": "ModPack", + "description": "Enter the Dependency String name for a ModPack to automatically be installed\r\nNOTE: If the modpack Updates, you will need to update this variable with the new Dependency String. This is done to allow Old Versions to be used.\r\nCHANGING THIS REQUIRES A SERVER REINSTALL", + "env_variable": "V_MODPACK", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "string|nullable", + "field_type": "text" } ] } \ No newline at end of file From 4e2875a2cbdb60e73afaec4a8ae68cb03f108718 Mon Sep 17 00:00:00 2001 From: HoleInTheSeat <58385663+HoleInTheSeat@users.noreply.github.com> Date: Sat, 14 Oct 2023 17:39:23 -0500 Subject: [PATCH 365/473] Update README.md --- game_eggs/steamcmd_servers/valheim/valheim_bepinex/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/README.md b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/README.md index c8b1e400..72bdd70b 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/README.md +++ b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/README.md @@ -28,6 +28,9 @@ In particular, the changes from base BepInEx releases are: - Updated Doorstop configuration and BepInEx to allow to load unstripped DLLs without having to overwrite game DLLs. - Added scripts necessary to run both game and dedicated server on Linux machines +## Automatic Mod Downloading +Mods can be downloaded from modpacks automatically by entering the "dependency string" for the modpack from https://valheim.thunderstore.io/ + ## Server Ports | Port | default | From 473869b1f0dc27674beb0ea94a200043b9d0ad8d Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Sun, 15 Oct 2023 06:34:21 +0200 Subject: [PATCH 366/473] add the Front --- README.md | 1 + game_eggs/README.md | 1 + game_eggs/steamcmd_servers/README.md | 4 + game_eggs/steamcmd_servers/thefront/README.md | 34 +++ .../thefront/egg-the-front.json | 234 ++++++++++++++++++ 5 files changed, 274 insertions(+) create mode 100644 game_eggs/steamcmd_servers/thefront/README.md create mode 100644 game_eggs/steamcmd_servers/thefront/egg-the-front.json diff --git a/README.md b/README.md index afc174a2..6c4ea914 100644 --- a/README.md +++ b/README.md @@ -309,6 +309,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Sven Co-op](game_eggs/steamcmd_servers/svencoop) * [Swords 'n Magic and Stuff](game_eggs/steamcmd_servers/swords_'n_Magic_and_Stuff) * [The Forest](game_eggs/steamcmd_servers/the_forest) +* [The Front](game_eggs/steamcmd_servers/thefront) * [The Isle](game_eggs/steamcmd_servers/the_isle) * [Evrima](game_eggs/steamcmd_servers/the_isle/evrima) * [Team Fortress 2 Classic](game_eggs/steamcmd_servers/team_fortress_2_classic) diff --git a/game_eggs/README.md b/game_eggs/README.md index c3f173c3..12c49244 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -206,6 +206,7 @@ * [Swords 'n Magic and Stuff](steamcmd_servers/swords_'n_Magic_and_Stuff) * [Team Fortress 2 Classic](steamcmd_servers/team_fortress_2_classic) * [The Forest](steamcmd_servers/the_forest) +* [The Front](steamcmd_servers/thefront) * [The Isle](steamcmd_servers/the_isle) * [Evrima](steamcmd_servers/the_isle/evrima) * [Tower Unite](steamcmd_servers/tower_unite) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index 6d1882ee..13f7182f 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -258,6 +258,10 @@ This is a collection of servers that use SteamCMD to install. [The Forest](the_forest) +## The Front + +[The Front](thefront) + ## The Isle [The Isle](the_isle) diff --git a/game_eggs/steamcmd_servers/thefront/README.md b/game_eggs/steamcmd_servers/thefront/README.md new file mode 100644 index 00000000..0c38cf38 --- /dev/null +++ b/game_eggs/steamcmd_servers/thefront/README.md @@ -0,0 +1,34 @@ +# The Front + +## 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) | + +## Special Thanks +Special thanks to [KRServers] (https://krservers.de/) for spending me the Key + +## The Front + +The Front is a survival open-world crafting shooter. You play the role of a resistance fighter sent back in time to stop the rise of a tyrannical empire. + +Steam: https://store.steampowered.com/app/2285150/The_Front/ + +## Server Ports + +The Server needs 4 Ports. You can choose every Port you want + +| Port | default | +|-------|---------| +| Game | 27015 | +| Beacon | 27016 | +| Query | 27017 | +| ShutDownService | 27018 | + +## Updating the Server + +Until the devs fix their linux server, you must reinstall the server on every update. Autoupdate is disabled and should NOT activated, because it can break your installation. + +## Hardware + +You need a min of 10GB for the Server. \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/thefront/egg-the-front.json b/game_eggs/steamcmd_servers/thefront/egg-the-front.json new file mode 100644 index 00000000..5332b415 --- /dev/null +++ b/game_eggs/steamcmd_servers/thefront/egg-the-front.json @@ -0,0 +1,234 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-10-15T06:21:09+02:00", + "name": "The Front", + "author": "eggs@goover.dev", + "description": "The Front is a survival open-world crafting shooter. You play the role of a resistance fighter sent back in time to stop the rise of a tyrannical empire.", + "features": [ + "steam_disk_space" + ], + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" + }, + "file_denylist": [], + "startup": ".\/ProjectWar\/Binaries\/Linux\/TheFrontServer ProjectWar_Start?DedicatedServer?MaxPlayers={{MAX_PLAYERS}} -server -game -log -ServerTags={{SRV_TAGS}} -UseSteamSocket={{STEAMSOCKET}} -Port=\"{{SERVER_PORT}}\" -BeaconPort=\"{{BEACON_PORT}}\" -ShutDownServicePort=\"{{SHUTDOWN_PORT}}\" -QueryPort=\"{{QUERY_PORT}}\" -ConfigServerName=\"{{CFG_NAME}}\" -OutIPAddress={{SERVER_IP}} -UserDir=\"\/home\/container\/TheFrontManager\/{{CFG_NAME}}\/\" -ServerName=\"{{SRV_NAME}}\" -EnableParallelCharacterMovementTickFunction -EnableParallelCharacterTickFunction -UseDynamicPhysicsScene -Game.PhysicsVehicle=false -ansimalloc -Game.MaxFrameRate=35 -MaxQueueSize=50 -QueueValidTime=120 -QueueThreshold={{MAX_PLAYERS}} -ServerFightModeType={{GAMEMODE}} -IsCanSelfDamage={{SELFDMG}} -IsCanFriendDamage={{DMGALLIES}} -SaveWorldInterval={{SRV_SAVETIME}} -GMOverlapRatio=2 -GreenHand={{GREENHAND}} -SensitiveWords={{SENSITIVE_WORDS}} -UseACE={{ANTI_CHEAT}} -ServerAdminAccounts={{SRV_ADMIN}} -IsShowGmTitle={{ADMIN_LABEL}} -ServerPassword={{SRV_PW}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"LogLoad: (Engine Initialization) \"\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}The Front Installscript${NC}\"\r\necho -e \"${YELLOW}Egg by gOOvER | https:\/\/goover.dev${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq dos2unix\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## 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\r\n#rm -fR \/mnt\/server\/steamcmd\/linux32\/steamapps\/content\/app_2334200\/*\r\n\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login anonymous +app_update 1007 validate +quit\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login anonymous +download_depot 2334200 2334201 +quit\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\nrm -fR \/mnt\/server\/ProjectWar\r\nrm -fR \/mnt\/server\/Engine\r\nmv -f \/mnt\/server\/steamcmd\/linux32\/steamapps\/content\/app_2334200\/depot_2334201\/* \/mnt\/server\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": "[SERVER] Server Name", + "description": "no spaces und special signs", + "env_variable": "SRV_NAME", + "default_value": "Pterodactyl hosted Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:50", + "field_type": "text" + }, + { + "name": "[SERVER] Max Players", + "description": "The max number of players on your server.", + "env_variable": "MAX_PLAYERS", + "default_value": "10", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|between:1,80", + "field_type": "text" + }, + { + "name": "[SERVER] Config Name", + "description": "Name of the savefile. NO SPACE or SPECIAL signs", + "env_variable": "CFG_NAME", + "default_value": "new", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "[SERVER] Server Password", + "description": "", + "env_variable": "SRV_PW", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable", + "field_type": "text" + }, + { + "name": "[SERVER] PvE", + "description": "off = PvP; on = PvE", + "env_variable": "GAMEMODE", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "[SERVER] Use Steam Socket", + "description": "Use Steam servers for network penetration. Enable this if you don't have a public IP but you want to allow players from outside your network to join your server. If disabled, only you and other players on your LAN can join. If you have a public IP, you do not need to enable this. Enabling this feature will affect latency. When Steam servers are busy, you may not be able to join this server.", + "env_variable": "STEAMSOCKET", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "[SERVER] Damage self?", + "description": "Allows players to damage themselves.", + "env_variable": "SELFDMG", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[SERVER] Damage allies?", + "description": "Allows squadmates to damage each other.", + "env_variable": "DMGALLIES", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[SERVER] Server Admins", + "description": "Enter a 17-digit Steam ID. Use semicolons between each ID. GM level defaults to highest level (Lv. 25)", + "env_variable": "SRV_ADMIN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "[ADVANCED] Label admin", + "description": "Toggles special admin icon.", + "env_variable": "ADMIN_LABEL", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[ADVANCED] Server save interval", + "description": "Server archive interval (in seconds)", + "env_variable": "SRV_SAVETIME", + "default_value": "300", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|between:150,600", + "field_type": "text" + }, + { + "name": "[ADVANCED] Enable novice protection?", + "description": "When enabled, new characters will receive novice protection.", + "env_variable": "GREENHAND", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[ADVANCED] Server Tags", + "description": "MAX 5 -> \r\n\r\n0= PVP | \r\n1= PVE | \r\n2= EXP Multiplikator | \r\n3= GatheringRate | \r\n4= KeepInventory | \r\n5= 45d wipe | \r\n6= 15d wipe | \r\n7= 30d wipe | \r\n8= 60d wipe |", + "env_variable": "SRV_TAGS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable", + "field_type": "text" + }, + { + "name": "[ADVANCED] Enable anticheat?", + "description": "Toggles anticheat.", + "env_variable": "ANTI_CHEAT", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[ADVANCED] Enable profanity?", + "description": "When disable, profanity will be blocked.", + "env_variable": "SENSITIVE_WORDS", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[SERVER] Auto Update", + "description": "NOTICE: IT will Download the Files on every START \/ RESTART and use a lot of", + "env_variable": "AUTO_UPDATE", + "default_value": "0", + "user_viewable": false, + "user_editable": false, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "[SYSTEM] SRCDS_APPID", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "2334200", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "[SERVER] BeaconPort", + "description": "port+1", + "env_variable": "BEACON_PORT", + "default_value": "27016", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1024,65536", + "field_type": "text" + }, + { + "name": "[SERVER] QueryPort", + "description": "port+2", + "env_variable": "QUERY_PORT", + "default_value": "27017", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1024,65536", + "field_type": "text" + }, + { + "name": "[SERVER] ShutDownServicePort", + "description": "port +3", + "env_variable": "SHUTDOWN_PORT", + "default_value": "27017", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1024,65536", + "field_type": "text" + } + ] +} \ No newline at end of file From 5907c3c1837340fed0ad127c84496ec9172e38e4 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Sun, 15 Oct 2023 06:45:28 +0200 Subject: [PATCH 367/473] add special note --- game_eggs/steamcmd_servers/thefront/README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/game_eggs/steamcmd_servers/thefront/README.md b/game_eggs/steamcmd_servers/thefront/README.md index 0c38cf38..20fb9d9d 100644 --- a/game_eggs/steamcmd_servers/thefront/README.md +++ b/game_eggs/steamcmd_servers/thefront/README.md @@ -9,13 +9,11 @@ Special thanks to [KRServers] (https://krservers.de/) for spending me the Key ## The Front - The Front is a survival open-world crafting shooter. You play the role of a resistance fighter sent back in time to stop the rise of a tyrannical empire. Steam: https://store.steampowered.com/app/2285150/The_Front/ ## Server Ports - The Server needs 4 Ports. You can choose every Port you want | Port | default | @@ -26,9 +24,10 @@ The Server needs 4 Ports. You can choose every Port you want | ShutDownService | 27018 | ## Updating the Server - Until the devs fix their linux server, you must reinstall the server on every update. Autoupdate is disabled and should NOT activated, because it can break your installation. ## Hardware +You need a min of 10GB for the Server. -You need a min of 10GB for the Server. \ No newline at end of file +## Special Note +DO NOT ADD STARTUP FLAGS AFTER THE SERVER PASSWORD FLAG, else you are not longer able to login into your server. The Passwort Flag be be everytime the LAST flag \ No newline at end of file From 95d412610606af7908bd492843af71d7e23c9653 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Sun, 15 Oct 2023 06:46:26 +0200 Subject: [PATCH 368/473] typo --- game_eggs/steamcmd_servers/thefront/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/thefront/README.md b/game_eggs/steamcmd_servers/thefront/README.md index 20fb9d9d..0aaf001a 100644 --- a/game_eggs/steamcmd_servers/thefront/README.md +++ b/game_eggs/steamcmd_servers/thefront/README.md @@ -30,4 +30,4 @@ Until the devs fix their linux server, you must reinstall the server on every up You need a min of 10GB for the Server. ## Special Note -DO NOT ADD STARTUP FLAGS AFTER THE SERVER PASSWORD FLAG, else you are not longer able to login into your server. The Passwort Flag be be everytime the LAST flag \ No newline at end of file +DO NOT ADD STARTUP FLAGS AFTER THE SERVER PASSWORD FLAG, else you are not longer able to login into your server. The Passwort Flag MUST be everytime the LAST flag \ No newline at end of file From 460ffcc347dada2f74b12840b37a88abe14a0507 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Sun, 15 Oct 2023 07:50:18 +0200 Subject: [PATCH 369/473] add note for Server Tags --- game_eggs/steamcmd_servers/thefront/README.md | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/thefront/README.md b/game_eggs/steamcmd_servers/thefront/README.md index 0aaf001a..56e1c8a2 100644 --- a/game_eggs/steamcmd_servers/thefront/README.md +++ b/game_eggs/steamcmd_servers/thefront/README.md @@ -30,4 +30,22 @@ Until the devs fix their linux server, you must reinstall the server on every up You need a min of 10GB for the Server. ## Special Note -DO NOT ADD STARTUP FLAGS AFTER THE SERVER PASSWORD FLAG, else you are not longer able to login into your server. The Passwort Flag MUST be everytime the LAST flag \ No newline at end of file +DO NOT ADD STARTUP FLAGS AFTER THE SERVER PASSWORD FLAG, else you are not longer able to login into your server. The Passwort Flag MUST be everytime the LAST flag + +## Server Tags + +You can use Server Tags with this Egg. But max is 5 + +To be used in the variable as follows: 0,1,2,3,4 + +Available Server Tags + +0 = PVP +1 = PVE +2 = EXP Multiplikator +3 = GatheringRate +4 = KeepInventory +5 = 45d wipe +6 = 15d wipe +7 = 30d wipe +8 = 60d wipe \ No newline at end of file From 57cb3be5760562c42f376f387d961606a3bef538 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Sun, 15 Oct 2023 08:09:36 +0200 Subject: [PATCH 370/473] some fixes --- game_eggs/steamcmd_servers/thefront/README.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/game_eggs/steamcmd_servers/thefront/README.md b/game_eggs/steamcmd_servers/thefront/README.md index 56e1c8a2..b1ee4de0 100644 --- a/game_eggs/steamcmd_servers/thefront/README.md +++ b/game_eggs/steamcmd_servers/thefront/README.md @@ -2,11 +2,11 @@ ## 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) | +|:-------------:|:-------------:|:-------------:| +| gOOvER | https://github.com/gOOvER | [Donate](https://www.paypal.com/donate/?hosted_button_id=83JB2X6H7DHXJ) | ## Special Thanks -Special thanks to [KRServers] (https://krservers.de/) for spending me the Key +Special thanks to [KRServers](https://krservers.de/) for spending me the Key ## The Front The Front is a survival open-world crafting shooter. You play the role of a resistance fighter sent back in time to stop the rise of a tyrannical empire. @@ -30,17 +30,18 @@ Until the devs fix their linux server, you must reinstall the server on every up You need a min of 10GB for the Server. ## Special Note -DO NOT ADD STARTUP FLAGS AFTER THE SERVER PASSWORD FLAG, else you are not longer able to login into your server. The Passwort Flag MUST be everytime the LAST flag +> [!WARNING] +> DO NOT ADD STARTUP FLAGS AFTER THE SERVER PASSWORD FLAG, else you are not longer able to login into your server. The Passwort Flag MUST be everytime the LAST flag + ## Server Tags - You can use Server Tags with this Egg. But max is 5 -To be used in the variable as follows: 0,1,2,3,4 +To be used in the variable as follows: `0,1,2,3,4` Available Server Tags -0 = PVP +0 = PVP 1 = PVE 2 = EXP Multiplikator 3 = GatheringRate @@ -48,4 +49,4 @@ Available Server Tags 5 = 45d wipe 6 = 15d wipe 7 = 30d wipe -8 = 60d wipe \ No newline at end of file +8 = 60d wipeTo be used in the variable as follows: \ No newline at end of file From 34029f5c1f78e2c33a7e46e4a4fbbfa03627cce6 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Sun, 15 Oct 2023 15:18:49 +0200 Subject: [PATCH 371/473] add troubleshooting --- game_eggs/steamcmd_servers/thefront/README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/thefront/README.md b/game_eggs/steamcmd_servers/thefront/README.md index b1ee4de0..089df2bc 100644 --- a/game_eggs/steamcmd_servers/thefront/README.md +++ b/game_eggs/steamcmd_servers/thefront/README.md @@ -49,4 +49,10 @@ Available Server Tags 5 = 45d wipe 6 = 15d wipe 7 = 30d wipe -8 = 60d wipeTo be used in the variable as follows: \ No newline at end of file +8 = 60d wipe + +## Troubleshooting + +- I get the error "**Server Connection has expired!**" + - Allocate and open all ports in your Firewall. + From 6a2a625a8cb31bc9624f47cfe7fad5b184c85858 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Wed, 18 Oct 2023 15:01:39 +0200 Subject: [PATCH 372/473] updated startup and updated installscript --- .../steamcmd_servers/thefront/egg-the-front.json | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/thefront/egg-the-front.json b/game_eggs/steamcmd_servers/thefront/egg-the-front.json index 5332b415..60397c46 100644 --- a/game_eggs/steamcmd_servers/thefront/egg-the-front.json +++ b/game_eggs/steamcmd_servers/thefront/egg-the-front.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-15T06:21:09+02:00", + "exported_at": "2023-10-18T15:00:33+02:00", "name": "The Front", "author": "eggs@goover.dev", "description": "The Front is a survival open-world crafting shooter. You play the role of a resistance fighter sent back in time to stop the rise of a tyrannical empire.", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], - "startup": ".\/ProjectWar\/Binaries\/Linux\/TheFrontServer ProjectWar_Start?DedicatedServer?MaxPlayers={{MAX_PLAYERS}} -server -game -log -ServerTags={{SRV_TAGS}} -UseSteamSocket={{STEAMSOCKET}} -Port=\"{{SERVER_PORT}}\" -BeaconPort=\"{{BEACON_PORT}}\" -ShutDownServicePort=\"{{SHUTDOWN_PORT}}\" -QueryPort=\"{{QUERY_PORT}}\" -ConfigServerName=\"{{CFG_NAME}}\" -OutIPAddress={{SERVER_IP}} -UserDir=\"\/home\/container\/TheFrontManager\/{{CFG_NAME}}\/\" -ServerName=\"{{SRV_NAME}}\" -EnableParallelCharacterMovementTickFunction -EnableParallelCharacterTickFunction -UseDynamicPhysicsScene -Game.PhysicsVehicle=false -ansimalloc -Game.MaxFrameRate=35 -MaxQueueSize=50 -QueueValidTime=120 -QueueThreshold={{MAX_PLAYERS}} -ServerFightModeType={{GAMEMODE}} -IsCanSelfDamage={{SELFDMG}} -IsCanFriendDamage={{DMGALLIES}} -SaveWorldInterval={{SRV_SAVETIME}} -GMOverlapRatio=2 -GreenHand={{GREENHAND}} -SensitiveWords={{SENSITIVE_WORDS}} -UseACE={{ANTI_CHEAT}} -ServerAdminAccounts={{SRV_ADMIN}} -IsShowGmTitle={{ADMIN_LABEL}} -ServerPassword={{SRV_PW}}", + "startup": ".\/ProjectWar\/Binaries\/Linux\/TheFrontServer ProjectWar_Start?DedicatedServer -server -game -log -ServerTags=\"{{SRV_TAGS}}\" -UseSteamSocket={{STEAMSOCKET}} -Port=\"{{SERVER_PORT}}\" -BeaconPort=\"{{BEACON_PORT}}\" -ShutDownServicePort=\"{{SHUTDOWN_PORT}}\" -QueryPort=\"{{QUERY_PORT}}\" -ConfigServerName=\"{{CFG_NAME}}\" -OutIPAddress={{SERVER_IP}} -UserDir=\"\/home\/container\/TheFrontManager\/{{CFG_NAME}}\/\" -ServerName=\"{{SRV_NAME}}\" -EnableParallelCharacterMovementTickFunction -EnableParallelCharacterTickFunction -UseDynamicPhysicsScene -Game.PhysicsVehicle=false -ansimalloc -Game.MaxFrameRate=35 -MaxQueueSize=50 -QueueValidTime=120 -QueueThreshold={{MAX_PLAYERS}} -ServerFightModeType={{GAMEMODE}} -IsCanSelfDamage={{SELFDMG}} -IsCanFriendDamage={{DMGALLIES}} -SaveWorldInterval={{SRV_SAVETIME}} -GMOverlapRatio=2 -GreenHand={{GREENHAND}} -SensitiveWords={{SENSITIVE_WORDS}} -UseACE={{ANTI_CHEAT}} -ServerAdminAccounts={{SRV_ADMIN}} -IsShowGmTitle={{ADMIN_LABEL}} -ServerPassword={{SRV_PW}}", "config": { "files": "{}", "startup": "{\r\n \"done\": \"LogLoad: (Engine Initialization) \"\r\n}", @@ -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}The Front Installscript${NC}\"\r\necho -e \"${YELLOW}Egg by gOOvER | https:\/\/goover.dev${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq dos2unix\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## 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\r\n#rm -fR \/mnt\/server\/steamcmd\/linux32\/steamapps\/content\/app_2334200\/*\r\n\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login anonymous +app_update 1007 validate +quit\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login anonymous +download_depot 2334200 2334201 +quit\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\nrm -fR \/mnt\/server\/ProjectWar\r\nrm -fR \/mnt\/server\/Engine\r\nmv -f \/mnt\/server\/steamcmd\/linux32\/steamapps\/content\/app_2334200\/depot_2334201\/* \/mnt\/server\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}The Front Installscript${NC}\"\r\necho -e \"${YELLOW}Egg by gOOvER | https:\/\/goover.dev${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq dos2unix\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\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update 1007 +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\nrm -fR \/mnt\/server\/ProjectWar\r\nrm -fR \/mnt\/server\/Engine\r\nmv -f \/mnt\/server\/steamcmd\/linux32\/steamapps\/content\/app_2334200\/depot_2334201\/* \/mnt\/server\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" } @@ -229,6 +229,16 @@ "user_editable": false, "rules": "required|integer|between:1024,65536", "field_type": "text" + }, + { + "name": "WINDOWS_INSTALL", + "description": "DO NOT REMOVE !!!", + "env_variable": "WINDOWS_INSTALL", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|boolean", + "field_type": "text" } ] } \ No newline at end of file From 8139e5cede51c815694978551c01094bd26a905e Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Wed, 18 Oct 2023 15:25:59 +0200 Subject: [PATCH 373/473] fioxed autoupdate description and enable it again --- game_eggs/steamcmd_servers/thefront/egg-the-front.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/steamcmd_servers/thefront/egg-the-front.json b/game_eggs/steamcmd_servers/thefront/egg-the-front.json index 60397c46..54a202f1 100644 --- a/game_eggs/steamcmd_servers/thefront/egg-the-front.json +++ b/game_eggs/steamcmd_servers/thefront/egg-the-front.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-18T15:00:33+02:00", + "exported_at": "2023-10-18T15:25:17+02:00", "name": "The Front", "author": "eggs@goover.dev", "description": "The Front is a survival open-world crafting shooter. You play the role of a resistance fighter sent back in time to stop the rise of a tyrannical empire.", @@ -182,11 +182,11 @@ }, { "name": "[SERVER] Auto Update", - "description": "NOTICE: IT will Download the Files on every START \/ RESTART and use a lot of", + "description": "Autoupdate your Server on start\/restart", "env_variable": "AUTO_UPDATE", "default_value": "0", - "user_viewable": false, - "user_editable": false, + "user_viewable": true, + "user_editable": true, "rules": "required|boolean", "field_type": "text" }, From fc6693dccc89a04cd8ecaef8262b9571a5fee338 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Wed, 18 Oct 2023 15:47:00 +0200 Subject: [PATCH 374/473] missed to delete the rm line :P --- game_eggs/steamcmd_servers/thefront/egg-the-front.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/thefront/egg-the-front.json b/game_eggs/steamcmd_servers/thefront/egg-the-front.json index 54a202f1..0c8c8a8a 100644 --- a/game_eggs/steamcmd_servers/thefront/egg-the-front.json +++ b/game_eggs/steamcmd_servers/thefront/egg-the-front.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-18T15:25:17+02:00", + "exported_at": "2023-10-18T15:46:21+02:00", "name": "The Front", "author": "eggs@goover.dev", "description": "The Front is a survival open-world crafting shooter. You play the role of a resistance fighter sent back in time to stop the rise of a tyrannical empire.", @@ -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}The Front Installscript${NC}\"\r\necho -e \"${YELLOW}Egg by gOOvER | https:\/\/goover.dev${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq dos2unix\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\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update 1007 +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\nrm -fR \/mnt\/server\/ProjectWar\r\nrm -fR \/mnt\/server\/Engine\r\nmv -f \/mnt\/server\/steamcmd\/linux32\/steamapps\/content\/app_2334200\/depot_2334201\/* \/mnt\/server\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}The Front Installscript${NC}\"\r\necho -e \"${YELLOW}Egg by gOOvER | https:\/\/goover.dev${NC}\"\r\necho -e \"${BLUE}-------------------------------------------------${NC}\"\r\n\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates jq dos2unix\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\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update 1007 +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## 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" } From 482e3dee31eff1c84a022bd0a6bb34aeb1599f03 Mon Sep 17 00:00:00 2001 From: gOOvER <116325+gOOvER@users.noreply.github.com> Date: Wed, 18 Oct 2023 18:01:54 +0200 Subject: [PATCH 375/473] update soft --- .../egg-sons-of-the-forest.json | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 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 789d688c..fd3ca54c 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-07-23T04:57:30-04:00", + "exported_at": "2023-10-18T18:00:26+02:00", "name": "Sons Of The Forest", "author": "eggs@goover.dev", "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.", @@ -12,7 +12,7 @@ "steam_disk_space" ], "docker_images": { - "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + "ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest" }, "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.SkipNetworkAccessibilityTest \"{{SKIP_TESTS}}\" -dedicatedserver.LogFilesEnabled \"true\" -dedicatedserver.TimestampLogFilenames \"true\"", @@ -100,16 +100,6 @@ "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": "", @@ -157,7 +147,7 @@ "default_value": "mono vcrun2019", "user_viewable": false, "user_editable": false, - "rules": "required|string|max:20", + "rules": "required|string", "field_type": "text" }, { @@ -169,6 +159,16 @@ "user_editable": false, "rules": "required|string|max:20", "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" } ] -} +} \ No newline at end of file From 10645f72827cc3365694e757fe2f8bb48f16eca2 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 19 Oct 2023 18:53:59 +0200 Subject: [PATCH 376/473] Update SAMP Update samp for there new url and version numbering --- game_eggs/gta/samp/egg-s-a--m-p.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/gta/samp/egg-s-a--m-p.json b/game_eggs/gta/samp/egg-s-a--m-p.json index 08465d94..097d4322 100644 --- a/game_eggs/gta/samp/egg-s-a--m-p.json +++ b/game_eggs/gta/samp/egg-s-a--m-p.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-08T14:50:39+01:00", + "exported_at": "2023-10-19T18:53:04+02:00", "name": "SA-MP", "author": "bl4ckspr4y@protonmail.com", "description": "SA-MP is a free Massively Multiplayer Online game mod for the PC version of Rockstar Games Grand Theft Auto: San Andreas (tm).", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\ncd \/tmp || exit\r\necho \"running: curl -sSL -o samp.tar.gz http:\/\/files.sa-mp.com\/samp037svr_${VERSION}.tar.gz\"\r\ncurl -sSL -o samp.tar.gz http:\/\/files.sa-mp.com\/samp037svr_\"${VERSION}\".tar.gz\r\n\r\nmkdir -p \/mnt\/server\r\ntar -xzvf samp.tar.gz --strip-components=1 -C \/mnt\/server\/\r\n\r\ncd \/mnt\/server || exit\r\n\r\nsed -i '3d' \/mnt\/server\/server.cfg\r\necho \"rcon_password ${RCON_PASS}\" >> \/mnt\/server\/server.cfg\r\n\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n\r\n# Check if VERSION is set and starts with an uppercase \"R\"\r\nif [[ -n \"$VERSION\" && \"$VERSION\" == R* ]]; then\r\n VERSION=\"0.3.7\"\r\n echo \"Updated VERSION: $VERSION\"\r\nfi\r\n\r\ncd \/tmp || exit\r\necho \"running: curl -sSL -o samp.tar.gz https:\/\/sampcenter.com\/download\/server\/linux\/${VERSION}.tar.gz\"\r\ncurl -sSL -o samp.tar.gz https:\/\/sampcenter.com\/download\/server\/linux\/${VERSION}.tar.gz\r\n\r\nmkdir -p \/mnt\/server\r\ntar -xzvf samp.tar.gz --strip-components=1 -C \/mnt\/server\/\r\n\r\ncd \/mnt\/server || exit\r\n\r\nsed -i '3d' \/mnt\/server\/server.cfg\r\necho \"rcon_password ${RCON_PASS}\" >> \/mnt\/server\/server.cfg\r\n\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -30,9 +30,9 @@ "variables": [ { "name": "Version", - "description": "example: if the download url is http:\/\/files.sa-mp.com\/samp037svr_R2-1.tar.gz then the variable should be: `R2-1`", + "description": "Example: if the download url is https:\/\/sampcenter.com\/download\/server\/linux\/0.3.7.tar.gz then the variable should be: `0.3.7`", "env_variable": "Version", - "default_value": "R2-1", + "default_value": "0.3.7", "user_viewable": true, "user_editable": true, "rules": "required|string|max:32", From 1378cbddaf140f8216705cfa9d86d318226b6a03 Mon Sep 17 00:00:00 2001 From: TylerSerafin Date: Thu, 19 Oct 2023 22:22:48 -0500 Subject: [PATCH 377/473] Update README.md to link to appropriate repo Updates README.,d to link to appropriate repo for support, as the main ValheimPlus repo is no longer being used, and it should link to Grantapher's now. --- game_eggs/steamcmd_servers/valheim/valheim_plus/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_plus/README.md b/game_eggs/steamcmd_servers/valheim/valheim_plus/README.md index 66427737..d9e7f379 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_plus/README.md +++ b/game_eggs/steamcmd_servers/valheim/valheim_plus/README.md @@ -14,7 +14,7 @@ https://store.steampowered.com/app/892970/Valheim/ ## Plus Mod A HarmonyX Mod aimed at improving the gameplay quality of Valheim. The mod includes several different main features including modifiers to ingame stats of players, buildings and entities and a sophisticated system to build and place objects with high precision and a system to modify already placed objects with high precision. The general goal is to provide V+ as a base modification for your gameplay to increase quality of life, change difficulty or have a better experience in general. The mod also comes with a version and configuration control system for servers and users, allowing servers to make sure that only people with the same configuration are able to join their servers. -Support: https://github.com/valheimPlus/ValheimPlus +Support: https://github.com/Grantapher/ValheimPlus Discord: https://discord.gg/AmH6Va97GT ***!!! ATTENTION !!!*** From 68ef678f7e950ecc33a2919ad44d7e28d82b62df Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 21 Oct 2023 17:25:07 +0200 Subject: [PATCH 378/473] add Mount & Blade II: Bannerlord --- README.md | 1 + game_eggs/README.md | 1 + game_eggs/steamcmd_servers/README.md | 4 + .../mount_blade_II_bannerlord/README.md | 29 +++++ .../egg-mount--blade-i-i--bannerlord.json | 112 ++++++++++++++++++ 5 files changed, 147 insertions(+) create mode 100644 game_eggs/steamcmd_servers/mount_blade_II_bannerlord/README.md create mode 100644 game_eggs/steamcmd_servers/mount_blade_II_bannerlord/egg-mount--blade-i-i--bannerlord.json diff --git a/README.md b/README.md index 6c4ea914..94682d14 100644 --- a/README.md +++ b/README.md @@ -273,6 +273,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Left 4 Dead 2](game_eggs/steamcmd_servers/left4dead_2) * [Modiverse](game_eggs/steamcmd_servers/modiverse) * [Mordhau](game_eggs/steamcmd_servers/mordhau) +* [Mount & Blade II: Bannerlord](game_eggs/steamcmd_servers/mount_blade_II_bannerlord) * [Neos VR](game_eggs/steamcmd_servers/neosvr) * [No More Room in Hell](game_eggs/steamcmd_servers/nmrih) * [No One Survived](game_eggs/steamcmd_servers/no_one_survived) diff --git a/game_eggs/README.md b/game_eggs/README.md index 12c49244..f504c1db 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -167,6 +167,7 @@ * [Left 4 Dead 2](steamcmd_servers/left4dead_2) * [Modiverse](steamcmd_servers/modiverse) * [Mordhau](steamcmd_servers/mordhau) +* [Mount & Blade II: Bannerlord](steamcmd_servers/mount_blade_II_bannerlord) * [Neos VR](steamcmd_servers/neosvr) * [No More Room in Hell](steamcmd_servers/nmrih) * [No One Survived](steamcmd_servers/no_one_survived) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index 13f7182f..20a1ec08 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -130,6 +130,10 @@ This is a collection of servers that use SteamCMD to install. [Mordhau](mordhau) +## Mount & Blade II: Bannerlord + +[Mount & Blade II: Bannerlord](mount_blade_II_bannerlord) + ## Neos VR [Neos VR](neosvr) diff --git a/game_eggs/steamcmd_servers/mount_blade_II_bannerlord/README.md b/game_eggs/steamcmd_servers/mount_blade_II_bannerlord/README.md new file mode 100644 index 00000000..79943f81 --- /dev/null +++ b/game_eggs/steamcmd_servers/mount_blade_II_bannerlord/README.md @@ -0,0 +1,29 @@ +# Mount & Blade II: Bannerlord + +## [Documentation](https://moddocs.bannerlord.com/multiplayer/hosting_server/) + + +## Installation/System Requirements + +| | Bare Minimum | Recommended | +|---------|---------|---------| +| Processor | *AMD64 only* | *-* | +| RAM | *4 GiB* | *8 GiB* | +| Storage | *5 GiB* | *8 GiB* | +| Network | *60 packets to each player and each packet is less than 1.5 kilobytes* | *-* | +| Game Ownership | *Needed for the game token* | *-* | + +## Server Ports + +Ports required to run the server + +| Port | default | +|---------|---------| +| Game | 7210 (UDP) | + +### Notes + +You need to get your own AUTH token to run this server genertate by a offical client + +[YT](https://www.youtube.com/watch?v=9Hvuz12Bfzg) +[Docs](https://moddocs.bannerlord.com/multiplayer/hosting_server/#generating-a-token) \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/mount_blade_II_bannerlord/egg-mount--blade-i-i--bannerlord.json b/game_eggs/steamcmd_servers/mount_blade_II_bannerlord/egg-mount--blade-i-i--bannerlord.json new file mode 100644 index 00000000..9061421c --- /dev/null +++ b/game_eggs/steamcmd_servers/mount_blade_II_bannerlord/egg-mount--blade-i-i--bannerlord.json @@ -0,0 +1,112 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-10-21T17:16:27+02:00", + "name": "Mount & Blade II: Bannerlord", + "author": "josdekurk@gmail.com", + "description": "A strategy\/action RPG. Create a character, engage in diplomacy, craft, trade and conquer new lands in a vast medieval sandbox. Raise armies to lead into battle and command and fight alongside your troops in massive real-time battles using a deep but intuitive skill-based combat system.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest" + }, + "file_denylist": [], + "startup": "cd \/home\/container\/bin\/Win64_Shipping_Server\/ && wine DedicatedCustomServer.Starter.exe \/port {{SERVER_PORT}} \/dedicatedcustomserverauthtoken \"{{AUTH_TOKEN}}\" \/dedicatedcustomserverconfigfile tdm_config.txt _MODULES_*Native*Multiplayer*DedicatedCustomServerHelper*_MODULES_", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Custom Game server is ready! You can now enter console commands\"\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# 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\nmkdir -p \/mnt\/server\/Modules\/Native\/\r\ncd \/mnt\/server\/Modules\/Native\/\r\n[ -f \"tdm_config.txt\" ] || curl -sSL -o \"tdm_config.txt\" \"https:\/\/pteropaste.com\/z67k16z608ty\"\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": "1863440", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:1863440", + "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": "[SYSTEM] WINEDEBUG", + "description": "don't change this !!!", + "env_variable": "WINEDEBUG", + "default_value": "-all", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:64", + "field_type": "text" + }, + { + "name": "[SYSTEM] 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:32", + "field_type": "text" + }, + { + "name": "WINETRICKS_RUN", + "description": "", + "env_variable": "WINETRICKS_RUN", + "default_value": "vcrun2019 dotnet472", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|", + "field_type": "text" + }, + { + "name": "Auth token", + "description": "See: https:\/\/www.youtube.com\/watch?v=9Hvuz12Bfzg", + "env_variable": "AUTH_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|", + "field_type": "text" + } + ] +} \ No newline at end of file From f87a17f0a54bdfe3f55139d5f2c2caa923d7eac1 Mon Sep 17 00:00:00 2001 From: Smith Date: Tue, 24 Oct 2023 17:07:31 +0200 Subject: [PATCH 379/473] enforce user to create min. 8 char secret --- bots/discord/game-server-watcher/egg-game-server-watcher.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bots/discord/game-server-watcher/egg-game-server-watcher.json b/bots/discord/game-server-watcher/egg-game-server-watcher.json index 820675ce..0907c466 100644 --- a/bots/discord/game-server-watcher/egg-game-server-watcher.json +++ b/bots/discord/game-server-watcher/egg-game-server-watcher.json @@ -32,10 +32,10 @@ "name": "SECRET", "description": "Admin secret", "env_variable": "SECRET", - "default_value": "secret", + "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|string|min:1|max:255", + "rules": "required|string|min:8|max:255", "field_type": "text" }, { From f597634a448e57baa6552b91cccd0b57f8d8a41f Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Tue, 24 Oct 2023 17:49:48 +0200 Subject: [PATCH 380/473] Typescript esm --- generic/nodejs/egg-node-js-generic.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/generic/nodejs/egg-node-js-generic.json b/generic/nodejs/egg-node-js-generic.json index 0b1dc2bb..d7418cca 100644 --- a/generic/nodejs/egg-node-js-generic.json +++ b/generic/nodejs/egg-node-js-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-08-18T17:13:50+02:00", + "exported_at": "2023-10-24T17:44:31+02:00", "name": "node.js generic", "author": "parker@parkervcp.com", "description": "a generic node.js egg\r\n\r\nThis will clone a git repo. it defaults to master if no branch is specified.\r\n\r\nInstalls the node_modules on install. If you set user_upload then I assume you know what you are doing.", @@ -19,7 +19,7 @@ "Nodejs 12": "ghcr.io\/parkervcp\/yolks:nodejs_12" }, "file_denylist": [], - "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install; fi; if [[ \"${MAIN_FILE}\" == \"*.js\" ]]; then \/usr\/local\/bin\/node \"\/home\/container\/${MAIN_FILE}\" ${NODE_ARGS}; else \/usr\/local\/bin\/ts-node \"\/home\/container\/${MAIN_FILE}\" ${NODE_ARGS}; fi", + "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi; if [[ ! -z ${NODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm install ${NODE_PACKAGES}; fi; if [[ ! -z ${UNNODE_PACKAGES} ]]; then \/usr\/local\/bin\/npm uninstall ${UNNODE_PACKAGES}; fi; if [ -f \/home\/container\/package.json ]; then \/usr\/local\/bin\/npm install; fi; if [[ \"${MAIN_FILE}\" == \"*.js\" ]]; then \/usr\/local\/bin\/node \"\/home\/container\/${MAIN_FILE}\" ${NODE_ARGS}; else \/usr\/local\/bin\/ts-node --esm \"\/home\/container\/${MAIN_FILE}\" ${NODE_ARGS}; fi", "config": { "files": "{}", "startup": "{\r\n \"done\": [\r\n \"change this text 1\",\r\n \"change this text 2\"\r\n ]\r\n}", @@ -135,4 +135,4 @@ "field_type": "text" } ] -} +} \ No newline at end of file From a94274972b72a339cd59724f225b7ee4c91f523e Mon Sep 17 00:00:00 2001 From: Smith Date: Tue, 24 Oct 2023 18:34:57 +0200 Subject: [PATCH 381/473] upd. readme; re-export from panel --- bots/discord/game-server-watcher/README.md | 4 ++++ bots/discord/game-server-watcher/egg-game-server-watcher.json | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/bots/discord/game-server-watcher/README.md b/bots/discord/game-server-watcher/README.md index 7e668c4c..76a877ad 100644 --- a/bots/discord/game-server-watcher/README.md +++ b/bots/discord/game-server-watcher/README.md @@ -16,3 +16,7 @@ Refer to the wiki on how to acquire tokens for: ## Server Ports GSW Control Panel requires one port for http traffic. (It can be any port.) + +| Port | default | +|---------|---------| +| Web | 8080 | diff --git a/bots/discord/game-server-watcher/egg-game-server-watcher.json b/bots/discord/game-server-watcher/egg-game-server-watcher.json index 0907c466..47cbaee8 100644 --- a/bots/discord/game-server-watcher/egg-game-server-watcher.json +++ b/bots/discord/game-server-watcher/egg-game-server-watcher.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-09-13T18:34:19+00:00", + "exported_at": "2023-10-24T16:33:47+00:00", "name": "Game Server Watcher", "author": "a-sync@devs.space", "description": "A simple discord\/telegram\/slack bot that can be hosted on a free service to monitor your game servers and players in style. \ud83d\ude0e", From 0c5ddb6ada4bb717973d435c5858622bfca7f1fa Mon Sep 17 00:00:00 2001 From: Smith Date: Tue, 24 Oct 2023 19:55:07 +0200 Subject: [PATCH 382/473] upd. default port: 8081 --- bots/discord/game-server-watcher/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bots/discord/game-server-watcher/README.md b/bots/discord/game-server-watcher/README.md index 76a877ad..5134102b 100644 --- a/bots/discord/game-server-watcher/README.md +++ b/bots/discord/game-server-watcher/README.md @@ -19,4 +19,4 @@ GSW Control Panel requires one port for http traffic. | Port | default | |---------|---------| -| Web | 8080 | +| Web | 8081 | From 6a6e9dce7c2bf00602e75219a1bf5f7b578bb18e Mon Sep 17 00:00:00 2001 From: Valentin Raillard Date: Wed, 25 Oct 2023 15:15:12 +0200 Subject: [PATCH 383/473] fix ftb --- game_eggs/minecraft/java/ftb/README.md | 3 +++ game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/game_eggs/minecraft/java/ftb/README.md b/game_eggs/minecraft/java/ftb/README.md index 8aa27f8a..385b0e0c 100644 --- a/game_eggs/minecraft/java/ftb/README.md +++ b/game_eggs/minecraft/java/ftb/README.md @@ -24,6 +24,9 @@ The second method requires you to know the id for both the modpack and version i may not get updated with the correct ip address and port at first launch. Please restart the server after first launch to fix this.** +## Neoforged +If you have trouble using an neoforge pack, make sure to select the latest java. + ## Server Ports The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. diff --git a/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json b/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json index d752ca4f..66336dc3 100644 --- a/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json +++ b/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-17T23:20:29+01:00", + "exported_at": "2023-10-25T15:07:49+02:00", "name": "FTB-modpacks.ch Server", "author": "runemaster580@gmail.com", "description": "Since the release of the FTB APP, FTB modpacks are now distributed through modpacks.ch. This egg was developed for support for modpacks that are distributed through this.", @@ -30,7 +30,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# FTB Pack Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir -p \/mnt\/server\r\nfi\r\ncd \/mnt\/server\r\n\r\n\r\n# Download needed software.\r\nfunction install_required {\r\n apt update\r\n apt install -y curl jq\r\n}\r\n\r\nfunction get_modpack_id {\r\n # if no modpack id is set and modpack search term is set.\r\n if [ -z ${FTB_MODPACK_ID} ] && [ ! -z ${FTB_SEARCH_TERM} ]; then\r\n JSON_DATA=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/search\/8?term=${FTB_SEARCH_TERM})\r\n \r\n # grabs the first modpack in array.\r\n FTB_MODPACK_ID=$(echo -e ${JSON_DATA} | jq -r \".packs[]\")\r\n fi\r\n \r\n if [ -z ${FTB_MODPACK_VERSION_ID} ] && [ ! -z ${FTB_VERSION_STRING} ]; then\r\n # grabs the correct version id matching the string.\r\n FTB_MODPACK_VERSION_ID=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/${FTB_MODPACK_ID} | jq -r --arg VSTRING ${FTB_VERSION_STRING} '.versions[] | select(.name == $VSTRING) | .id')\r\n fi\r\n}\r\n\r\nfunction run_installer {\r\n # get architecture for installer\r\n INSTALLER_TYPE=$([ \"$(uname -m)\" == \"x86_64\" ] && echo \"linux\" || echo \"arm\/linux\")\r\n echo \"ModpackID: ${FTB_MODPACK_ID} VersionID: ${FTB_MODPACK_VERSION_ID} InstallerType: ${INSTALLER_TYPE}\"\r\n\r\n # download installer\r\n curl -L https:\/\/api.modpacks.ch\/public\/modpack\/0\/0\/server\/${INSTALLER_TYPE} --output serversetup\r\n chmod +x .\/serversetup\r\n \r\n # remove old forge files (to allow updating)\r\n rm -rf libraries\/net\/minecraftforge\/forge\r\n rm -f unix_args.txt\r\n \r\n # run installer\r\n .\/serversetup ${FTB_MODPACK_ID} ${FTB_MODPACK_VERSION_ID} --auto --noscript --nojava\r\n}\r\n\r\n# allows startup command to work\r\nfunction move_startup_files {\r\n # create symlink for forge unix_args.txt if exists\r\n if compgen -G \"libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt\"; then\r\n ln -sf libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt unix_args.txt\r\n fi\r\n \r\n # move forge\/fabric jar file to start-server.jar if exists\r\n if compgen -G \"forge-*.jar\"; then\r\n mv -f forge-*.jar start-server.jar\r\n elif compgen -G \"fabric-*.jar\"; then\r\n mv -f fabric-*.jar start-server.jar\r\n fi\r\n}\r\n\r\n# installer cleanup\r\nfunction installer_cleanup {\r\n rm serversetup\r\n rm -f run.bat\r\n rm -f run.sh\r\n}\r\n\r\n# run installation steps\r\ninstall_required\r\nget_modpack_id\r\nrun_installer\r\nmove_startup_files\r\ninstaller_cleanup\r\n\r\necho \"Finished installing FTB modpack\"", + "script": "#!\/bin\/bash\r\n# FTB Pack Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir -p \/mnt\/server\r\nfi\r\ncd \/mnt\/server\r\n\r\n\r\n# Download needed software.\r\nfunction install_required {\r\n apt update\r\n apt install -y curl jq\r\n}\r\n\r\nfunction get_modpack_id {\r\n # if no modpack id is set and modpack search term is set.\r\n if [ -z ${FTB_MODPACK_ID} ] && [ ! -z ${FTB_SEARCH_TERM} ]; then\r\n JSON_DATA=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/search\/8?term=${FTB_SEARCH_TERM})\r\n \r\n # grabs the first modpack in array.\r\n FTB_MODPACK_ID=$(echo -e ${JSON_DATA} | jq -r \".packs[]\")\r\n fi\r\n \r\n if [ -z ${FTB_MODPACK_VERSION_ID} ] && [ ! -z ${FTB_VERSION_STRING} ]; then\r\n # grabs the correct version id matching the string.\r\n FTB_MODPACK_VERSION_ID=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/${FTB_MODPACK_ID} | jq -r --arg VSTRING ${FTB_VERSION_STRING} '.versions[] | select(.name == $VSTRING) | .id')\r\n fi\r\n}\r\n\r\nfunction run_installer {\r\n # get architecture for installer\r\n INSTALLER_TYPE=$([ \"$(uname -m)\" == \"x86_64\" ] && echo \"linux\" || echo \"arm\/linux\")\r\n echo \"ModpackID: ${FTB_MODPACK_ID} VersionID: ${FTB_MODPACK_VERSION_ID} InstallerType: ${INSTALLER_TYPE}\"\r\n\r\n # download installer\r\n curl -L https:\/\/api.modpacks.ch\/public\/modpack\/0\/0\/server\/${INSTALLER_TYPE} --output serversetup\r\n chmod +x .\/serversetup\r\n \r\n # remove old forge files (to allow updating)\r\n rm -rf libraries\/net\/minecraftforge\/forge\r\n rm -rf libraries\/net\/neoforged\/forge\r\n rm -f unix_args.txt\r\n \r\n # run installer\r\n .\/serversetup ${FTB_MODPACK_ID} ${FTB_MODPACK_VERSION_ID} --auto --noscript --nojava\r\n}\r\n\r\n# allows startup command to work\r\nfunction move_startup_files {\r\n # create symlink for forge unix_args.txt if exists\r\n if compgen -G \"libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt\"; then\r\n ln -sf libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt unix_args.txt\r\n fi\r\n \r\n # create symlink for neoforge unix_args.txt if exists\r\n if compgen -G \"libraries\/net\/neoforged\/forge\/*\/unix_args.txt\"; then\r\n ln -sf libraries\/net\/neoforged\/forge\/*\/unix_args.txt unix_args.txt\r\n fi\r\n \r\n # move forge\/neoforge\/fabric jar file to start-server.jar if exists\r\n if compgen -G \"forge-*.jar\"; then\r\n mv -f forge-*.jar start-server.jar\r\n elif compgen -G \"fabric-*.jar\"; then\r\n mv -f fabric-*.jar start-server.jar\r\n fi\r\n}\r\n\r\n# installer cleanup\r\nfunction installer_cleanup {\r\n rm serversetup\r\n rm -f run.bat\r\n rm -f run.sh\r\n}\r\n\r\n# run installation steps\r\ninstall_required\r\nget_modpack_id\r\nrun_installer\r\nmove_startup_files\r\ninstaller_cleanup\r\n\r\necho \"Finished installing FTB modpack\"", "container": "openjdk:8-jdk-slim", "entrypoint": "bash" } @@ -77,4 +77,4 @@ "field_type": "text" } ] -} +} \ No newline at end of file From 449577ba5bfadc6c1c1f53284775c3e65c14cb2d Mon Sep 17 00:00:00 2001 From: Valentin Raillard Date: Fri, 27 Oct 2023 00:32:02 +0200 Subject: [PATCH 384/473] url encode for space --- game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json b/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json index 66336dc3..ba8cf9ac 100644 --- a/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json +++ b/game_eggs/minecraft/java/ftb/egg-ftb-modpacksch-server.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-25T15:07:49+02:00", + "exported_at": "2023-10-27T00:29:03+02:00", "name": "FTB-modpacks.ch Server", "author": "runemaster580@gmail.com", "description": "Since the release of the FTB APP, FTB modpacks are now distributed through modpacks.ch. This egg was developed for support for modpacks that are distributed through this.", @@ -30,7 +30,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# FTB Pack Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir -p \/mnt\/server\r\nfi\r\ncd \/mnt\/server\r\n\r\n\r\n# Download needed software.\r\nfunction install_required {\r\n apt update\r\n apt install -y curl jq\r\n}\r\n\r\nfunction get_modpack_id {\r\n # if no modpack id is set and modpack search term is set.\r\n if [ -z ${FTB_MODPACK_ID} ] && [ ! -z ${FTB_SEARCH_TERM} ]; then\r\n JSON_DATA=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/search\/8?term=${FTB_SEARCH_TERM})\r\n \r\n # grabs the first modpack in array.\r\n FTB_MODPACK_ID=$(echo -e ${JSON_DATA} | jq -r \".packs[]\")\r\n fi\r\n \r\n if [ -z ${FTB_MODPACK_VERSION_ID} ] && [ ! -z ${FTB_VERSION_STRING} ]; then\r\n # grabs the correct version id matching the string.\r\n FTB_MODPACK_VERSION_ID=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/${FTB_MODPACK_ID} | jq -r --arg VSTRING ${FTB_VERSION_STRING} '.versions[] | select(.name == $VSTRING) | .id')\r\n fi\r\n}\r\n\r\nfunction run_installer {\r\n # get architecture for installer\r\n INSTALLER_TYPE=$([ \"$(uname -m)\" == \"x86_64\" ] && echo \"linux\" || echo \"arm\/linux\")\r\n echo \"ModpackID: ${FTB_MODPACK_ID} VersionID: ${FTB_MODPACK_VERSION_ID} InstallerType: ${INSTALLER_TYPE}\"\r\n\r\n # download installer\r\n curl -L https:\/\/api.modpacks.ch\/public\/modpack\/0\/0\/server\/${INSTALLER_TYPE} --output serversetup\r\n chmod +x .\/serversetup\r\n \r\n # remove old forge files (to allow updating)\r\n rm -rf libraries\/net\/minecraftforge\/forge\r\n rm -rf libraries\/net\/neoforged\/forge\r\n rm -f unix_args.txt\r\n \r\n # run installer\r\n .\/serversetup ${FTB_MODPACK_ID} ${FTB_MODPACK_VERSION_ID} --auto --noscript --nojava\r\n}\r\n\r\n# allows startup command to work\r\nfunction move_startup_files {\r\n # create symlink for forge unix_args.txt if exists\r\n if compgen -G \"libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt\"; then\r\n ln -sf libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt unix_args.txt\r\n fi\r\n \r\n # create symlink for neoforge unix_args.txt if exists\r\n if compgen -G \"libraries\/net\/neoforged\/forge\/*\/unix_args.txt\"; then\r\n ln -sf libraries\/net\/neoforged\/forge\/*\/unix_args.txt unix_args.txt\r\n fi\r\n \r\n # move forge\/neoforge\/fabric jar file to start-server.jar if exists\r\n if compgen -G \"forge-*.jar\"; then\r\n mv -f forge-*.jar start-server.jar\r\n elif compgen -G \"fabric-*.jar\"; then\r\n mv -f fabric-*.jar start-server.jar\r\n fi\r\n}\r\n\r\n# installer cleanup\r\nfunction installer_cleanup {\r\n rm serversetup\r\n rm -f run.bat\r\n rm -f run.sh\r\n}\r\n\r\n# run installation steps\r\ninstall_required\r\nget_modpack_id\r\nrun_installer\r\nmove_startup_files\r\ninstaller_cleanup\r\n\r\necho \"Finished installing FTB modpack\"", + "script": "#!\/bin\/bash\r\n# FTB Pack Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir -p \/mnt\/server\r\nfi\r\ncd \/mnt\/server\r\n\r\n\r\n# Download needed software.\r\nfunction install_required {\r\n apt update\r\n apt install -y curl jq\r\n}\r\n\r\nfunction get_modpack_id {\r\n urlencode() {\r\n local string=\"${1\/\/ \/%20}\"\r\n echo \"$string\"\r\n }\r\n \r\n # if no modpack id is set and modpack search term is set.\r\n if [ -z ${FTB_MODPACK_ID} ] && [ ! -z \"${FTB_SEARCH_TERM}\" ]; then\r\n encoded_search_term=$(urlencode \"$FTB_SEARCH_TERM\")\r\n JSON_DATA=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/search\/8?term=\"${encoded_search_term}\")\r\n \r\n # grabs the first modpack in array.\r\n FTB_MODPACK_ID=$(echo -e ${JSON_DATA} | jq -r \".packs[0]\")\r\n fi\r\n \r\n if [ -z ${FTB_MODPACK_VERSION_ID} ] && [ ! -z ${FTB_VERSION_STRING} ]; then\r\n # grabs the correct version id matching the string.\r\n FTB_MODPACK_VERSION_ID=$(curl -sSL https:\/\/api.modpacks.ch\/public\/modpack\/${FTB_MODPACK_ID} | jq -r --arg VSTRING ${FTB_VERSION_STRING} '.versions[] | select(.name == $VSTRING) | .id')\r\n fi\r\n}\r\n\r\nfunction run_installer {\r\n # get architecture for installer\r\n INSTALLER_TYPE=$([ \"$(uname -m)\" == \"x86_64\" ] && echo \"linux\" || echo \"arm\/linux\")\r\n echo \"ModpackID: ${FTB_MODPACK_ID} VersionID: ${FTB_MODPACK_VERSION_ID} InstallerType: ${INSTALLER_TYPE}\"\r\n\r\n # download installer\r\n curl -L https:\/\/api.modpacks.ch\/public\/modpack\/0\/0\/server\/${INSTALLER_TYPE} --output serversetup\r\n chmod +x .\/serversetup\r\n \r\n # remove old forge files (to allow updating)\r\n rm -rf libraries\/net\/minecraftforge\/forge\r\n rm -rf libraries\/net\/neoforged\/forge\r\n rm -f unix_args.txt\r\n \r\n # run installer\r\n .\/serversetup ${FTB_MODPACK_ID} ${FTB_MODPACK_VERSION_ID} --auto --noscript --nojava\r\n}\r\n\r\n# allows startup command to work\r\nfunction move_startup_files {\r\n # create symlink for forge unix_args.txt if exists\r\n if compgen -G \"libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt\"; then\r\n ln -sf libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt unix_args.txt\r\n fi\r\n \r\n # create symlink for neoforge unix_args.txt if exists\r\n if compgen -G \"libraries\/net\/neoforged\/forge\/*\/unix_args.txt\"; then\r\n ln -sf libraries\/net\/neoforged\/forge\/*\/unix_args.txt unix_args.txt\r\n fi\r\n \r\n # move forge\/neoforge\/fabric jar file to start-server.jar if exists\r\n if compgen -G \"forge-*.jar\"; then\r\n mv -f forge-*.jar start-server.jar\r\n elif compgen -G \"fabric-*.jar\"; then\r\n mv -f fabric-*.jar start-server.jar\r\n fi\r\n}\r\n\r\n# installer cleanup\r\nfunction installer_cleanup {\r\n rm serversetup\r\n rm -f run.bat\r\n rm -f run.sh\r\n}\r\n\r\n# run installation steps\r\ninstall_required\r\nget_modpack_id\r\nrun_installer\r\nmove_startup_files\r\ninstaller_cleanup\r\n\r\necho \"Finished installing FTB modpack\"", "container": "openjdk:8-jdk-slim", "entrypoint": "bash" } From 2e126f991d8a9fd1dfe3eaca3d1c3f97a00f33ee Mon Sep 17 00:00:00 2001 From: engels74 <67713433+vp-en@users.noreply.github.com> Date: Sat, 28 Oct 2023 19:49:58 +0200 Subject: [PATCH 385/473] Adding Stationeers (BepInEx) Not tested, I don't own the game --- README.md | 2 + game_eggs/steamcmd_servers/README.md | 2 + .../stationeers/stationeers_bepinex/README.md | 31 ++++ .../egg-stationeers--bep-in-ex.json | 154 ++++++++++++++++++ .../{ => stationeers_vanilla}/README.md | 0 .../egg-stationeers.json | 0 6 files changed, 189 insertions(+) create mode 100644 game_eggs/steamcmd_servers/stationeers/stationeers_bepinex/README.md create mode 100644 game_eggs/steamcmd_servers/stationeers/stationeers_bepinex/egg-stationeers--bep-in-ex.json rename game_eggs/steamcmd_servers/stationeers/{ => stationeers_vanilla}/README.md (100%) rename game_eggs/steamcmd_servers/stationeers/{ => stationeers_vanilla}/egg-stationeers.json (100%) diff --git a/README.md b/README.md index 2992711c..c2a1bb94 100644 --- a/README.md +++ b/README.md @@ -306,6 +306,8 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Squad](game_eggs/steamcmd_servers/squad) * [Starbound](game_eggs/steamcmd_servers/starbound) * [Stationeers](game_eggs/steamcmd_servers/stationeers) + * [Stationeers Vanilla](game_eggs/steamcmd_servers/stationeers_vanilla) + * [Stationeers BepInEx](game_eggs/steamcmd_servers/stationeers_bepinex) * [Stormworks: Build and Rescue](game_eggs/steamcmd_servers/stormworks) * [Subnautica: Nitrox Mod](game_eggs/steamcmd_servers/subnautica_nitrox_mod) * [Sven Co-op](game_eggs/steamcmd_servers/svencoop) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index 20a1ec08..6b6d6ae2 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -237,6 +237,8 @@ This is a collection of servers that use SteamCMD to install. ## Stationeers [Stationeers](stationeers) + * [Stationeers Vanilla](stationeers/stationeers_vanilla) + * [Stationeers BepInEx](stationeers/stationeers_bepinex) ## Stormworks: Build and Rescue diff --git a/game_eggs/steamcmd_servers/stationeers/stationeers_bepinex/README.md b/game_eggs/steamcmd_servers/stationeers/stationeers_bepinex/README.md new file mode 100644 index 00000000..2cad4a70 --- /dev/null +++ b/game_eggs/steamcmd_servers/stationeers/stationeers_bepinex/README.md @@ -0,0 +1,31 @@ +# Stationeers + +Steam Description +Construct and manage your own space station either by yourself in singleplayer or with friends online! Fully functioning atmospherics, science, power, engineering, medical, logic, and agricultural systems. Explore to find asteroids and construct elaborate factories to harvest your resources! + +## SPECIAL NOTE + +The console output does not work properly with the new server. THIS IS NOT AN ERROR IN THIS EGG !!!! + +## BepInEx + +BepInEx is a general purpose framework for Unity modding. BepInEx includes tools and libraries to +- load custom code (hereafter plugins) into the game on launch; +- patch in-game methods, classes and even entire assemblies without touching original game files; +- configure plugins and log game to desired outputs like console or file; +- manage plugin dependencies. + +BepInEx is currently one of the most popular modding tools for Unity on GitHub. + +**Notice:** +- This egg is using the latest Unix version of BepInEx available, no extra libraries added. +- This egg is also using latest version of "[StationeersMods](https://github.com/jixxed/StationeersMods)" + +## Server Ports + +Stationeers requires up to 2 ports + +| Port | default | +|-------------|---------| +| Game | 27500 | +| Steam Query | 27015 | diff --git a/game_eggs/steamcmd_servers/stationeers/stationeers_bepinex/egg-stationeers--bep-in-ex.json b/game_eggs/steamcmd_servers/stationeers/stationeers_bepinex/egg-stationeers--bep-in-ex.json new file mode 100644 index 00000000..4f13f4f1 --- /dev/null +++ b/game_eggs/steamcmd_servers/stationeers/stationeers_bepinex/egg-stationeers--bep-in-ex.json @@ -0,0 +1,154 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-10-28T19:39:03+02:00", + "name": "Stationeers (BepInEx)", + "author": "m1z@tuta.io", + "description": "Stationeers Server with very basic BepInEx support", + "features": [ + "steam_disk_space" + ], + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:ubuntu": "ghcr.io\/parkervcp\/steamcmd:ubuntu" + }, + "file_denylist": [], + "startup": "export DOORSTOP_ENABLE=TRUE; export DOORSTOP_INVOKE_DLL_PATH=.\/BepInEx\/core\/BepInEx.Preloader.dll; export LD_LIBRARY_PATH=\".\/doorstop_libs:$LD_LIBRARY_PATH\"; export LD_PRELOAD=\"libdoorstop_x64.so:$LD_PRELOAD\"; stty cols 80 rows 24; .\/rocketstation_DedicatedServer.x86_64 -loadlatest \"{{SAVE_NAME}}\" {{WORLD_NAME}} -settings ServerName \"{{SERVER_NAME}}\" StartLocalHost true ServerVisible true GamePort {{SERVER_PORT}} UpdatePort {{UPDATE_PORT}} AutoSave {{AUTOSAVE}} SaveInterval {{SAVE_INTERVAL}} ServerPassword {{SERVER_PASSWD}} ServerMaxPlayers {{MAX_PLAYERS}} UPNPEnabled {{UPNP}} 2>&1", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"World load complete\"\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\r\necho \"-------------------------------------------------------\"\r\necho \"Installing BepInEx from the official GitHub repository...\"\r\necho \"-------------------------------------------------------\"\r\n\r\n# Fetch the latest release URL of BepInEx from GitHub releases\r\nLATEST_RELEASE_URL=$(curl -s https:\/\/api.github.com\/repos\/BepInEx\/BepInEx\/releases\/latest | jq -r \".assets[] | select(.name | contains(\\\"unix\\\")) | .browser_download_url\")\r\nif [ -z \"$LATEST_RELEASE_URL\" ]; then\r\n echo \"Failed to fetch the latest BepInEx release URL. Exiting.\"\r\n exit 1\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\n# Create a quick \/tmp folder\r\nmkdir -p \/mnt\/server\/tmp\r\n\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Downloading latest BepInEx release\"\r\necho \"-------------------------------------------------------\"\r\n# Download and extract BepInEx to the server directory\r\nwget \"$LATEST_RELEASE_URL\" -O \/mnt\/server\/tmp\/bepinex.zip\r\nunzip -o \/mnt\/server\/tmp\/bepinex.zip\r\nrm \/mnt\/server\/tmp\/bepinex.zip\r\n\r\n# Create the plugins directory inside BepInEx\r\nmkdir -p \/mnt\/server\/BepInEx\/plugins\r\n\r\n## BepInEx installation completed\r\necho \"-------------------------------------------------------\"\r\necho \"BepInEx installation completed\"\r\necho \"-------------------------------------------------------\"\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Downloading and installing the latest StationeersMods...\"\r\necho \"-------------------------------------------------------\"\r\n\r\n# Fetch the latest release URL of StationeersMods from GitHub releases\r\nSTATIONEERSMODS_URL=$(curl -s https:\/\/api.github.com\/repos\/jixxed\/StationeersMods\/releases\/latest | jq -r \".assets[] | select(.name == \\\"StationeersMods.zip\\\") | .browser_download_url\")\r\nif [ -z \"$STATIONEERSMODS_URL\" ]; then\r\n echo \"Failed to fetch the latest StationeersMods release URL. Exiting.\"\r\n exit 1\r\nfi\r\n\r\n# Download and unzip StationeersMods.zip to the plugins directory\r\nwget \"$STATIONEERSMODS_URL\" -O \/mnt\/server\/tmp\/StationeersMods.zip\r\nunzip -o \/mnt\/server\/tmp\/StationeersMods.zip -d \/mnt\/server\/BepInEx\/plugins\r\nrm \/mnt\/server\/tmp\/StationeersMods.zip\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"StationeersMods installation completed\"\r\necho \"-------------------------------------------------------\"\r\n\r\necho \"-------------------------------------------------------\"\r\necho \"Deleting leftover \/tmp folder\"\r\necho \"-------------------------------------------------------\"\r\n# Delete the \/tmp folder\r\nrm -rf \/mnt\/server\/tmp\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Stationeers installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Server Name", + "description": "", + "env_variable": "SERVER_NAME", + "default_value": "Pterodactyl Hosted Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:100", + "field_type": "text" + }, + { + "name": "World Name", + "description": "Available Maps: moon, mars, europa, europa2, mimas, vulcan, vulcan2, space, loulan, venus", + "env_variable": "WORLD_NAME", + "default_value": "moon", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|in:,moon,mars,europa,europa2,mimas,vulcan,vulcan2,space,loulan,venus", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "", + "env_variable": "MAX_PLAYERS", + "default_value": "10", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|between:1,30", + "field_type": "text" + }, + { + "name": "Server Password", + "description": "", + "env_variable": "SERVER_PASSWD", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "string|nullable", + "field_type": "text" + }, + { + "name": "Save Name", + "description": "Name of the save of your world.\r\nAuto save & auto load worlds on server startup.", + "env_variable": "SAVE_NAME", + "default_value": "stationeers_1", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Auto Save", + "description": "Turn Autosave on and off", + "env_variable": "AUTOSAVE", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "Save Interval", + "description": "Sets the server\u2019s auto-save interval in seconds.", + "env_variable": "SAVE_INTERVAL", + "default_value": "300", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "UPNP", + "description": "", + "env_variable": "UPNP", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "Steam App ID", + "description": "Required for automatic updates.", + "env_variable": "SRCDS_APPID", + "default_value": "600760", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer", + "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": "Update Port", + "description": "", + "env_variable": "UPDATE_PORT", + "default_value": "27014", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:50", + "field_type": "text" + }, + { + "name": "Beta Branch", + "description": "", + "env_variable": "SRCDS_BETAID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + } + ] +} \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/stationeers/README.md b/game_eggs/steamcmd_servers/stationeers/stationeers_vanilla/README.md similarity index 100% rename from game_eggs/steamcmd_servers/stationeers/README.md rename to game_eggs/steamcmd_servers/stationeers/stationeers_vanilla/README.md diff --git a/game_eggs/steamcmd_servers/stationeers/egg-stationeers.json b/game_eggs/steamcmd_servers/stationeers/stationeers_vanilla/egg-stationeers.json similarity index 100% rename from game_eggs/steamcmd_servers/stationeers/egg-stationeers.json rename to game_eggs/steamcmd_servers/stationeers/stationeers_vanilla/egg-stationeers.json From d21a237e7c6618b79aabf6970726cacde7e515bf Mon Sep 17 00:00:00 2001 From: engels74 <67713433+vp-en@users.noreply.github.com> Date: Sat, 28 Oct 2023 20:02:55 +0200 Subject: [PATCH 386/473] fix the readme --- README.md | 4 ++-- game_eggs/README.md | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c2a1bb94..cd66fa28 100644 --- a/README.md +++ b/README.md @@ -306,8 +306,8 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Squad](game_eggs/steamcmd_servers/squad) * [Starbound](game_eggs/steamcmd_servers/starbound) * [Stationeers](game_eggs/steamcmd_servers/stationeers) - * [Stationeers Vanilla](game_eggs/steamcmd_servers/stationeers_vanilla) - * [Stationeers BepInEx](game_eggs/steamcmd_servers/stationeers_bepinex) + * [Stationeers Vanilla](game_eggs/steamcmd_servers/stationeers/stationeers_vanilla) + * [Stationeers BepInEx](game_eggs/steamcmd_servers/stationeers/stationeers_bepinex) * [Stormworks: Build and Rescue](game_eggs/steamcmd_servers/stormworks) * [Subnautica: Nitrox Mod](game_eggs/steamcmd_servers/subnautica_nitrox_mod) * [Sven Co-op](game_eggs/steamcmd_servers/svencoop) diff --git a/game_eggs/README.md b/game_eggs/README.md index f504c1db..b045f50c 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -201,6 +201,8 @@ * [Squad](steamcmd_servers/squad) * [Starbound](steamcmd_servers/starbound) * [Stationeers](steamcmd_servers/stationeers) + * [Stationeers Vanilla](steamcmd_servers/stationeers/stationeers_vanilla) + * [Stationeers BepInEx](steamcmd_servers/stationeers/stationeers_bepinex) * [Stormworks: Build and Rescue](steamcmd_servers/stormworks) * [Subnautica: Nitrox Mod](steamcmd_servers/subnautica_nitrox_mod) * [Sven Co-op](steamcmd_servers/svencoop) From b53a031dcb9173e675222e0ff653b02100c30417 Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 15:56:37 -0400 Subject: [PATCH 387/473] adds A:SA egg --- README.md | 1 + .../ark_survival_ascended/README.md | 23 +++ .../egg-ark--survival-ascended.json | 132 ++++++++++++++++++ 3 files changed, 156 insertions(+) create mode 100644 game_eggs/steamcmd_servers/ark_survival_ascended/README.md create mode 100644 game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json diff --git a/README.md b/README.md index 2992711c..f6816ec8 100644 --- a/README.md +++ b/README.md @@ -237,6 +237,7 @@ If you are reading this it looks like you are looking to add an egg to your serv [SteamCMD Servers](game_eggs/steamcmd_servers) These eggs use SteamCMD to install * [7 Days to Die](game_eggs/steamcmd_servers/7_days_to_die) +* [ARK: Survival Ascneded](game_eggs/steamcmd_servers/ark_survival_ascended) * [ARK: Survival Evolved](game_eggs/steamcmd_servers/ark_survival_evolved) * [Arma](game_eggs/steamcmd_servers/arma) * [Arma 3](game_eggs/steamcmd_servers/arma/arma3) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/README.md b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md new file mode 100644 index 00000000..936742fa --- /dev/null +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md @@ -0,0 +1,23 @@ +# Ark: Survival Ascended + +Steam Description : +ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits! + +## Recommended server settings + +### Minimum RAM + +This server requires about 8-10GB of RAM to run with no players on a default map. + +See the following - + +## Server Ports + +Note: RCON is currently not docuemnted as of 10/28/2023 + +| Port | Default | +| --------------- | ------- | +| Game | 7777 | +| Raw UDP | 7778 | +| Query | 27015 | +| RCON (optional) | 27020 | diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json new file mode 100644 index 00000000..2036f8ad --- /dev/null +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -0,0 +1,132 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-10-28T14:43:36-04:00", + "name": "Ark: Survival Ascended", + "author": "blood@darkartsgaming.com", + "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" + }, + "file_denylist": [], + "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}{{ARGS_PARAMS}}\"$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAG}} & ARK_PID=$! ; tail -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"tail: .\/ShooterGame\/Saved\/Logs\/ShooterGame.log: file truncated\"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\n\r\nmkdir -p \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## create a symbolic link for loading mods\r\ncd \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\nln -sf ..\/..\/..\/..\/..\/Steam\/steamapps steamapps\r\n\r\n## cleanup movies?\r\nmkdir -p \/mnt\/server\/ShooterGame\/Content\r\nrm -rf Movies\r\n\r\n## touch log file\r\nmkdir -p \/mnt\/server\/ShooterGame\/Saved\/Logs\r\necho \"--fresh install--\" >> \/mnt\/server\/ShooterGame\/Saved\/Logs\/ShooterGame.log\r\n\r\ncd \/mnt\/server", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Server Map", + "description": "Available Maps: TheIsland_WP", + "env_variable": "SERVER_MAP", + "default_value": "TheIsland_WP", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Server Name", + "description": "\"Unofficial\" dedicated server name", + "env_variable": "SESSION_NAME", + "default_value": "A Pterodactyl Hosted Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:128", + "field_type": "text" + }, + { + "name": "Auto-update server", + "description": "This is to enable auto-updating for servers.\r\n\r\nDefault is 1. Set to 1 to update", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Battle Eye", + "description": "Enable BattleEye\r\n\r\n0 to disable\r\n1 to enable\r\n\r\ndefault=\"1\"", + "env_variable": "BATTLE_EYE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "App ID", + "description": "ARK steam app id for auto updates. Leave blank to avoid auto update.", + "env_variable": "SRCDS_APPID", + "default_value": "2430930", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|numeric", + "field_type": "text" + }, + { + "name": "Additional Arguments (PARAMS)", + "description": "params (?ServerPassword=...) and flags (-UseBattleEye) are supported here but params need to be first and touching followed by flags without them touching. (i.e): ?ServerPassword=MyP4SsWoRd?ServerAdminPassword=sUpRp4ssW0rd -UseBattleEye -cossplay", + "env_variable": "ARGS_PARAMS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "Specifies the maximum amount of players able to join the server.", + "env_variable": "MAX_PLAYERS", + "default_value": "70", + "user_viewable": true, + "user_editable": true, + "rules": "numeric", + "field_type": "text" + }, + { + "name": "Server Admin Password", + "description": "", + "env_variable": "ARK_ADMIN_PASSWORD", + "default_value": "changeme", + "user_viewable": true, + "user_editable": true, + "rules": "required|alpha_dash|max:32", + "field_type": "text" + }, + { + "name": "Query Port", + "description": "ARK query port used by steam server browser and ark client server browser.", + "env_variable": "QUERY_PORT", + "default_value": "27015", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Additional Arguments (FLAGS)", + "description": "params (?ServerPassword=...) and flags (-UseBattleEye) are supported here but params need to be first and touching followed by flags without them touching. (i.e): ?ServerPassword=MyP4SsWoRd?ServerAdminPassword=sUpRp4ssW0rd -UseBattleEye -cossplay", + "env_variable": "ARGS_FLAGS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + } + ] +} \ No newline at end of file From 51152f9e082c88de0d44cb9bbe025730d0458261 Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 16:03:23 -0400 Subject: [PATCH 388/473] spelling --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f6816ec8..588262d6 100644 --- a/README.md +++ b/README.md @@ -237,7 +237,7 @@ If you are reading this it looks like you are looking to add an egg to your serv [SteamCMD Servers](game_eggs/steamcmd_servers) These eggs use SteamCMD to install * [7 Days to Die](game_eggs/steamcmd_servers/7_days_to_die) -* [ARK: Survival Ascneded](game_eggs/steamcmd_servers/ark_survival_ascended) +* [ARK: Survival Ascended](game_eggs/steamcmd_servers/ark_survival_ascended) * [ARK: Survival Evolved](game_eggs/steamcmd_servers/ark_survival_evolved) * [Arma](game_eggs/steamcmd_servers/arma) * [Arma 3](game_eggs/steamcmd_servers/arma/arma3) From aa8ddd68bf1a84b94a20f6af25be6ac8868054f1 Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 16:08:35 -0400 Subject: [PATCH 389/473] adds steam_disc_space as feature --- .../ark_survival_ascended/egg-ark--survival-ascended.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 2036f8ad..63ac31f0 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -8,7 +8,9 @@ "name": "Ark: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", - "features": null, + "features": [ + "steam_disk_space" + ], "docker_images": { "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, From 0e256a6ae98a074b794cad467c6dbfed54466d02 Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 16:30:34 -0400 Subject: [PATCH 390/473] fixes FLAGS not being added --- .../ark_survival_ascended/egg-ark--survival-ascended.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 63ac31f0..fd496469 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, "file_denylist": [], - "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}{{ARGS_PARAMS}}\"$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAG}} & ARK_PID=$! ; tail -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log", + "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}{{ARGS_PARAMS}}\"$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log", "config": { "files": "{}", "startup": "{\r\n \"done\": \"tail: .\/ShooterGame\/Saved\/Logs\/ShooterGame.log: file truncated\"\r\n}", From c6ac2d49d2e6d6d240f3997c5b0bfc5b8a2b50e1 Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 17:49:18 -0400 Subject: [PATCH 391/473] - properly remove Movies in script - fixes names - adds links to additional README(s) - adds ServerPVE toggle - adds ServerPassword - adds sleep 15s for log files to allow for more accurate console logging - adds troubleshooting help to README --- game_eggs/README.md | 1 + game_eggs/steamcmd_servers/README.md | 3 +- .../ark_survival_ascended/README.md | 9 ++++-- .../egg-ark--survival-ascended.json | 30 +++++++++++++++---- 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/game_eggs/README.md b/game_eggs/README.md index f504c1db..84824ac7 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -130,6 +130,7 @@ [SteamCMD Servers](steamcmd_servers) These eggs use SteamCMD to install * [7 Days to Die](steamcmd_servers/7_days_to_die) +* [ARK: Survival Ascended](steamcmd_servers/ark_survival_ascended) * [ARK: Survival Evolved](steamcmd_servers/ark_survival_evolved) * [Arma](steamcmd_servers/arma) * [Arma 3](steamcmd_servers/arma/arma3) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index 20a1ec08..6dd2034a 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -6,8 +6,9 @@ This is a collection of servers that use SteamCMD to install. [7 Days To Die](7_days_to_die) -## ARK: Survival Evolved +## ARK: Survival Ascended/Evolved +[ARK: Survival Ascended](ark_survival_asceneded) [ARK: Survival Evolved](ark_survival_evolved) ## Arma diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/README.md b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md index 936742fa..7ff69472 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/README.md +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md @@ -1,8 +1,13 @@ -# Ark: Survival Ascended +# ARK: Survival Ascended Steam Description : ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits! +## Troubleshooting + +Due to using `tail -F ...` to follow the current server log, we are unable to also detect crashing (server stopping). This is obvious when the CPU hits 0% and RAM is around 5MB. However, more details are available in the `ShooterGame/Saved/Crashes/UECC-Windows-*/CrashContext.runtime-xml` + + ## Recommended server settings ### Minimum RAM @@ -13,7 +18,7 @@ See the following - ## Server Ports -Note: RCON is currently not docuemnted as of 10/28/2023 +Note: RCON is currently not documented as of 10/28/2023 | Port | Default | | --------------- | ------- | diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index fd496469..f487ff83 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,8 +4,8 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-28T14:43:36-04:00", - "name": "Ark: Survival Ascended", + "exported_at": "2023-10-28T17:45:10-04:00", + "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", "features": [ @@ -15,16 +15,16 @@ "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, "file_denylist": [], - "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}{{ARGS_PARAMS}}\"$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log", + "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )$( [ -z \"$SERVER_PASSWORD\" ] || printf %s '?ServerPassword={{SERVER_PASSWORD}}' ){{ARGS_PARAMS}}\"$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; sleep 15 ; tail -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log", "config": { "files": "{}", - "startup": "{\r\n \"done\": \"tail: .\/ShooterGame\/Saved\/Logs\/ShooterGame.log: file truncated\"\r\n}", + "startup": "{\r\n \"done\": \"]Full Startup: \"\r\n}", "logs": "{}", "stop": "^^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\n\r\nmkdir -p \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## create a symbolic link for loading mods\r\ncd \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\nln -sf ..\/..\/..\/..\/..\/Steam\/steamapps steamapps\r\n\r\n## cleanup movies?\r\nmkdir -p \/mnt\/server\/ShooterGame\/Content\r\nrm -rf Movies\r\n\r\n## touch log file\r\nmkdir -p \/mnt\/server\/ShooterGame\/Saved\/Logs\r\necho \"--fresh install--\" >> \/mnt\/server\/ShooterGame\/Saved\/Logs\/ShooterGame.log\r\n\r\ncd \/mnt\/server", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\n\r\nmkdir -p \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## create a symbolic link for loading mods\r\ncd \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\nln -sf ..\/..\/..\/..\/..\/Steam\/steamapps steamapps\r\n\r\n## cleanup movies?\r\nrm -rf \/mnt\/server\/ShooterGame\/Content\/Movies\r\n\r\n## touch log file\r\nmkdir -p \/mnt\/server\/ShooterGame\/Saved\/Logs\r\necho \"--fresh install--\" >> \/mnt\/server\/ShooterGame\/Saved\/Logs\/ShooterGame.log\r\n\r\ncd \/mnt\/server", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -129,6 +129,26 @@ "user_editable": true, "rules": "nullable|string", "field_type": "text" + }, + { + "name": "Server PvE", + "description": "player vs environment. default is player-vs-player", + "env_variable": "SERVER_PVE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Server Password", + "description": "required password to enter the server, leave blank for public server", + "env_variable": "SERVER_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" } ] } \ No newline at end of file From 4466587549fb4c0fbd66aacc9a759d938872bb9b Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 18:42:00 -0400 Subject: [PATCH 392/473] word phrasing in variable descriptions --- .../ark_survival_ascended/egg-ark--survival-ascended.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index f487ff83..ddcf70e5 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -52,7 +52,7 @@ }, { "name": "Auto-update server", - "description": "This is to enable auto-updating for servers.\r\n\r\nDefault is 1. Set to 1 to update", + "description": "This is to enable auto-updating for servers.\r\n\r\nDefault is 1. Set to 0 to disable automatic updates", "env_variable": "AUTO_UPDATE", "default_value": "1", "user_viewable": true, @@ -82,7 +82,7 @@ }, { "name": "Additional Arguments (PARAMS)", - "description": "params (?ServerPassword=...) and flags (-UseBattleEye) are supported here but params need to be first and touching followed by flags without them touching. (i.e): ?ServerPassword=MyP4SsWoRd?ServerAdminPassword=sUpRp4ssW0rd -UseBattleEye -cossplay", + "description": "params (?ServerPassword=...) and flags (-UseBattleEye) are supported here but params need to be first and touching followed by flags without them touching. (i.e): ?ServerPassword=MyP4SsWoRd?ServerAdminPassword=sUpRp4ssW0rd -crossplay -mods=1234,1235,1236", "env_variable": "ARGS_PARAMS", "default_value": "", "user_viewable": true, @@ -122,7 +122,7 @@ }, { "name": "Additional Arguments (FLAGS)", - "description": "params (?ServerPassword=...) and flags (-UseBattleEye) are supported here but params need to be first and touching followed by flags without them touching. (i.e): ?ServerPassword=MyP4SsWoRd?ServerAdminPassword=sUpRp4ssW0rd -UseBattleEye -cossplay", + "description": "params (?ServerPassword=...) and flags (-UseBattleEye) are supported here but params need to be first and touching followed by flags without them touching. (i.e): ?ServerPassword=MyP4SsWoRd?ServerAdminPassword=sUpRp4ssW0rd -crossplay -mods=1234,1235,1236", "env_variable": "ARGS_FLAGS", "default_value": "", "user_viewable": true, @@ -132,7 +132,7 @@ }, { "name": "Server PvE", - "description": "player vs environment. default is player-vs-player", + "description": "Player-vs-Environment (PvE) or Player-vs-Player (PvP); default is PvE enabled; disabling will enable PvP", "env_variable": "SERVER_PVE", "default_value": "1", "user_viewable": true, From dbcd8b29c55542cd8f782323e87aac12aa4f91ec Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 18:59:03 -0400 Subject: [PATCH 393/473] final revision of argument descriptions --- .../ark_survival_ascended/egg-ark--survival-ascended.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index ddcf70e5..d2b062eb 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -82,7 +82,7 @@ }, { "name": "Additional Arguments (PARAMS)", - "description": "params (?ServerPassword=...) and flags (-UseBattleEye) are supported here but params need to be first and touching followed by flags without them touching. (i.e): ?ServerPassword=MyP4SsWoRd?ServerAdminPassword=sUpRp4ssW0rd -crossplay -mods=1234,1235,1236", + "description": "params (?ServerPassword=...) are supported here but params need to be touching. (i.e): ?ServerPassword=MyP4SsWoRd?ServerAdminPassword=sUpRp4ssW0rd", "env_variable": "ARGS_PARAMS", "default_value": "", "user_viewable": true, @@ -122,7 +122,7 @@ }, { "name": "Additional Arguments (FLAGS)", - "description": "params (?ServerPassword=...) and flags (-UseBattleEye) are supported here but params need to be first and touching followed by flags without them touching. (i.e): ?ServerPassword=MyP4SsWoRd?ServerAdminPassword=sUpRp4ssW0rd -crossplay -mods=1234,1235,1236", + "description": "flags (-UseBattleEye) are supported here without them touching. (i.e): -crossplay -mods=1234,1235,1236", "env_variable": "ARGS_FLAGS", "default_value": "", "user_viewable": true, From 2b17140975afdd9cc569fe763563ec1ce79bb7ae Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 19:08:49 -0400 Subject: [PATCH 394/473] remove appid user_edit permissions --- .../ark_survival_ascended/egg-ark--survival-ascended.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index d2b062eb..9b79060d 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -76,7 +76,7 @@ "env_variable": "SRCDS_APPID", "default_value": "2430930", "user_viewable": true, - "user_editable": true, + "user_editable": false, "rules": "nullable|numeric", "field_type": "text" }, From 80ba8baaf91cec0fc01d138b349e48427d2e543f Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 20:24:45 -0400 Subject: [PATCH 395/473] fixes ServerPassword issue --- .../ark_survival_ascended/egg-ark--survival-ascended.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 9b79060d..1839bd87 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-28T17:45:10-04:00", + "exported_at": "2023-10-28T20:23:14-04:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, "file_denylist": [], - "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )$( [ -z \"$SERVER_PASSWORD\" ] || printf %s '?ServerPassword={{SERVER_PASSWORD}}' ){{ARGS_PARAMS}}\"$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; sleep 15 ; tail -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log", + "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword={{SERVER_PASSWORD}}{{ARGS_PARAMS}}\"$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID", "config": { "files": "{}", "startup": "{\r\n \"done\": \"]Full Startup: \"\r\n}", From 3f71864ca9e7e1560c41eb915f287f116fc65a6e Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sat, 28 Oct 2023 23:44:39 -0400 Subject: [PATCH 396/473] fixes MaxPlayers - thanks to @Log1x --- .../ark_survival_ascended/egg-ark--survival-ascended.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 1839bd87..3551715b 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-28T20:23:14-04:00", + "exported_at": "2023-10-28T23:41:51-04:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -15,9 +15,9 @@ "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, "file_denylist": [], - "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword={{SERVER_PASSWORD}}{{ARGS_PARAMS}}\"$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID", + "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword={{SERVER_PASSWORD}}{{ARGS_PARAMS}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}}$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID", "config": { - "files": "{}", + "files": "{\r\n \"ShooterGame\/Saved\/Config\/WindowsServer\/GameUserSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"]Full Startup: \"\r\n}", "logs": "{}", "stop": "^^C" From 37105e3885d81ebccc5a39c62d1be9ba1f69a400 Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sun, 29 Oct 2023 12:01:51 -0400 Subject: [PATCH 397/473] rcon & better logging - added rcon variable - added rcon saveworld on exit - added rcon in-browser console support - added better logging for more details - updated install script to use latest steamcmd install ( @gOOvER ) Major thanks to @Log1x for a ton of troubleshooting, feedback, and suggestions! --- .../ark_survival_ascended/README.md | 6 ++--- .../egg-ark--survival-ascended.json | 24 +++++++++++++------ 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/README.md b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md index 7ff69472..fbc634b0 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/README.md +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md @@ -5,7 +5,7 @@ ARK is reimagined from the ground-up into the next-generation of video game tech ## Troubleshooting -Due to using `tail -F ...` to follow the current server log, we are unable to also detect crashing (server stopping). This is obvious when the CPU hits 0% and RAM is around 5MB. However, more details are available in the `ShooterGame/Saved/Crashes/UECC-Windows-*/CrashContext.runtime-xml` +Crash logs are available in the Files `ShooterGame/Saved/Crashes/UECC-Windows-*/CrashContext.runtime-xml` ## Recommended server settings @@ -18,11 +18,11 @@ See the following - ## Server Ports -Note: RCON is currently not documented as of 10/28/2023 +Note: RCON doesn't need to be public but is required for console commands (in ptero) | Port | Default | | --------------- | ------- | | Game | 7777 | | Raw UDP | 7778 | | Query | 27015 | -| RCON (optional) | 27020 | +| RCON | 27020 | diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 3551715b..28d4d3bc 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-28T23:41:51-04:00", + "exported_at": "2023-10-29T11:56:31-04:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, "file_denylist": [], - "startup": "proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword={{SERVER_PASSWORD}}{{ARGS_PARAMS}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}}$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID", + "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} SaveWorld && rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword={{SERVER_PASSWORD}}{{ARGS_PARAMS}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}} -oldconsole -servergamelog$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID & until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done", "config": { "files": "{\r\n \"ShooterGame\/Saved\/Config\/WindowsServer\/GameUserSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"]Full Startup: \"\r\n}", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\n\r\nmkdir -p \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## create a symbolic link for loading mods\r\ncd \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\nln -sf ..\/..\/..\/..\/..\/Steam\/steamapps steamapps\r\n\r\n## cleanup movies?\r\nrm -rf \/mnt\/server\/ShooterGame\/Content\/Movies\r\n\r\n## touch log file\r\nmkdir -p \/mnt\/server\/ShooterGame\/Saved\/Logs\r\necho \"--fresh install--\" >> \/mnt\/server\/ShooterGame\/Saved\/Logs\/ShooterGame.log\r\n\r\ncd \/mnt\/server", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n##\r\n#\r\n# Variables\r\n# STEAM_USER, STEAM_PASS, STEAM_AUTH - Steam user setup. If a user has 2fa enabled it will most likely fail due to timeout. Leave blank for anon install.\r\n# WINDOWS_INSTALL - if it's a windows server you want to install set to 1\r\n# SRCDS_APPID - steam app id found here - https:\/\/developer.valvesoftware.com\/wiki\/Dedicated_Servers_List\r\n# SRCDS_BETAID - beta branch of a steam app. Leave blank to install normal branch\r\n# SRCDS_BETAPASS - password for a beta branch should one be required during private or closed testing phases.. Leave blank for no password.\r\n# INSTALL_FLAGS - Any additional SteamCMD flags to pass during install.. Keep in mind that steamcmd auto update process in the docker image might overwrite or ignore these when it performs update on server boot.\r\n# AUTO_UPDATE - Adding this variable to the egg allows disabling or enabling automated updates on boot. Boolean value. 0 to disable and 1 to enable.\r\n#\r\n ##\r\n\r\n# Install packages. Default packages below are not required if using our existing install image thus speeding up the install process.\r\n#apt -y update\r\n#apt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## add below your custom commands if needed\r\n## cleanup movies?\r\nrm -rf \/mnt\/server\/ShooterGame\/Content\/Movies\r\n\r\n## touch log file\r\nmkdir -p \/mnt\/server\/ShooterGame\/Saved\/Logs\r\necho \"--fresh install--\" >> \/mnt\/server\/ShooterGame\/Saved\/Logs\/ShooterGame.log\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -97,7 +97,7 @@ "default_value": "70", "user_viewable": true, "user_editable": true, - "rules": "numeric", + "rules": "required|numeric", "field_type": "text" }, { @@ -107,7 +107,7 @@ "default_value": "changeme", "user_viewable": true, "user_editable": true, - "rules": "required|alpha_dash|max:32", + "rules": "required|alpha_dash", "field_type": "text" }, { @@ -117,7 +117,7 @@ "default_value": "27015", "user_viewable": true, "user_editable": true, - "rules": "required|numeric", + "rules": "required|numeric|max:65535", "field_type": "text" }, { @@ -132,7 +132,7 @@ }, { "name": "Server PvE", - "description": "Player-vs-Environment (PvE) or Player-vs-Player (PvP); default is PvE enabled; disabling will enable PvP", + "description": "Player-vs-Environment (PvE) or Player-vs-Player (PvP); default is (1) PvE enabled; disabling (0) will enable PvP", "env_variable": "SERVER_PVE", "default_value": "1", "user_viewable": true, @@ -149,6 +149,16 @@ "user_editable": true, "rules": "nullable|string", "field_type": "text" + }, + { + "name": "RCON Port", + "description": "required for console commands and proper server shutdown (saveworld\/exit), doesn't have to be open to the public", + "env_variable": "RCON_PORT", + "default_value": "37015", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|max:65535", + "field_type": "text" } ] } \ No newline at end of file From e9a0c1e556940139e740ac259db1dfc1ad6d2d2a Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sun, 29 Oct 2023 12:20:09 -0400 Subject: [PATCH 398/473] gracefully shutdown server --- .../ark_survival_ascended/egg-ark--survival-ascended.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 28d4d3bc..28c74ff9 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-29T11:56:31-04:00", + "exported_at": "2023-10-29T12:19:41-04:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -20,7 +20,7 @@ "files": "{\r\n \"ShooterGame\/Saved\/Config\/WindowsServer\/GameUserSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"]Full Startup: \"\r\n}", "logs": "{}", - "stop": "^^C" + "stop": "^C" }, "scripts": { "installation": { From 5fa40b4cc39f9ea0b83fdd881ad56201adf0f72f Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sun, 29 Oct 2023 14:19:57 -0400 Subject: [PATCH 399/473] MODs & Remove Duplicate SaveWorld on Exit - adds MOD_IDS as a variable ( thanks @IxPrumxI ) - removes SaveWorld on exit since DoExit also does a SaveWorld --- .../egg-ark--survival-ascended.json | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 28c74ff9..9772a11b 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-29T12:19:41-04:00", + "exported_at": "2023-10-29T14:17:11-04:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, "file_denylist": [], - "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} SaveWorld && rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword={{SERVER_PASSWORD}}{{ARGS_PARAMS}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}} -oldconsole -servergamelog$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID & until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done", + "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword={{SERVER_PASSWORD}}{{ARGS_PARAMS}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}} -oldconsole -servergamelog$( [ -z \"$MOD_IDS\" ] || printf %s ' -mods=' $MOD_IDS )$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID & until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done", "config": { "files": "{\r\n \"ShooterGame\/Saved\/Config\/WindowsServer\/GameUserSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"]Full Startup: \"\r\n}", @@ -159,6 +159,16 @@ "user_editable": true, "rules": "required|numeric|max:65535", "field_type": "text" + }, + { + "name": "MOD IDs", + "description": "https:\/\/www.curseforge.com\/ark-survival-ascended ; ProjectID is is the MOD_ID on the right-side of the mod-view page ; leave blank to disable mods ; separate only by comma ( , ) without spaces! (i.e.) 1234,1235,1236", + "env_variable": "MOD_IDS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" } ] } \ No newline at end of file From eacb24563c4b14c1389dbc5762ad8418d9e544f6 Mon Sep 17 00:00:00 2001 From: Derrick A Date: Sun, 29 Oct 2023 22:31:30 -0400 Subject: [PATCH 400/473] server name and rcon fixes - quoting passwords helped fix some issues ( thanks @IxPrumxI ) - migrated ServerAdminPassword to end of params - changed value to be more accurate for when server is running - removed server map max length - removed server name max length (cant guarnatee anything here) - set server password requirements, if set, to prevent crashing (and ultimatly corrupting installs) - added fix for existing servers that may be corrupted by an outdated egg (in regards to ? in ServerAdminPasswords=) --- .../egg-ark--survival-ascended.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 9772a11b..6dabbcc0 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-29T14:17:11-04:00", + "exported_at": "2023-10-29T22:24:13-04:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -15,10 +15,10 @@ "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, "file_denylist": [], - "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe \"{{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName={{SESSION_NAME}}?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword={{SERVER_PASSWORD}}{{ARGS_PARAMS}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}} -oldconsole -servergamelog$( [ -z \"$MOD_IDS\" ] || printf %s ' -mods=' $MOD_IDS )$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID & until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done", + "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe {{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName=\"{{SESSION_NAME}}\"?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword=\"{{SERVER_PASSWORD}}\"{{ARGS_PARAMS}}?ServerAdminPassword=\"{{ARK_ADMIN_PASSWORD}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}} -oldconsole -servergamelog$( [ -z \"$MOD_IDS\" ] || printf %s ' -mods=' $MOD_IDS )$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID & until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done", "config": { - "files": "{\r\n \"ShooterGame\/Saved\/Config\/WindowsServer\/GameUserSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"]Full Startup: \"\r\n}", + "files": "{\r\n \"ShooterGame\/Saved\/Config\/WindowsServer\/GameUserSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\",\r\n \"ServerAdminPassword=\": \"ServerAdminPassword={{server.build.env.ARK_ADMIN_PASSWORD}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Waiting commands for 127.0.0.1:\"\r\n}", "logs": "{}", "stop": "^C" }, @@ -37,7 +37,7 @@ "default_value": "TheIsland_WP", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20", + "rules": "required|string", "field_type": "text" }, { @@ -47,7 +47,7 @@ "default_value": "A Pterodactyl Hosted Server", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:128", + "rules": "required|string", "field_type": "text" }, { @@ -147,7 +147,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string", + "rules": "nullable|alpha_dash", "field_type": "text" }, { From 679c670dd57c381b574c68f90a08a3483e3d0d4f Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Mon, 30 Oct 2023 16:47:52 +0100 Subject: [PATCH 401/473] Cleanup --- .../egg-ark--survival-ascended.json | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 6dabbcc0..11a8c1f2 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-29T22:24:13-04:00", + "exported_at": "2023-10-30T16:46:57+01:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -12,7 +12,7 @@ "steam_disk_space" ], "docker_images": { - "ghcr.io\/parkervcp\/steamcmd:proton": "ghcr.io\/parkervcp\/steamcmd:proton" + "Proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, "file_denylist": [], "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe {{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName=\"{{SESSION_NAME}}\"?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword=\"{{SERVER_PASSWORD}}\"{{ARGS_PARAMS}}?ServerAdminPassword=\"{{ARK_ADMIN_PASSWORD}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}} -oldconsole -servergamelog$( [ -z \"$MOD_IDS\" ] || printf %s ' -mods=' $MOD_IDS )$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID & until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done", @@ -47,12 +47,12 @@ "default_value": "A Pterodactyl Hosted Server", "user_viewable": true, "user_editable": true, - "rules": "required|string", + "rules": "required|string|max:256", "field_type": "text" }, { - "name": "Auto-update server", - "description": "This is to enable auto-updating for servers.\r\n\r\nDefault is 1. Set to 0 to disable automatic updates", + "name": "Auto Update", + "description": "Auto update the servers on startup.", "env_variable": "AUTO_UPDATE", "default_value": "1", "user_viewable": true, @@ -62,7 +62,7 @@ }, { "name": "Battle Eye", - "description": "Enable BattleEye\r\n\r\n0 to disable\r\n1 to enable\r\n\r\ndefault=\"1\"", + "description": "Enable BattleEye\r\n\r\nOFF = disable\r\nON = enable\r\n\r\ndefault=\"ON\"", "env_variable": "BATTLE_EYE", "default_value": "1", "user_viewable": true, @@ -72,12 +72,12 @@ }, { "name": "App ID", - "description": "ARK steam app id for auto updates. Leave blank to avoid auto update.", + "description": "ARK steam app id for auto updates.", "env_variable": "SRCDS_APPID", "default_value": "2430930", - "user_viewable": true, + "user_viewable": false, "user_editable": false, - "rules": "nullable|numeric", + "rules": "nullable|numeric|in:2430930", "field_type": "text" }, { @@ -87,7 +87,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string", + "rules": "nullable|string|max:256", "field_type": "text" }, { @@ -97,17 +97,17 @@ "default_value": "70", "user_viewable": true, "user_editable": true, - "rules": "required|numeric", + "rules": "required|numeric|between:1,200", "field_type": "text" }, { "name": "Server Admin Password", "description": "", "env_variable": "ARK_ADMIN_PASSWORD", - "default_value": "changeme", + "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|alpha_dash", + "rules": "required|alpha_dash|min:8|max:64", "field_type": "text" }, { @@ -116,7 +116,7 @@ "env_variable": "QUERY_PORT", "default_value": "27015", "user_viewable": true, - "user_editable": true, + "user_editable": false, "rules": "required|numeric|max:65535", "field_type": "text" }, @@ -127,12 +127,12 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string", + "rules": "nullable|string|max:256", "field_type": "text" }, { "name": "Server PvE", - "description": "Player-vs-Environment (PvE) or Player-vs-Player (PvP); default is (1) PvE enabled; disabling (0) will enable PvP", + "description": "ON = Player-vs-Environment (PvE) OFF = Player-vs-Player-vs-Environment (PvPvE); By default is on.", "env_variable": "SERVER_PVE", "default_value": "1", "user_viewable": true, @@ -147,7 +147,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|alpha_dash", + "rules": "nullable|alpha_dash|max:256", "field_type": "text" }, { @@ -156,8 +156,8 @@ "env_variable": "RCON_PORT", "default_value": "37015", "user_viewable": true, - "user_editable": true, - "rules": "required|numeric|max:65535", + "user_editable": false, + "rules": "required|numeric|between:1024,65535", "field_type": "text" }, { @@ -167,7 +167,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string", + "rules": "nullable|string|max:256", "field_type": "text" } ] From bcfd7d36dc06aaa497af4853eb8f8e7b8aa390f2 Mon Sep 17 00:00:00 2001 From: Derrick A Date: Mon, 30 Oct 2023 12:51:30 -0400 Subject: [PATCH 402/473] variable rules/descriptions and readme(s) updated --- game_eggs/steamcmd_servers/README.md | 5 ++- .../ark_survival_ascended/README.md | 2 +- .../egg-ark--survival-ascended.json | 38 +++++++++---------- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index 6dd2034a..31db3d1f 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -6,9 +6,12 @@ This is a collection of servers that use SteamCMD to install. [7 Days To Die](7_days_to_die) -## ARK: Survival Ascended/Evolved +## ARK: Survival Ascended [ARK: Survival Ascended](ark_survival_asceneded) + +## ARK: Survival Evolved + [ARK: Survival Evolved](ark_survival_evolved) ## Arma diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/README.md b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md index fbc634b0..a0afcc77 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/README.md +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md @@ -25,4 +25,4 @@ Note: RCON doesn't need to be public but is required for console commands (in pt | Game | 7777 | | Raw UDP | 7778 | | Query | 27015 | -| RCON | 27020 | +| RCON | 37015 | diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 11a8c1f2..75f340bc 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-30T16:46:57+01:00", + "exported_at": "2023-10-30T12:50:45-04:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -37,7 +37,7 @@ "default_value": "TheIsland_WP", "user_viewable": true, "user_editable": true, - "rules": "required|string", + "rules": "required|string|max:64", "field_type": "text" }, { @@ -51,8 +51,8 @@ "field_type": "text" }, { - "name": "Auto Update", - "description": "Auto update the servers on startup.", + "name": "Auto-update server", + "description": "This is to enable auto-updating for servers on restart\/re-install.", "env_variable": "AUTO_UPDATE", "default_value": "1", "user_viewable": true, @@ -62,7 +62,7 @@ }, { "name": "Battle Eye", - "description": "Enable BattleEye\r\n\r\nOFF = disable\r\nON = enable\r\n\r\ndefault=\"ON\"", + "description": "Enable BattleEye \/ Anti-Cheat", "env_variable": "BATTLE_EYE", "default_value": "1", "user_viewable": true, @@ -72,12 +72,12 @@ }, { "name": "App ID", - "description": "ARK steam app id for auto updates.", + "description": "app id required for server download\/updates. end users should not see this.", "env_variable": "SRCDS_APPID", "default_value": "2430930", "user_viewable": false, "user_editable": false, - "rules": "nullable|numeric|in:2430930", + "rules": "required|integer|in:2430930", "field_type": "text" }, { @@ -87,7 +87,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:256", + "rules": "nullable|string|max:1024", "field_type": "text" }, { @@ -97,17 +97,17 @@ "default_value": "70", "user_viewable": true, "user_editable": true, - "rules": "required|numeric|between:1,200", + "rules": "required|integer|min:1|max:200", "field_type": "text" }, { "name": "Server Admin Password", - "description": "", + "description": "Used for RCON (remote and in-browser console) as well as in-game EnableCheats", "env_variable": "ARK_ADMIN_PASSWORD", "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|alpha_dash|min:8|max:64", + "rules": "required|alpha_dash|max:128", "field_type": "text" }, { @@ -116,8 +116,8 @@ "env_variable": "QUERY_PORT", "default_value": "27015", "user_viewable": true, - "user_editable": false, - "rules": "required|numeric|max:65535", + "user_editable": true, + "rules": "required|integer|min:1025|max:65535", "field_type": "text" }, { @@ -127,12 +127,12 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:256", + "rules": "nullable|string|max:1024", "field_type": "text" }, { "name": "Server PvE", - "description": "ON = Player-vs-Environment (PvE) OFF = Player-vs-Player-vs-Environment (PvPvE); By default is on.", + "description": "ON = Player-vs-Environment (PvE), OFF = Player-vs-Player (PvP); Default is ON", "env_variable": "SERVER_PVE", "default_value": "1", "user_viewable": true, @@ -147,7 +147,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|alpha_dash|max:256", + "rules": "nullable|alpha_dash|max:128", "field_type": "text" }, { @@ -156,8 +156,8 @@ "env_variable": "RCON_PORT", "default_value": "37015", "user_viewable": true, - "user_editable": false, - "rules": "required|numeric|between:1024,65535", + "user_editable": true, + "rules": "required|integer|min:1025|max:65535", "field_type": "text" }, { @@ -167,7 +167,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:256", + "rules": "nullable|string|max:512", "field_type": "text" } ] From ed7b6a3400c270e64aef674125e834558f17b6e6 Mon Sep 17 00:00:00 2001 From: Derrick A Date: Mon, 30 Oct 2023 14:12:17 -0400 Subject: [PATCH 403/473] remove port editable rules for end-users --- .../ark_survival_ascended/egg-ark--survival-ascended.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index 75f340bc..fa37bebc 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-30T12:50:45-04:00", + "exported_at": "2023-10-30T13:56:57-04:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -116,7 +116,7 @@ "env_variable": "QUERY_PORT", "default_value": "27015", "user_viewable": true, - "user_editable": true, + "user_editable": false, "rules": "required|integer|min:1025|max:65535", "field_type": "text" }, @@ -156,7 +156,7 @@ "env_variable": "RCON_PORT", "default_value": "37015", "user_viewable": true, - "user_editable": true, + "user_editable": false, "rules": "required|integer|min:1025|max:65535", "field_type": "text" }, From bb3d72a554de79cad34f6dd0d66a661a0d75507a Mon Sep 17 00:00:00 2001 From: engels74 <67713433+vp-en@users.noreply.github.com> Date: Wed, 1 Nov 2023 18:27:49 +0100 Subject: [PATCH 404/473] respecting license my mistake --- .../stationeers_bepinex/egg-stationeers--bep-in-ex.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/stationeers/stationeers_bepinex/egg-stationeers--bep-in-ex.json b/game_eggs/steamcmd_servers/stationeers/stationeers_bepinex/egg-stationeers--bep-in-ex.json index 4f13f4f1..b20ea821 100644 --- a/game_eggs/steamcmd_servers/stationeers/stationeers_bepinex/egg-stationeers--bep-in-ex.json +++ b/game_eggs/steamcmd_servers/stationeers/stationeers_bepinex/egg-stationeers--bep-in-ex.json @@ -6,7 +6,7 @@ }, "exported_at": "2023-10-28T19:39:03+02:00", "name": "Stationeers (BepInEx)", - "author": "m1z@tuta.io", + "author": "eggs@goover.dev", "description": "Stationeers Server with very basic BepInEx support", "features": [ "steam_disk_space" From 02489ec288d71574e7a12414003c16e8932ea86d Mon Sep 17 00:00:00 2001 From: Derrick A Date: Wed, 1 Nov 2023 14:15:19 -0400 Subject: [PATCH 405/473] Fixes Zombied Servers & README tips - KeepAlive has been added due to extended up-times causing the next rcon command (DoExit) in-console to timeout; resulting in zombied servers. - Added some very helpful troubleshooting tips to the README - Added Known Issues to the README - Bumped up the RAM requirements in the README --- .../ark_survival_ascended/README.md | 25 +++++++++++++++++-- .../egg-ark--survival-ascended.json | 4 +-- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/README.md b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md index a0afcc77..054be0cb 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/README.md +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md @@ -5,14 +5,35 @@ ARK is reimagined from the ground-up into the next-generation of video game tech ## Troubleshooting -Crash logs are available in the Files `ShooterGame/Saved/Crashes/UECC-Windows-*/CrashContext.runtime-xml` +1) Try starting the server with no mods on a fresh install. + +2) If there are crash logs, they will be available in the Files at `ShooterGame/Saved/Crashes/UECC-Windows-*/CrashContext.runtime-xml` + +### Crash Identifiers + +Crashes will either stop the server or display 0-5% CPU usage. +The number is in reference to RAM/Memory usage. + +1) Server crashing around 500MB is probably either a config issue or a corrupted install. + +2) Server crashing around 750MB is probably commandline issue. + +3) Server crashing around 1GB is probably either a MOD conflict or corrupted SavedArks files. + + +## Known Issues + +1) ARK: Survival Ascended, currently, does not support more than one server per IP. +These are Windows Server files running on a Linux container; so, we believe this is the issue. + +2) ARK's wiki heavily reference A:SE and not all features are available in A:SA. ## Recommended server settings ### Minimum RAM -This server requires about 8-10GB of RAM to run with no players on a default map. +This server requires about 11GB of RAM to run with no players on a default map. See the following - diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index fa37bebc..e2c296d3 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-30T13:56:57-04:00", + "exported_at": "2023-11-01T12:21:14-04:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -15,7 +15,7 @@ "Proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, "file_denylist": [], - "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe {{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName=\"{{SESSION_NAME}}\"?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword=\"{{SERVER_PASSWORD}}\"{{ARGS_PARAMS}}?ServerAdminPassword=\"{{ARK_ADMIN_PASSWORD}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}} -oldconsole -servergamelog$( [ -z \"$MOD_IDS\" ] || printf %s ' -mods=' $MOD_IDS )$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID & until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done", + "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} KeepAlive && rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe {{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName=\"{{SESSION_NAME}}\"?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword=\"{{SERVER_PASSWORD}}\"{{ARGS_PARAMS}}?ServerAdminPassword=\"{{ARK_ADMIN_PASSWORD}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}} -oldconsole -servergamelog$( [ -z \"$MOD_IDS\" ] || printf %s ' -mods=' $MOD_IDS )$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID & until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done", "config": { "files": "{\r\n \"ShooterGame\/Saved\/Config\/WindowsServer\/GameUserSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\",\r\n \"ServerAdminPassword=\": \"ServerAdminPassword={{server.build.env.ARK_ADMIN_PASSWORD}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Waiting commands for 127.0.0.1:\"\r\n}", From 2ab04193ee7fe3337007d09190bb9d83790ebc0f Mon Sep 17 00:00:00 2001 From: NoCodeFromMe <118776640+NoCodeFromMe@users.noreply.github.com> Date: Fri, 3 Nov 2023 16:19:49 +0100 Subject: [PATCH 406/473] add support for custom Forge Version & fixed output with undefined variable Add option to select custom Forge version with SpongeForge. Also checkes if custom Forge version is compatible with version of SpongeForge. Fixed output with undefined variable --- .../java/spongeforge/egg-sponge-forge.json | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/game_eggs/minecraft/java/spongeforge/egg-sponge-forge.json b/game_eggs/minecraft/java/spongeforge/egg-sponge-forge.json index c5e216dc..1cbd38ca 100644 --- a/game_eggs/minecraft/java/spongeforge/egg-sponge-forge.json +++ b/game_eggs/minecraft/java/spongeforge/egg-sponge-forge.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-17T23:20:29+01:00", + "exported_at": "2023-11-03T15:54:30+01:00", "name": "SpongeForge", "author": "parker@parkervcp.com", "description": "A community-driven open source Minecraft: Java Edition modding platform.", @@ -30,7 +30,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# SpongeForge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y jq curl\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! ${SERVER_JARFILE} = *\\.jar ]]; then\r\n SERVER_JARFILE=\"${SERVER_JARFILE}.jar\"\r\nfi\r\n\r\n\r\nif [ -z ${SF_VERSION} ] || [ \"$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION})\" == \"Unknown version\" ]; then\r\n echo -e \"defaulting to recommended\"\r\n SF_VERSION=\"recommended\"\r\nfi\r\n\r\nif [ \"${SF_VERSION}\" == \"recommended\" ]; then\r\n echo -e \"using recommended SpongeForge version\"\r\n SF_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.version')\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.dependencies.forge')\r\n echo -e \"found Forge Version ${FORGE_DOWNLOAD_VERSION}\"\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nelif [ \"${SF_VERSION}\" == \"latest\" ]; then\r\n echo -e \"using latest SpongForge version\"\r\n SF_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge | jq -r '.buildTypes.stable.latest.version')\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.forge')\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nelse\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.forge')\r\n echo -e \"found Forge Version ${FORGE_DOWNLOAD_VERSION}\"\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nfi\r\n\r\nFORGE_DL_LINK=https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}\/forge-${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}\r\n\r\nif [ -f server.jar ] && [ $(sha1sum server.jar | awk '{ print $1 }') == $(curl -s ${FORGE_DL_LINK}-universal.jar.sha1) ]; then\r\n echo -e \"Already have the correct forge version\"\r\nelse\r\n echo -e \"Downloading forge version ${FORGE_VERSION}\"\r\n echo -e \"running: curl -s -o installer.jar -o ${FORGE_DL_LINK}-installer.jar\"\r\n curl -s -o installer.jar ${FORGE_DL_LINK}-installer.jar\r\n echo -e \"running: curl -s -o ${SERVER_JARFILE} -o ${FORGE_DL_LINK}-universal.jar\"\r\n curl -s -o ${SERVER_JARFILE} ${FORGE_DL_LINK}-universal.jar\r\n java -jar installer.jar --installServer\r\n rm installer.jar forge-${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}-universal.jar\r\nfi\r\n\r\nif [ ! -d \/mnt\/server\/mods\/ ]; then\r\n echo -e \"making mods directory\"\r\n mkdir -p \/mnt\/server\/mods\/\r\nfi\r\n\r\nif [ -f \/mnt\/server\/mods\/spongeforge*.jar ]; then\r\n mkdir -p \/mnt\/server\/mods\/old\/\r\n mv -f \/mnt\/server\/mods\/spongeforge*.jar \/mnt\/server\/mods\/old\/spongeforge*.jar\r\nfi \r\n\r\necho -e \"running: curl -s ${SF_DL_LINK} -o \/mnt\/server\/mods\/spongeforge-${SF_VERSION}.jar\"\r\ncurl -s ${SF_DL_LINK} -o \/mnt\/server\/mods\/spongeforge-${SF_VERSION}.jar\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/java\/server.properties\r\nfi\r\n\r\necho -e \"Install for SpongeForge is complete\"", + "script": "#!\/bin\/bash\r\n# SpongeForge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y jq curl\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n#Function to Compare Strings in Dot-Separated Version Format (can comapre Versions with unequal lengths)\r\n#returns 1 if version 1 is less than version 2, and 0 if version 1 is greater than version 2\r\nvercomp() {\r\n if [[ $1 == $2 ]]\r\n then\r\n return 1\r\n fi\r\n local IFS=.\r\n local i ver1=($1) ver2=($2)\r\n # fill empty fields in ver1 with zeros\r\n for ((i=${#ver1[@]}; i<${#ver2[@]}; i++))\r\n do\r\n ver1[i]=0\r\n done\r\n for ((i=0; i<${#ver1[@]}; i++))\r\n do\r\n if [[ -z ${ver2[i]} ]]\r\n then\r\n # fill empty fields in ver2 with zeros\r\n ver2[i]=0\r\n fi\r\n if ((10#${ver1[i]} > 10#${ver2[i]}))\r\n then\r\n return 0\r\n fi\r\n if ((10#${ver1[i]} < 10#${ver2[i]}))\r\n then\r\n return 1\r\n fi\r\n done\r\n return 1\r\n}\r\n\r\n# Remove spaces from the version number to avoid issues with curl\r\nFORGE_VERSION=\"$(echo \"$FORGE_VERSION\" | tr -d ' ')\"\r\n\r\n#Adding .jar when not ending by SERVER_JARFILE\r\nif [[ ! ${SERVER_JARFILE} = *\\.jar ]]; then\r\n SERVER_JARFILE=\"${SERVER_JARFILE}.jar\"\r\nfi\r\n\r\n\r\nif [ -z ${SF_VERSION} ] || [ \"$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION})\" == \"Unknown version\" ]; then\r\n echo -e \"defaulting to recommended\"\r\n SF_VERSION=\"recommended\"\r\nfi\r\n\r\nif [ \"${SF_VERSION}\" == \"recommended\" ]; then\r\n echo -e \"using recommended SpongeForge version\"\r\n SF_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.version')\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.dependencies.forge')\r\n echo -e \"found Forge Version ${FORGE_DOWNLOAD_VERSION}\"\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nelif [ \"${SF_VERSION}\" == \"latest\" ]; then\r\n echo -e \"using latest SpongForge version\"\r\n SF_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge | jq -r '.buildTypes.stable.latest.version')\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.forge')\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nelse\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.forge')\r\n echo -e \"found Forge Version ${FORGE_DOWNLOAD_VERSION}\"\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nfi\r\n\r\nif [[ ! -z ${FORGE_VERSION} ]]; then\r\n if curl --output \/dev\/null --silent --head --fail https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/${FORGE_VERSION}\/forge-${FORGE_VERSION}-installer.jar; then\r\n echo -e \"Custom Forge Version found.\"\r\n if [ ${MC_VERSION} != ${FORGE_VERSION%%-*} ]; then\r\n echo -e \"You need Forge Minecraft Version ${MC_VERSION}. Exiting now!\"\r\n exit 1\r\n elif vercomp ${FORGE_DOWNLOAD_VERSION} ${FORGE_VERSION##*-}; then\r\n echo -e \"Forge Build Version must be greater than ${FORGE_DOWNLOAD_VERSION}. Exiting now!\"\r\n exit 1\r\n else\r\n FORGE_DOWNLOAD_VERSION=${FORGE_VERSION##*-}\r\n fi\r\n else\r\n echo -e \"Forge Version not found. Check if Version is spelled right. Exiting now!\"\r\n exit 1\r\n fi\r\nfi\r\n\r\nFORGE_DL_LINK=https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}\/forge-${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}\r\n\r\nif [ -f server.jar ] && [ $(sha1sum server.jar | awk '{ print $1 }') == $(curl -s ${FORGE_DL_LINK}-universal.jar.sha1) ]; then\r\n echo -e \"Already have the correct forge version\"\r\nelse\r\n echo -e \"Downloading forge version ${MC_VERSION} - ${FORGE_DOWNLOAD_VERSION}\"\r\n echo -e \"running: curl -s -o installer.jar -o ${FORGE_DL_LINK}-installer.jar\"\r\n curl -s -o installer.jar ${FORGE_DL_LINK}-installer.jar\r\n echo -e \"running: curl -s -o ${SERVER_JARFILE} -o ${FORGE_DL_LINK}-universal.jar\"\r\n curl -s -o ${SERVER_JARFILE} ${FORGE_DL_LINK}-universal.jar\r\n java -jar installer.jar --installServer\r\n rm installer.jar forge-${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}-universal.jar forge-${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}.jar\r\nfi\r\n\r\nif [ ! -d \/mnt\/server\/mods\/ ]; then\r\n echo -e \"making mods directory\"\r\n mkdir -p \/mnt\/server\/mods\/\r\nfi\r\n\r\nif [ -f \/mnt\/server\/mods\/spongeforge*.jar ]; then\r\n mkdir -p \/mnt\/server\/mods\/old\/\r\n mv -f \/mnt\/server\/mods\/spongeforge*.jar \/mnt\/server\/mods\/old\/spongeforge*.jar\r\nfi \r\n\r\necho -e \"running: curl -s ${SF_DL_LINK} -o \/mnt\/server\/mods\/spongeforge-${SF_VERSION}.jar\"\r\ncurl -s ${SF_DL_LINK} -o \/mnt\/server\/mods\/spongeforge-${SF_VERSION}.jar\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/minecraft\/java\/server.properties\r\nfi\r\n\r\necho -e \"Install for SpongeForge is complete\"", "container": "openjdk:8-jre-slim", "entrypoint": "bash" } @@ -55,6 +55,16 @@ "user_editable": true, "rules": "required|string", "field_type": "text" + }, + { + "name": "Forge Version", + "description": "Optional, only needed for custom Forge Version with Sponge.\r\n\r\nThe full exact version.\r\nEx. 1.15.2-31.2.4\r\n\r\nIf it fails to download the server files or to verify compatibility to the Sponge Version it will fail to install.", + "env_variable": "FORGE_VERSION", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|regex:\/^[0-9\\.\\-]+$\/", + "field_type": "text" } ] -} \ No newline at end of file +} From fcc3947e88959d43a7777f02ce32385237e9ed15 Mon Sep 17 00:00:00 2001 From: Limmek Date: Mon, 6 Nov 2023 09:55:00 +0000 Subject: [PATCH 407/473] Added Astro Colony --- .../steamcmd_servers/astro_colony/README.md | 15 ++ .../astro_colony/egg-astro-colony.json | 154 ++++++++++++++++++ 2 files changed, 169 insertions(+) create mode 100644 game_eggs/steamcmd_servers/astro_colony/README.md create mode 100644 game_eggs/steamcmd_servers/astro_colony/egg-astro-colony.json diff --git a/game_eggs/steamcmd_servers/astro_colony/README.md b/game_eggs/steamcmd_servers/astro_colony/README.md new file mode 100644 index 00000000..7d8a8cbd --- /dev/null +++ b/game_eggs/steamcmd_servers/astro_colony/README.md @@ -0,0 +1,15 @@ +# [Astro Colony](https://astrocolony.com/) + +Explore endless Universe and create the most efficient constellation of colonies. Build conveyor systems to automate production. Take care of Astronauts and their needs! Establish new colonies as part of intergalactic simulation. + +## Server Ports + +Ports required to run the server in a table format. + +> [!IMPORTANT] +> It’s possible to change the query port but changing the game port from **7777** may result in not being able to join the server. + +| Port | default | +|---------|---------| +| Game | 7777 | +| Query | 27015 | diff --git a/game_eggs/steamcmd_servers/astro_colony/egg-astro-colony.json b/game_eggs/steamcmd_servers/astro_colony/egg-astro-colony.json new file mode 100644 index 00000000..c9986b0b --- /dev/null +++ b/game_eggs/steamcmd_servers/astro_colony/egg-astro-colony.json @@ -0,0 +1,154 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-11-05T17:10:13+01:00", + "name": "Astro Colony", + "author": "limmek@swedon.se", + "description": "Explore endless Universe and create the most efficient constellation of colonies. Build conveyor systems to automate production. Take care of Astronauts and their needs! Establish new colonies as part of intergalactic simulation.", + "features": [ + "steam_disk_space" + ], + "docker_images": { + "wine": "ghcr.io\/parkervcp\/yolks:wine_latest" + }, + "file_denylist": [], + "startup": "wine64 .\/AstroColony\/Binaries\/Win64\/AstroColonyServer.exe -log -SteamServerName=\\\"${SERVER_NAME}\\\" -port=${SERVER_PORT} -QueryPort=${SERVER_QUERY_PORT}", + "config": { + "files": "{\r\n \"AstroColony\/Saved\/Config\/WindowsServer\/ServerSettings.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"[\/Script\/AstroColony.EHServerSubsystem].ServerPassword\": \"{{env.SERVER_PASSWORD}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].MapName\": \"{{env.SERVER_MAP}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].MaxPlayers\": \"{{env.SERVER_MAXPLAYERS}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].SavegameName\": \"{{env.SERVER_GAMESAVE}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].ShouldLoadLatestSavegame\": \"{{env.SERVER_LOADLATESTSAVEGAME}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].AdminList\": \"{{env.SERVER_ADMINS}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].SharedTechnologies\": \"{{env.SERVER_SHAREDTECHNOLOGIES}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].OxygenConsumption\": \"{{env.SERVER_OXYGENCONSUMPTION}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].FreeConstruction\": \"{{env.SERVER_FREECONSTRUCTION}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"server create success\"\r\n}", + "logs": "{}", + "stop": "^C & ^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\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\nWINDOWS_INSTALL=1\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 ${STEAM_APP_ID} 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\ncreate_server_settings_ini() {\r\n cat > ServerSettings.ini < Date: Mon, 6 Nov 2023 10:02:55 +0000 Subject: [PATCH 408/473] Added Astro colony to readme --- README.md | 1 + game_eggs/README.md | 1 + game_eggs/steamcmd_servers/README.md | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/README.md b/README.md index 588262d6..6afef6e6 100644 --- a/README.md +++ b/README.md @@ -243,6 +243,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Arma 3](game_eggs/steamcmd_servers/arma/arma3) * [Arma Reforger](game_eggs/steamcmd_servers/arma/arma_reforger) * [Assetto Corsa](game_eggs/steamcmd_servers/assetto_corsa) +* [Astro Colony](game_eggs/steamcmd_servers/astro_colony) * [Astroneer](game_eggs/steamcmd_servers/astroneer) * [Avorion](game_eggs/steamcmd_servers/avorion) * [Barotrauma](game_eggs/steamcmd_servers/barotrauma) diff --git a/game_eggs/README.md b/game_eggs/README.md index 84824ac7..13018792 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -136,6 +136,7 @@ * [Arma 3](steamcmd_servers/arma/arma3) * [Arma Reforger](steamcmd_servers/arma/arma_reforger) * [Assetto Corsa](steamcmd_servers/assetto_corsa) +* [Astro Colony](steamcmd_servers/astro_colony) * [Astroneer](steamcmd_servers/astroneer) * [Avorion](steamcmd_servers/avorion) * [Barotrauma](steamcmd_servers/barotrauma) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index 31db3d1f..82b620a2 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -24,6 +24,10 @@ This is a collection of servers that use SteamCMD to install. [Assetto Corsa](assetto_corsa) +## Astro Colony + +[Astro Colony](astro_colony) + ## Avorion [Avorion](avorion) From 461681bdb43cb31e0e68fa5dff46aa141c78eb52 Mon Sep 17 00:00:00 2001 From: Limmek Date: Mon, 6 Nov 2023 10:51:52 +0000 Subject: [PATCH 409/473] Spelling correction. --- game_eggs/steamcmd_servers/astro_colony/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/astro_colony/README.md b/game_eggs/steamcmd_servers/astro_colony/README.md index 7d8a8cbd..012255e1 100644 --- a/game_eggs/steamcmd_servers/astro_colony/README.md +++ b/game_eggs/steamcmd_servers/astro_colony/README.md @@ -7,9 +7,9 @@ Explore endless Universe and create the most efficient constellation of colonies Ports required to run the server in a table format. > [!IMPORTANT] -> It’s possible to change the query port but changing the game port from **7777** may result in not being able to join the server. +> It’s possible to change the query port but changing the game port from **7777** will result in not being able to join the server! -| Port | default | +| Port | Default | |---------|---------| | Game | 7777 | | Query | 27015 | From c7d1696b8414421ee9508cfddaff122599af3705 Mon Sep 17 00:00:00 2001 From: Limmek Date: Mon, 6 Nov 2023 17:52:57 +0100 Subject: [PATCH 410/473] Corrected and added missing variables --- .../astro_colony/egg-astro-colony.json | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/game_eggs/steamcmd_servers/astro_colony/egg-astro-colony.json b/game_eggs/steamcmd_servers/astro_colony/egg-astro-colony.json index c9986b0b..7b0dcc5d 100644 --- a/game_eggs/steamcmd_servers/astro_colony/egg-astro-colony.json +++ b/game_eggs/steamcmd_servers/astro_colony/egg-astro-colony.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-11-05T17:10:13+01:00", + "exported_at": "2023-11-06T17:38:07+01:00", "name": "Astro Colony", "author": "limmek@swedon.se", "description": "Explore endless Universe and create the most efficient constellation of colonies. Build conveyor systems to automate production. Take care of Astronauts and their needs! Establish new colonies as part of intergalactic simulation.", @@ -15,17 +15,17 @@ "wine": "ghcr.io\/parkervcp\/yolks:wine_latest" }, "file_denylist": [], - "startup": "wine64 .\/AstroColony\/Binaries\/Win64\/AstroColonyServer.exe -log -SteamServerName=\\\"${SERVER_NAME}\\\" -port=${SERVER_PORT} -QueryPort=${SERVER_QUERY_PORT}", + "startup": "wine .\/AstroColony\/Binaries\/Win64\/AstroColonyServer.exe -log -SteamServerName=\\\"${SERVER_NAME}\\\" -QueryPort=${SERVER_QUERY_PORT}", "config": { "files": "{\r\n \"AstroColony\/Saved\/Config\/WindowsServer\/ServerSettings.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"[\/Script\/AstroColony.EHServerSubsystem].ServerPassword\": \"{{env.SERVER_PASSWORD}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].MapName\": \"{{env.SERVER_MAP}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].MaxPlayers\": \"{{env.SERVER_MAXPLAYERS}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].SavegameName\": \"{{env.SERVER_GAMESAVE}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].ShouldLoadLatestSavegame\": \"{{env.SERVER_LOADLATESTSAVEGAME}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].AdminList\": \"{{env.SERVER_ADMINS}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].SharedTechnologies\": \"{{env.SERVER_SHAREDTECHNOLOGIES}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].OxygenConsumption\": \"{{env.SERVER_OXYGENCONSUMPTION}}\",\r\n \"[\/Script\/AstroColony.EHServerSubsystem].FreeConstruction\": \"{{env.SERVER_FREECONSTRUCTION}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"server create success\"\r\n}", "logs": "{}", - "stop": "^C & ^C" + "stop": "^^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\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\nWINDOWS_INSTALL=1\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 ${STEAM_APP_ID} 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\ncreate_server_settings_ini() {\r\n cat > ServerSettings.ini < ServerSettings.ini < Date: Wed, 8 Nov 2023 07:59:31 -0600 Subject: [PATCH 411/473] Remove DOORSTOP_CORLIB_OVERRIDE_PATH from startup --- .../valheim/valheim_bepinex/egg-valheim-bep-i-nex.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json index 97a0e602..b05828a9 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json +++ b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/egg-valheim-bep-i-nex.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-14T17:31:55-05:00", + "exported_at": "2023-11-08T07:57:54-06:00", "name": "Valheim BepINex", "author": "eggs@goover.dev", "description": "A brutal exploration and survival game for 1-10 players, set in a procedurally-generated purgatory inspired by viking culture incl the Plugin Framework BepInEx", @@ -15,7 +15,7 @@ "ghcr.io\/parkervcp\/games:valheim": "ghcr.io\/parkervcp\/games:valheim" }, "file_denylist": [], - "startup": "export DOORSTOP_ENABLE=TRUE; export DOORSTOP_INVOKE_DLL_PATH=.\/BepInEx\/core\/BepInEx.Preloader.dll; export DOORSTOP_CORLIB_OVERRIDE_PATH=.\/unstripped_corlib; export LD_LIBRARY_PATH=\".\/doorstop_libs:$LD_LIBRARY_PATH\"; export LD_PRELOAD=\"libdoorstop_x64.so:$LD_PRELOAD\"; export templdpath=$LD_LIBRARY_PATH; export LD_LIBRARY_PATH=\".\/linux64:$LD_LIBRARY_PATH\"; export SteamAppId=892970; export LD_LIBRARY_PATH=$templdpath; .\/valheim_server.x86_64 -nographics -batchmode -name \"{{SERVER_NAME}}\" -port {{SERVER_PORT}} -world \"{{WORLD}}\" -password \"{{PASSWORD}}\" -public {{PUBLIC_SERVER}} -saveinterval {{BACKUP_INTERVAL}} -backups {{BACKUP_COUNT}} -backupshort {{BACKUP_SHORTTIME}} -backuplong {{BACKUP_LONGTIME}} $( [[ {{ENABLE_CROSSPLAY}} -eq 1 ]] && echo \" -crossplay \") > >(sed -uE \"{{CONSOLE_FILTER}}\") & trap \"{{STOP}}\" 15; wait $!", + "startup": "export DOORSTOP_ENABLE=TRUE; export DOORSTOP_INVOKE_DLL_PATH=.\/BepInEx\/core\/BepInEx.Preloader.dll; export LD_LIBRARY_PATH=\".\/doorstop_libs:$LD_LIBRARY_PATH\"; export LD_PRELOAD=\"libdoorstop_x64.so:$LD_PRELOAD\"; export templdpath=$LD_LIBRARY_PATH; export LD_LIBRARY_PATH=\".\/linux64:$LD_LIBRARY_PATH\"; export SteamAppId=892970; export LD_LIBRARY_PATH=$templdpath; .\/valheim_server.x86_64 -nographics -batchmode -name \"{{SERVER_NAME}}\" -port {{SERVER_PORT}} -world \"{{WORLD}}\" -password \"{{PASSWORD}}\" -public {{PUBLIC_SERVER}} -saveinterval {{BACKUP_INTERVAL}} -backups {{BACKUP_COUNT}} -backupshort {{BACKUP_SHORTTIME}} -backuplong {{BACKUP_LONGTIME}} $( [[ {{ENABLE_CROSSPLAY}} -eq 1 ]] && echo \" -crossplay \") > >(sed -uE \"{{CONSOLE_FILTER}}\") & trap \"{{STOP}}\" 15; wait $!", "config": { "files": "{}", "startup": "{\r\n \"done\": \"DungeonDB Start\"\r\n}", From b6172e7306983e2707d71bce2d402c46b14f421e Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Wed, 8 Nov 2023 21:16:49 +0100 Subject: [PATCH 412/473] Add "mono" to WINETRICKS_RUN env var I don't really know why but I had problems with the dotnet6 installation but the installation is working well by installing mono first. It seems others people than me was having the problem so it may be a good idea to add it as a default value. --- .../v_rising/v_rising_bepinex/egg-v-rising-bep-in-ex.json | 4 ++-- 1 file changed, 2 insertions(+), 2 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 f4665968..408957f6 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 @@ -284,7 +284,7 @@ "name": "WINETRICKS_RUN", "description": "", "env_variable": "WINETRICKS_RUN", - "default_value": "vcrun2019 dotnet48 dotnet6", + "default_value": "mono vcrun2019 dotnet48 dotnet6", "user_viewable": false, "user_editable": false, "rules": "required|string|max:50", @@ -301,4 +301,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 187bfc686c38a8bf590b1e3f78a3e71890201919 Mon Sep 17 00:00:00 2001 From: Upd4ting Date: Wed, 8 Nov 2023 21:31:11 +0100 Subject: [PATCH 413/473] Update egg-v-rising-bep-in-ex.json --- .../egg-v-rising-bep-in-ex.json | 606 +++++++++--------- 1 file changed, 303 insertions(+), 303 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 408957f6..168114b2 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 @@ -1,304 +1,304 @@ { - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v2", - "update_url": null - }, - "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.", - "features": [ - "steam_disk_space" - ], - "docker_images": { - "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" - }, - "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 \"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" - }, - "scripts": { - "installation": { - "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl V Rising Egg - egg-v-rising.json\r\n## Authors: David Wolfe (Red-Thirten), Kapatheus\r\n## Date: 2022\/05\/28\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\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\n# Install packages. Default packages below are skipped if using image noted above, thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl jq unzip wget\r\n# Download and install SteamCMD\r\necho -e \"${YELLOW}download and install steamcmd${NC}\"\r\n\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\necho -e \"${YELLOW}install V Rising with SteamCMD${NC}\"\r\n\r\n.\/steamcmd.sh +force_install_dir $HOME +login anonymous $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} +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# Enable BEPINEX (Credits to: https:\/\/github.com\/ricin\/vrising-bepinex-linux\/blob\/main\/scripts\/start-server.sh)\r\necho -e \"${YELLOW}installing BepInex${NC}\"\r\n\r\n#variables\r\nBEPINEX_VR_TS_URL=https:\/\/v-rising.thunderstore.io\/package\/BepInEx\/BepInExPack_V_Rising\/\r\nCUR_V=\"$(find ${HOME} -maxdepth 1 -name \"BepInEx-*\" | cut -d '-' -f2)\"\r\nBEPINEX_VR_API_DATA=\"$(curl -s -X GET https:\/\/thunderstore.io\/c\/v-rising\/api\/v1\/package\/b86fcaaf-297a-45c8-82a0-fcbd7806fdc4\/ -H \"accept: application\/json\")\"\r\nLAT_V=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].version_number')\"\r\n\r\nif [ -z \"${LAT_V}\" ] && [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${RED}Can't get latest version of BepInEx for V Rising!${NC}\"\r\n echo -e \"${RED}Please try to run without BepInEx for V Rising. Exiting.${NC}\"\r\n exit 1\r\nfi\r\n\r\nif [ -f ${HOME}\/BepInEx.zip ]; then\r\n rm -rf ${HOME}\/BepInEx.zip\r\nfi\r\nif [ -f ${HOME}\/doorstop_config.ini ]; then\r\n sed -i \"\/enabled=false\/c\\enabled=true\" ${HOME}\/doorstop_config.ini\r\nfi\r\n\r\necho -e \"${YELLOW}BepInEx for V Rising Version Check${NC}\"\r\necho -e \"${YELLOW}More info: ${BEPINEX_VR_TS_URL}${NC}\"\r\n\r\nBEPINEX_VR_TS_DOWNLOAD_URL=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].download_url')\"\r\nif [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${YELLOW}BepInEx for V Rising not found, downloading and installing v${LAT_V} ...${NC}\"\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-*\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n else\r\n echo -e \"${RED}Something went wrong, can't download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n exit 1\r\n fi\r\n \r\n mkdir -p \/tmp\/BepInEx\r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx\r\n if [ $? -eq 0 ];then\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx\r\n else\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n exit 1\r\n fi\r\nelif [ \"$CUR_V\" != \"${LAT_V}\" ]; then\r\n echo -e \"${YELLOW}Version missmatch, BepInEx v$CUR_V installed, downloading and installing v${LAT_V} ...${NC}\"\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-$CUR_V\r\n mkdir \/tmp\/Backup\r\n cp -R ${HOME}\/BepInEx\/config \/tmp\/Backup\/\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n else\r\n echo -e \"${RED}Unable to download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n exit 1\r\n fi\r\n \r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx \r\n \r\n if [ $? -eq 0 ];then\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -R \/tmp\/Backup\/config ${HOME}\/BepInEx\/\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx \/tmp\/Backup\r\n else\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n exit 1\r\n fi\r\nelif [ \"${CUR_V}\" == \"${LAT_V}\" ]; then\r\n echo -e \"${GREEN}BepInEx v$CUR_V up-to-date!${NC}\"\r\nfi\r\n\r\n## V Rising Setup\r\nmkdir -p $HOME\/save-data\/Settings && cd \"$_\"\r\ncat > ServerHostSettings.json << EOF\r\n{\r\n \"Name\": \"${SERVER_NAME}\",\r\n \"Description\": \"${DESCRIPTION}\",\r\n \"Port\": ${SERVER_PORT},\r\n \"QueryPort\": ${QUERY_PORT},\r\n \"MaxConnectedUsers\": ${MAX_PLAYERS},\r\n \"MaxConnectedAdmins\": ${MAX_ADMINS},\r\n \"ServerFps\": ${FPS},\r\n \"SaveName\": \"${SAVE_NAME}\",\r\n \"Password\": \"${SERVER_PASSWORD}\",\r\n \"Secure\": ${SERVER_SECURE},\r\n \"ListOnMasterServer\": ${SERVER_LIST},\r\n \"AutoSaveCount\": ${SAVE_COUNT},\r\n \"AutoSaveInterval\": ${SAVE_INTERVAL},\r\n \"GameSettingsPreset\": \"${GAME_SETTINGS_PRESET}\",\r\n \"AdminOnlyDebugEvents\": ${ADMIN_ONLY_DEBUG_EVENTS},\r\n \"DisableDebugEvents\": ${DEBUG_EVENTS},\r\n \"Rcon\": {\r\n \"Enabled\": ${RCON},\r\n \"Password\": \"${RCON_PASS}\",\r\n \"Port\": ${RCON_PORT}\r\n }\r\n}\r\nEOF\r\n\r\necho -e \"${BLUE}-----------------------${NC}\"\r\necho -e \"${GREEN}Installation completed${NC}\"\r\necho -e \"${BLUE}-----------------------${NC}\"", - "container": "ghcr.io\/parkervcp\/installers:debian", - "entrypoint": "\/bin\/bash" - } - }, - "variables": [ - { - "name": "[REQUIRED] Server Query Port", - "description": "UDP port for Steam server list features.", - "env_variable": "QUERY_PORT", - "default_value": "9877", - "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.", - "env_variable": "AUTO_UPDATE", - "default_value": "1", - "user_viewable": true, - "user_editable": true, - "rules": "boolean", - "field_type": "text" - }, - { - "name": "Game Settings Preset", - "description": "What preset of game settings the server should run. Some settings may not apply after the save file is first created. Leave empty\/null if you are using a single-player uploaded save or a custom ServerGameSettings.json file in the `~\/save-data\/Settings\/` directory.", - "env_variable": "GAME_SETTINGS_PRESET", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string|in:,DuoPvP,HardcorePvP,Level30PvE,Level30PvP,Level50PvE,Level50PvP,Level70PvE,Level70PvP,SoloPvP,StandardPvE_Easy,StandardPvE_Hard,StandardPvE,StandardPvP_Easy,StandardPvP_Hard,StandardPVP", - "field_type": "text" - }, - { - "name": "Server Name", - "description": "Name of the server that will appear in the server list.", - "env_variable": "SERVER_NAME", - "default_value": "V Rising Dedicated Server", - "user_viewable": true, - "user_editable": true, - "rules": "required|string", - "field_type": "text" - }, - { - "name": "Server Description", - "description": "Short description of server purpose, rules, and the message of the day.", - "env_variable": "DESCRIPTION", - "default_value": "Welcome to the server!", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string", - "field_type": "text" - }, - { - "name": "Max Connected Users", - "description": "Max number of concurrent players on the server.", - "env_variable": "MAX_PLAYERS", - "default_value": "40", - "user_viewable": true, - "user_editable": true, - "rules": "required|integer|min:1", - "field_type": "text" - }, - { - "name": "Max Connected Admins", - "description": "Max number of admins to allow connection even when the server is full.", - "env_variable": "MAX_ADMINS", - "default_value": "4", - "user_viewable": true, - "user_editable": true, - "rules": "required|integer|min:0", - "field_type": "text" - }, - { - "name": "Server Password", - "description": "Password required to join the server. Leave blank to have no password.", - "env_variable": "SERVER_PASSWORD", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string", - "field_type": "text" - }, - { - "name": "Save Name", - "description": "Name of save file \/ directory.", - "env_variable": "SAVE_NAME", - "default_value": "world1", - "user_viewable": true, - "user_editable": true, - "rules": "required|string", - "field_type": "text" - }, - { - "name": "Auto Save Count", - "description": "Number of autosaves to keep.", - "env_variable": "SAVE_COUNT", - "default_value": "50", - "user_viewable": true, - "user_editable": true, - "rules": "required|integer|min:0", - "field_type": "text" - }, - { - "name": "Auto Save Interval", - "description": "Interval in seconds between each autosave.", - "env_variable": "SAVE_INTERVAL", - "default_value": "600", - "user_viewable": true, - "user_editable": true, - "rules": "required|integer|min:1", - "field_type": "text" - }, - { - "name": "List On Master Server", - "description": "Set to true to list on the server list, else set to false.", - "env_variable": "SERVER_LIST", - "default_value": "true", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|in:true,false", - "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": "[Advanced] Server FPS", - "description": "How often the server refreshes. (Default: 30)", - "env_variable": "FPS", - "default_value": "30", - "user_viewable": true, - "user_editable": true, - "rules": "required|integer|min:1", - "field_type": "text" - }, - { - "name": "[Advanced] Enable RCON", - "description": "See the following link for info on how to connect and use RCON: https:\/\/github.com\/StunlockStudios\/vrising-dedicated-server-instructions#rcon", - "env_variable": "RCON", - "default_value": "false", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|in:true,false", - "field_type": "text" - }, - { - "name": "[Advanced] RCON Password", - "description": "Password required to connect to RCON if it is enabled.", - "env_variable": "RCON_PASS", - "default_value": "somepassword", - "user_viewable": true, - "user_editable": true, - "rules": "required|string", - "field_type": "text" - }, - { - "name": "[Advanced] RCON Port", - "description": "Port used to connect to RCON. Must be allocated to the server for RCON to work.", - "env_variable": "RCON_PORT", - "default_value": "25575", - "user_viewable": true, - "user_editable": false, - "rules": "required|integer|between:1024,65536", - "field_type": "text" - }, - { - "name": "[Advanced] Secure Server", - "description": "(true or false)", - "env_variable": "SERVER_SECURE", - "default_value": "true", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|in:true,false", - "field_type": "text" - }, - { - "name": "[Advanced] Admin Only Debug Events", - "description": "(true or false)", - "env_variable": "ADMIN_ONLY_DEBUG_EVENTS", - "default_value": "true", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|in:true,false", - "field_type": "text" - }, - { - "name": "[Advanced] Disable Debug Events", - "description": "(true or false)", - "env_variable": "DEBUG_EVENTS", - "default_value": "false", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|in:true,false", - "field_type": "text" - }, - { - "name": "[Advanced] V Rising Dedicated Server App ID", - "description": "Used for installation and updates. Rarely needs to be changed.", - "env_variable": "SRCDS_APPID", - "default_value": "1829350", - "user_viewable": false, - "user_editable": false, - "rules": "required|integer", - "field_type": "text" - }, - { - "name": "[Advanced] 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": "WINEDEBUG", - "description": "", - "env_variable": "WINEDEBUG", - "default_value": "-all", - "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": "XVFB", - "description": "", - "env_variable": "XVFB", - "default_value": "1", - "user_viewable": false, - "user_editable": false, - "rules": "boolean", - "field_type": "text" - }, - { - "name": "WINETRICKS_RUN", - "description": "", - "env_variable": "WINETRICKS_RUN", - "default_value": "mono vcrun2019 dotnet48 dotnet6", - "user_viewable": false, - "user_editable": false, - "rules": "required|string|max:50", - "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" - } - ] -} + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-11-08T21:24:42+01: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.", + "features": [ + "steam_disk_space" + ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + }, + "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 \"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" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl V Rising Egg - egg-v-rising.json\r\n## Authors: David Wolfe (Red-Thirten), Kapatheus\r\n## Date: 2022\/05\/28\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\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\n# Install packages. Default packages below are skipped if using image noted above, thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl jq unzip wget\r\n# Download and install SteamCMD\r\necho -e \"${YELLOW}download and install steamcmd${NC}\"\r\n\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\necho -e \"${YELLOW}install V Rising with SteamCMD${NC}\"\r\n\r\n.\/steamcmd.sh +force_install_dir $HOME +login anonymous $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} +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# Enable BEPINEX (Credits to: https:\/\/github.com\/ricin\/vrising-bepinex-linux\/blob\/main\/scripts\/start-server.sh)\r\necho -e \"${YELLOW}installing BepInex${NC}\"\r\n\r\n#variables\r\nBEPINEX_VR_TS_URL=https:\/\/v-rising.thunderstore.io\/package\/BepInEx\/BepInExPack_V_Rising\/\r\nCUR_V=\"$(find ${HOME} -maxdepth 1 -name \"BepInEx-*\" | cut -d '-' -f2)\"\r\nBEPINEX_VR_API_DATA=\"$(curl -s -X GET https:\/\/thunderstore.io\/c\/v-rising\/api\/v1\/package\/b86fcaaf-297a-45c8-82a0-fcbd7806fdc4\/ -H \"accept: application\/json\")\"\r\nLAT_V=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].version_number')\"\r\n\r\nif [ -z \"${LAT_V}\" ] && [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${RED}Can't get latest version of BepInEx for V Rising!${NC}\"\r\n echo -e \"${RED}Please try to run without BepInEx for V Rising. Exiting.${NC}\"\r\n exit 1\r\nfi\r\n\r\nif [ -f ${HOME}\/BepInEx.zip ]; then\r\n rm -rf ${HOME}\/BepInEx.zip\r\nfi\r\nif [ -f ${HOME}\/doorstop_config.ini ]; then\r\n sed -i \"\/enabled=false\/c\\enabled=true\" ${HOME}\/doorstop_config.ini\r\nfi\r\n\r\necho -e \"${YELLOW}BepInEx for V Rising Version Check${NC}\"\r\necho -e \"${YELLOW}More info: ${BEPINEX_VR_TS_URL}${NC}\"\r\n\r\nBEPINEX_VR_TS_DOWNLOAD_URL=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].download_url')\"\r\nif [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${YELLOW}BepInEx for V Rising not found, downloading and installing v${LAT_V} ...${NC}\"\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-*\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n else\r\n echo -e \"${RED}Something went wrong, can't download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n exit 1\r\n fi\r\n \r\n mkdir -p \/tmp\/BepInEx\r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx\r\n if [ $? -eq 0 ];then\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx\r\n else\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n exit 1\r\n fi\r\nelif [ \"$CUR_V\" != \"${LAT_V}\" ]; then\r\n echo -e \"${YELLOW}Version missmatch, BepInEx v$CUR_V installed, downloading and installing v${LAT_V} ...${NC}\"\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-$CUR_V\r\n mkdir \/tmp\/Backup\r\n cp -R ${HOME}\/BepInEx\/config \/tmp\/Backup\/\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n else\r\n echo -e \"${RED}Unable to download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n exit 1\r\n fi\r\n \r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx \r\n \r\n if [ $? -eq 0 ];then\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -R \/tmp\/Backup\/config ${HOME}\/BepInEx\/\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx \/tmp\/Backup\r\n else\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n exit 1\r\n fi\r\nelif [ \"${CUR_V}\" == \"${LAT_V}\" ]; then\r\n echo -e \"${GREEN}BepInEx v$CUR_V up-to-date!${NC}\"\r\nfi\r\n\r\n## V Rising Setup\r\nmkdir -p $HOME\/save-data\/Settings && cd \"$_\"\r\ncat > ServerHostSettings.json << EOF\r\n{\r\n \"Name\": \"${SERVER_NAME}\",\r\n \"Description\": \"${DESCRIPTION}\",\r\n \"Port\": ${SERVER_PORT},\r\n \"QueryPort\": ${QUERY_PORT},\r\n \"MaxConnectedUsers\": ${MAX_PLAYERS},\r\n \"MaxConnectedAdmins\": ${MAX_ADMINS},\r\n \"ServerFps\": ${FPS},\r\n \"SaveName\": \"${SAVE_NAME}\",\r\n \"Password\": \"${SERVER_PASSWORD}\",\r\n \"Secure\": ${SERVER_SECURE},\r\n \"ListOnMasterServer\": ${SERVER_LIST},\r\n \"AutoSaveCount\": ${SAVE_COUNT},\r\n \"AutoSaveInterval\": ${SAVE_INTERVAL},\r\n \"GameSettingsPreset\": \"${GAME_SETTINGS_PRESET}\",\r\n \"AdminOnlyDebugEvents\": ${ADMIN_ONLY_DEBUG_EVENTS},\r\n \"DisableDebugEvents\": ${DEBUG_EVENTS},\r\n \"Rcon\": {\r\n \"Enabled\": ${RCON},\r\n \"Password\": \"${RCON_PASS}\",\r\n \"Port\": ${RCON_PORT}\r\n }\r\n}\r\nEOF\r\n\r\necho -e \"${BLUE}-----------------------${NC}\"\r\necho -e \"${GREEN}Installation completed${NC}\"\r\necho -e \"${BLUE}-----------------------${NC}\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "\/bin\/bash" + } + }, + "variables": [ + { + "name": "[REQUIRED] Server Query Port", + "description": "UDP port for Steam server list features.", + "env_variable": "QUERY_PORT", + "default_value": "9877", + "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.", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "boolean", + "field_type": "text" + }, + { + "name": "Game Settings Preset", + "description": "What preset of game settings the server should run. Some settings may not apply after the save file is first created. Leave empty\/null if you are using a single-player uploaded save or a custom ServerGameSettings.json file in the `~\/save-data\/Settings\/` directory.", + "env_variable": "GAME_SETTINGS_PRESET", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|in:,DuoPvP,HardcorePvP,Level30PvE,Level30PvP,Level50PvE,Level50PvP,Level70PvE,Level70PvP,SoloPvP,StandardPvE_Easy,StandardPvE_Hard,StandardPvE,StandardPvP_Easy,StandardPvP_Hard,StandardPVP", + "field_type": "text" + }, + { + "name": "Server Name", + "description": "Name of the server that will appear in the server list.", + "env_variable": "SERVER_NAME", + "default_value": "V Rising Dedicated Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Server Description", + "description": "Short description of server purpose, rules, and the message of the day.", + "env_variable": "DESCRIPTION", + "default_value": "Welcome to the server!", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Max Connected Users", + "description": "Max number of concurrent players on the server.", + "env_variable": "MAX_PLAYERS", + "default_value": "40", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:1", + "field_type": "text" + }, + { + "name": "Max Connected Admins", + "description": "Max number of admins to allow connection even when the server is full.", + "env_variable": "MAX_ADMINS", + "default_value": "4", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:0", + "field_type": "text" + }, + { + "name": "Server Password", + "description": "Password required to join the server. Leave blank to have no password.", + "env_variable": "SERVER_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Save Name", + "description": "Name of save file \/ directory.", + "env_variable": "SAVE_NAME", + "default_value": "world1", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Auto Save Count", + "description": "Number of autosaves to keep.", + "env_variable": "SAVE_COUNT", + "default_value": "50", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:0", + "field_type": "text" + }, + { + "name": "Auto Save Interval", + "description": "Interval in seconds between each autosave.", + "env_variable": "SAVE_INTERVAL", + "default_value": "600", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:1", + "field_type": "text" + }, + { + "name": "List On Master Server", + "description": "Set to true to list on the server list, else set to false.", + "env_variable": "SERVER_LIST", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "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": "[Advanced] Server FPS", + "description": "How often the server refreshes. (Default: 30)", + "env_variable": "FPS", + "default_value": "30", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:1", + "field_type": "text" + }, + { + "name": "[Advanced] Enable RCON", + "description": "See the following link for info on how to connect and use RCON: https:\/\/github.com\/StunlockStudios\/vrising-dedicated-server-instructions#rcon", + "env_variable": "RCON", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[Advanced] RCON Password", + "description": "Password required to connect to RCON if it is enabled.", + "env_variable": "RCON_PASS", + "default_value": "somepassword", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "[Advanced] RCON Port", + "description": "Port used to connect to RCON. Must be allocated to the server for RCON to work.", + "env_variable": "RCON_PORT", + "default_value": "25575", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1024,65536", + "field_type": "text" + }, + { + "name": "[Advanced] Secure Server", + "description": "(true or false)", + "env_variable": "SERVER_SECURE", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[Advanced] Admin Only Debug Events", + "description": "(true or false)", + "env_variable": "ADMIN_ONLY_DEBUG_EVENTS", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[Advanced] Disable Debug Events", + "description": "(true or false)", + "env_variable": "DEBUG_EVENTS", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[Advanced] V Rising Dedicated Server App ID", + "description": "Used for installation and updates. Rarely needs to be changed.", + "env_variable": "SRCDS_APPID", + "default_value": "1829350", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "[Advanced] 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": "WINEDEBUG", + "description": "", + "env_variable": "WINEDEBUG", + "default_value": "-all", + "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": "XVFB", + "description": "", + "env_variable": "XVFB", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "boolean", + "field_type": "text" + }, + { + "name": "WINETRICKS_RUN", + "description": "", + "env_variable": "WINETRICKS_RUN", + "default_value": "mono vcrun2019 dotnet48 dotnet6", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:50", + "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" + } + ] +} \ No newline at end of file From 015fefa24ba015b4d628f6547f6fa51efba50c13 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 9 Nov 2023 08:54:32 +0100 Subject: [PATCH 414/473] Update to wine latest --- .../egg-v-rising-bep-in-ex.json | 604 +++++++++--------- 1 file changed, 302 insertions(+), 302 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 168114b2..41de0ab3 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 @@ -1,304 +1,304 @@ { - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v2", - "update_url": null - }, - "exported_at": "2023-11-08T21:24:42+01: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.", - "features": [ - "steam_disk_space" - ], - "docker_images": { - "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" - }, - "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 \"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" - }, - "scripts": { - "installation": { - "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl V Rising Egg - egg-v-rising.json\r\n## Authors: David Wolfe (Red-Thirten), Kapatheus\r\n## Date: 2022\/05\/28\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\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\n# Install packages. Default packages below are skipped if using image noted above, thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl jq unzip wget\r\n# Download and install SteamCMD\r\necho -e \"${YELLOW}download and install steamcmd${NC}\"\r\n\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\necho -e \"${YELLOW}install V Rising with SteamCMD${NC}\"\r\n\r\n.\/steamcmd.sh +force_install_dir $HOME +login anonymous $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} +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# Enable BEPINEX (Credits to: https:\/\/github.com\/ricin\/vrising-bepinex-linux\/blob\/main\/scripts\/start-server.sh)\r\necho -e \"${YELLOW}installing BepInex${NC}\"\r\n\r\n#variables\r\nBEPINEX_VR_TS_URL=https:\/\/v-rising.thunderstore.io\/package\/BepInEx\/BepInExPack_V_Rising\/\r\nCUR_V=\"$(find ${HOME} -maxdepth 1 -name \"BepInEx-*\" | cut -d '-' -f2)\"\r\nBEPINEX_VR_API_DATA=\"$(curl -s -X GET https:\/\/thunderstore.io\/c\/v-rising\/api\/v1\/package\/b86fcaaf-297a-45c8-82a0-fcbd7806fdc4\/ -H \"accept: application\/json\")\"\r\nLAT_V=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].version_number')\"\r\n\r\nif [ -z \"${LAT_V}\" ] && [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${RED}Can't get latest version of BepInEx for V Rising!${NC}\"\r\n echo -e \"${RED}Please try to run without BepInEx for V Rising. Exiting.${NC}\"\r\n exit 1\r\nfi\r\n\r\nif [ -f ${HOME}\/BepInEx.zip ]; then\r\n rm -rf ${HOME}\/BepInEx.zip\r\nfi\r\nif [ -f ${HOME}\/doorstop_config.ini ]; then\r\n sed -i \"\/enabled=false\/c\\enabled=true\" ${HOME}\/doorstop_config.ini\r\nfi\r\n\r\necho -e \"${YELLOW}BepInEx for V Rising Version Check${NC}\"\r\necho -e \"${YELLOW}More info: ${BEPINEX_VR_TS_URL}${NC}\"\r\n\r\nBEPINEX_VR_TS_DOWNLOAD_URL=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].download_url')\"\r\nif [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${YELLOW}BepInEx for V Rising not found, downloading and installing v${LAT_V} ...${NC}\"\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-*\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n else\r\n echo -e \"${RED}Something went wrong, can't download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n exit 1\r\n fi\r\n \r\n mkdir -p \/tmp\/BepInEx\r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx\r\n if [ $? -eq 0 ];then\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx\r\n else\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n exit 1\r\n fi\r\nelif [ \"$CUR_V\" != \"${LAT_V}\" ]; then\r\n echo -e \"${YELLOW}Version missmatch, BepInEx v$CUR_V installed, downloading and installing v${LAT_V} ...${NC}\"\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-$CUR_V\r\n mkdir \/tmp\/Backup\r\n cp -R ${HOME}\/BepInEx\/config \/tmp\/Backup\/\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n else\r\n echo -e \"${RED}Unable to download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n exit 1\r\n fi\r\n \r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx \r\n \r\n if [ $? -eq 0 ];then\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -R \/tmp\/Backup\/config ${HOME}\/BepInEx\/\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx \/tmp\/Backup\r\n else\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n exit 1\r\n fi\r\nelif [ \"${CUR_V}\" == \"${LAT_V}\" ]; then\r\n echo -e \"${GREEN}BepInEx v$CUR_V up-to-date!${NC}\"\r\nfi\r\n\r\n## V Rising Setup\r\nmkdir -p $HOME\/save-data\/Settings && cd \"$_\"\r\ncat > ServerHostSettings.json << EOF\r\n{\r\n \"Name\": \"${SERVER_NAME}\",\r\n \"Description\": \"${DESCRIPTION}\",\r\n \"Port\": ${SERVER_PORT},\r\n \"QueryPort\": ${QUERY_PORT},\r\n \"MaxConnectedUsers\": ${MAX_PLAYERS},\r\n \"MaxConnectedAdmins\": ${MAX_ADMINS},\r\n \"ServerFps\": ${FPS},\r\n \"SaveName\": \"${SAVE_NAME}\",\r\n \"Password\": \"${SERVER_PASSWORD}\",\r\n \"Secure\": ${SERVER_SECURE},\r\n \"ListOnMasterServer\": ${SERVER_LIST},\r\n \"AutoSaveCount\": ${SAVE_COUNT},\r\n \"AutoSaveInterval\": ${SAVE_INTERVAL},\r\n \"GameSettingsPreset\": \"${GAME_SETTINGS_PRESET}\",\r\n \"AdminOnlyDebugEvents\": ${ADMIN_ONLY_DEBUG_EVENTS},\r\n \"DisableDebugEvents\": ${DEBUG_EVENTS},\r\n \"Rcon\": {\r\n \"Enabled\": ${RCON},\r\n \"Password\": \"${RCON_PASS}\",\r\n \"Port\": ${RCON_PORT}\r\n }\r\n}\r\nEOF\r\n\r\necho -e \"${BLUE}-----------------------${NC}\"\r\necho -e \"${GREEN}Installation completed${NC}\"\r\necho -e \"${BLUE}-----------------------${NC}\"", - "container": "ghcr.io\/parkervcp\/installers:debian", - "entrypoint": "\/bin\/bash" - } - }, - "variables": [ - { - "name": "[REQUIRED] Server Query Port", - "description": "UDP port for Steam server list features.", - "env_variable": "QUERY_PORT", - "default_value": "9877", - "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.", - "env_variable": "AUTO_UPDATE", - "default_value": "1", - "user_viewable": true, - "user_editable": true, - "rules": "boolean", - "field_type": "text" - }, - { - "name": "Game Settings Preset", - "description": "What preset of game settings the server should run. Some settings may not apply after the save file is first created. Leave empty\/null if you are using a single-player uploaded save or a custom ServerGameSettings.json file in the `~\/save-data\/Settings\/` directory.", - "env_variable": "GAME_SETTINGS_PRESET", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string|in:,DuoPvP,HardcorePvP,Level30PvE,Level30PvP,Level50PvE,Level50PvP,Level70PvE,Level70PvP,SoloPvP,StandardPvE_Easy,StandardPvE_Hard,StandardPvE,StandardPvP_Easy,StandardPvP_Hard,StandardPVP", - "field_type": "text" - }, - { - "name": "Server Name", - "description": "Name of the server that will appear in the server list.", - "env_variable": "SERVER_NAME", - "default_value": "V Rising Dedicated Server", - "user_viewable": true, - "user_editable": true, - "rules": "required|string", - "field_type": "text" - }, - { - "name": "Server Description", - "description": "Short description of server purpose, rules, and the message of the day.", - "env_variable": "DESCRIPTION", - "default_value": "Welcome to the server!", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string", - "field_type": "text" - }, - { - "name": "Max Connected Users", - "description": "Max number of concurrent players on the server.", - "env_variable": "MAX_PLAYERS", - "default_value": "40", - "user_viewable": true, - "user_editable": true, - "rules": "required|integer|min:1", - "field_type": "text" - }, - { - "name": "Max Connected Admins", - "description": "Max number of admins to allow connection even when the server is full.", - "env_variable": "MAX_ADMINS", - "default_value": "4", - "user_viewable": true, - "user_editable": true, - "rules": "required|integer|min:0", - "field_type": "text" - }, - { - "name": "Server Password", - "description": "Password required to join the server. Leave blank to have no password.", - "env_variable": "SERVER_PASSWORD", - "default_value": "", - "user_viewable": true, - "user_editable": true, - "rules": "nullable|string", - "field_type": "text" - }, - { - "name": "Save Name", - "description": "Name of save file \/ directory.", - "env_variable": "SAVE_NAME", - "default_value": "world1", - "user_viewable": true, - "user_editable": true, - "rules": "required|string", - "field_type": "text" - }, - { - "name": "Auto Save Count", - "description": "Number of autosaves to keep.", - "env_variable": "SAVE_COUNT", - "default_value": "50", - "user_viewable": true, - "user_editable": true, - "rules": "required|integer|min:0", - "field_type": "text" - }, - { - "name": "Auto Save Interval", - "description": "Interval in seconds between each autosave.", - "env_variable": "SAVE_INTERVAL", - "default_value": "600", - "user_viewable": true, - "user_editable": true, - "rules": "required|integer|min:1", - "field_type": "text" - }, - { - "name": "List On Master Server", - "description": "Set to true to list on the server list, else set to false.", - "env_variable": "SERVER_LIST", - "default_value": "true", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|in:true,false", - "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": "[Advanced] Server FPS", - "description": "How often the server refreshes. (Default: 30)", - "env_variable": "FPS", - "default_value": "30", - "user_viewable": true, - "user_editable": true, - "rules": "required|integer|min:1", - "field_type": "text" - }, - { - "name": "[Advanced] Enable RCON", - "description": "See the following link for info on how to connect and use RCON: https:\/\/github.com\/StunlockStudios\/vrising-dedicated-server-instructions#rcon", - "env_variable": "RCON", - "default_value": "false", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|in:true,false", - "field_type": "text" - }, - { - "name": "[Advanced] RCON Password", - "description": "Password required to connect to RCON if it is enabled.", - "env_variable": "RCON_PASS", - "default_value": "somepassword", - "user_viewable": true, - "user_editable": true, - "rules": "required|string", - "field_type": "text" - }, - { - "name": "[Advanced] RCON Port", - "description": "Port used to connect to RCON. Must be allocated to the server for RCON to work.", - "env_variable": "RCON_PORT", - "default_value": "25575", - "user_viewable": true, - "user_editable": false, - "rules": "required|integer|between:1024,65536", - "field_type": "text" - }, - { - "name": "[Advanced] Secure Server", - "description": "(true or false)", - "env_variable": "SERVER_SECURE", - "default_value": "true", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|in:true,false", - "field_type": "text" - }, - { - "name": "[Advanced] Admin Only Debug Events", - "description": "(true or false)", - "env_variable": "ADMIN_ONLY_DEBUG_EVENTS", - "default_value": "true", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|in:true,false", - "field_type": "text" - }, - { - "name": "[Advanced] Disable Debug Events", - "description": "(true or false)", - "env_variable": "DEBUG_EVENTS", - "default_value": "false", - "user_viewable": true, - "user_editable": true, - "rules": "required|string|in:true,false", - "field_type": "text" - }, - { - "name": "[Advanced] V Rising Dedicated Server App ID", - "description": "Used for installation and updates. Rarely needs to be changed.", - "env_variable": "SRCDS_APPID", - "default_value": "1829350", - "user_viewable": false, - "user_editable": false, - "rules": "required|integer", - "field_type": "text" - }, - { - "name": "[Advanced] 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": "WINEDEBUG", - "description": "", - "env_variable": "WINEDEBUG", - "default_value": "-all", - "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": "XVFB", - "description": "", - "env_variable": "XVFB", - "default_value": "1", - "user_viewable": false, - "user_editable": false, - "rules": "boolean", - "field_type": "text" - }, - { - "name": "WINETRICKS_RUN", - "description": "", - "env_variable": "WINETRICKS_RUN", - "default_value": "mono vcrun2019 dotnet48 dotnet6", - "user_viewable": false, - "user_editable": false, - "rules": "required|string|max:50", - "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" - } - ] + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-11-09T08:53:29+01: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.", + "features": [ + "steam_disk_space" + ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest" + }, + "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 \"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" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl V Rising Egg - egg-v-rising.json\r\n## Authors: David Wolfe (Red-Thirten), Kapatheus\r\n## Date: 2022\/05\/28\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\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\n# Install packages. Default packages below are skipped if using image noted above, thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl jq unzip wget\r\n# Download and install SteamCMD\r\necho -e \"${YELLOW}download and install steamcmd${NC}\"\r\n\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\necho -e \"${YELLOW}install V Rising with SteamCMD${NC}\"\r\n\r\n.\/steamcmd.sh +force_install_dir $HOME +login anonymous $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} +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# Enable BEPINEX (Credits to: https:\/\/github.com\/ricin\/vrising-bepinex-linux\/blob\/main\/scripts\/start-server.sh)\r\necho -e \"${YELLOW}installing BepInex${NC}\"\r\n\r\n#variables\r\nBEPINEX_VR_TS_URL=https:\/\/v-rising.thunderstore.io\/package\/BepInEx\/BepInExPack_V_Rising\/\r\nCUR_V=\"$(find ${HOME} -maxdepth 1 -name \"BepInEx-*\" | cut -d '-' -f2)\"\r\nBEPINEX_VR_API_DATA=\"$(curl -s -X GET https:\/\/thunderstore.io\/c\/v-rising\/api\/v1\/package\/b86fcaaf-297a-45c8-82a0-fcbd7806fdc4\/ -H \"accept: application\/json\")\"\r\nLAT_V=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].version_number')\"\r\n\r\nif [ -z \"${LAT_V}\" ] && [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${RED}Can't get latest version of BepInEx for V Rising!${NC}\"\r\n echo -e \"${RED}Please try to run without BepInEx for V Rising. Exiting.${NC}\"\r\n exit 1\r\nfi\r\n\r\nif [ -f ${HOME}\/BepInEx.zip ]; then\r\n rm -rf ${HOME}\/BepInEx.zip\r\nfi\r\nif [ -f ${HOME}\/doorstop_config.ini ]; then\r\n sed -i \"\/enabled=false\/c\\enabled=true\" ${HOME}\/doorstop_config.ini\r\nfi\r\n\r\necho -e \"${YELLOW}BepInEx for V Rising Version Check${NC}\"\r\necho -e \"${YELLOW}More info: ${BEPINEX_VR_TS_URL}${NC}\"\r\n\r\nBEPINEX_VR_TS_DOWNLOAD_URL=\"$(echo ${BEPINEX_VR_API_DATA} | jq -r '.versions[0].download_url')\"\r\nif [ -z \"${CUR_V}\" ]; then\r\n echo -e \"${YELLOW}BepInEx for V Rising not found, downloading and installing v${LAT_V} ...${NC}\"\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-*\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n else\r\n echo -e \"${RED}Something went wrong, can't download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n exit 1\r\n fi\r\n \r\n mkdir -p \/tmp\/BepInEx\r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx\r\n if [ $? -eq 0 ];then\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx\r\n else\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n exit 1\r\n fi\r\nelif [ \"$CUR_V\" != \"${LAT_V}\" ]; then\r\n echo -e \"${YELLOW}Version missmatch, BepInEx v$CUR_V installed, downloading and installing v${LAT_V} ...${NC}\"\r\n \r\n cd ${HOME}\r\n rm -rf ${HOME}\/BepInEx-$CUR_V\r\n mkdir \/tmp\/Backup\r\n cp -R ${HOME}\/BepInEx\/config \/tmp\/Backup\/\r\n if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${HOME}\/BepInEx.zip --user-agent=Mozilla --content-disposition -E -c \"${BEPINEX_VR_TS_DOWNLOAD_URL}\" ; then\r\n echo -e \"${GREEN}Successfully downloaded BepInEx for V Rising v${LAT_V}${NC}\"\r\n else\r\n echo -e \"${RED}Unable to download BepInEx for V Rising v${LAT_V}. Exiting.${NC}\"\r\n exit 1\r\n fi\r\n \r\n unzip -o ${HOME}\/BepInEx.zip -d \/tmp\/BepInEx \r\n \r\n if [ $? -eq 0 ];then\r\n cp -rf \/tmp\/BepInEx\/BepInEx*\/* ${HOME}\/\r\n cp \/tmp\/BepInEx\/README* ${HOME}\/README_BepInEx_for_VRising.txt\r\n touch ${HOME}\/BepInEx-${LAT_V}\r\n cp -R \/tmp\/Backup\/config ${HOME}\/BepInEx\/\r\n rm -rf ${HOME}\/BepInEx.zip \/tmp\/BepInEx \/tmp\/Backup\r\n else\r\n echo -e \"${RED}Unable to unzip BepInEx archive! Exiting.${NC}\"\r\n exit 1\r\n fi\r\nelif [ \"${CUR_V}\" == \"${LAT_V}\" ]; then\r\n echo -e \"${GREEN}BepInEx v$CUR_V up-to-date!${NC}\"\r\nfi\r\n\r\n## V Rising Setup\r\nmkdir -p $HOME\/save-data\/Settings && cd \"$_\"\r\ncat > ServerHostSettings.json << EOF\r\n{\r\n \"Name\": \"${SERVER_NAME}\",\r\n \"Description\": \"${DESCRIPTION}\",\r\n \"Port\": ${SERVER_PORT},\r\n \"QueryPort\": ${QUERY_PORT},\r\n \"MaxConnectedUsers\": ${MAX_PLAYERS},\r\n \"MaxConnectedAdmins\": ${MAX_ADMINS},\r\n \"ServerFps\": ${FPS},\r\n \"SaveName\": \"${SAVE_NAME}\",\r\n \"Password\": \"${SERVER_PASSWORD}\",\r\n \"Secure\": ${SERVER_SECURE},\r\n \"ListOnMasterServer\": ${SERVER_LIST},\r\n \"AutoSaveCount\": ${SAVE_COUNT},\r\n \"AutoSaveInterval\": ${SAVE_INTERVAL},\r\n \"GameSettingsPreset\": \"${GAME_SETTINGS_PRESET}\",\r\n \"AdminOnlyDebugEvents\": ${ADMIN_ONLY_DEBUG_EVENTS},\r\n \"DisableDebugEvents\": ${DEBUG_EVENTS},\r\n \"Rcon\": {\r\n \"Enabled\": ${RCON},\r\n \"Password\": \"${RCON_PASS}\",\r\n \"Port\": ${RCON_PORT}\r\n }\r\n}\r\nEOF\r\n\r\necho -e \"${BLUE}-----------------------${NC}\"\r\necho -e \"${GREEN}Installation completed${NC}\"\r\necho -e \"${BLUE}-----------------------${NC}\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "\/bin\/bash" + } + }, + "variables": [ + { + "name": "[REQUIRED] Server Query Port", + "description": "UDP port for Steam server list features.", + "env_variable": "QUERY_PORT", + "default_value": "9877", + "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.", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "boolean", + "field_type": "text" + }, + { + "name": "Game Settings Preset", + "description": "What preset of game settings the server should run. Some settings may not apply after the save file is first created. Leave empty\/null if you are using a single-player uploaded save or a custom ServerGameSettings.json file in the `~\/save-data\/Settings\/` directory.", + "env_variable": "GAME_SETTINGS_PRESET", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|in:,DuoPvP,HardcorePvP,Level30PvE,Level30PvP,Level50PvE,Level50PvP,Level70PvE,Level70PvP,SoloPvP,StandardPvE_Easy,StandardPvE_Hard,StandardPvE,StandardPvP_Easy,StandardPvP_Hard,StandardPVP", + "field_type": "text" + }, + { + "name": "Server Name", + "description": "Name of the server that will appear in the server list.", + "env_variable": "SERVER_NAME", + "default_value": "V Rising Dedicated Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Server Description", + "description": "Short description of server purpose, rules, and the message of the day.", + "env_variable": "DESCRIPTION", + "default_value": "Welcome to the server!", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Max Connected Users", + "description": "Max number of concurrent players on the server.", + "env_variable": "MAX_PLAYERS", + "default_value": "40", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:1", + "field_type": "text" + }, + { + "name": "Max Connected Admins", + "description": "Max number of admins to allow connection even when the server is full.", + "env_variable": "MAX_ADMINS", + "default_value": "4", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:0", + "field_type": "text" + }, + { + "name": "Server Password", + "description": "Password required to join the server. Leave blank to have no password.", + "env_variable": "SERVER_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Save Name", + "description": "Name of save file \/ directory.", + "env_variable": "SAVE_NAME", + "default_value": "world1", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Auto Save Count", + "description": "Number of autosaves to keep.", + "env_variable": "SAVE_COUNT", + "default_value": "50", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:0", + "field_type": "text" + }, + { + "name": "Auto Save Interval", + "description": "Interval in seconds between each autosave.", + "env_variable": "SAVE_INTERVAL", + "default_value": "600", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:1", + "field_type": "text" + }, + { + "name": "List On Master Server", + "description": "Set to true to list on the server list, else set to false.", + "env_variable": "SERVER_LIST", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "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": "[Advanced] Server FPS", + "description": "How often the server refreshes. (Default: 30)", + "env_variable": "FPS", + "default_value": "30", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:1", + "field_type": "text" + }, + { + "name": "[Advanced] Enable RCON", + "description": "See the following link for info on how to connect and use RCON: https:\/\/github.com\/StunlockStudios\/vrising-dedicated-server-instructions#rcon", + "env_variable": "RCON", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[Advanced] RCON Password", + "description": "Password required to connect to RCON if it is enabled.", + "env_variable": "RCON_PASS", + "default_value": "somepassword", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "[Advanced] RCON Port", + "description": "Port used to connect to RCON. Must be allocated to the server for RCON to work.", + "env_variable": "RCON_PORT", + "default_value": "25575", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1024,65536", + "field_type": "text" + }, + { + "name": "[Advanced] Secure Server", + "description": "(true or false)", + "env_variable": "SERVER_SECURE", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[Advanced] Admin Only Debug Events", + "description": "(true or false)", + "env_variable": "ADMIN_ONLY_DEBUG_EVENTS", + "default_value": "true", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[Advanced] Disable Debug Events", + "description": "(true or false)", + "env_variable": "DEBUG_EVENTS", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "[Advanced] V Rising Dedicated Server App ID", + "description": "Used for installation and updates. Rarely needs to be changed.", + "env_variable": "SRCDS_APPID", + "default_value": "1829350", + "user_viewable": false, + "user_editable": false, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "[Advanced] 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": "WINEDEBUG", + "description": "", + "env_variable": "WINEDEBUG", + "default_value": "-all", + "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": "XVFB", + "description": "", + "env_variable": "XVFB", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "boolean", + "field_type": "text" + }, + { + "name": "WINETRICKS_RUN", + "description": "", + "env_variable": "WINETRICKS_RUN", + "default_value": "mono vcrun2019 dotnet48 dotnet6", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:50", + "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" + } + ] } \ No newline at end of file From cb732e2933730d58c1d1d6abbb18d331a27647f1 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 9 Nov 2023 09:03:09 +0100 Subject: [PATCH 415/473] Add update note --- game_eggs/steamcmd_servers/valheim/valheim_bepinex/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/README.md b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/README.md index 72bdd70b..a3642c00 100644 --- a/game_eggs/steamcmd_servers/valheim/valheim_bepinex/README.md +++ b/game_eggs/steamcmd_servers/valheim/valheim_bepinex/README.md @@ -37,3 +37,6 @@ Mods can be downloaded from modpacks automatically by entering the "dependency s |-------|---------| | Game | 2456 | | Query | 2457 | + +## Updating +Because the `DOORSTOP_CORLIB_OVERRIDE_PATH=./unstripped_corlib;` has been removed from the startup with the latest update of this egg. If your server is already running, update the startup manually. \ No newline at end of file From d74090b8599b1ce394c91fab5abc52baffbdbedf Mon Sep 17 00:00:00 2001 From: Elite Espeon Date: Sat, 11 Nov 2023 10:37:08 -0500 Subject: [PATCH 416/473] Add Resonite --- README.md | 1 + game_eggs/README.md | 1 + game_eggs/steamcmd_servers/README.md | 3 + .../steamcmd_servers/resonite/Config.json | 48 ++++++++ game_eggs/steamcmd_servers/resonite/README.md | 10 ++ .../resonite/egg-resonite.json | 112 ++++++++++++++++++ 6 files changed, 175 insertions(+) create mode 100644 game_eggs/steamcmd_servers/resonite/Config.json create mode 100644 game_eggs/steamcmd_servers/resonite/README.md create mode 100644 game_eggs/steamcmd_servers/resonite/egg-resonite.json diff --git a/README.md b/README.md index 6afef6e6..ac6a3b72 100644 --- a/README.md +++ b/README.md @@ -289,6 +289,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Post Scriptum](game_eggs/steamcmd_servers/post_scriptum) * [Project Zomboid](game_eggs/steamcmd_servers/project_zomboid) * [Quake Live](game_eggs/steamcmd_servers/quake_live) +* [Resonite](game_eggs/steamcmd_servers/resonite) * [Rising World](game_eggs/steamcmd_servers/rising_world) * [Risk Of Rain 2](game_eggs/steamcmd_servers/risk_of_rain_2) * [Rust](game_eggs/steamcmd_servers/rust) diff --git a/game_eggs/README.md b/game_eggs/README.md index 13018792..9c8863db 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -182,6 +182,7 @@ * [Post Scriptum](steamcmd_servers/post_scriptum) * [Project Zomboid](steamcmd_servers/project_zomboid) * [Quake Live](steamcmd_servers/quake_live) +* [Resonite](steamcmd_servers/resonite) * [Rising World](steamcmd_servers/rising_world) * [Legacy Java](steamcmd_servers/rising_world/legacy) * [Unity](steamcmd_servers/rising_world/unity) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index 82b620a2..64825437 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -189,6 +189,9 @@ This is a collection of servers that use SteamCMD to install. [Quake Live](quake_live) +## Resonite +[Resonite](resonite) + ## Rising World * [Rising World](rising_world) diff --git a/game_eggs/steamcmd_servers/resonite/Config.json b/game_eggs/steamcmd_servers/resonite/Config.json new file mode 100644 index 00000000..ad0723f6 --- /dev/null +++ b/game_eggs/steamcmd_servers/resonite/Config.json @@ -0,0 +1,48 @@ +{ + "$schema": "https://raw.githubusercontent.com/Yellow-Dog-Man/JSONSchemas/main/schemas/HeadlessConfig.schema.json", + "universeId": null, + "tickRate": 60.0, + "maxConcurrentAssetTransfers": 4, + "usernameOverride": null, + "loginCredential": "", + "loginPassword": "", + "startWorlds": [{ + "isEnabled": true, + "saveAsOwner": null, + "autoInviteUsernames": null, + "parentSessionIds": null, + "autoInviteMessage": null, + "autoRecover": true, + "idleRestartInterval": -1.0, + "forcedRestartInterval": -1.0, + "saveOnExit": false, + "autosaveInterval": -1.0, + "autoSleep": true, + "sessionName": null, + "customSessionId": null, + "description": null, + "maxUsers": 32, + "accessLevel": "Anyone", + "hideFromPublicListing": null, + "tags": null, + "mobileFriendly": false, + "loadWorldURL": null, + "loadWorldPresetName": "SpaceWorld", + "overrideCorrespondingWorldId": null, + "forcePort": null, + "keepOriginalRoles": false, + "defaultUserRoles": null, + "roleCloudVariable": null, + "allowUserCloudVariable": null, + "denyUserCloudVariable": null, + "requiredUserJoinCloudVariable": null, + "requiredUserJoinCloudVariableDenyMessage": null, + "awayKickMinutes": -1.0 + }], + "dataFolder": null, + "cacheFolder": null, + "logsFolder": null, + "allowedUrlHosts": null, + "autoSpawnItems": null, + "metamovieRoles": null +} \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/resonite/README.md b/game_eggs/steamcmd_servers/resonite/README.md new file mode 100644 index 00000000..e317827a --- /dev/null +++ b/game_eggs/steamcmd_servers/resonite/README.md @@ -0,0 +1,10 @@ +# Resonite headless client +## From https://resonite.com +Dive into a brand new digital universe with infinite possibilities, socialize and hang out with people around the world or to build, create and develop anything. + +# Notice + +To use this egg, you will need a beta code and a Steam account. Currently the beta code can only acquired by going to the Resonite Patreon (https://www.patreon.com/Resonite), and subscribing to the "Discoverer" level. Then you will be able to message the Resonite bot in-game with "/headlessCode", and receive the beta code. The account will also need to have Resonite in its library. You can do this by running `app_license_request 2519830` in steamcmd if you have never installed Resonite on this Steam account. +For more information related to Headless configuration, ask in the official Resonite Discord: https://discord.gg/resonite + +This game does not require any port forwarding, but instead uses UDP NAT hole punching (and/or relay) on a random port. You can force a certain port in the config for direct connections with the `forcePort` directive, but most communcation is done via NAT hole punch using LiteNetLib (LNL). \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/resonite/egg-resonite.json b/game_eggs/steamcmd_servers/resonite/egg-resonite.json new file mode 100644 index 00000000..f00fcd3d --- /dev/null +++ b/game_eggs/steamcmd_servers/resonite/egg-resonite.json @@ -0,0 +1,112 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-11-11T08:33:24-05:00", + "name": "Resonite", + "author": "espeon@espeon.dev", + "description": "Enter a novel digital universe with infinite possibilities. Whether you resonate with people around the world in a casual conversation, playing games and socializing or you riff off each other when creating anything from art to programming complex games, you'll find your place here.", + "features": null, + "docker_images": { + "Mono": "ghcr.io\/parkervcp\/yolks:mono_latest" + }, + "file_denylist": [], + "startup": "mono Headless\/Resonite.exe -c .\/Config\/Config.json -l .\/Logs $(if {{ENABLE_MODLOADER}}; then echo \"-LoadAssembly \".\/Libraries\/ResoniteModLoader.dll\"\"; fi)", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"World running...\"\r\n}", + "logs": "{}", + "stop": "shutdown" + }, + "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## just in case someone removed the defaults.\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; then\r\necho -e \"steam user is not set.\\n\"\r\necho -e \"Using anonymous user.\\n\"\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nelse\r\necho -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} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) -betapassword ${SRCDS_BETAPASS} ${INSTALL_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\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## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n## check if config file exists\r\necho \"Looking for existing config file...\"\r\nif ! [ -f \"\/mnt\/server\/Headless\/Config\/Config.json\" ]; then\r\necho \"Config does not exist, creating new config.\"\r\n## create default config\r\nmkdir -p \/mnt\/server\/Headless\/Config\r\ncurl -sSL -o \/mnt\/server\/Headless\/Config\/Config.json https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/game_eggs\/steamcmd_servers\/resonite\/Config.json\r\nelse\r\n## leave existing config\r\necho \"Config already exists, leaving it as is.\"\r\nfi\r\n## check if mod loader is enabled\r\necho \"Checking if mod loader needs to be installed...\"\r\nif [ \"$ENABLE_MODLOADER\" = true ]; then\r\necho \"Installing\/Updating mod loader as its enabled.\"\r\nmkdir -p \/mnt\/server\/Libraries\r\nmkdir -p \/mnt\/server\/rml_libs\r\nmkdir -p \/mnt\/server\/rml_mods\r\ncurl -sSL -o \/mnt\/server\/Libraries\/ResoniteModLoader.dll https:\/\/github.com\/resonite-modding-group\/ResoniteModLoader\/releases\/latest\/download\/ResoniteModLoader.dll\r\ncurl -sSL -o \/mnt\/server\/rml_libs\/0Harmony.dll https:\/\/github.com\/resonite-modding-group\/ResoniteModLoader\/releases\/latest\/download\/0Harmony.dll\r\nelse\r\necho \"Skipping installing mod loader as its not enabled.\"\r\nfi\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Steam Account User", + "description": "The username for your Steam account.", + "env_variable": "STEAM_USER", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:128", + "field_type": "text" + }, + { + "name": "Steam Account Password", + "description": "The password for your Steam account.", + "env_variable": "STEAM_PASS", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:128", + "field_type": "text" + }, + { + "name": "Steam Account Token\/Code", + "description": "The Steam Guard code or Login Token emailed to you.", + "env_variable": "STEAM_AUTH", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Enable Mod Loader", + "description": "See: https:\/\/github.com\/resonite-modding-group\/ResoniteModLoader for more information on Resonite Mod Loader.", + "env_variable": "ENABLE_MODLOADER", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "Beta Password", + "description": "This is the \"Beta Password\" that is only acquired by going to the Resonite Patreon, subscribing to the tier with Headless access, and then after your Resonite account shows \"Patreon Supporter\", message the Resonite bot in game with \/headlessCode, and paste that code here.", + "env_variable": "SRCDS_BETAPASS", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:30", + "field_type": "text" + }, + { + "name": "Beta branch name", + "description": "", + "env_variable": "SRCDS_BETAID", + "default_value": "headless", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|", + "field_type": "text" + }, + { + "name": "Auto update", + "description": "Auto update the server on startup", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Steam App ID", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "2519830", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + } + ] +} \ No newline at end of file From 39b6cd7808d30498c190a20b60f9c6209f0653fb Mon Sep 17 00:00:00 2001 From: Antony Rizzitelli Date: Sun, 12 Nov 2023 11:19:19 +0100 Subject: [PATCH 417/473] V Rising BepInEx: Wine staging version (#2550) --- .../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 41de0ab3..46bb2ff4 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-11-09T08:53:29+01:00", + "exported_at": "2023-11-10T17:55:31+01: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.", @@ -12,7 +12,7 @@ "steam_disk_space" ], "docker_images": { - "ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest" + "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" }, "file_denylist": [], "startup": "WINEDLLOVERRIDES=\"winhttp=n,b\"; xvfb-run wine .\/VRisingServer.exe -persistentDataPath save-data -address 0.0.0.0", @@ -284,7 +284,7 @@ "name": "WINETRICKS_RUN", "description": "", "env_variable": "WINETRICKS_RUN", - "default_value": "mono vcrun2019 dotnet48 dotnet6", + "default_value": "mono vcrun2022", "user_viewable": false, "user_editable": false, "rules": "required|string|max:50", From 54585fa113a2118a7a80c1be0de2f03efa4fdc01 Mon Sep 17 00:00:00 2001 From: Kevin Date: Mon, 13 Nov 2023 14:20:54 -0300 Subject: [PATCH 418/473] Remove mtasa egg (#2551) * Remove unused mtasa folder * Update Multi Theft Auto --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- game_eggs/gta/mtasa/egg-multi-theft-auto.json | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/game_eggs/gta/mtasa/egg-multi-theft-auto.json b/game_eggs/gta/mtasa/egg-multi-theft-auto.json index d2cfbc2a..bab547e8 100644 --- a/game_eggs/gta/mtasa/egg-multi-theft-auto.json +++ b/game_eggs/gta/mtasa/egg-multi-theft-auto.json @@ -1,29 +1,29 @@ { "_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-05-25T15:27:15+02:00", + "exported_at": "2023-11-13T18:18:13+01:00", "name": "Multi Theft Auto", "author": "info@six-gaming.com", "description": "What more could you want? Multi Theft Auto provides the best online Grand Theft Auto experience there is. Read on to find out more.", "features": null, - "images": [ - "ghcr.io\/parkervcp\/yolks:ubuntu" - ], + "docker_images": { + "ghcr.io\/parkervcp\/games:mta": "ghcr.io\/parkervcp\/games:mta" + }, "file_denylist": [], "startup": ".\/mta-server64 --port {{SERVER_PORT}} --httpport {{SERVER_WEBPORT}} -n", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Server started and is ready to accept connections\"\r\n}", - "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "logs": "{}", "stop": "shutdown" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\napt -y update\r\napt -y --no-install-recommends install curl unzip lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -L -o multitheftauto_linux_x64.tar.gz https:\/\/linux.mtasa.com\/dl\/multitheftauto_linux_x64.tar.gz\r\ncurl -L -o mta-baseconfig.tar.gz https:\/\/linux.mtasa.com\/dl\/baseconfig.tar.gz\r\ncurl -L -o mtasa-resources-latest.zip http:\/\/mirror.mtasa.com\/mtasa\/resources\/mtasa-resources-latest.zip\r\n\r\nmkdir -p \/mnt\/server\r\ntar -xvf multitheftauto_linux_x64.tar.gz\r\ncp -rf multitheftauto_linux_x64\/* \/mnt\/server\r\n\r\nif [ ! -f \/mnt\/server\/x64\/libmysqlclient.so.16 ]; then\r\n curl -L http:\/\/nightly.mtasa.com\/files\/libmysqlclient.so.16 -o \/mnt\/server\/x64\/libmysqlclient.so.16\r\nfi\r\n\r\nmkdir -p \/mnt\/server\/mods\/deathmatch\/resources\r\nunzip -o -d \/mnt\/server\/mods\/deathmatch\/resources mtasa-resources-latest.zip\r\n\r\nmkdir -p \/mnt\/server-conf\r\ntar -xvf mta-baseconfig.tar.gz\r\ncp -rf baseconfig\/* \/mnt\/server\/mods\/deathmatch\r\n\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\necho \"done\"", - "container": "ubuntu:18.04", + "script": "#!\/bin\/bash\r\n\r\ncd \/tmp\r\ncurl -L -o multitheftauto_linux_x64.tar.gz https:\/\/linux.mtasa.com\/dl\/multitheftauto_linux_x64.tar.gz\r\ncurl -L -o mta-baseconfig.tar.gz https:\/\/linux.mtasa.com\/dl\/baseconfig.tar.gz\r\ncurl -L -o mtasa-resources-latest.zip http:\/\/mirror.mtasa.com\/mtasa\/resources\/mtasa-resources-latest.zip\r\n\r\nmkdir -p \/mnt\/server\r\ntar -xvf multitheftauto_linux_x64.tar.gz\r\ncp -rf multitheftauto_linux_x64\/* \/mnt\/server\r\n\r\nif [ ! -f \/mnt\/server\/x64\/libmysqlclient.so.16 ]; then\r\n curl -L http:\/\/nightly.mtasa.com\/files\/libmysqlclient.so.16 -o \/mnt\/server\/x64\/libmysqlclient.so.16\r\nfi\r\n\r\nmkdir -p \/mnt\/server\/mods\/deathmatch\/resources\r\nunzip -o -d \/mnt\/server\/mods\/deathmatch\/resources mtasa-resources-latest.zip\r\n\r\ntar -xvf mta-baseconfig.tar.gz\r\ncp -rf baseconfig\/* \/mnt\/server\/mods\/deathmatch\r\n\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:ubuntu", "entrypoint": "bash" } }, @@ -35,7 +35,8 @@ "default_value": "22005", "user_viewable": true, "user_editable": false, - "rules": "required|numeric" + "rules": "required|numeric", + "field_type": "text" } ] -} +} \ No newline at end of file From fe0d694c417785e6fe21e7201bef989b7f1d128b Mon Sep 17 00:00:00 2001 From: Andrew Date: Mon, 13 Nov 2023 12:29:44 -0500 Subject: [PATCH 419/473] Update insurgency sandstorm (#2526) * Replace the old image to one that's supported. This solves the problem of "GLIBCXX_3.4.26" missing. * Cleanup: Insurgency: Sandstorm --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- .../egg-insurgency--sandstorm.json | 75 ++++++++++++++----- 1 file changed, 55 insertions(+), 20 deletions(-) diff --git a/game_eggs/steamcmd_servers/insurgency_sandstorm/egg-insurgency--sandstorm.json b/game_eggs/steamcmd_servers/insurgency_sandstorm/egg-insurgency--sandstorm.json index 562e9f4c..6f579f7a 100644 --- a/game_eggs/steamcmd_servers/insurgency_sandstorm/egg-insurgency--sandstorm.json +++ b/game_eggs/steamcmd_servers/insurgency_sandstorm/egg-insurgency--sandstorm.json @@ -1,30 +1,28 @@ { "_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-26T14:52:26+01:00", + "exported_at": "2023-11-13T18:26:59+01:00", "name": "Insurgency: Sandstorm", "author": "brycea@terrahost.cloud", "description": "Insurgency: Sandstorm is a team-based, tactical FPS based on lethal close quarters combat and objective-oriented multiplayer gameplay. Experience the intensity of modern combat where skill is rewarded, and teamwork wins the fight.", - "features": [ - "steam_disk_space" - ], - "images": [ - "ghcr.io\/parkervcp\/games:source" - ], + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:ubuntu": "ghcr.io\/parkervcp\/steamcmd:ubuntu" + }, "file_denylist": [], - "startup": "\/home\/container\/Insurgency\/Binaries\/Linux\/InsurgencyServer-Linux-Shipping {{MAP_NAME}}?Scenario={{SCENARIO}}?MaxPlayers={{MAX_PLAYERS}} -Port={{SERVER_PORT}} -QueryPort={{QUERY_PORT}} -log -hostname=\"{{HOSTNAME}}\"", + "startup": "\/home\/container\/Insurgency\/Binaries\/Linux\/InsurgencyServer-Linux-Shipping {{MAP_NAME}}?Scenario={{SCENARIO}}?MaxPlayers={{MAX_PLAYERS}} -Port={{SERVER_PORT}} -QueryPort={{QUERY_PORT}} -log -hostname=\"{{HOSTNAME}}\" -GSLTToken={{GSLTT}} -GameStats -GameStatsToken={{GST}} {{ADDSWITCHES}}", "config": { "files": "{}", - "startup": "{\r\n \"done\": \"LogGameState: Match State Changed from LoadingAssets to WaitingToStart\",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": false,\r\n \"location\": \"latest.log\"\r\n}", + "startup": "{\r\n \"done\": \"LogGameState: Match State Changed from LoadingAssets to WaitingToStart\"\r\n}", + "logs": "{}", "stop": "^C" }, "scripts": { "installation": { - "script": "apt -y update\r\napt -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} ${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\nchmod +x \/mnt\/server\/Insurgency\/Binaries\/Linux\/InsurgencyServer-Linux-Shipping", + "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\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\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\nchmod +x \/mnt\/server\/Insurgency\/Binaries\/Linux\/InsurgencyServer-Linux-Shipping\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -37,7 +35,8 @@ "default_value": "581330", "user_viewable": true, "user_editable": false, - "rules": "nullable|numeric" + "rules": "nullable|numeric", + "field_type": "text" }, { "name": "Server Name", @@ -46,7 +45,8 @@ "default_value": "My Insurgency Server", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:64" + "rules": "required|string|max:64", + "field_type": "text" }, { "name": "Query Port", @@ -55,7 +55,8 @@ "default_value": "27131", "user_viewable": true, "user_editable": true, - "rules": "required|numeric" + "rules": "required|numeric", + "field_type": "text" }, { "name": "Max Players", @@ -64,7 +65,8 @@ "default_value": "28", "user_viewable": true, "user_editable": true, - "rules": "required|numeric" + "rules": "required|numeric", + "field_type": "text" }, { "name": "Default Map", @@ -73,7 +75,8 @@ "default_value": "Canyon", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { "name": "Scenario Name", @@ -82,7 +85,38 @@ "default_value": "Scenario_Crossing_Checkpoint_Insurgents", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Additional Switches", + "description": "Please see this guide for available switches https:\/\/mod.io\/g\/insurgencysandstorm\/r\/server-admin-guide", + "env_variable": "ADDSWITCHES", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Game Stats Token", + "description": "Generate your token here https:\/\/gamestats.sandstorm.game\/. This is required to have your server show up in the server browser.", + "env_variable": "GST", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "GSLT Authentication", + "description": "Generate your token here https:\/\/steamcommunity.com\/dev\/managegameservers. This is required to have your server show up in the server browser.", + "env_variable": "GSLTT", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:32", + "field_type": "text" }, { "name": "Auto Update", @@ -91,7 +125,8 @@ "default_value": "1", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20" + "rules": "required|boolean", + "field_type": "text" } ] -} +} \ No newline at end of file From 3037204090d412733ef29e15593a447d4977cc8f Mon Sep 17 00:00:00 2001 From: Blood Shot <133905860+dagbs@users.noreply.github.com> Date: Mon, 13 Nov 2023 12:34:59 -0500 Subject: [PATCH 420/473] Multiserver Fix & Known Issues updated [ARK: Survival Ascended] (#2552) - Multiserver Fix & Known Issues updated - Added a -Port flag in addition to the needed param to enable multiserver support ( @That411guy ) - Added Known Issue for Proxmox VMs in README - add Authors / Contributors - fix Server name having spaces + add That411Guy to the README --------- Co-authored-by: Derrick A Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- .../ark_survival_ascended/README.md | 71 +++++++++++++++++-- .../egg-ark--survival-ascended.json | 4 +- 2 files changed, 67 insertions(+), 8 deletions(-) diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/README.md b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md index 054be0cb..38852a12 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/README.md +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/README.md @@ -3,6 +3,67 @@ Steam Description : ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits! +### Authors / Contributors + + + + + + + + + + + + +
+ +
Blood Shot +
+
+ 💻 + 🔨 +
+ +
gOOvER +
+
+ 💻 +
+ +
heckler +
+
+ 💻 +
+ +
Brandon +
+
+ 💻 +
+ +
Alexander Ballauf +
+
+ 💻 +
+ +
MachinegunMartyf +
+
+ 💡 +
+ +
That411Guy +
+
+ 💻 +
+ + + +--- ## Troubleshooting 1) Try starting the server with no mods on a fresh install. @@ -23,12 +84,10 @@ The number is in reference to RAM/Memory usage. ## Known Issues -1) ARK: Survival Ascended, currently, does not support more than one server per IP. -These are Windows Server files running on a Linux container; so, we believe this is the issue. +1) Proxmox VM(s): You'll need to change your Processor Type to `Host` (Default: kvm64) 2) ARK's wiki heavily reference A:SE and not all features are available in A:SA. - ## Recommended server settings ### Minimum RAM @@ -39,11 +98,11 @@ See the following - ## Server Ports -Note: RCON doesn't need to be public but is required for console commands (in ptero) +Note: The Peer port is not an option that can be set and will always be +1 from the Game Port! | Port | Default | | --------------- | ------- | | Game | 7777 | -| Raw UDP | 7778 | +| Peer (Game+1) | 7778 | | Query | 27015 | -| RCON | 37015 | +| RCON (optional) | 37015 | diff --git a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json index e2c296d3..4b073205 100644 --- a/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json +++ b/game_eggs/steamcmd_servers/ark_survival_ascended/egg-ark--survival-ascended.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-11-01T12:21:14-04:00", + "exported_at": "2023-11-12T11:57:56+01:00", "name": "ARK: Survival Ascended", "author": "blood@darkartsgaming.com", "description": "ARK is reimagined from the ground-up into the next-generation of video game technology with Unreal Engine 5! Form a tribe, tame & breed hundreds of unique dinosaurs and primeval creatures, explore, craft, build, and fight your way to the top of the food-chain. Your new world awaits!", @@ -15,7 +15,7 @@ "Proton": "ghcr.io\/parkervcp\/steamcmd:proton" }, "file_denylist": [], - "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} KeepAlive && rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe {{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName=\"{{SESSION_NAME}}\"?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword=\"{{SERVER_PASSWORD}}\"{{ARGS_PARAMS}}?ServerAdminPassword=\"{{ARK_ADMIN_PASSWORD}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}} -oldconsole -servergamelog$( [ -z \"$MOD_IDS\" ] || printf %s ' -mods=' $MOD_IDS )$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID & until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done", + "startup": "rmv() { echo \"stopping server\"; rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} KeepAlive && rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD} DoExit && wait ${ARK_PID}; echo \"Server Closed\"; exit; }; trap rmv 15 2; proton run .\/ShooterGame\/Binaries\/Win64\/ArkAscendedServer.exe {{SERVER_MAP}}?listen?MaxPlayers={{MAX_PLAYERS}}?SessionName=\\\"{{SESSION_NAME}}\\\"?Port={{SERVER_PORT}}?QueryPort={{QUERY_PORT}}?RCONPort={{RCON_PORT}}?RCONEnabled=True$( [ \"$SERVER_PVE\" == \"0\" ] || printf %s '?ServerPVE=True' )?ServerPassword=\"{{SERVER_PASSWORD}}\"{{ARGS_PARAMS}}?ServerAdminPassword=\"{{ARK_ADMIN_PASSWORD}}\" -WinLiveMaxPlayers={{MAX_PLAYERS}} -oldconsole -servergamelog$( [ -z \"$MOD_IDS\" ] || printf %s ' -mods=' $MOD_IDS )$( [ \"$BATTLE_EYE\" == \"1\" ] || printf %s ' -NoBattlEye' ) -Port={{SERVER_PORT}} {{ARGS_FLAGS}} & ARK_PID=$! ; tail -c0 -F .\/ShooterGame\/Saved\/Logs\/ShooterGame.log --pid=$ARK_PID & until echo \"waiting for rcon connection...\"; (rcon -t rcon -a 127.0.0.1:${RCON_PORT} -p ${ARK_ADMIN_PASSWORD})<&0 & wait $!; do sleep 5; done", "config": { "files": "{\r\n \"ShooterGame\/Saved\/Config\/WindowsServer\/GameUserSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\",\r\n \"ServerAdminPassword=\": \"ServerAdminPassword={{server.build.env.ARK_ADMIN_PASSWORD}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Waiting commands for 127.0.0.1:\"\r\n}", From cb9f4c9254fa8560cbd44d0c55235bdb24218b46 Mon Sep 17 00:00:00 2001 From: Dylan <135805091+ImKringle@users.noreply.github.com> Date: Tue, 14 Nov 2023 06:14:57 -0500 Subject: [PATCH 421/473] Added Hogwarp egg --- game_eggs/hogwarp/egg-hogwarp.json | 112 +++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 game_eggs/hogwarp/egg-hogwarp.json diff --git a/game_eggs/hogwarp/egg-hogwarp.json b/game_eggs/hogwarp/egg-hogwarp.json new file mode 100644 index 00000000..9ec304c2 --- /dev/null +++ b/game_eggs/hogwarp/egg-hogwarp.json @@ -0,0 +1,112 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-11-14T05:42:55-05:00", + "name": "Hogwarp", + "author": "imkringle@proton.me", + "description": "A Pterodactyl egg for the Hogwarts Legacy mod Hogwarp - For more info see their Nexus: https:\/\/www.nexusmods.com\/hogwartslegacy\/mods\/1378", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + }, + "file_denylist": [], + "startup": "wine HogWarpServer.exe", + "config": { + "files": "{\r\n \"config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"ApiKey\": \"{{env.API_KEY}}\",\r\n \"Name\": \"{{env.SERV_NAME}}\",\r\n \"Port\": \"{{server.build.default.port}}\",\r\n \"Description\": \"{{env.SERV_DESC}}\",\r\n \"MaxPlayer\": \"{{env.MAX_PLAYERS}}\",\r\n \"IconUrl\": \"{{env.SERV_ICON}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \" [HogWarpServer] \"\r\n}", + "logs": "{}", + "stop": "^^C" + }, + "scripts": { + "installation": { + "script": "#Hogwarp Install\r\napt update -y\r\napt install -y curl file unzip\r\n\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\n# Validate link\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\n# Unpack Server zip\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\n\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2 \r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\n#Create the Plugins folder\r\nmkdir plugins\/\r\nchmod 777 *\r\n\r\n\r\n## Install End\r\necho \"-----------------------------------------\"\r\necho \"Hogwarp Is Installed!\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Wine Tricks", + "description": "", + "env_variable": "WINETRICKS_RUN", + "default_value": "", + "user_viewable": false, + "user_editable": false, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Hogwarp API Key", + "description": "A API required to boot - https:\/\/presence.hogwarp.com\/login\r\n- If not set on install it will fail. Set API Key then Reinstall Files", + "env_variable": "API_KEY", + "default_value": "CHANGEME", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Server Name", + "description": "A name that displays on the Hogwarp list", + "env_variable": "SERV_NAME", + "default_value": "Ptero Hogwarp Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "WineARCH", + "description": "Arch type for Wine", + "env_variable": "WINEARCH", + "default_value": "win64", + "user_viewable": false, + "user_editable": false, + "rules": "required", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "Max players for a server, this depends on your Patreon level for Hogwarp\r\nhttps:\/\/www.patreon.com\/tiltedphoques - ( 4, 8, 16, No Limit ) In that order.", + "env_variable": "MAX_PLAYERS", + "default_value": "4", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer", + "field_type": "text" + }, + { + "name": "Server Icon URL", + "description": "The icon that displays on Hogwarps multiplayer listing", + "env_variable": "SERV_ICON", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Server Description", + "description": "The description that shows on the Multiplayer list", + "env_variable": "SERV_DESC", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Download URL", + "description": "URL to pull the files from\r\n- Using GDrive for no bandwidth limits", + "env_variable": "DOWNLOAD_URL", + "default_value": "http:\/\/dl.dropboxusercontent.com\/scl\/fi\/cd47ho7mhcvt91glm9q6q\/Hogwarp-Server-Files.zip?rlkey=juq8ru988l1yhuc16cwhx2jho&dl=1", + "user_viewable": false, + "user_editable": false, + "rules": "required|string", + "field_type": "text" + } + ] +} From 4d1910b3133ecc7c62809caf464f701093ad1643 Mon Sep 17 00:00:00 2001 From: Dylan <135805091+ImKringle@users.noreply.github.com> Date: Tue, 14 Nov 2023 06:15:59 -0500 Subject: [PATCH 422/473] Added hogwarp README --- game_eggs/hogwarp/README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 game_eggs/hogwarp/README.md diff --git a/game_eggs/hogwarp/README.md b/game_eggs/hogwarp/README.md new file mode 100644 index 00000000..240b0667 --- /dev/null +++ b/game_eggs/hogwarp/README.md @@ -0,0 +1,16 @@ +# HogWarp +HogWarp is a Work In Progress mod that adds Multiplayer functionality to Hogwarts Legacy, similar to FiveM for GTAV + +This Mod requires a API key only obtainable through their Discord, see the Startup Variable **API KEY** for more info. +- Some features of the mod (Public servers / higher player counts) require a Patreon level. See their Patreon here: https://www.patreon.com/tiltedphoques + +## Networking +| Port | default | +|---------|---------| +| Game | 11778 | + +## Hardware Requirements +| Storage | RAM | CPU | +|---------|---------|-----| +| 1.5GB | 250MB | 🥔 | + From 2397fdfd90b61a3a501a67dd3ab3eeb04021919c Mon Sep 17 00:00:00 2001 From: Dylan <135805091+ImKringle@users.noreply.github.com> Date: Tue, 14 Nov 2023 06:16:52 -0500 Subject: [PATCH 423/473] Update README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ac6a3b72..82d5cebc 100644 --- a/README.md +++ b/README.md @@ -154,6 +154,8 @@ If you are reading this it looks like you are looking to add an egg to your serv * GTA * [GTAC](game_eggs/gta/gtac) +[Hogwarp](game_eggs/hogwarp) + [Kerbal Space Program](game_eggs/ksp) [League Sandbox](game_eggs/leaguesandbox) From 80d25541a93310845bb96c003448e96937fdd0d9 Mon Sep 17 00:00:00 2001 From: Dylan <135805091+ImKringle@users.noreply.github.com> Date: Tue, 14 Nov 2023 06:17:40 -0500 Subject: [PATCH 424/473] Update README.md Oops --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 82d5cebc..a8f21827 100644 --- a/README.md +++ b/README.md @@ -154,7 +154,8 @@ If you are reading this it looks like you are looking to add an egg to your serv * GTA * [GTAC](game_eggs/gta/gtac) -[Hogwarp](game_eggs/hogwarp) +* Hogwarts Legacy + * [Hogwarp](game_eggs/hogwarp) [Kerbal Space Program](game_eggs/ksp) From 549a99b37f9c2a1767805b09840b2e4196c2e3e9 Mon Sep 17 00:00:00 2001 From: Dylan <135805091+ImKringle@users.noreply.github.com> Date: Tue, 14 Nov 2023 06:25:12 -0500 Subject: [PATCH 425/473] Update README.md Added to game_egg README --- game_eggs/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/game_eggs/README.md b/game_eggs/README.md index 9c8863db..aa7e708f 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -53,6 +53,8 @@ * GTA * [GTAC](gta/gtac) +[Hogwarp](hogwarp) + [Kerbal Space Program](ksp) [Los Angeles Crimes](losangelescrimes) From 8946ac858441aa12c375824af57e805e5ed9dba5 Mon Sep 17 00:00:00 2001 From: Dylan <135805091+ImKringle@users.noreply.github.com> Date: Tue, 14 Nov 2023 07:19:00 -0500 Subject: [PATCH 426/473] Fixed format error --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index a8f21827..82d5cebc 100644 --- a/README.md +++ b/README.md @@ -154,8 +154,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * GTA * [GTAC](game_eggs/gta/gtac) -* Hogwarts Legacy - * [Hogwarp](game_eggs/hogwarp) +[Hogwarp](game_eggs/hogwarp) [Kerbal Space Program](game_eggs/ksp) From a9080d38505fcbc91ebe4a02221b16240f8845f2 Mon Sep 17 00:00:00 2001 From: Dylan <135805091+ImKringle@users.noreply.github.com> Date: Tue, 14 Nov 2023 08:34:53 -0500 Subject: [PATCH 427/473] Fixed DOWNLOAD_URL Var - Removed Direct download link per PR requirement :) --- game_eggs/hogwarp/egg-hogwarp.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/hogwarp/egg-hogwarp.json b/game_eggs/hogwarp/egg-hogwarp.json index 9ec304c2..e35143fc 100644 --- a/game_eggs/hogwarp/egg-hogwarp.json +++ b/game_eggs/hogwarp/egg-hogwarp.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-11-14T05:42:55-05:00", + "exported_at": "2023-11-14T08:29:20-05:00", "name": "Hogwarp", "author": "imkringle@proton.me", "description": "A Pterodactyl egg for the Hogwarts Legacy mod Hogwarp - For more info see their Nexus: https:\/\/www.nexusmods.com\/hogwartslegacy\/mods\/1378", @@ -100,12 +100,12 @@ }, { "name": "Download URL", - "description": "URL to pull the files from\r\n- Using GDrive for no bandwidth limits", + "description": "URL to pull the files from - These are obtainable in their discord in the #releases channel\r\n- https:\/\/discord.com\/invite\/hogwarp", "env_variable": "DOWNLOAD_URL", - "default_value": "http:\/\/dl.dropboxusercontent.com\/scl\/fi\/cd47ho7mhcvt91glm9q6q\/Hogwarp-Server-Files.zip?rlkey=juq8ru988l1yhuc16cwhx2jho&dl=1", + "default_value": "", "user_viewable": false, "user_editable": false, - "rules": "required|string", + "rules": "string", "field_type": "text" } ] From 3bcff25f8d793b7888c8742d8f5d1b99f5b02064 Mon Sep 17 00:00:00 2001 From: Dylan <135805091+ImKringle@users.noreply.github.com> Date: Tue, 14 Nov 2023 11:44:53 -0500 Subject: [PATCH 428/473] Fixed Download + Added config to install script --- game_eggs/hogwarp/egg-hogwarp.json | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/game_eggs/hogwarp/egg-hogwarp.json b/game_eggs/hogwarp/egg-hogwarp.json index e35143fc..190340b1 100644 --- a/game_eggs/hogwarp/egg-hogwarp.json +++ b/game_eggs/hogwarp/egg-hogwarp.json @@ -4,13 +4,13 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-11-14T08:29:20-05:00", + "exported_at": "2023-11-14T11:03:55-05:00", "name": "Hogwarp", "author": "imkringle@proton.me", "description": "A Pterodactyl egg for the Hogwarts Legacy mod Hogwarp - For more info see their Nexus: https:\/\/www.nexusmods.com\/hogwartslegacy\/mods\/1378", "features": null, "docker_images": { - "ghcr.io\/parkervcp\/yolks:wine_staging": "ghcr.io\/parkervcp\/yolks:wine_staging" + "ghcr.io\/parkervcp\/yolks:wine_latest": "ghcr.io\/parkervcp\/yolks:wine_latest" }, "file_denylist": [], "startup": "wine HogWarpServer.exe", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#Hogwarp Install\r\napt update -y\r\napt install -y curl file unzip\r\n\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\n# Validate link\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\n# Unpack Server zip\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\n\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2 \r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\n#Create the Plugins folder\r\nmkdir plugins\/\r\nchmod 777 *\r\n\r\n\r\n## Install End\r\necho \"-----------------------------------------\"\r\necho \"Hogwarp Is Installed!\"\r\necho \"-----------------------------------------\"", + "script": "#Hogwarp Install\r\napt update -y\r\napt install -y curl file unzip\r\n\r\nif [ ! -d \/mnt\/server ]; then\r\n mkdir -p \/mnt\/server\/\r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\n# Validate link\r\nif [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\n# Unpack Server zip\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\n\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exiting\"\r\n exit 2 \r\nfi\r\n\r\ncd \/mnt\/server\/\r\n\r\n#Create the Plugins folder\r\nmkdir plugins\/\r\n\r\n# Check for a config.json, if it is missing; create it\r\nTARGET_FILE=\"config.json\"\r\n\r\nif test -f \"$TARGET_FILE\"; then\r\n echo \"$TARGET_FILE exists. Skipping config install\"\r\nelse\r\n echo \"$TARGET_FILE does not exist. Installing!\"\r\n curl -sSL -o config.json https:\/\/pteropaste.com\/hy2d48dbhtdd\/\r\n echo \"$TARGET_FILE has been installed\"\r\nfi\r\n\r\n\r\n## Install End\r\necho \"-----------------------------------------\"\r\necho \"Hogwarp Is Installed!\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -100,12 +100,22 @@ }, { "name": "Download URL", - "description": "URL to pull the files from - These are obtainable in their discord in the #releases channel\r\n- https:\/\/discord.com\/invite\/hogwarp", + "description": "URL to pull the files from\r\n- Files can be found in their Discord (https:\/\/discord.com\/invite\/hogwarp). Default URL will pull from there as well", "env_variable": "DOWNLOAD_URL", - "default_value": "", + "default_value": "https:\/\/cdn.discordapp.com\/attachments\/1076580539751993444\/1118295980597575810\/Server.zip", "user_viewable": false, "user_editable": false, - "rules": "string", + "rules": "required|string", + "field_type": "text" + }, + { + "name": "WINEDEBUG", + "description": "", + "env_variable": "WINEDEBUG", + "default_value": "-all", + "user_viewable": false, + "user_editable": false, + "rules": "nullable", "field_type": "text" } ] From 1ba9984593476333a1e78872150165d1ec2e8afb Mon Sep 17 00:00:00 2001 From: Dylan <135805091+ImKringle@users.noreply.github.com> Date: Tue, 14 Nov 2023 12:05:09 -0500 Subject: [PATCH 429/473] Plugin compat Information --- game_eggs/hogwarp/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/game_eggs/hogwarp/README.md b/game_eggs/hogwarp/README.md index 240b0667..c0bd8542 100644 --- a/game_eggs/hogwarp/README.md +++ b/game_eggs/hogwarp/README.md @@ -4,7 +4,9 @@ HogWarp is a Work In Progress mod that adds Multiplayer functionality to Hogwart This Mod requires a API key only obtainable through their Discord, see the Startup Variable **API KEY** for more info. - Some features of the mod (Public servers / higher player counts) require a Patreon level. See their Patreon here: https://www.patreon.com/tiltedphoques -## Networking +Plugins as of now **do not work** as it requires waiting on a Winetricks update - [#2150 - WineTricks Dotnet70 Missing](https://github.com/Winetricks/winetricks/issues/2150#issue-1993072450) + +## Server Port | Port | default | |---------|---------| | Game | 11778 | From 96ad2e25fee25bbee895dd56736c07b10d64399d Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Tue, 14 Nov 2023 18:08:57 +0100 Subject: [PATCH 430/473] Update README --- game_eggs/hogwarp/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/game_eggs/hogwarp/README.md b/game_eggs/hogwarp/README.md index c0bd8542..ed4c2c04 100644 --- a/game_eggs/hogwarp/README.md +++ b/game_eggs/hogwarp/README.md @@ -1,10 +1,11 @@ # HogWarp + HogWarp is a Work In Progress mod that adds Multiplayer functionality to Hogwarts Legacy, similar to FiveM for GTAV This Mod requires a API key only obtainable through their Discord, see the Startup Variable **API KEY** for more info. - Some features of the mod (Public servers / higher player counts) require a Patreon level. See their Patreon here: https://www.patreon.com/tiltedphoques -Plugins as of now **do not work** as it requires waiting on a Winetricks update - [#2150 - WineTricks Dotnet70 Missing](https://github.com/Winetricks/winetricks/issues/2150#issue-1993072450) +Plugins as of now **do not work** as it requires waiting on a Winetricks update - [#2150](https://github.com/Winetricks/winetricks/issues/2150#issue-1993072450) ## Server Port | Port | default | @@ -14,5 +15,5 @@ Plugins as of now **do not work** as it requires waiting on a Winetricks update ## Hardware Requirements | Storage | RAM | CPU | |---------|---------|-----| -| 1.5GB | 250MB | 🥔 | +| 1.5GiB | 250MiB | 🥔 | From 40668a8ab13c2c824c750753de8915a6f87418c1 Mon Sep 17 00:00:00 2001 From: Dylan <135805091+ImKringle@users.noreply.github.com> Date: Tue, 14 Nov 2023 12:13:29 -0500 Subject: [PATCH 431/473] Added note for DL File --- game_eggs/hogwarp/egg-hogwarp.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/hogwarp/egg-hogwarp.json b/game_eggs/hogwarp/egg-hogwarp.json index 190340b1..ae1623e2 100644 --- a/game_eggs/hogwarp/egg-hogwarp.json +++ b/game_eggs/hogwarp/egg-hogwarp.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-11-14T11:03:55-05:00", + "exported_at": "2023-11-14T12:12:21-05:00", "name": "Hogwarp", "author": "imkringle@proton.me", "description": "A Pterodactyl egg for the Hogwarts Legacy mod Hogwarp - For more info see their Nexus: https:\/\/www.nexusmods.com\/hogwartslegacy\/mods\/1378", @@ -100,7 +100,7 @@ }, { "name": "Download URL", - "description": "URL to pull the files from\r\n- Files can be found in their Discord (https:\/\/discord.com\/invite\/hogwarp). Default URL will pull from there as well", + "description": "URL to pull the files from\r\n- Files can be found in their Discord (https:\/\/discord.com\/invite\/hogwarp). Default URL will pull from there as well\r\n- These files can be outdated! Be sure to check for an update in the event it has a version mismatch with the client.", "env_variable": "DOWNLOAD_URL", "default_value": "https:\/\/cdn.discordapp.com\/attachments\/1076580539751993444\/1118295980597575810\/Server.zip", "user_viewable": false, From cc7948268fac0f5dad7b5bc520e61e6391115353 Mon Sep 17 00:00:00 2001 From: Daniel Barton Date: Fri, 17 Nov 2023 01:39:58 +0800 Subject: [PATCH 432/473] Correct and re-export Sponge Vanilla to correct inconsistent format from manual editing --- .../spongevanilla/egg-sponge-vanilla.json | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/game_eggs/minecraft/java/spongevanilla/egg-sponge-vanilla.json b/game_eggs/minecraft/java/spongevanilla/egg-sponge-vanilla.json index 16c0804c..0e1a51a1 100644 --- a/game_eggs/minecraft/java/spongevanilla/egg-sponge-vanilla.json +++ b/game_eggs/minecraft/java/spongevanilla/egg-sponge-vanilla.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-17T23:20:29+01:00", + "exported_at": "2023-11-16T17:37:38+00:00", "name": "SpongeVanilla", "author": "parker@parkervcp.com", "description": "SpongeVanilla is the implementation of the Sponge API on top of Vanilla Minecraft.", @@ -13,12 +13,12 @@ "java_version", "pid_limit" ], - "images": [ - "ghcr.io\/pterodactyl\/yolks:java_17", - "ghcr.io\/pterodactyl\/yolks:java_16", - "ghcr.io\/pterodactyl\/yolks:java_11", - "ghcr.io\/pterodactyl\/yolks:java_8" - ], + "docker_images": { + "Java 17": "ghcr.io\/pterodactyl\/yolks:java_17", + "Java 16": "ghcr.io\/pterodactyl\/yolks:java_16", + "Java 11": "ghcr.io\/pterodactyl\/yolks:java_11", + "Java 8": "ghcr.io\/pterodactyl\/yolks:java_8" + }, "file_denylist": [], "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", "config": { @@ -42,7 +42,8 @@ "default_value": "recommended", "user_viewable": true, "user_editable": true, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" }, { "name": "Server Jar File", @@ -51,7 +52,8 @@ "default_value": "server.jar", "user_viewable": true, "user_editable": true, - "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" + "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/", + "field_type": "text" } ] -} +} \ No newline at end of file From fd26d17b2bb54a68bd4318c6fe8537a1f82d243a Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 18 Nov 2023 10:11:45 +0100 Subject: [PATCH 433/473] add factorio ARM64 --- game_eggs/factorio/README.md | 4 + .../factorio/egg-factorio-a-r-m64.json | 192 ++++++++++++++++++ 2 files changed, 196 insertions(+) create mode 100644 game_eggs/factorio/factorio/egg-factorio-a-r-m64.json diff --git a/game_eggs/factorio/README.md b/game_eggs/factorio/README.md index 5095e4a6..5f31a07b 100644 --- a/game_eggs/factorio/README.md +++ b/game_eggs/factorio/README.md @@ -24,3 +24,7 @@ Factorio requires a single port | Port | default | |---------|---------| | Game | 34197 | + +## ARM64 +There is a factorio egg for ARM64 machines that uses the box64 emulator. +If you are on **AMD64** Like most of you download the normal non ARM64 egg! \ No newline at end of file diff --git a/game_eggs/factorio/factorio/egg-factorio-a-r-m64.json b/game_eggs/factorio/factorio/egg-factorio-a-r-m64.json new file mode 100644 index 00000000..c0f5083c --- /dev/null +++ b/game_eggs/factorio/factorio/egg-factorio-a-r-m64.json @@ -0,0 +1,192 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-11-18T10:08:36+01:00", + "name": "Factorio ARM64", + "author": "parker@parkervcp.com", + "description": "The vanilla Factorio server.\r\n\r\nhttps:\/\/www.factorio.com\/", + "features": null, + "docker_images": { + "Box64": "ghcr.io\/parkervcp\/yolks:box64" + }, + "file_denylist": [], + "startup": "if [ ! -f \".\/saves\/{{SAVE_NAME}}.zip\" ]; then box64 .\/bin\/x64\/factorio --create .\/saves\/{{SAVE_NAME}}.zip --map-gen-settings data\/map-gen-settings.json --map-settings data\/map-settings.json; fi;\r\nbox64 .\/bin\/x64\/factorio --port {{SERVER_PORT}} --server-settings data\/server-settings.json --start-server saves\/{{SAVE_NAME}}.zip", + "config": { + "files": "{\r\n \"data\/server-settings.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"name\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"description\": \"{{server.build.env.SERVER_DESC}}\",\r\n \"max_players\": \"{{server.build.env.MAX_SLOTS}}\",\r\n \"username\": \"{{server.build.env.SERVER_USERNAME}}\",\r\n \"token\": \"{{server.build.env.SERVER_TOKEN}}\",\r\n \"autosave_interval\": \"{{server.build.env.SAVE_INTERVAL}}\",\r\n \"autosave_slots\": \"{{server.build.env.SAVE_SLOTS}}\",\r\n \"afk_autokick_interval\": \"{{server.build.env.AFK_KICK}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Hosting game at\"\r\n}", + "logs": "{}", + "stop": "\/quit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# Factorio Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update \r\napt install -y curl tar xz-utils jq\r\n\r\nVERSION_JSON=$(curl -sSL https:\/\/factorio.com\/api\/latest-releases)\r\n\r\nlatest_stable=$(echo $VERSION_JSON | jq -r '.stable.headless')\r\nlatest_experimental=$(echo $VERSION_JSON | jq -r '.experimental.headless')\r\n\r\nif [ -z \"${FACTORIO_VERSION}\" ] || [ \"${FACTORIO_VERSION}\" == \"latest\" ]; then\r\n DL_VERSION=$latest_stable\r\nelif [ \"${FACTORIO_VERSION}\" == \"experimental\" ]; then\r\n DL_VERSION=$latest_experimental\r\nelse\r\n DL_VERSION=${FACTORIO_VERSION}\r\nfi\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\necho -e \"\\n running 'curl -sL https:\/\/www.factorio.com\/get-download\/${DL_VERSION}\/headless\/linux64 -o factorio-${DL_VERSION}' \\n\"\r\n\r\ncurl -sL https:\/\/www.factorio.com\/get-download\/${DL_VERSION}\/headless\/linux64 -o factorio-${DL_VERSION}\r\n\r\ntar -xf factorio-${DL_VERSION} --strip-components=1 -C \/mnt\/server\r\n\r\nrm factorio-${DL_VERSION}\r\n\r\nif [ -e data\/map-gen-settings.json ]; then\r\n echo \"map-gen exists\"\r\nelse\r\n echo \"copying map-gen default settings\"\r\n mv data\/map-gen-settings.example.json data\/map-gen-settings.json\r\nfi\r\n\r\nif [ -e data\/server-settings.json ]; then\r\n echo \"server settings exists\"\r\nelse\r\n echo \"copying server default settings\"\r\n mv data\/server-settings.example.json data\/server-settings.json\r\nfi\r\n\r\nif [ -e map-settings.json ]; then\r\n echo \"map settings exists\"\r\nelse\r\n echo \"copying map default settings\"\r\n mv data\/map-settings.example.json data\/map-settings.json\r\nfi\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Factorio Version", + "description": "Which version of Factorio to install and use.", + "env_variable": "FACTORIO_VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|between:3,12", + "field_type": "text" + }, + { + "name": "Maximum Slots", + "description": "Total number of slots to allow on the server.", + "env_variable": "MAX_SLOTS", + "default_value": "20", + "user_viewable": true, + "user_editable": false, + "rules": "required|numeric|digits_between:1,3", + "field_type": "text" + }, + { + "name": "Save Name", + "description": "The save name for the server.", + "env_variable": "SAVE_NAME", + "default_value": "gamesave", + "user_viewable": true, + "user_editable": true, + "rules": "alpha_dash|between:1,100", + "field_type": "text" + }, + { + "name": "Server Token", + "description": "Your factorio.com token, it is required for your server to be visible in the public server list.", + "env_variable": "SERVER_TOKEN", + "default_value": "undefined", + "user_viewable": true, + "user_editable": true, + "rules": "alpha_num|max:100", + "field_type": "text" + }, + { + "name": "Server Name", + "description": "Name of the game as it will appear in the game listing", + "env_variable": "SERVER_NAME", + "default_value": "Factorio Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:100", + "field_type": "text" + }, + { + "name": "Server Description", + "description": "Description of the game that will appear in the listing.", + "env_variable": "SERVER_DESC", + "default_value": "Description", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:200", + "field_type": "text" + }, + { + "name": "Server Username", + "description": "Username used for the server", + "env_variable": "SERVER_USERNAME", + "default_value": "unnamed", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:40", + "field_type": "text" + }, + { + "name": "Auto Save Interval", + "description": "Time between auto saves specified in minutes", + "env_variable": "SAVE_INTERVAL", + "default_value": "10", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|digits_between:1,3", + "field_type": "text" + }, + { + "name": "Auto Save Slots", + "description": "The number of auto saves to keep.", + "env_variable": "SAVE_SLOTS", + "default_value": "5", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|digits_between:1,3", + "field_type": "text" + }, + { + "name": "AFK Kick", + "description": "Time specified in minutes to kick AFK players.\r\n0 is off", + "env_variable": "AFK_KICK", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric|digits_between:1,3", + "field_type": "text" + }, + { + "name": "BOX64_DYNAREC_SAFEFLAGS", + "description": "", + "env_variable": "BOX64_DYNAREC_SAFEFLAGS", + "default_value": "0", + "user_viewable": false, + "user_editable": false, + "rules": "required|numeric|in:0", + "field_type": "text" + }, + { + "name": "BOX64_DYNAREC_BIGBLOCK", + "description": "", + "env_variable": "BOX64_DYNAREC_BIGBLOCK", + "default_value": "2", + "user_viewable": false, + "user_editable": false, + "rules": "required|numeric|in:2", + "field_type": "text" + }, + { + "name": "BOX64_DYNAREC_FORWARD", + "description": "", + "env_variable": "BOX64_DYNAREC_FORWARD", + "default_value": "1024", + "user_viewable": false, + "user_editable": false, + "rules": "required|numeric|in:1024", + "field_type": "text" + }, + { + "name": "BOX64_DYNAREC_CALLRET", + "description": "", + "env_variable": "BOX64_DYNAREC_CALLRET", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|numeric|in:1", + "field_type": "text" + }, + { + "name": "BOX64_DYNAREC_FASTROUND", + "description": "", + "env_variable": "BOX64_DYNAREC_FASTROUND", + "default_value": "0", + "user_viewable": false, + "user_editable": false, + "rules": "required|numeric|in:0", + "field_type": "text" + }, + { + "name": "BOX64_DYNAREC_ALIGNED_ATOMICS", + "description": "", + "env_variable": "BOX64_DYNAREC_ALIGNED_ATOMICS", + "default_value": "1", + "user_viewable": false, + "user_editable": false, + "rules": "required|numeric|in:1", + "field_type": "text" + } + ] +} \ No newline at end of file From 3b8782b15447117ab2a9bb718c8aa9ef8b9df836 Mon Sep 17 00:00:00 2001 From: SrLicht Date: Sat, 18 Nov 2023 09:44:15 -0300 Subject: [PATCH 434/473] Update egg-scpsl.json * Add support to branch and branch password --- .../scpsl/dedicated/egg-scpsl.json | 38 +++++++++++++++---- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/game_eggs/steamcmd_servers/scpsl/dedicated/egg-scpsl.json b/game_eggs/steamcmd_servers/scpsl/dedicated/egg-scpsl.json index 4c0af7df..216094b1 100644 --- a/game_eggs/steamcmd_servers/scpsl/dedicated/egg-scpsl.json +++ b/game_eggs/steamcmd_servers/scpsl/dedicated/egg-scpsl.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": "2021-11-14T11:16:57+01:00", + "exported_at": "2023-11-18T09:42:03-03:00", "name": "SCP:SL", "author": "eggs@goover.dev", "description": "Egg for SCP: Secret Laboratory Dedicated Linux Server", "features": [ "steam_disk_space" ], - "images": [ - "ghcr.io\/parkervcp\/yolks:mono_latest" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:mono_latest": "ghcr.io\/parkervcp\/yolks:mono_latest" + }, "file_denylist": [], "startup": ".\/LocalAdmin {{SERVER_PORT}}", "config": { @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -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}\" == \"\" ]; 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 ..\/.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 $HOME\/.config", + "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\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\necho -e \"steam user is not set.\\n\"\r\necho -e \"Using anonymous user.\\n\"\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nelse\r\necho -e \"user set to ${STEAM_USER}\"\r\nfi\r\n## Check if Branch is set\r\nif [ \"${BRANCH}\" != \"\" ]; then\r\nEXTRA_FLAGS=\"-beta ${BRANCH}\"\r\nfi\r\n## Check if Branch Password is set\r\nif [ \"${BRANCH_PASSWORD}\" != \"\" ]; then\r\nEXTRA_FLAGS=\"${EXTRA_FLAGS} -betapassword ${BRANCH_PASSWORD}\"\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\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} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\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## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\nmkdir -p $HOME\/.config", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -37,7 +37,8 @@ "default_value": "996560", "user_viewable": true, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Dotnet Bundle", @@ -46,7 +47,28 @@ "default_value": ".\/dotnet-bundle", "user_viewable": false, "user_editable": false, - "rules": "required|string" + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Branch", + "description": "Use this to instruct your panel whether to use a branch of SCP: SL (typically used for testing versions). To install the branch, you need to click \"Reinstall Server\" to execute the installation script.", + "env_variable": "BRANCH", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:30", + "field_type": "text" + }, + { + "name": "Branch password", + "description": "Branch password (optional)", + "env_variable": "BRANCH_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|max:40", + "field_type": "text" } ] } From 0a60f3a658c33bea87518b51ae7352ab52cd406e Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 18 Nov 2023 14:03:18 +0100 Subject: [PATCH 435/473] Cleanup SCP:SL --- .../scpsl/dedicated/egg-scpsl.json | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/game_eggs/steamcmd_servers/scpsl/dedicated/egg-scpsl.json b/game_eggs/steamcmd_servers/scpsl/dedicated/egg-scpsl.json index 216094b1..f70e3121 100644 --- a/game_eggs/steamcmd_servers/scpsl/dedicated/egg-scpsl.json +++ b/game_eggs/steamcmd_servers/scpsl/dedicated/egg-scpsl.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-11-18T09:42:03-03:00", + "exported_at": "2023-11-18T14:02:28+01:00", "name": "SCP:SL", "author": "eggs@goover.dev", "description": "Egg for SCP: Secret Laboratory Dedicated Linux Server", @@ -18,13 +18,13 @@ "startup": ".\/LocalAdmin {{SERVER_PORT}}", "config": { "files": "{}", - "startup": "{\r\n \"done\": \"Waiting for players..\",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "startup": "{\r\n \"done\": \"Waiting for players..\"\r\n}", + "logs": "{}", "stop": "EXIT" }, "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\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\necho -e \"steam user is not set.\\n\"\r\necho -e \"Using anonymous user.\\n\"\r\nSTEAM_USER=anonymous\r\nSTEAM_PASS=\"\"\r\nSTEAM_AUTH=\"\"\r\nelse\r\necho -e \"user set to ${STEAM_USER}\"\r\nfi\r\n## Check if Branch is set\r\nif [ \"${BRANCH}\" != \"\" ]; then\r\nEXTRA_FLAGS=\"-beta ${BRANCH}\"\r\nfi\r\n## Check if Branch Password is set\r\nif [ \"${BRANCH_PASSWORD}\" != \"\" ]; then\r\nEXTRA_FLAGS=\"${EXTRA_FLAGS} -betapassword ${BRANCH_PASSWORD}\"\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\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} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\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## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\nmkdir -p $HOME\/.config", + "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\nmkdir -p $HOME\/.config\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -37,7 +37,7 @@ "default_value": "996560", "user_viewable": true, "user_editable": false, - "rules": "required|string|max:20", + "rules": "required|string|in:996560", "field_type": "text" }, { @@ -53,7 +53,7 @@ { "name": "Branch", "description": "Use this to instruct your panel whether to use a branch of SCP: SL (typically used for testing versions). To install the branch, you need to click \"Reinstall Server\" to execute the installation script.", - "env_variable": "BRANCH", + "env_variable": "SRCDS_BETAID", "default_value": "", "user_viewable": true, "user_editable": true, @@ -63,12 +63,22 @@ { "name": "Branch password", "description": "Branch password (optional)", - "env_variable": "BRANCH_PASSWORD", + "env_variable": "SRCDS_BETAPASS", "default_value": "", "user_viewable": true, "user_editable": true, "rules": "nullable|string|max:40", "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" } ] -} +} \ No newline at end of file From a637c4084524116cade3e239abc6fd245ebd791d Mon Sep 17 00:00:00 2001 From: User <31356909+Mockup8732@users.noreply.github.com> Date: Sat, 25 Nov 2023 01:14:40 -0500 Subject: [PATCH 436/473] Update README.md Change Minumim to Minimum --- game_eggs/spacestation_14/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/spacestation_14/README.md b/game_eggs/spacestation_14/README.md index 1bb753af..eaabc9d9 100644 --- a/game_eggs/spacestation_14/README.md +++ b/game_eggs/spacestation_14/README.md @@ -10,7 +10,7 @@ Minimum required memory to run the server. 2GB is recommended. 3GB+ is preferred -## Minumim Sorage warning +## Minimum Sorage warning Minimum required storage to run the server. Example: 100MiB is recommended. 2GiB+ is preferred From 7d2ed3a533b9672676b41a9fef6ec608abd90a48 Mon Sep 17 00:00:00 2001 From: Ben <55660933+BondiBen@users.noreply.github.com> Date: Sat, 25 Nov 2023 10:43:58 -0500 Subject: [PATCH 437/473] Update egg-quilt.json Fixed the startup Command and changed the default MC (to 1.20.2) and Java Version (to JDK17) that the latest version of Minecraft works without any configuration. --- game_eggs/minecraft/java/quilt/egg-quilt.json | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/game_eggs/minecraft/java/quilt/egg-quilt.json b/game_eggs/minecraft/java/quilt/egg-quilt.json index 124ad837..458c14fa 100644 --- a/game_eggs/minecraft/java/quilt/egg-quilt.json +++ b/game_eggs/minecraft/java/quilt/egg-quilt.json @@ -4,19 +4,20 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-07-08T19:05:09+03:00", + "exported_at": "2023-11-25T16:40:11+01: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: 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" + "Java 17": "ghcr.io\/pterodactyl\/yolks:java_17", + "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 18": "ghcr.io\/pterodactyl\/yolks:java_18" }, "file_denylist": [], - "startup": "java -jar {{SERVER_JARFILE}} nogui -Xms128M -XX:MaxRAMPercentage=95.0", + "startup": "java -Xms128M -XX:MaxRAMPercentage=95.0 -jar {{SERVER_JARFILE}} nogui", "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}", @@ -33,9 +34,9 @@ "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!", + "description": "Version of Minecraft that will be installed. You can only choose the exact version number, for example \"1.20.2\", \"latest\" won't work!", "env_variable": "MC_VERSION", - "default_value": "1.19.2", + "default_value": "1.20.2", "user_viewable": true, "user_editable": true, "rules": "required|string|between:3,15", @@ -52,4 +53,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 1eb8b36781cb65c7df633ff54a0a5aa3b60f94c6 Mon Sep 17 00:00:00 2001 From: User <31356909+Mockup8732@users.noreply.github.com> Date: Sat, 25 Nov 2023 17:24:43 -0500 Subject: [PATCH 438/473] Update README.md Mininum to Minimum --- game_eggs/steamcmd_servers/no_one_survived/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/no_one_survived/README.md b/game_eggs/steamcmd_servers/no_one_survived/README.md index ecbe3de6..dce3f722 100644 --- a/game_eggs/steamcmd_servers/no_one_survived/README.md +++ b/game_eggs/steamcmd_servers/no_one_survived/README.md @@ -9,7 +9,7 @@ This is a multiplayer cooperative open world construction survival sandbox game, Minimum required memory to run the server. 2GB is recommended. 4GB+ is preferred -## Minumim Sorage warning +## Minimum Sorage warning Minimum required storage to run the server. 3GB is recommended. @@ -24,4 +24,4 @@ Ports required to run the server in a table format. | Game | 5761 | | Query | 27015 | -Both TCP and UDP \ No newline at end of file +Both TCP and UDP From 6b48ac42900803b21668a6f6cceb6e377bd8e570 Mon Sep 17 00:00:00 2001 From: User <31356909+Mockup8732@users.noreply.github.com> Date: Sat, 25 Nov 2023 17:26:54 -0500 Subject: [PATCH 439/473] Update README.md Minor spelling fixes --- .../steamcmd_servers/mount_blade_II_bannerlord/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/mount_blade_II_bannerlord/README.md b/game_eggs/steamcmd_servers/mount_blade_II_bannerlord/README.md index 79943f81..d7efa9c7 100644 --- a/game_eggs/steamcmd_servers/mount_blade_II_bannerlord/README.md +++ b/game_eggs/steamcmd_servers/mount_blade_II_bannerlord/README.md @@ -23,7 +23,7 @@ Ports required to run the server ### Notes -You need to get your own AUTH token to run this server genertate by a offical client +You need to get your own AUTH token to run this server generated by an offical client [YT](https://www.youtube.com/watch?v=9Hvuz12Bfzg) -[Docs](https://moddocs.bannerlord.com/multiplayer/hosting_server/#generating-a-token) \ No newline at end of file +[Docs](https://moddocs.bannerlord.com/multiplayer/hosting_server/#generating-a-token) From c4192706a88934109922be3f26063985f84f2608 Mon Sep 17 00:00:00 2001 From: Dylan <135805091+ImKringle@users.noreply.github.com> Date: Sun, 26 Nov 2023 00:40:51 -0500 Subject: [PATCH 440/473] Updated Plugin issue --- game_eggs/hogwarp/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/hogwarp/README.md b/game_eggs/hogwarp/README.md index ed4c2c04..ccffffd5 100644 --- a/game_eggs/hogwarp/README.md +++ b/game_eggs/hogwarp/README.md @@ -5,7 +5,7 @@ HogWarp is a Work In Progress mod that adds Multiplayer functionality to Hogwart This Mod requires a API key only obtainable through their Discord, see the Startup Variable **API KEY** for more info. - Some features of the mod (Public servers / higher player counts) require a Patreon level. See their Patreon here: https://www.patreon.com/tiltedphoques -Plugins as of now **do not work** as it requires waiting on a Winetricks update - [#2150](https://github.com/Winetricks/winetricks/issues/2150#issue-1993072450) +Plugins as of now **do not work** as Wine and Winetricks will break the DLL it runs off of. This will likely stay the case until a full Linux release ## Server Port | Port | default | From 3683e68781da3d97838f8301d936579afb5ba63f Mon Sep 17 00:00:00 2001 From: Sam Schumacher <38103916+HerrSammyDE@users.noreply.github.com> Date: Tue, 28 Nov 2023 21:04:14 +0100 Subject: [PATCH 441/473] Update README.md --- game_eggs/gta/samp/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/gta/samp/README.md b/game_eggs/gta/samp/README.md index dff71cfd..b77c5451 100644 --- a/game_eggs/gta/samp/README.md +++ b/game_eggs/gta/samp/README.md @@ -1,3 +1,3 @@ # SA:MP -The [SA:MP](https://www.sa-mp.com/) GTA San Andreas dedicated server +The [SA:MP](https://www.sa-mp.mp/) GTA San Andreas dedicated server From 43f0d08ad426d739e592cc8d2538f479c873f9ef Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 30 Nov 2023 10:25:17 +0100 Subject: [PATCH 442/473] Update Clone Hero --- game_eggs/clone_hero/egg-clone-hero.json | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/game_eggs/clone_hero/egg-clone-hero.json b/game_eggs/clone_hero/egg-clone-hero.json index aaa9fce1..6b759199 100644 --- a/game_eggs/clone_hero/egg-clone-hero.json +++ b/game_eggs/clone_hero/egg-clone-hero.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-07-03T16:24:37+02:00", + "exported_at": "2023-11-30T10:24:33+01: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!", @@ -13,16 +13,16 @@ "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}}\")", + "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" + "stop": "^c" }, "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 \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt -y install curl unzip jq\r\n\r\n## get release info and download links\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\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/clonehero-game\/releases\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/clonehero-game\/releases\/releases\")\r\nMATCH=CloneHero-standalone_server\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 -i server)\r\n fi\r\nfi\r\n\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 ${DOWNLOAD_URL}\"\r\ncurl -sSL -o ChStandaloneServer.zip ${DOWNLOAD_URL}\r\n\r\nunzip -o ChStandaloneServer.zip\r\nrm ChStandaloneServer.zip\r\n\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" } @@ -57,6 +57,16 @@ "user_editable": true, "rules": "required|string|in:0,1,2,3,4", "field_type": "text" + }, + { + "name": "Version", + "description": "The version of Clone Hero you want to install.\r\nExample: V1.0.0.4080 or latest", + "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 c2836fcba1e10acae2127bb73709f68a34c18376 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sat, 2 Dec 2023 08:10:02 +0100 Subject: [PATCH 443/473] removed multiadmin, since its not longer under development --- README.md | 1 - game_eggs/README.md | 1 - game_eggs/steamcmd_servers/README.md | 1 - game_eggs/steamcmd_servers/scpsl/README.md | 6 --- .../scpsl/multiadmin/README.md | 30 ----------- ...s-c-p--secret-laboratory--multi-admin.json | 52 ------------------- 6 files changed, 91 deletions(-) delete mode 100644 game_eggs/steamcmd_servers/scpsl/multiadmin/README.md delete mode 100644 game_eggs/steamcmd_servers/scpsl/multiadmin/egg-s-c-p--secret-laboratory--multi-admin.json diff --git a/README.md b/README.md index 82d5cebc..ea170249 100644 --- a/README.md +++ b/README.md @@ -302,7 +302,6 @@ If you are reading this it looks like you are looking to add an egg to your serv * [SCP: Secret Laboratory](game_eggs/steamcmd_servers/scpsl) * [dedicated](game_eggs/steamcmd_servers/scpsl/dedicated) * [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) diff --git a/game_eggs/README.md b/game_eggs/README.md index aa7e708f..dbff044e 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -197,7 +197,6 @@ * [SCP: Secret Laboratory](steamcmd_servers/scpsl) * [Dedicated](steamcmd_servers/scpsl/dedicated) * [Exiled](steamcmd_servers/scpsl/exiled) - * [Multiadmin](steamcmd_servers/scpsl/multiadmin) * [Soldat](steamcmd_servers/soldat) * [Sons of the Forest](steamcmd_servers/sonsoftheforest) * [Space Engineers](steamcmd_servers/space_engineers) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index 64825437..e6be1bf4 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -217,7 +217,6 @@ This is a collection of servers that use SteamCMD to install. * [SCP: Secret Laboratory](scpsl) * [dedicated](scpsl/dedicated) * [exiled](scpsl/exiled) - * [multiadmin](scpsl/multiadmin) ## Solace Crafting diff --git a/game_eggs/steamcmd_servers/scpsl/README.md b/game_eggs/steamcmd_servers/scpsl/README.md index 9c00ef3a..d207c6d4 100644 --- a/game_eggs/steamcmd_servers/scpsl/README.md +++ b/game_eggs/steamcmd_servers/scpsl/README.md @@ -5,12 +5,6 @@ SCP: Secret Laboratory Dedicated Linux Server AddID: [996560](https://steamdb.info/app/996560/) This Server is NOT compatible with ServerMod2 or MultiAdmin -## [MultiAdmin](multiadmin) - -SCP: Secret Laboratory Pterodactyl egg. Works with MP2. Steam AppID: [996560](https://steamdb.info/app/996560/) -This server is **NOT** compatible with SMod2 due to it not being updated for MP2. -This server is **NOT** compatible with LocalAdmin due to server input causing it to crash. MultiAdmin with a config option is used instead. - ## [Exiled Plugin Framework](exiled) SCP: Secret Laboratory Pterodactyl egg with Exiled Plugin Framework diff --git a/game_eggs/steamcmd_servers/scpsl/multiadmin/README.md b/game_eggs/steamcmd_servers/scpsl/multiadmin/README.md deleted file mode 100644 index 1ecf654b..00000000 --- a/game_eggs/steamcmd_servers/scpsl/multiadmin/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# SCP: Secret Laboratory - -SCP: Secret Laboratory Pterodactyl egg. Works with MP2. Steam AppID: [996560](https://steamdb.info/app/996560/) - -This server is **NOT** compatible with SMod2 due to it not being updated for MP2. - -This server is **NOT** compatible with LocalAdmin due to server input causing it to crash. MultiAdmin with a config option is used instead. - -## Minimum RAM - -Minimum memory required to run the server: 3096 MB - -## Server Port - -Default port required to run the server. - -| Port | Default | -|---------|---------| -| Game | 7777 | - -## Verification - -The server must be verified with the SCP:SL developers in order for it to be visible in the server browser. - -Instructions are as follows: - -* Make sure your server complies with the [Verified Server Rules](https://scpslgame.com/Verified_server_rules.pdf). -* Send an email to `server.verification@scpslgame.com` from your configured contact email with the following information: - 1. The **public** IPv4 address of your server, with port. e.g. `69.69.69.69:7777` - 2. If the server's IP is static or dynamic. diff --git a/game_eggs/steamcmd_servers/scpsl/multiadmin/egg-s-c-p--secret-laboratory--multi-admin.json b/game_eggs/steamcmd_servers/scpsl/multiadmin/egg-s-c-p--secret-laboratory--multi-admin.json deleted file mode 100644 index 75f402c4..00000000 --- a/game_eggs/steamcmd_servers/scpsl/multiadmin/egg-s-c-p--secret-laboratory--multi-admin.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v1", - "update_url": null - }, - "exported_at": "2021-11-14T11:18:28+01:00", - "name": "SCP: Secret Laboratory - MultiAdmin", - "author": "eggs@goover.dev", - "description": "The latest vanilla version of SCP:SL running through MultiAdmin for compatibility. LocalAdmin does not work. No SMod2.", - "features": [ - "steam_disk_space" - ], - "images": [ - "ghcr.io\/parkervcp\/yolks:mono_latest" - ], - "file_denylist": [], - "startup": "mono MultiAdmin.exe --port {{SERVER_PORT}}", - "config": { - "files": "{\r\n \"scp_multiadmin.cfg\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"use_new_input_system\": \"false\",\r\n \"max_players:\": \" {{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n },\r\n \".config\/SCP Secret Laboratory\/config\/{{SERVER_PORT}}\/config_gameplay.txt\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server_ip:\": \"0.0.0.0\",\r\n \"forward_ports\": \" false\",\r\n \"contact_email:\": \"{{server.build.env.CONTACT_EMAIL}}\",\r\n \"max_players:\": \"{{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"Waiting for players\",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", - "stop": "EXIT" - }, - "scripts": { - "installation": { - "script": "# Downloads SteamCMD\r\napt update\r\napt -y --no-install-recommends install curl unzip lib32gcc-s1 ca-certificates wget jq\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\n# Extracts SteamCMD\r\nmkdir -p \/mnt\/server\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\ncd \/mnt\/server\/steam\r\nchown -R root:root \/mnt\r\n\r\n# Downloads the server\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update 996560 +quit\r\n\r\n# Hoster policy\r\necho 'gamedir_for_configs: true' >> \/mnt\/server\/hoster_policy.txt\r\nchmod +x \/mnt\/server\/hoster_policy.txt\r\n\r\n# Downloads MultiAdmin\r\ncd $HOME\r\nwget -qN https:\/\/github.com\/ServerMod\/MultiAdmin\/releases\/latest\/download\/MultiAdmin.exe\r\nchmod +x \/mnt\/server\/MultiAdmin.exe\r\n\r\n# Compatibility fix for MultiAdmin\r\necho \"use_new_input_system: false\" >> \/mnt\/server\/scp_multiadmin.cfg\r\necho \"max_players: 20\" >> \/mnt\/server\/scp_multiadmin.cfg", - "container": "ghcr.io\/parkervcp\/installers:debian", - "entrypoint": "bash" - } - }, - "variables": [ - { - "name": "Contact Email", - "description": "A contact email is required for this server to show up on the public server list. Leave \"default\" to opt out.", - "env_variable": "CONTACT_EMAIL", - "default_value": "default", - "user_viewable": false, - "user_editable": false, - "rules": "required|string|max:254" - }, - { - "name": "Max Players", - "description": "This will change the maximum player count.", - "env_variable": "MAX_PLAYERS", - "default_value": "20", - "user_viewable": false, - "user_editable": false, - "rules": "required|integer" - } - ] -} From 8d3757135cffc01b8d541b012a2dcecc008878bb Mon Sep 17 00:00:00 2001 From: William Harrison Date: Sun, 3 Dec 2023 16:52:02 +0800 Subject: [PATCH 444/473] feat(beammp): update auth key url (#2587) * feat(beammp): update auth key url --- game_eggs/beamng/beammp/egg-beam-m-p-server.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/beamng/beammp/egg-beam-m-p-server.json b/game_eggs/beamng/beammp/egg-beam-m-p-server.json index 4d61e0ec..8e43a17a 100644 --- a/game_eggs/beamng/beammp/egg-beam-m-p-server.json +++ b/game_eggs/beamng/beammp/egg-beam-m-p-server.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-05-14T18:49:02+02:00", + "exported_at": "2023-12-03T08:37:49+08:00", "name": "BeamMP Servers", "author": "noah@noahserver.online", "description": "This is the server for the multiplayer mod BeamMP for the game BeamNG.drive. The server is the point through which all clients communicate. You can write lua mods for the server, detailed instructions on the BeamMP Wiki.", @@ -60,7 +60,7 @@ }, { "name": "Authentication Key", - "description": "The authentication key for your server. A key can be obtained from the BeamMP keymaster at https:\/\/beamng-mp.com\/k\/dashboard", + "description": "The authentication key for your server. A key can be obtained from the BeamMP keymaster at https:\/\/keymaster.beammp.com", "env_variable": "AUTHKEY", "default_value": "", "user_viewable": true, @@ -129,4 +129,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From e950ff7624d3d8807e36f20b74cd52260045b390 Mon Sep 17 00:00:00 2001 From: O1LER Date: Tue, 5 Dec 2023 18:30:37 +0100 Subject: [PATCH 445/473] Update egg-beam-m-p-server.json Fixed the LogChat toggle, was a string before, now boolean Changed max character limit on the server version string, was eight before, now 12 --- game_eggs/beamng/beammp/egg-beam-m-p-server.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game_eggs/beamng/beammp/egg-beam-m-p-server.json b/game_eggs/beamng/beammp/egg-beam-m-p-server.json index 8e43a17a..3cdd2a69 100644 --- a/game_eggs/beamng/beammp/egg-beam-m-p-server.json +++ b/game_eggs/beamng/beammp/egg-beam-m-p-server.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-12-03T08:37:49+08:00", + "exported_at": "2023-12-05T18:28:42+01:00", "name": "BeamMP Servers", "author": "noah@noahserver.online", "description": "This is the server for the multiplayer mod BeamMP for the game BeamNG.drive. The server is the point through which all clients communicate. You can write lua mods for the server, detailed instructions on the BeamMP Wiki.", @@ -15,7 +15,7 @@ "file_denylist": [], "startup": ".\/BeamMP-Server", "config": { - "files": "{\r\n \"ServerConfig.toml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"Name =\": \"Name = \\\"{{env.NAME}}\\\"\",\r\n \"Port =\": \"Port = {{server.build.default.port}}\",\r\n \"AuthKey =\": \"AuthKey = \\\"{{env.AUTHKEY}}\\\"\",\r\n \"Private =\": \"Private = {{env.PRIVATE}}\",\r\n \"MaxPlayers =\": \"MaxPlayers = {{server.build.env.MAX_PLAYERS}}\",\r\n \"Description =\": \"Description = \\\"{{env.DESCRIPTION}}\\\"\",\r\n \"MaxCars =\": \"MaxCars = {{env.MAX_CARS}}\",\r\n \"Map =\": \"Map = \\\"{{env.MAP}}\\\"\",\r\n \"LogChat =\": \"LogChat = \\\"{{env.LOGCHAT}}\\\"\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"ServerConfig.toml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"Name =\": \"Name = \\\"{{env.NAME}}\\\"\",\r\n \"Port =\": \"Port = {{server.build.default.port}}\",\r\n \"AuthKey =\": \"AuthKey = \\\"{{env.AUTHKEY}}\\\"\",\r\n \"Private =\": \"Private = {{env.PRIVATE}}\",\r\n \"MaxPlayers =\": \"MaxPlayers = {{server.build.env.MAX_PLAYERS}}\",\r\n \"Description =\": \"Description = \\\"{{env.DESCRIPTION}}\\\"\",\r\n \"MaxCars =\": \"MaxCars = {{env.MAX_CARS}}\",\r\n \"Map =\": \"Map = \\\"{{env.MAP}}\\\"\",\r\n \"LogChat =\": \"LogChat = {{env.LOGCHAT}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"[INFO] Vehicle data network online\"\r\n}", "logs": "{}", "stop": "exit" @@ -55,7 +55,7 @@ "default_value": "latest", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:8", + "rules": "required|string|max:12", "field_type": "text" }, { @@ -129,4 +129,4 @@ "field_type": "text" } ] -} +} \ No newline at end of file From 44d56baaab00424da67f11707a995003d763c431 Mon Sep 17 00:00:00 2001 From: Smith Date: Tue, 5 Dec 2023 21:12:34 +0100 Subject: [PATCH 446/473] adds dependency update step to install script * this addition allows users to update **gamedig** dependency by running a reinstall (running `npm update` will update all dependencies to the latest compatible version) --- bots/discord/game-server-watcher/egg-game-server-watcher.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bots/discord/game-server-watcher/egg-game-server-watcher.json b/bots/discord/game-server-watcher/egg-game-server-watcher.json index 47cbaee8..97aaa681 100644 --- a/bots/discord/game-server-watcher/egg-game-server-watcher.json +++ b/bots/discord/game-server-watcher/egg-game-server-watcher.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-10-24T16:33:47+00:00", + "exported_at": "2023-11-03T07:50:44+00:00", "name": "Game Server Watcher", "author": "a-sync@devs.space", "description": "A simple discord\/telegram\/slack bot that can be hosted on a free service to monitor your game servers and players in style. \ud83d\ude0e", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\napt-get update && apt-get install ca-certificates git -yq --no-install-suggests --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages\r\ncd \/mnt\/server\r\ngit config --global --add safe.directory \/mnt\/server\r\ngit clone https:\/\/github.com\/a-sync\/game-server-watcher.git . || git pull\r\nnpm install && npm run build\r\nnpm prune --omit=dev", + "script": "#!\/bin\/bash\r\napt-get update && apt-get install ca-certificates git -yq --no-install-suggests --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages\r\ncd \/mnt\/server\r\ngit config --global --add safe.directory \/mnt\/server\r\ngit clone https:\/\/github.com\/a-sync\/game-server-watcher.git . || git pull\r\nnpm install && npm update && npm run build\r\nnpm prune --omit=dev", "container": "node:20-bullseye-slim", "entrypoint": "bash" } From 2ffe7b0d65140ac73b3b11eec352bc779f7a91a5 Mon Sep 17 00:00:00 2001 From: Smith Date: Wed, 6 Dec 2023 10:47:25 +0100 Subject: [PATCH 447/473] limit the dependency updates to gamedig on reinstall --- bots/discord/game-server-watcher/egg-game-server-watcher.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bots/discord/game-server-watcher/egg-game-server-watcher.json b/bots/discord/game-server-watcher/egg-game-server-watcher.json index 97aaa681..e2497f1e 100644 --- a/bots/discord/game-server-watcher/egg-game-server-watcher.json +++ b/bots/discord/game-server-watcher/egg-game-server-watcher.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-11-03T07:50:44+00:00", + "exported_at": "2023-12-06T09:05:57+00:00", "name": "Game Server Watcher", "author": "a-sync@devs.space", "description": "A simple discord\/telegram\/slack bot that can be hosted on a free service to monitor your game servers and players in style. \ud83d\ude0e", @@ -22,7 +22,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\napt-get update && apt-get install ca-certificates git -yq --no-install-suggests --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages\r\ncd \/mnt\/server\r\ngit config --global --add safe.directory \/mnt\/server\r\ngit clone https:\/\/github.com\/a-sync\/game-server-watcher.git . || git pull\r\nnpm install && npm update && npm run build\r\nnpm prune --omit=dev", + "script": "#!\/bin\/bash\r\napt-get update && apt-get install ca-certificates git -yq --no-install-suggests --no-install-recommends --allow-downgrades --allow-remove-essential --allow-change-held-packages\r\ncd \/mnt\/server\r\ngit config --global --add safe.directory \/mnt\/server\r\ngit clone https:\/\/github.com\/a-sync\/game-server-watcher.git . || git pull\r\nnpm install && npm update gamedig && npm run build\r\nnpm prune --omit=dev", "container": "node:20-bullseye-slim", "entrypoint": "bash" } From 7739b54837153de46054bd1e89497469f81488f2 Mon Sep 17 00:00:00 2001 From: William Harrison Date: Tue, 12 Dec 2023 13:58:25 +0800 Subject: [PATCH 448/473] Create egg-postgres16.json --- database/sql/postgres/egg-postgres16.json | 52 +++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 database/sql/postgres/egg-postgres16.json diff --git a/database/sql/postgres/egg-postgres16.json b/database/sql/postgres/egg-postgres16.json new file mode 100644 index 00000000..37fe1a89 --- /dev/null +++ b/database/sql/postgres/egg-postgres16.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-12-12T13:57:39+08:00", + "name": "Postgres 16", + "author": "parker@parkervcp.com", + "description": "A default Postgres install that is not really editable.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:postgres_16": "ghcr.io\/parkervcp\/yolks:postgres_16" + }, + "file_denylist": [], + "startup": "postgres -D \/home\/container\/postgres_db\/", + "config": { + "files": "{\r\n \"postgres_db\/postgresql.conf\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"#port =\": \"port = {{server.build.default.port}}\",\r\n \"#external_pid_file =\": \"external_pid_file = '\/home\/container\/postgres_db\/run\/postgres.pid'\",\r\n \"#unix_socket_directories =\": \"unix_socket_directories = '\/home\/container\/postgres_db\/run\/'\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"database system is ready to accept connections\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#! \/bin\/ash\r\nadduser -D -h \/home\/container container\r\n\r\nchown -R container: \/mnt\/server\/\r\n\r\nsu container -c 'initdb -D \/mnt\/server\/postgres_db\/ -A md5 -U \"$PGUSER\" --pwfile=<(echo \"$PGPASSWORD\")'\r\n\r\nmkdir -p \/mnt\/server\/postgres_db\/run\/\r\n\r\n## Add default \"allow from all\" auth rule to pg_hba\r\nif ! grep -q \"# Custom rules\" \"\/mnt\/server\/postgres_db\/pg_hba.conf\"; then\r\n echo -e \"# Custom rules\\nhost all all 0.0.0.0\/0 md5\" >> \"\/mnt\/server\/postgres_db\/pg_hba.conf\"\r\nfi\r\n\r\necho -e \"Done\"", + "container": "postgres:16-alpine", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Superuser Name", + "description": "The username for the postgres superuser", + "env_variable": "PGUSER", + "default_value": "pterodactyl", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Superuser Password", + "description": "The postgres super user password with a strong default.\r\nYou should be generating new ones for each server.\r\nIf you don't then users can hit other users DB's", + "env_variable": "PGPASSWORD", + "default_value": "Pl3453Ch4n63M3!", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|max:20", + "field_type": "text" + } + ] +} From 5adce5606537e3bd051e29111af775e17fdd8739 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Tue, 12 Dec 2023 15:34:20 +0100 Subject: [PATCH 449/473] rename 14 --- .../{egg-postgres.json => egg-postgres14.json} | 18 ++++++++++-------- database/sql/postgres/egg-postgres16.json | 4 ++-- 2 files changed, 12 insertions(+), 10 deletions(-) rename database/sql/postgres/{egg-postgres.json => egg-postgres14.json} (86%) diff --git a/database/sql/postgres/egg-postgres.json b/database/sql/postgres/egg-postgres14.json similarity index 86% rename from database/sql/postgres/egg-postgres.json rename to database/sql/postgres/egg-postgres14.json index ef889584..b3c5c14e 100644 --- a/database/sql/postgres/egg-postgres.json +++ b/database/sql/postgres/egg-postgres14.json @@ -1,17 +1,17 @@ { "_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-05-08T21:54:05+02:00", - "name": "Postgres", + "exported_at": "2023-12-12T15:32:12+01:00", + "name": "Postgres 14", "author": "parker@parkervcp.com", "description": "A default Postgres install that is not really editable.", "features": null, - "images": [ - "ghcr.io\/parkervcp\/yolks:postgres_14" - ], + "docker_images": { + "ghcr.io\/parkervcp\/yolks:postgres_14": "ghcr.io\/parkervcp\/yolks:postgres_14" + }, "file_denylist": [], "startup": "postgres -D \/home\/container\/postgres_db\/", "config": { @@ -35,7 +35,8 @@ "default_value": "pterodactyl", "user_viewable": true, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" }, { "name": "Superuser Password", @@ -44,7 +45,8 @@ "default_value": "Pl3453Ch4n63M3!", "user_viewable": true, "user_editable": false, - "rules": "required|string|max:20" + "rules": "required|string|max:20", + "field_type": "text" } ] } \ No newline at end of file diff --git a/database/sql/postgres/egg-postgres16.json b/database/sql/postgres/egg-postgres16.json index 37fe1a89..25f879d3 100644 --- a/database/sql/postgres/egg-postgres16.json +++ b/database/sql/postgres/egg-postgres16.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-12-12T13:57:39+08:00", + "exported_at": "2023-12-12T15:33:25+01:00", "name": "Postgres 16", "author": "parker@parkervcp.com", "description": "A default Postgres install that is not really editable.", @@ -49,4 +49,4 @@ "field_type": "text" } ] -} +} \ No newline at end of file From 3646948a2851534b9670b3a77bd261d9ff5eebe7 Mon Sep 17 00:00:00 2001 From: MEEKR1T Date: Wed, 13 Dec 2023 22:50:37 -0600 Subject: [PATCH 450/473] Update egg-custom-re-h-l-d-s-engine-game.json 25th anniversary fix uses the -beta flag to select the steam_legacy version of the server, which is known to work without issue. see https://github.com/dreamstalker/rehlds/issues/999#issuecomment-1826375535 --- .../hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json b/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json index 460886eb..dd5c8573 100644 --- a/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json +++ b/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates jq unzip wget\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\nif [ \"${STEAM_USER}\" == \"\" ] || [ \"${STEAM_PASS}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +force_install_dir \"\/mnt\/server\" +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_set_config 90 mod ${HLDS_GAME} +app_update ${SRCDS_APPID} validate +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n# Github Release Grabber script\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\")\r\nMATCH=\"rehlds-bin\"\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 -Ei ${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)\r\n fi\r\nfi\r\n\r\ncd \/tmp\r\nwget -N $DOWNLOAD_URL -O rehlds-bin.zip\r\nunzip -q -o rehlds-bin.zip\r\n\r\ncp -r \/tmp\/bin\/linux32\/* \/mnt\/server\r\ncd \/mnt\/server\r\necho \"install complete\"", + "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates jq unzip wget\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\nif [ \"${STEAM_USER}\" == \"\" ] || [ \"${STEAM_PASS}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +force_install_dir \"\/mnt\/server\" +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_set_config 90 mod ${HLDS_GAME} +app_update ${SRCDS_APPID} -beta steam_legacy validate +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n# Github Release Grabber script\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\")\r\nMATCH=\"rehlds-bin\"\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 -Ei ${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)\r\n fi\r\nfi\r\n\r\ncd \/tmp\r\nwget -N $DOWNLOAD_URL -O rehlds-bin.zip\r\nunzip -q -o rehlds-bin.zip\r\n\r\ncp -r \/tmp\/bin\/linux32\/* \/mnt\/server\r\ncd \/mnt\/server\r\necho \"install complete\"", "container": "ubuntu:18.04", "entrypoint": "bash" } From dd4d2a76681de3419ee797811aef1199f27a5135 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 14 Dec 2023 11:09:09 +0100 Subject: [PATCH 451/473] do it for both and the right way --- .../egg-custom-re-h-l-d-s-engine-game.json | 32 +++++++++++++++---- .../egg-custom-h-l-d-s-engine-game.json | 28 +++++++++++++--- 2 files changed, 50 insertions(+), 10 deletions(-) diff --git a/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json b/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json index dd5c8573..20dcbae6 100644 --- a/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json +++ b/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-01-27T23:04:00+01:00", + "exported_at": "2023-12-14T11:07:10+01:00", "name": "Custom ReHLDS Engine Game", "author": "shigbeard@ndlee.com", "description": "This option allows modifying the startup arguments and other details to run a custom HLDS based game on the panel, substituting the official Valve engine binaries with the ReHLDS binaries.", @@ -24,8 +24,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates jq unzip wget\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\nif [ \"${STEAM_USER}\" == \"\" ] || [ \"${STEAM_PASS}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +force_install_dir \"\/mnt\/server\" +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_set_config 90 mod ${HLDS_GAME} +app_update ${SRCDS_APPID} -beta steam_legacy validate +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n# Github Release Grabber script\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\")\r\nMATCH=\"rehlds-bin\"\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 -Ei ${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)\r\n fi\r\nfi\r\n\r\ncd \/tmp\r\nwget -N $DOWNLOAD_URL -O rehlds-bin.zip\r\nunzip -q -o rehlds-bin.zip\r\n\r\ncp -r \/tmp\/bin\/linux32\/* \/mnt\/server\r\ncd \/mnt\/server\r\necho \"install complete\"", - "container": "ubuntu:18.04", + "script": "#!\/bin\/bash\r\n# SRCDS 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\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_set_config 90 mod ${HLDS_GAME} $( [[ \"${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\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\r\n# Github Release Grabber script\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/dreamstalker\/rehlds\/releases\")\r\nMATCH=\"rehlds-bin\"\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 -Ei ${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)\r\n fi\r\nfi\r\n\r\ncd \/tmp\r\ncurl -sSL -o rehlds-bin.zip ${DOWNLOAD_URL}\r\nunzip -q -o rehlds-bin.zip\r\n\r\ncp -r \/tmp\/bin\/linux32\/* \/mnt\/server\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } }, @@ -35,9 +35,9 @@ "description": "The ID corresponding to the game to download and run using HLDS.\r\n\r\nThe HLDS server ID is 90. This should not be changed.", "env_variable": "SRCDS_APPID", "default_value": "90", - "user_viewable": true, + "user_viewable": false, "user_editable": false, - "rules": "required|numeric|digits_between:1,6", + "rules": "required|numeric|in:90", "field_type": "text" }, { @@ -119,6 +119,26 @@ "user_editable": true, "rules": "nullable|string", "field_type": "text" + }, + { + "name": "Beta branch", + "description": "", + "env_variable": "SRCDS_BETAID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:,steam_legacy", + "field_type": "text" + }, + { + "name": "Auto update", + "description": "Auto update on restart", + "env_variable": "AUTO_UPDATE", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" } ] -} +} \ No newline at end of file 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 7b8c79a9..515d0961 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": "2023-07-17T10:38:39-04:00", + "exported_at": "2023-12-14T11:07:15+01: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\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 \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n# SRCDS 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\r\n## install game using steamcmd\r\n.\/steamcmd.sh +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +app_set_config 90 mod ${HLDS_GAME} $( [[ \"${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\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## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } @@ -35,9 +35,9 @@ "description": "The ID corresponding to the game to download and run using HLDS.\r\n\r\nThe HLDS server ID is 90. This should not be changed.", "env_variable": "SRCDS_APPID", "default_value": "90", - "user_viewable": true, + "user_viewable": false, "user_editable": false, - "rules": "required|numeric|digits_between:1,6", + "rules": "required|numeric|in:90", "field_type": "text" }, { @@ -99,6 +99,26 @@ "user_editable": false, "rules": "nullable|string|max:20", "field_type": "text" + }, + { + "name": "Beta branch", + "description": "", + "env_variable": "SRCDS_BETAID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:,steam_legacy", + "field_type": "text" + }, + { + "name": "Auto update", + "description": "Auto update on restart", + "env_variable": "AUTO_UPDATE", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" } ] } \ No newline at end of file From afeb0504cc64188f36e037c90e340e8c0c224b2a Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Thu, 14 Dec 2023 11:29:34 +0100 Subject: [PATCH 452/473] Fix team fortress 2 classic --- .../team_fortress_2_classic/egg-team-fortress-2-classic.json | 4 ++-- 1 file changed, 2 insertions(+), 2 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 9e029455..536c36fc 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": "2023-07-13T23:07:08+01:00", + "exported_at": "2023-12-14T11:28:43+01: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.", @@ -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\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 \"-----------------------------------------\"", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\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\nL_V=$(curl -s https:\/\/wiki.tf2classic.com\/kachemak\/versions.json | jq -r '.versions | to_entries | max_by(.key | tonumber) | .value.file') # tf2classic-2.1.3.tar.zst\r\n\r\nif [ -z \"${GAMEVERSION}\" ] || [ \"${GAMEVERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=\"https:\/\/wiki.tf2classic.com\/kachemak\/$L_V\"\r\nelse\r\n DOWNLOAD_URL=\"https:\/\/wiki.tf2classic.com\/kachemak\/tf2classic-${GAMEVERSION}.tar.zst\"\r\nfi\r\n\r\n\r\n# Check if the URL returns a 404 status code\r\nif curl -s --head \"$DOWNLOAD_URL\" | head -n 1 | grep \"404 Not Found\" > \/dev\/null; then\r\n echo \"URL returned 404. Setting to alternative URL.\"\r\n DOWNLOAD_URL=\"https:\/\/wiki.tf2classic.com\/kachemak\/$L_V\"\r\nfi\r\n\r\necho \"Downloading tf2classic, This will take some time\" \r\necho \"Download URL is: ${DOWNLOAD_URL}\"\r\ncurl -sSL -o tf2classic.tar.zst ${DOWNLOAD_URL}\r\n\r\n#tar -xf tf2classic.tar.zst\r\n\r\ntar --use-compress-program=unzstd -xvf tf2classic.tar.zst\r\nrm -rf tf2classic.tar.zst\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 4ff2cd830d95d0cc13830a175f08a09b3a21bbd0 Mon Sep 17 00:00:00 2001 From: Enozi <54645039+enozii@users.noreply.github.com> Date: Thu, 14 Dec 2023 23:16:18 +0100 Subject: [PATCH 453/473] Updated Evrima Egg Updated to work with the new map --- .../steamcmd_servers/the_isle/evrima/egg-the-isle.json | 6 +++--- 1 file changed, 3 insertions(+), 3 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 0dd4ee8a..1c561779 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,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-07-01T11:11:33+02:00", + "exported_at": "2023-12-14T22:50:42+01: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.", @@ -24,7 +24,7 @@ }, "scripts": { "installation": { - "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 \"-----------------------------------------\"", + "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\nMapName=Gateway\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" } @@ -191,4 +191,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From 1fd11dee708030f2fe05d2350d6f58efa666e193 Mon Sep 17 00:00:00 2001 From: TunayAdaKaracan <61917035+TunayAdaKaracan@users.noreply.github.com> Date: Fri, 15 Dec 2023 15:47:10 +0300 Subject: [PATCH 454/473] Add files via upload --- software/rathole/README.md | 0 software/rathole/egg-rathole.json | 31 +++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 software/rathole/README.md create mode 100644 software/rathole/egg-rathole.json diff --git a/software/rathole/README.md b/software/rathole/README.md new file mode 100644 index 00000000..e69de29b diff --git a/software/rathole/egg-rathole.json b/software/rathole/egg-rathole.json new file mode 100644 index 00000000..fa6292c7 --- /dev/null +++ b/software/rathole/egg-rathole.json @@ -0,0 +1,31 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-12-15T15:44:13+03:00", + "name": "Rathole", + "author": "tunayada@gmail.com", + "description": "A rathole server egg designed to work with pterodactyl.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:rust_latest": "ghcr.io\/parkervcp\/yolks:rust_latest" + }, + "file_denylist": [], + "startup": ".\/rathole server.toml", + "config": { + "files": "{\r\n \"server.toml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"bind_addr=\\\"0.0.0.0:-1\\\"\": \"bind_addr=\\\"0.0.0.0:{{server.build.default.port}}\\\"\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": [\r\n \"Listening at \"\r\n ]\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y unzip wget\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nwget https:\/\/github.com\/rapiz1\/rathole\/releases\/download\/v0.5.0\/rathole-x86_64-unknown-linux-gnu.zip\r\n\r\nunzip rathole-x86_64-unknown-linux-gnu.zip\r\nrm rathole-x86_64-unknown-linux-gnu.zip\r\ntouch server.toml\r\nprintf \"[server]\\nbind_addr=\\\"0.0.0.0:-1\\\"\\n\\n[server.services.test]\\ntoken=\\\"a_hidden_token\\\"\\nbind_addr=\\\"0.0.0.0:3506\\\"\" > server.toml\r\n\r\nexport HOME=\/mnt\/server\r\n\r\necho -e \"install complete\"\r\nexit 0", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [] +} \ No newline at end of file From 8e9cb0673ab86d9c0249a0dec5c1756d1794fe29 Mon Sep 17 00:00:00 2001 From: TunayAdaKaracan <61917035+TunayAdaKaracan@users.noreply.github.com> Date: Fri, 15 Dec 2023 15:48:58 +0300 Subject: [PATCH 455/473] Update README.md --- software/rathole/README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/software/rathole/README.md b/software/rathole/README.md index e69de29b..b6414292 100644 --- a/software/rathole/README.md +++ b/software/rathole/README.md @@ -0,0 +1,7 @@ +# Rathole +A secure, stable and high-performance reverse proxy for NAT traversal, written in Rust + +rathole, like frp and ngrok, can help to expose the service on the device behind the NAT to the Internet, via a server with a public IP. + +## This egg only includes server side of rathole +Please refer to https://github.com/rapiz1/rathole for more information about rathole From f2c43710c3a5a8a600fb4880cc554128eec798c9 Mon Sep 17 00:00:00 2001 From: MarcoCoreDuo <90222533+MarcoCoreDuo@users.noreply.github.com> Date: Fri, 15 Dec 2023 18:27:00 +0100 Subject: [PATCH 456/473] Add ARM support and update variables --- game_eggs/yuzu-emu/yuzu-emu.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/game_eggs/yuzu-emu/yuzu-emu.json b/game_eggs/yuzu-emu/yuzu-emu.json index aa571676..601160ea 100644 --- a/game_eggs/yuzu-emu/yuzu-emu.json +++ b/game_eggs/yuzu-emu/yuzu-emu.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-02-26T13:57:20+01:00", + "exported_at": "2023-12-15T18:17:15+01:00", "name": "YuzuEmu", "author": "me@basvandenboom.dev", "description": "Egg for hosting dedicated Yuzu multiplayer rooms.", @@ -13,7 +13,7 @@ "ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian" }, "file_denylist": [], - "startup": ".\/yuzu-room --room-name \"{{ROOM_NAME}}\" --room-description \"{{ROOM_DESCRIPTION}}\" --preferred-game \"{{PREFERRED_GAME}}\" --preferred-game-id {{PREFERRED_GAME_ID}} --port {{SERVER_PORT}} --max_members {{MAX_MEMBERS}} --password \"{{PASSWORD}}\" --token \"{{YUZU_TOKEN}}\" --web-api-url \"https:\/\/api.yuzu-emu.org\/\"", + "startup": ".\/yuzu-room --room-name \"{{ROOM_NAME}}\" --room-description \"{{ROOM_DESCRIPTION}}\" --preferred-game \"{{PREFERRED_GAME}}\" --preferred-game-id {{PREFERRED_GAME_ID}} --port {{SERVER_PORT}} --max_members {{MAX_MEMBERS}} --password \"{{PASSWORD}}\" --token \"{{YUZU_TOKEN}}\" --web-api-url \"https:\/\/api.yuzu-emu.org\"", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Room is open\"\r\n}", @@ -23,7 +23,7 @@ "scripts": { "installation": { "script": "#!\/bin\/bash\r\n\r\n# Install build tools\r\necho \"deb http:\/\/deb.debian.org\/debian bullseye-backports main\" >> \/etc\/apt\/sources.list && \\\r\napt-get update && apt-get -y full-upgrade && \\\r\n apt-get install -y build-essential wget git ccache ninja-build libssl-dev pkg-config libarchive-tools \\\r\n cmake\/bullseye-backports cmake-data\/bullseye-backports\r\n\r\n\r\n# Shallow clone yuzu repository, since we delete the local copy afterwards\r\ngit clone --depth 1 -j4 --recursive --shallow-submodules https:\/\/github.com\/yuzu-emu\/yuzu-mainline.git \/mnt\/server\/yuzu-mainline\r\n\r\n# Download build tools and build\r\ngit clone --depth 1 https:\/\/github.com\/yuzu-emu\/yuzu-multiplayer-dedicated.git \/mnt\/server\/build-files\r\ncd \/mnt\/server\/yuzu-mainline && \/mnt\/server\/build-files\/.ci\/build.sh\r\n\r\n# Copy server binary to container root\r\ncp \/mnt\/server\/yuzu-mainline\/build\/bin\/yuzu-room \/mnt\/server\/yuzu-room\r\n\r\n# Delete git repo's to save disk space.\r\nrm -rf \/mnt\/server\/yuzu-mainline && rm -rf \/mnt\/server\/build-files", - "container": "ghcr.io\/pterodactyl\/installers:debian", + "container": "debian:bullseye-slim", "entrypoint": "bash" } }, @@ -35,7 +35,7 @@ "default_value": "My Yuzu Room", "user_viewable": true, "user_editable": true, - "rules": "required|string|max:20", + "rules": "required|string|max:60", "field_type": "text" }, { @@ -75,7 +75,7 @@ "default_value": "4", "user_viewable": true, "user_editable": true, - "rules": "required|int|max:12|min:1", + "rules": "required|int|max:16|min:1", "field_type": "text" }, { @@ -95,7 +95,7 @@ "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "nullable|string|max:60", + "rules": "nullable|string", "field_type": "text" } ] From f11f9bc084b51dfec615922b2d7533b1cf6839b9 Mon Sep 17 00:00:00 2001 From: MarcoCoreDuo <90222533+MarcoCoreDuo@users.noreply.github.com> Date: Fri, 15 Dec 2023 18:28:17 +0100 Subject: [PATCH 457/473] Rename yuzu-emu.json to egg-yuzu-emu.json --- game_eggs/yuzu-emu/{yuzu-emu.json => egg-yuzu-emu.json} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename game_eggs/yuzu-emu/{yuzu-emu.json => egg-yuzu-emu.json} (99%) diff --git a/game_eggs/yuzu-emu/yuzu-emu.json b/game_eggs/yuzu-emu/egg-yuzu-emu.json similarity index 99% rename from game_eggs/yuzu-emu/yuzu-emu.json rename to game_eggs/yuzu-emu/egg-yuzu-emu.json index 601160ea..9cf46c59 100644 --- a/game_eggs/yuzu-emu/yuzu-emu.json +++ b/game_eggs/yuzu-emu/egg-yuzu-emu.json @@ -99,4 +99,4 @@ "field_type": "text" } ] -} \ No newline at end of file +} From b21123b7cae534d02eb6ffcf4f3d2ae96fdfdc9e Mon Sep 17 00:00:00 2001 From: MarcoCoreDuo <90222533+MarcoCoreDuo@users.noreply.github.com> Date: Fri, 15 Dec 2023 21:45:25 +0100 Subject: [PATCH 458/473] Change container image to ghcr.io/parkervcp/installers:debian --- game_eggs/yuzu-emu/egg-yuzu-emu.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/yuzu-emu/egg-yuzu-emu.json b/game_eggs/yuzu-emu/egg-yuzu-emu.json index 9cf46c59..784709d7 100644 --- a/game_eggs/yuzu-emu/egg-yuzu-emu.json +++ b/game_eggs/yuzu-emu/egg-yuzu-emu.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-12-15T18:17:15+01:00", + "exported_at": "2023-12-15T21:41:29+01:00", "name": "YuzuEmu", "author": "me@basvandenboom.dev", "description": "Egg for hosting dedicated Yuzu multiplayer rooms.", @@ -23,7 +23,7 @@ "scripts": { "installation": { "script": "#!\/bin\/bash\r\n\r\n# Install build tools\r\necho \"deb http:\/\/deb.debian.org\/debian bullseye-backports main\" >> \/etc\/apt\/sources.list && \\\r\napt-get update && apt-get -y full-upgrade && \\\r\n apt-get install -y build-essential wget git ccache ninja-build libssl-dev pkg-config libarchive-tools \\\r\n cmake\/bullseye-backports cmake-data\/bullseye-backports\r\n\r\n\r\n# Shallow clone yuzu repository, since we delete the local copy afterwards\r\ngit clone --depth 1 -j4 --recursive --shallow-submodules https:\/\/github.com\/yuzu-emu\/yuzu-mainline.git \/mnt\/server\/yuzu-mainline\r\n\r\n# Download build tools and build\r\ngit clone --depth 1 https:\/\/github.com\/yuzu-emu\/yuzu-multiplayer-dedicated.git \/mnt\/server\/build-files\r\ncd \/mnt\/server\/yuzu-mainline && \/mnt\/server\/build-files\/.ci\/build.sh\r\n\r\n# Copy server binary to container root\r\ncp \/mnt\/server\/yuzu-mainline\/build\/bin\/yuzu-room \/mnt\/server\/yuzu-room\r\n\r\n# Delete git repo's to save disk space.\r\nrm -rf \/mnt\/server\/yuzu-mainline && rm -rf \/mnt\/server\/build-files", - "container": "debian:bullseye-slim", + "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } }, @@ -99,4 +99,4 @@ "field_type": "text" } ] -} +} \ No newline at end of file From 812c8225a8a6af084ce1297208fbf1a7dfd61989 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 16 Dec 2023 13:46:00 +0100 Subject: [PATCH 459/473] Now the beta should work --- .../rehlds/egg-custom-re-h-l-d-s-engine-game.json | 6 +++--- .../hlds_server/vanilla/egg-custom-h-l-d-s-engine-game.json | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json b/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json index 20dcbae6..22a17848 100644 --- a/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json +++ b/game_eggs/steamcmd_servers/hlds_server/rehlds/egg-custom-re-h-l-d-s-engine-game.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-12-14T11:07:10+01:00", + "exported_at": "2023-12-16T13:44:48+01:00", "name": "Custom ReHLDS Engine Game", "author": "shigbeard@ndlee.com", "description": "This option allows modifying the startup arguments and other details to run a custom HLDS based game on the panel, substituting the official Valve engine binaries with the ReHLDS binaries.", @@ -122,12 +122,12 @@ }, { "name": "Beta branch", - "description": "", + "description": "Leave empty for the public branch, for the legacy version select steam_legacy.", "env_variable": "SRCDS_BETAID", "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:,steam_legacy", + "rules": "nullable|string|in:,steam_legacy", "field_type": "text" }, { 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 515d0961..36ce3f3c 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": "2023-12-14T11:07:15+01:00", + "exported_at": "2023-12-16T13:44:10+01: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.", @@ -102,12 +102,12 @@ }, { "name": "Beta branch", - "description": "", + "description": "Leave empty for the public branch, for the legacy version select steam_legacy.", "env_variable": "SRCDS_BETAID", "default_value": "", "user_viewable": true, "user_editable": true, - "rules": "required|string|in:,steam_legacy", + "rules": "nullable|string|in:,steam_legacy", "field_type": "text" }, { From 99878e027931ba50991ffa88990f3b40a69f9f18 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sat, 16 Dec 2023 14:04:15 +0100 Subject: [PATCH 460/473] Do it right --- software/rathole/egg-rathole.json | 33 +++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/software/rathole/egg-rathole.json b/software/rathole/egg-rathole.json index fa6292c7..d6930146 100644 --- a/software/rathole/egg-rathole.json +++ b/software/rathole/egg-rathole.json @@ -4,10 +4,10 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-12-15T15:44:13+03:00", + "exported_at": "2023-12-16T14:03:42+01:00", "name": "Rathole", "author": "tunayada@gmail.com", - "description": "A rathole server egg designed to work with pterodactyl.", + "description": "A lightweight and high-performance reverse proxy for NAT traversal, written in Rust. An alternative to frp and ngrok.", "features": null, "docker_images": { "ghcr.io\/parkervcp\/yolks:rust_latest": "ghcr.io\/parkervcp\/yolks:rust_latest" @@ -15,17 +15,38 @@ "file_denylist": [], "startup": ".\/rathole server.toml", "config": { - "files": "{\r\n \"server.toml\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"bind_addr=\\\"0.0.0.0:-1\\\"\": \"bind_addr=\\\"0.0.0.0:{{server.build.default.port}}\\\"\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"server.toml\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"server.bind_addr\": \"\\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"server.services.test.token\": \"\\\"{{server.build.env.TOKEN}}\\\"\",\r\n \"server.services.test.bind_addr\": \"\\\"0.0.0.0:{{server.build.default.port}}\\\"\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": [\r\n \"Listening at \"\r\n ]\r\n}", "logs": "{}", "stop": "^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt update\r\napt install -y unzip wget\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nwget https:\/\/github.com\/rapiz1\/rathole\/releases\/download\/v0.5.0\/rathole-x86_64-unknown-linux-gnu.zip\r\n\r\nunzip rathole-x86_64-unknown-linux-gnu.zip\r\nrm rathole-x86_64-unknown-linux-gnu.zip\r\ntouch server.toml\r\nprintf \"[server]\\nbind_addr=\\\"0.0.0.0:-1\\\"\\n\\n[server.services.test]\\ntoken=\\\"a_hidden_token\\\"\\nbind_addr=\\\"0.0.0.0:3506\\\"\" > server.toml\r\n\r\nexport HOME=\/mnt\/server\r\n\r\necho -e \"install complete\"\r\nexit 0", - "container": "debian:buster-slim", + "script": "#!\/bin\/bash\r\n\r\n## get release info and download links\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/rapiz1\/rathole\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/rapiz1\/rathole\/releases\")\r\nARCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"amd64\" || echo \"aarch64\")\r\n\r\nif [\"${ARCH}\" == \"aarch64\"]; then\r\n MATCH=rathole-aarch64-unknown-linux-musl.zip\r\nelse\r\n MATCH=rathole-x86_64-unknown-linux-gnu.zip\r\nfi\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)\r\n fi\r\nfi\r\n\r\necho \"Download url: ${DOWNLOAD_URL}\"\r\ncurl -ssL -o rathole.zip ${DOWNLOAD_URL}\r\nunzip rathole.zip\r\nrm rathole.zip\r\ntouch server.toml\r\n\r\nprintf \"[server]\\nbind_addr=\\\"0.0.0.0:${SERVER_PORT}\\\"\\n\\n[server.services.test]\\ntoken=\\\"${TOKEN}\\\"\\nbind_addr=\\\"0.0.0.0:${SERVER_PORT}\\\"\" > server.toml\r\nchmod +x rathole\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", + "container": "ghcr.io\/parkervcp\/installers:debian", "entrypoint": "bash" } }, - "variables": [] + "variables": [ + { + "name": "Version", + "description": "", + "env_variable": "VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:20", + "field_type": "text" + }, + { + "name": "Secret", + "description": "Your random token", + "env_variable": "TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|min:5|max:60", + "field_type": "text" + } + ] } \ No newline at end of file From ffe15e56afff68cae710735544e16afef6e8c1d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Sun, 17 Dec 2023 09:44:46 +0100 Subject: [PATCH 461/473] Aoede Discord Bot (#2583) * update aoede * fix ark_survival_ascended in the steamcmd readme --------- Co-authored-by: cleme29 Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- README.md | 1 + bots/discord/README.md | 5 ++ bots/discord/aoede/README.md | 28 +++++++++ bots/discord/aoede/egg-aoede.json | 92 ++++++++++++++++++++++++++++ game_eggs/steamcmd_servers/README.md | 2 +- 5 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 bots/discord/aoede/README.md create mode 100644 bots/discord/aoede/egg-aoede.json diff --git a/README.md b/README.md index ea170249..6bdb2fda 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ If you are reading this it looks like you are looking to add an egg to your serv **Note:** these are actual Discord bot eggs, NOT language eggs. The old language eggs (discord-js-generic, discord-py-generic, etc) have been moved to the [generic languages section](#generic-languages). +* [Aoede](/bots/discord/aoede) Rust * [ATL Bot](/bots/discord/atlbot) Node JS * [Bastion](/bots/discord/bastion) Node JS * [CorpBot](/bots/discord/corpbot) Python diff --git a/bots/discord/README.md b/bots/discord/README.md index 070b5148..4b8a8789 100644 --- a/bots/discord/README.md +++ b/bots/discord/README.md @@ -2,6 +2,11 @@ ## Some of these bots support other services but are primarily Discord bots +### [Aoede](aoede) + +[codetheweb/aoede](https://github.com/codetheweb/aoede) +🎧 a self-hosted Spotify → Discord music bot + ### [ATLauncher Discord Bot](atlbot) [ATLauncher/discord-bot](https://github.com/ATLauncher/discord-bot) diff --git a/bots/discord/aoede/README.md b/bots/discord/aoede/README.md new file mode 100644 index 00000000..9d3bdbba --- /dev/null +++ b/bots/discord/aoede/README.md @@ -0,0 +1,28 @@ +# Aoede + +### Authors / Contributors + + + + + + +
+ +
cleme29 +
+
+ 💻 + 🔨 +
+ + +Special thanks to Red-Thirten for providing most of the installation script and to TubaApollo & QuintenQVD0 for the Muse egg that helped build most of this one ! + +## Their [Github](https://github.com/codetheweb/aoede) + +Aoede is a Discord music bot that directly streams from Spotify to Discord. The only interface is Spotify itself. + +## Server Ports + +There are no ports required for the Aoede bot diff --git a/bots/discord/aoede/egg-aoede.json b/bots/discord/aoede/egg-aoede.json new file mode 100644 index 00000000..e8242dbf --- /dev/null +++ b/bots/discord/aoede/egg-aoede.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-12-12T20:05:05+00:00", + "name": "Aoede", + "author": "contact@bldy.ovh", + "description": "Aoede is a Discord music bot that directly streams from Spotify to Discord. The only interface is Spotify itself.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:ubuntu": "ghcr.io\/parkervcp\/yolks:ubuntu" + }, + "file_denylist": [], + "startup": ".\/aoede", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Invite me with\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "## Credits: Red-Thirten (https:\/\/github.com\/lilkingjr1) for providing most of the installation script\r\n## Credits to TubaApollo & QuintenQVD0 for the Muse egg that helped build most of this one\r\napt-get update\r\napt-get install git curl jq cmake -y -qq\r\n\r\nGITHUB_PACKAGE=\"codetheweb\/aoede\"\r\n\r\n# Find GitHub download URL for Muse for specified version\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\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) | .tarball_url')\r\n else\r\n echo -e \"Could not find version \\\"${VERSION}\\\" of Muse. Defaulting to latest release...\"\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r '.tarball_url')\r\n fi\r\nfi\r\n\r\n# Download Aoede from GitHub & Extract\r\ncd \/mnt\/server\r\necho -e \"Downloading Aoede from GitHub...\"\r\ncurl -L ${DOWNLOAD_URL} -o aoede.tar.gz\r\necho -e \"Extracting Aoede from tarball...\"\r\ntar -xvzf aoede.tar.gz --strip-components=1\r\nrm aoede.tar.gz\r\n\r\n# Verify and clean up Aoede installation\r\nif [ ! -f Cargo.toml ]; then\r\n echo -e \"\\nFailed to download release: ${DOWNLOAD_URL}\\n\"\r\n exit 1\r\nfi\r\nrm -rf .dockerignore Dockerfile .gitignore .github\/\r\ncargo build --release\r\nmv target\/release\/aoede .\r\ncargo clean\r\n\r\n\r\necho -e \"\\nAoede Successfully Installed!\"", + "container": "rust:1.74-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Token", + "description": "Discord Bot Token", + "env_variable": "DISCORD_TOKEN", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Username", + "description": "Spotify Username", + "env_variable": "SPOTIFY_USERNAME", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Password", + "description": "Spotify Password", + "env_variable": "SPOTIFY_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Discord User ID", + "description": "Discord user ID of the user you want Aoede to follow", + "env_variable": "DISCORD_USER_ID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Autoplay", + "description": "Autoplay similar songs when your music ends \r\nValue : true\/false", + "env_variable": "SPOTIFY_BOT_AUTOPLAY", + "default_value": "false", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|in:true,false", + "field_type": "text" + }, + { + "name": "Version", + "description": "Specify a version, for example: \"v0.7.0\"\r\nFor the latest version, type \"latest\"", + "env_variable": "VERSION", + "default_value": "latest", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + } + ] +} \ No newline at end of file diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index e6be1bf4..4580c282 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -8,7 +8,7 @@ This is a collection of servers that use SteamCMD to install. ## ARK: Survival Ascended -[ARK: Survival Ascended](ark_survival_asceneded) +[ARK: Survival Ascended](ark_survival_ascended) ## ARK: Survival Evolved From 55d7bdc2cda64dfd29dc20421f8765718d1b904f Mon Sep 17 00:00:00 2001 From: Badbird5907 <50347938+Badbird5907@users.noreply.github.com> Date: Sun, 17 Dec 2023 03:50:22 -0500 Subject: [PATCH 462/473] Use grafana server instead of grafana-server (#2604) * Use grafana server instead of grafana-server Resolves Deprecation warning: The standalone 'grafana-server' program is deprecated and will be removed in the future. Please update all uses of 'grafana-server' to 'grafana server' --- software/grafana/egg-grafana.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/software/grafana/egg-grafana.json b/software/grafana/egg-grafana.json index 6cd70acb..63975c15 100644 --- a/software/grafana/egg-grafana.json +++ b/software/grafana/egg-grafana.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2022-12-29T16:30:15+01:00", + "exported_at": "2023-12-13T14:45:01-05:00", "name": "Grafana", "author": "p.zarrad@outlook.de", "description": "The open and composable observability and data visualization platform.\r\nVisualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.", @@ -13,7 +13,7 @@ "ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian" }, "file_denylist": [], - "startup": ".\/bin\/grafana-server web", + "startup": ".\/bin\/grafana server web", "config": { "files": "{\r\n \"conf\/defaults.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"server.http_port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"HTTP Server Listen\"\r\n}", From e38e271be458f71007f08071ae4f2ca072621680 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Sun, 17 Dec 2023 15:57:00 +0100 Subject: [PATCH 463/473] use 172.18.0.1 --- game_eggs/minecraft/proxy/java/velocity/velocity.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/minecraft/proxy/java/velocity/velocity.toml b/game_eggs/minecraft/proxy/java/velocity/velocity.toml index 0f18208b..0dbe3049 100644 --- a/game_eggs/minecraft/proxy/java/velocity/velocity.toml +++ b/game_eggs/minecraft/proxy/java/velocity/velocity.toml @@ -72,9 +72,9 @@ enable-player-address-logging = true [servers] # Configure your servers here. Each key represents the server's name, and the value # represents the IP address of the server to connect to. -lobby = "127.0.0.1:30066" -factions = "127.0.0.1:30067" -minigames = "127.0.0.1:30068" +lobby = "172.18.0.1:30066" +factions = "172.18.0.1:30067" +minigames = "172.18.0.1:30068" # In what order we should try servers when a player logs in or is kicked from a server. try = [ From 16845ecd1e5bc4a2206cd5efc0b3ac0d11628f52 Mon Sep 17 00:00:00 2001 From: Quinten Date: Mon, 18 Dec 2023 17:34:57 +0100 Subject: [PATCH 464/473] add Colony Survival --- README.md | 1 + game_eggs/README.md | 1 + game_eggs/steamcmd_servers/README.md | 4 + .../colony_survival/README.md | 23 +++++ .../colony_survival/egg-colony-survival.json | 92 +++++++++++++++++++ 5 files changed, 121 insertions(+) create mode 100644 game_eggs/steamcmd_servers/colony_survival/README.md create mode 100644 game_eggs/steamcmd_servers/colony_survival/egg-colony-survival.json diff --git a/README.md b/README.md index 6bdb2fda..9993b67d 100644 --- a/README.md +++ b/README.md @@ -253,6 +253,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [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) +* [Colony Survival](game_eggs/steamcmd_servers/colony_survival) * [Conan Exiles](game_eggs/steamcmd_servers/conan_exiles) * [Core Keeper](game_eggs/steamcmd_servers/core_keeper) * [Counter-Strike](game_eggs/steamcmd_servers/counter_strike/) diff --git a/game_eggs/README.md b/game_eggs/README.md index dbff044e..db66faff 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -145,6 +145,7 @@ * [BATTALION: Legacy](steamcmd_servers/battalion_legacy) * [Black Mesa](steamcmd_servers/black_mesa) * [Citadel: Forged with Fire](steamcmd_servers/citadel) +* [Colony Survival](steamcmd_servers/colony_survival) * [Conan Exiles](steamcmd_servers/conan_exiles) * [Core Keeper](steamcmd_servers/core_keeper) * [Counter-Strike](steamcmd_servers/counter_strike/) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index 4580c282..655a1566 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -48,6 +48,10 @@ This is a collection of servers that use SteamCMD to install. [citadel](citadel) +## Colony Survival + +[Colony Survival](colony_survival) + ## Conan Exiles [Conan Exiles](conan_exiles) diff --git a/game_eggs/steamcmd_servers/colony_survival/README.md b/game_eggs/steamcmd_servers/colony_survival/README.md new file mode 100644 index 00000000..8dfccc2e --- /dev/null +++ b/game_eggs/steamcmd_servers/colony_survival/README.md @@ -0,0 +1,23 @@ +# Colony Survival + +## [Documentation](https://colonysurvival.fandom.com/wiki/Dedicated_Server) + + +## Installation/System Requirements + +| | Bare Minimum | Recommended | +|---------|---------|---------| +| Processor | *Any AMD64 will work* | ** | +| RAM | *2 GiB* | *4 GiB* | +| Storage | *2 GiB* | *3 GiB* | +| Network | *Anything will work* | ** | +| Game Ownership | *not needed* | *Needed for mods but the egg does not support it* | + +## Server Ports + +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Game | 27004 | +| Steam | 27005 | diff --git a/game_eggs/steamcmd_servers/colony_survival/egg-colony-survival.json b/game_eggs/steamcmd_servers/colony_survival/egg-colony-survival.json new file mode 100644 index 00000000..02711c98 --- /dev/null +++ b/game_eggs/steamcmd_servers/colony_survival/egg-colony-survival.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-12-18T17:27:56+01:00", + "name": "Colony Survival", + "author": "josdekurk@gmail.com", + "description": "Colony Survival is a unique first-person strategy game developed by a two-man team. Build your own colony in a voxel world. Command guards, farmers, miners and other colonists. Defend your colony against the horde of monsters that attacks every night!", + "features": null, + "docker_images": { + "SteamCMD": "ghcr.io\/parkervcp\/steamcmd:debian" + }, + "file_denylist": [], + "startup": ".\/colonyserver.x86_64 -batchmode -nographics +server.world \"{{WORLD_NAME}}\" +server.networktype SteamOnline +server.name \"{{SERVER_NAME}}\" +server.maxplayers {{MAX_PLAYERS}} +server.gameport {{SERVER_PORT}} +server.ip 0.0.0.0 +server.steamport {{SERVER_STEAMPORT}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Starting networking type\"\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## 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} +app_update ${SRCDS_APPID} 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## 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": "748090", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:748090", + "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": "World name", + "description": "", + "env_variable": "WORLD_NAME", + "default_value": "Pterodactyl", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + }, + { + "name": "Server name", + "description": "", + "env_variable": "SERVER_NAME", + "default_value": "Pterodactyl", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|max:32", + "field_type": "text" + }, + { + "name": "Maximum Players", + "description": "", + "env_variable": "MAX_PLAYERS", + "default_value": "10", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|min:1|max:64", + "field_type": "text" + }, + { + "name": "Server steamport", + "description": "", + "env_variable": "SERVER_STEAMPORT", + "default_value": "27005", + "user_viewable": true, + "user_editable": false, + "rules": "required|string|", + "field_type": "text" + } + ] +} \ No newline at end of file From ecb20e9c975e935cf786990283df3e585af1f3e2 Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Mon, 18 Dec 2023 18:44:48 +0100 Subject: [PATCH 465/473] Mariadb use ghcr.io image --- database/sql/mariadb/egg-maria-d-b.json | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/database/sql/mariadb/egg-maria-d-b.json b/database/sql/mariadb/egg-maria-d-b.json index fb03ff41..524dbc02 100644 --- a/database/sql/mariadb/egg-maria-d-b.json +++ b/database/sql/mariadb/egg-maria-d-b.json @@ -1,13 +1,18 @@ { "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { - "version": "PTDL_v1" + "version": "PTDL_v2", + "update_url": null }, - "exported_at": "2019-11-06T18:52:33-05:00", + "exported_at": "2023-12-18T18:44:14+01:00", "name": "MariaDB", "author": "parker@parkervcp.com", "description": "One of the most popular database servers. Made by the original developers of MySQL. Guaranteed to stay open source.", - "image": "quay.io\/parkervcp\/pterodactyl-images:db_mariadb", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/yolks:mariadb_10.3": "ghcr.io\/parkervcp\/yolks:mariadb_10.3" + }, + "file_denylist": [], "startup": "{ \/usr\/sbin\/mysqld & } && sleep 5 && mysql -u root", "config": { "files": "{\r\n \".my.cnf\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"port\": \"port = {{server.build.default.port}}\",\r\n \"bind-address\": \"bind-address=0.0.0.0\"\r\n }\r\n }\r\n}", From 966fbe634cffef6f8968e9e2065eb90c7b3303ed Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Mon, 18 Dec 2023 17:47:47 -0800 Subject: [PATCH 466/473] Update README.md --- .../steamcmd_servers/arma/arma3/README.md | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/arma/arma3/README.md b/game_eggs/steamcmd_servers/arma/arma3/README.md index b5570650..1a391d89 100644 --- a/game_eggs/steamcmd_servers/arma/arma3/README.md +++ b/game_eggs/steamcmd_servers/arma/arma3/README.md @@ -75,14 +75,14 @@ ___ ### Installation Requirements -- A valid, **real** Steam account, with **Steam Guard turned off**, is required to install the server (default "anonymous" login cannot be used). For security reasons it is [recommended by Valve](https://developer.valvesoftware.com/wiki/SteamCMD#With_a_Steam_account) that you create a new Steam account just for your dedicated servers. This account *does not* need to own Arma 3. +- A valid, **real** Steam account, with **Steam Guard turned off**, is required to install the server (default "anonymous" login cannot be used). This account *does not* need to own Arma 3. For security reasons it is [recommended by Valve](https://developer.valvesoftware.com/wiki/SteamCMD#With_a_Steam_account) that you create a new Steam account just for your dedicated servers. - For automatic Steam Workshop mod downloading to work, the Steam account *does* need to own Arma 3. However, this is optional functionality, and mods can be manually uploaded to the server if desired. Hosts may feel free to change the "Disable Mod Downloads/Updates" variable to `1` if they would not like to offer it's functionality to clients. ___ ### Server Ports -Default server ports are listed below, but the Main port can be any port. There are three more ports after the Main port are relative to the Main port (For example: The BattlEye port is always 4 ports higher than the main port). **All four ports are required for normal server behavior.** It is [recommended](https://community.bistudio.com/wiki/Arma_3:_Dedicated_Server#Port_Forwarding) that each server be 100 ports separate from each other. +Default server ports are listed below, but the Main port can be any port. There are three more ports after the Main port that are relative to the Main port (For example: The BattlEye port is always 4 ports higher than the Main port). **All four ports are required for normal server behavior.** It is [recommended](https://community.bistudio.com/wiki/Arma_3:_Dedicated_Server#Port_Forwarding) that each server be 100 ports separate from each other. | Port | Default (UDP) | |---------|---------| @@ -105,6 +105,26 @@ ___ ___ +### RCON + +External/Compatible RCON clients can be used to connect to the server if the following requirements are met: + +1. An extra port is forwarded and assigned to the server in Pterodactyl. It is recommended to use the +5 port from the Main port (ie. if Main port is 2032, RCON port would be 2037). The +3 port **cannot** be used as it is reserved. +2. `server.cfg` has `BattlEye = 1;`. Unfortunately, RCON cannot be used with BattlEye off. +3. A `beserver_x64.cfg` file (or `beserver.cfg` if using 32-bit) is added to `/home/container/battleye/launch` with the following content: +``` +RConPassword your_rcon_password +RConPort your_rcon_port +``` + +___ + +### Mounting Workshop Mods + +Server hosts may wish to save space and avoid download issues by mounting large and/or common mods. Unfortunately, Arma only allows mods to be loaded from directories down-stream of the server binary (ie. `/home/container/*`. Docker limitations disallow Pterodactyl from mounting mounts into `/home/container/*`. The only way around this that I can think of is to create a symlink with a destination that is outside of this location. If anyone knows a way around this, please open an Issue to let us know. + +___ + ### Recommended Egg Modifications The following are highly recommended variable modifications you can make to the egg after importing it to your panel. While viewing this egg, simply go to the "Variables" tab of the egg editor to make these changes. From bf833a7c5acbf02ef384b0fd8e6e953c698c2a79 Mon Sep 17 00:00:00 2001 From: Red-Thirten Date: Mon, 18 Dec 2023 18:27:53 -0800 Subject: [PATCH 467/473] Fix RAM requirement in README Update 8's switch to UE5 and multiplayer improvements have removed the large RAM requirements. New bare minimum numbers are based on a new world save and a lightly progressed save. Recommended numbers are based on an end-game save. --- game_eggs/steamcmd_servers/satisfactory/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/satisfactory/README.md b/game_eggs/steamcmd_servers/satisfactory/README.md index df04e1d2..e2315202 100644 --- a/game_eggs/steamcmd_servers/satisfactory/README.md +++ b/game_eggs/steamcmd_servers/satisfactory/README.md @@ -99,11 +99,11 @@ ___ ___ ### Installation/System Requirements -*Note (9/20/22): Update 6 drastically increased RAM requirement. Servers given less than minimum have a high chance of crashing.* + | | Bare Minimum | Recommended | |---------|---------|---------| | Processor | Recent x86/64 (AMD/Intel) processor. No 32 bit or ARM support. | Favours higher single-core performance over multiple cores. | -| RAM | 10240-12288 MiB | 16384-24576 MiB (especially for 4 players or large save files) | +| RAM | 1536-2048 MiB | 6144-12288 MiB (especially for 4 players or large save files) | | Storage | 5 GB | 7-10 GB (or more, depending on save size or frequency) | | Network | 0.512 Mbit/s | 1-5 Mbit/s ([may require server *and* client config tweaks](https://satisfactory.fandom.com/wiki/Multiplayer#Temporary_lag_solution)) | | Host OS | Most stable Linux OS branches should work | Using the latest kernel version for your installed OS can prevent some edge-case installation/boot issues. | From 1a472e8a1941f4a3b4a203add17ec9f8b28279fb Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Tue, 19 Dec 2023 09:55:07 +0100 Subject: [PATCH 468/473] rename to MariaDB 10.3 --- .../{egg-maria-d-b.json => egg-maria-d-b10-3.json} | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename database/sql/mariadb/{egg-maria-d-b.json => egg-maria-d-b10-3.json} (94%) diff --git a/database/sql/mariadb/egg-maria-d-b.json b/database/sql/mariadb/egg-maria-d-b10-3.json similarity index 94% rename from database/sql/mariadb/egg-maria-d-b.json rename to database/sql/mariadb/egg-maria-d-b10-3.json index 524dbc02..a5b82d83 100644 --- a/database/sql/mariadb/egg-maria-d-b.json +++ b/database/sql/mariadb/egg-maria-d-b10-3.json @@ -4,13 +4,13 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-12-18T18:44:14+01:00", - "name": "MariaDB", + "exported_at": "2023-12-19T09:54:17+01:00", + "name": "MariaDB 10.3", "author": "parker@parkervcp.com", "description": "One of the most popular database servers. Made by the original developers of MySQL. Guaranteed to stay open source.", "features": null, "docker_images": { - "ghcr.io\/parkervcp\/yolks:mariadb_10.3": "ghcr.io\/parkervcp\/yolks:mariadb_10.3" + "MariaDB 10.3": "ghcr.io\/parkervcp\/yolks:mariadb_10.3" }, "file_denylist": [], "startup": "{ \/usr\/sbin\/mysqld & } && sleep 5 && mysql -u root", @@ -28,4 +28,4 @@ } }, "variables": [] -} +} \ No newline at end of file From d9ffb3a108ff73021fefb0a53e33d21c539946bf Mon Sep 17 00:00:00 2001 From: Nikolas <79797771+Nykolos@users.noreply.github.com> Date: Fri, 22 Dec 2023 22:18:22 +0100 Subject: [PATCH 469/473] Update README.md --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index 2b3002a4..9a38a858 100644 --- a/README.md +++ b/README.md @@ -165,12 +165,8 @@ If you are reading this it looks like you are looking to add an egg to your serv [Mindustry](game_eggs/mindustry) -* [Mindustry](game_eggs/mindustry/mindustry) - [Minetest](game_eggs/minetest) (including MTG) -* [Minetest](game_eggs/minetest) - [Minecraft](game_eggs/minecraft) * [Bedrock](game_eggs/minecraft/bedrock) Servers for Bedrock Minecraft (Windows, mobile, console) From 1b36c871d0c9742f15652966e35e32e0f0d50f45 Mon Sep 17 00:00:00 2001 From: engels74 <67713433+vp-en@users.noreply.github.com> Date: Mon, 25 Dec 2023 01:31:32 +0100 Subject: [PATCH 470/473] Adding `HumanitZ` --- README.md | 1 + game_eggs/README.md | 1 + game_eggs/steamcmd_servers/README.md | 4 + game_eggs/steamcmd_servers/humanitz/README.md | 32 ++ .../humanitz/egg-humanit-z.json | 472 ++++++++++++++++++ 5 files changed, 510 insertions(+) create mode 100644 game_eggs/steamcmd_servers/humanitz/README.md create mode 100644 game_eggs/steamcmd_servers/humanitz/egg-humanit-z.json diff --git a/README.md b/README.md index 9a38a858..04a2f475 100644 --- a/README.md +++ b/README.md @@ -267,6 +267,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [HLDS Vanilla](game_eggs/steamcmd_servers/hlds_server/vanilla) * [ReHLDS](game_eggs/steamcmd_servers/hlds_server/rehlds) * [Holdfast: Nations At War](game_eggs/steamcmd_servers/holdfast) +* [HumanitZ](game_eggs/steamcmd_servers/humanitz) * [Hurtworld](game_eggs/steamcmd_servers/hurtworld) * [Icarus](game_eggs/steamcmd_servers/icarus) * [Insurgency: Sandstorm](game_eggs/steamcmd_servers/insurgency_sandstorm) diff --git a/game_eggs/README.md b/game_eggs/README.md index 3244738f..5cceeef3 100644 --- a/game_eggs/README.md +++ b/game_eggs/README.md @@ -163,6 +163,7 @@ * [HLDS Vanilla](steamcmd_servers/hlds_server/vanilla) * [ReHLDS](steamcmd_servers/hlds_server/rehlds) * [Holdfast: Nations At War](steamcmd_servers/holdfast) +* [HumanitZ](steamcmd_servers/humanitz) * [Hurtworld](steamcmd_servers/hurtworld) * [Icarus](steamcmd_servers/icarus) * [Insurgency: Sandstorm](steamcmd_servers/insurgency_sandstorm) diff --git a/game_eggs/steamcmd_servers/README.md b/game_eggs/steamcmd_servers/README.md index e580ad2d..a23dc843 100644 --- a/game_eggs/steamcmd_servers/README.md +++ b/game_eggs/steamcmd_servers/README.md @@ -106,6 +106,10 @@ This is a collection of servers that use SteamCMD to install. [Holdfast: Nations At War](holdfast) +## HumanitZ + +[HumanitZ](humanitz) + ## Hurtworld [Hurtworld](hurtworld) diff --git a/game_eggs/steamcmd_servers/humanitz/README.md b/game_eggs/steamcmd_servers/humanitz/README.md new file mode 100644 index 00000000..b80b1266 --- /dev/null +++ b/game_eggs/steamcmd_servers/humanitz/README.md @@ -0,0 +1,32 @@ +# HumanitZ + + +## [Documentation](https://store.steampowered.com/app/2728330/HZ_SERVER) + + +HumanitZ is a co-op, isometric, open world survival game in a world ended by the zombie outbreak. As one of the few human survivors, try to last as long as “humanly” possible. The past can’t be changed, but you can make a difference today for the future of humanity. + +## Install notes + +The current version of the server software is slightly buggy, and as of this writing has no proper documentation. + +They include a `README.txt` file with the server software, that includes a description of most of the variables, but not more than that. This is only obtainable via the SteamCMD tool. + +The `README.txt` also specifies that you can use variables such as `-steamservername` appended to the launch command, but that doesn't work properly. Therefore this egg is designed to manually parse/edit the `GameServerSettings.ini` file, with the values entered in the variables in Pterodactyl. + +## Installation/System Requirements + +Requires a 64-bit processor and operating system + +## Server Ports + +Ports required to run the server in a table format. + +| Port | default | +|--------------|---------| +| Game Port | 7777 | +| Query Port | 27015 | + +### Notes + +7777 is the default port, but any port can be used. diff --git a/game_eggs/steamcmd_servers/humanitz/egg-humanit-z.json b/game_eggs/steamcmd_servers/humanitz/egg-humanit-z.json new file mode 100644 index 00000000..0e0a43ab --- /dev/null +++ b/game_eggs/steamcmd_servers/humanitz/egg-humanit-z.json @@ -0,0 +1,472 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v2", + "update_url": null + }, + "exported_at": "2023-12-25T01:52:34+01:00", + "name": "HumanitZ", + "author": "admin@marx.ps", + "description": "HumanitZ is a co-op, isometric, open world survival game in a world ended by the zombie outbreak. As one of the few human survivors, try to last as long as \u201chumanly\u201d possible. The past can\u2019t be changed, but you can make a difference today for the future of humanity.", + "features": null, + "docker_images": { + "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" + }, + "file_denylist": [], + "startup": ".\/TSSGame\/Binaries\/Linux\/TSSGameServer-Linux-Shipping TSSGame -log -port={{SERVER_PORT}} -queryport={{QUERY_PORT}}", + "config": { + "files": "{\r\n \"TSSGame\/GameServerSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName=\": \"ServerName={{server.build.env.ServerName}}\",\r\n \"Password=\\\"\\\"\": \"Password=\\\"{{server.build.env.Password}}\\\"\",\r\n \"SaveName=\\\"\\\"\": \"SaveName=\\\"{{server.build.env.SaveName}}\\\"\",\r\n \"AdminPass=\\\"\\\"\": \"AdminPass=\\\"{{server.build.env.AdminPass}}\\\"\",\r\n \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MaxPlayers}}\",\r\n \"OnlyAllowedPlayers=\": \"OnlyAllowedPlayers={{server.build.env.OnlyAllowedPlayers}}\",\r\n \"SaveIntervalSec=\": \"SaveIntervalSec={{server.build.env.SaveIntervalSec}}\",\r\n \"NoDeathFeedback=\": \"NoDeathFeedback={{server.build.env.NoDeathFeedback}}\",\r\n \"PermaDeath=\": \"PermaDeath={{server.build.env.PermaDeath}}\",\r\n \"OnDeath=\": \"OnDeath={{server.build.env.OnDeath}}\",\r\n \"PVP=\": \"PVP={{server.build.env.PVP}}\",\r\n \"ClearInfection=\": \"ClearInfection={{server.build.env.ClearInfection}}\",\r\n \"EagleEye=\": \"EagleEye={{server.build.env.EagleEye}}\",\r\n \"AirDrop=\": \"AirDrop={{server.build.env.AirDrop}}\",\r\n \"WeaponBreak=\": \"WeaponBreak={{server.build.env.WeaponBreak}}\",\r\n \"MultiplayerSleep=\": \"MultiplayerSleep={{server.build.env.MultiplayerSleep}}\",\r\n \"LootRespawn=\": \"LootRespawn={{server.build.env.LootRespawn}}\",\r\n \"LootRespawnTimer=\": \"LootRespawnTimer={{server.build.env.LootRespawnTimer}}\",\r\n \"LootRarity=\": \"LootRarity={{server.build.env.LootRarity}}\",\r\n \"AirDropInterval=\": \"AirDropInterval={{server.build.env.AirDropInterval}}\",\r\n \"ZombieDiffHealth=\": \"ZombieDiffHealth={{server.build.env.ZombieDiffHealth}}\",\r\n \"ZombieDiffSpeed=\": \"ZombieDiffSpeed={{server.build.env.ZombieDiffSpeed}}\",\r\n \"ZombieDiffDamage=\": \"ZombieDiffDamage={{server.build.env.ZombieDiffDamage}}\",\r\n \"HumanDifficulty=\": \"HumanDifficulty={{server.build.env.HumanDifficulty}}\",\r\n \"ZombieAmountMulti=\": \"ZombieAmountMulti={{server.build.env.ZombieAmountMulti}}\",\r\n \"HumanAmountMulti=\": \"HumanAmountMulti={{server.build.env.HumanAmountMulti}}\",\r\n \"ZombieDogMulti=\": \"ZombieDogMulti={{server.build.env.ZombieDogMulti}}\",\r\n \"ZombieRespawnTimer=\": \"ZombieRespawnTimer={{server.build.env.ZombieRespawnTimer}}\",\r\n \"HumanRespawnTimer=\": \"HumanRespawnTimer={{server.build.env.HumanRespawnTimer}}\",\r\n \"AnimalRespawnTimer=\": \"AnimalRespawnTimer={{server.build.env.AnimalRespawnTimer}}\",\r\n \"StartingSeason=\": \"StartingSeason={{server.build.env.StartingSeason}}\",\r\n \"DaysPerSeason=\": \"DaysPerSeason={{server.build.env.DaysPerSeason}}\",\r\n \"DayDur=\": \"DayDur={{server.build.env.DayDur}}\",\r\n \"NightDur=\": \"NightDur={{server.build.env.NightDur}}\",\r\n \"VitalDrain=\": \"VitalDrain={{server.build.env.VitalDrain}}\",\r\n \"DogEnabled=\": \"DogEnabled={{server.build.env.DogEnabled}}\",\r\n \"DogNum=\": \"DogNum={{server.build.env.DogNum}}\",\r\n \"RecruitDog=\": \"RecruitDog={{server.build.env.RecruitDog}}\",\r\n \"BuildingHealth=\": \"BuildingHealth={{server.build.env.BuildingHealth}}\",\r\n \"CompanionHealth=\": \"CompanionHealth={{server.build.env.CompanionHealth}}\",\r\n \"CompanionDmg=\": \"CompanionDmg={{server.build.env.CompanionDmg}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"LogKaiHelper: Session created!\"\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 \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## making server files executable\r\nchmod +x \/mnt\/server\/TSSGame\/Binaries\/Linux\/TSSGameServer-Linux-Shipping\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 App ID", + "description": "Steam App ID of HumanitZ Server", + "env_variable": "SRCDS_APPID", + "default_value": "2728330", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:2728330", + "field_type": "text" + }, + { + "name": "Auto Update", + "description": "Enable automatic updates on boot", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "[REQUIRED] Steam Beta Branch", + "description": "This ensures the script will grab the Linux version of the server", + "env_variable": "SRCDS_BETAID", + "default_value": "linuxbranch", + "user_viewable": false, + "user_editable": false, + "rules": "required|string|in:linuxbranch", + "field_type": "text" + }, + { + "name": "[REQUIRED] Steam Query Port", + "description": "Steam Query Port", + "env_variable": "QUERY_PORT", + "default_value": "27015", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Server Name", + "description": "Name of the server", + "env_variable": "ServerName", + "default_value": "My HumanitZ Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Server Password", + "description": "Server password (if any)", + "env_variable": "Password", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Save Name", + "description": "Name of the save-file for the server", + "env_variable": "SaveName", + "default_value": "DedicatedSaveMP", + "user_viewable": true, + "user_editable": true, + "rules": "required|string", + "field_type": "text" + }, + { + "name": "Admin Password", + "description": "Password for the admin", + "env_variable": "AdminPass", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string", + "field_type": "text" + }, + { + "name": "Max Players", + "description": "Maximum number of players allowed", + "env_variable": "MaxPlayers", + "default_value": "32", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Only Allowed Players", + "description": "Restrict server to allowed players only", + "env_variable": "OnlyAllowedPlayers", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Saving World Interval", + "description": "Save game every X seconds", + "env_variable": "SaveIntervalSec", + "default_value": "300", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Permanent Death", + "description": "0=Off, 1=Individual, 2=All", + "env_variable": "PermaDeath", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "On Death", + "description": "0=Only lose backpack and weapon in hand, 1=Previous + pockets and backpack, 2=All previous + Equipment", + "env_variable": "OnDeath", + "default_value": "2", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "PvP", + "description": "Enable or Disable PvP\r\n0= Off, 1= On", + "env_variable": "PVP", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Clear Infection", + "description": "0=Respawning does not rid you of the infection, 1=You lose it upon respawning", + "env_variable": "ClearInfection", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Eagle Eye", + "description": "1=Able to purchase the eagle eye skill, 0=You can't", + "env_variable": "EagleEye", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Air Drop", + "description": "1=Enabled, 0=Disabled", + "env_variable": "AirDrop", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Weapon Durability", + "description": "1=Weapons break when reaching 0% durability except crow bar, 0=Only improvised break at 0% durability", + "env_variable": "WeaponBreak", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Multiplayer Sleep", + "description": "1=Time passes if everyone performs the sleep emote at the same time, 0=Passing time is disabled", + "env_variable": "MultiplayerSleep", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Building Health", + "description": "Nothing provided in docs regarding this variable. Default value is \"1\".", + "env_variable": "BuildingHealth", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Loot Respawn", + "description": "If loot respawns, how long does it take in seconds", + "env_variable": "LootRespawnTimer", + "default_value": "90", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Loot Rarity", + "description": "0=Scarce, 1=Low, 2=Default, 3=Plentiful, 4=Abundant", + "env_variable": "LootRarity", + "default_value": "2", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Air Drop Interval", + "description": "Air drop every X day", + "env_variable": "AirDropInterval", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Zombie Difficulty (Health)", + "description": "0=Very Easy, 1=Easy, 2=Default, 3=Hard, 4=Very Hard, 5=Nightmare", + "env_variable": "ZombieDiffHealth", + "default_value": "3", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Zombie Difficulty (Speed)", + "description": "0=Very Easy, 1=Easy, 2=Default, 3=Hard, 4=Very Hard, 5=Nightmare", + "env_variable": "ZombieDiffSpeed", + "default_value": "3", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Zombie Difficulty (Damage)", + "description": "0=Very Easy, 1=Easy, 2=Default, 3=Hard, 4=Very Hard, 5=Nightmare", + "env_variable": "ZombieDiffDamage", + "default_value": "3", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Human Difficulty", + "description": "0=Very Easy, 1=Easy, 2=Default, 3=Hard, 4=Very Hard, 5=Nightmare", + "env_variable": "HumanDifficulty", + "default_value": "3", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Zombie Amount Multiplier", + "description": "Zombie spawn count multiplier", + "env_variable": "ZombieAmountMulti", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Human Amount Multiplier", + "description": "Hostile humans spawn count multiplier", + "env_variable": "HumanAmountMulti", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Zombie Dog Multiplier", + "description": "Zombie dog spawn count multiplier", + "env_variable": "ZombieDogMulti", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Zombie Respawn Timer", + "description": "Time in minutes for zombies to respawn", + "env_variable": "ZombieRespawnTimer", + "default_value": "90", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Human Respawn Timer", + "description": "Time in minutes for hostile humans to respawn", + "env_variable": "HumanRespawnTimer", + "default_value": "90", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Animal Respawn Timer", + "description": "Time in minutes for animals to respawn", + "env_variable": "AnimalRespawnTimer", + "default_value": "90", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Starting Season", + "description": "0=Summer, 1=Autum, 2=Winter, 3=Spring", + "env_variable": "StartingSeason", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Days Per Season", + "description": "How many days each season lasts", + "env_variable": "DaysPerSeason", + "default_value": "5", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Day Duration", + "description": "Day duration in minutes", + "env_variable": "DayDur", + "default_value": "40", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Night Duration", + "description": "Night duration in minutes", + "env_variable": "NightDur", + "default_value": "20", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Vital Drain", + "description": "How fast your vitals drain 0=Slow, 1=Normal, 2=Fast", + "env_variable": "VitalDrain", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Dog Companions Enabled", + "description": "Enable finding dog companions you can recruit", + "env_variable": "DogEnabled", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Dog Companion Amount", + "description": "Number of companion dogs that could spawn randomly", + "env_variable": "DogNum", + "default_value": "4", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Recruit Companion Dogs", + "description": "Allow players to recruit companion dog", + "env_variable": "RecruitDog", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + }, + { + "name": "Companion Health", + "description": "Dog companion health - 0=Low 1=Default 2=High", + "env_variable": "CompanionHealth", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "Companion Damage", + "description": "Dog companion damage - 0=Low 1=Default 2=High", + "env_variable": "CompanionDmg", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|numeric", + "field_type": "text" + }, + { + "name": "No Death Feedback", + "description": "0 to enable player died notification in chat - 1 to disable player died notification in chat.", + "env_variable": "NoDeathFeedback", + "default_value": "0", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean", + "field_type": "text" + } + ] +} \ No newline at end of file From e37b4a8e26f765378fa78d416b21e6e3cc1ac5aa Mon Sep 17 00:00:00 2001 From: engels74 <67713433+vp-en@users.noreply.github.com> Date: Mon, 25 Dec 2023 11:27:36 +0100 Subject: [PATCH 471/473] Various fixes - Fixing the ENV's to become uppercase, with underscores separating words - Editing the Configuration parsing to accommodate new variable names - Adding back the `-steamservername`, since it applies to the Steam server browser, and might be needed. I put it in quotes, as that was recommend earlier. --- .../humanitz/egg-humanit-z.json | 84 +++++++++---------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/game_eggs/steamcmd_servers/humanitz/egg-humanit-z.json b/game_eggs/steamcmd_servers/humanitz/egg-humanit-z.json index 0e0a43ab..f1b5c38c 100644 --- a/game_eggs/steamcmd_servers/humanitz/egg-humanit-z.json +++ b/game_eggs/steamcmd_servers/humanitz/egg-humanit-z.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-12-25T01:52:34+01:00", + "exported_at": "2023-12-25T11:27:01+01:00", "name": "HumanitZ", "author": "admin@marx.ps", "description": "HumanitZ is a co-op, isometric, open world survival game in a world ended by the zombie outbreak. As one of the few human survivors, try to last as long as \u201chumanly\u201d possible. The past can\u2019t be changed, but you can make a difference today for the future of humanity.", @@ -13,9 +13,9 @@ "ghcr.io\/parkervcp\/steamcmd:debian": "ghcr.io\/parkervcp\/steamcmd:debian" }, "file_denylist": [], - "startup": ".\/TSSGame\/Binaries\/Linux\/TSSGameServer-Linux-Shipping TSSGame -log -port={{SERVER_PORT}} -queryport={{QUERY_PORT}}", + "startup": ".\/TSSGame\/Binaries\/Linux\/TSSGameServer-Linux-Shipping TSSGame -log -port={{SERVER_PORT}} -queryport={{QUERY_PORT}} -steamservername=\"{{SERVER_NAME}}\"", "config": { - "files": "{\r\n \"TSSGame\/GameServerSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName=\": \"ServerName={{server.build.env.ServerName}}\",\r\n \"Password=\\\"\\\"\": \"Password=\\\"{{server.build.env.Password}}\\\"\",\r\n \"SaveName=\\\"\\\"\": \"SaveName=\\\"{{server.build.env.SaveName}}\\\"\",\r\n \"AdminPass=\\\"\\\"\": \"AdminPass=\\\"{{server.build.env.AdminPass}}\\\"\",\r\n \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MaxPlayers}}\",\r\n \"OnlyAllowedPlayers=\": \"OnlyAllowedPlayers={{server.build.env.OnlyAllowedPlayers}}\",\r\n \"SaveIntervalSec=\": \"SaveIntervalSec={{server.build.env.SaveIntervalSec}}\",\r\n \"NoDeathFeedback=\": \"NoDeathFeedback={{server.build.env.NoDeathFeedback}}\",\r\n \"PermaDeath=\": \"PermaDeath={{server.build.env.PermaDeath}}\",\r\n \"OnDeath=\": \"OnDeath={{server.build.env.OnDeath}}\",\r\n \"PVP=\": \"PVP={{server.build.env.PVP}}\",\r\n \"ClearInfection=\": \"ClearInfection={{server.build.env.ClearInfection}}\",\r\n \"EagleEye=\": \"EagleEye={{server.build.env.EagleEye}}\",\r\n \"AirDrop=\": \"AirDrop={{server.build.env.AirDrop}}\",\r\n \"WeaponBreak=\": \"WeaponBreak={{server.build.env.WeaponBreak}}\",\r\n \"MultiplayerSleep=\": \"MultiplayerSleep={{server.build.env.MultiplayerSleep}}\",\r\n \"LootRespawn=\": \"LootRespawn={{server.build.env.LootRespawn}}\",\r\n \"LootRespawnTimer=\": \"LootRespawnTimer={{server.build.env.LootRespawnTimer}}\",\r\n \"LootRarity=\": \"LootRarity={{server.build.env.LootRarity}}\",\r\n \"AirDropInterval=\": \"AirDropInterval={{server.build.env.AirDropInterval}}\",\r\n \"ZombieDiffHealth=\": \"ZombieDiffHealth={{server.build.env.ZombieDiffHealth}}\",\r\n \"ZombieDiffSpeed=\": \"ZombieDiffSpeed={{server.build.env.ZombieDiffSpeed}}\",\r\n \"ZombieDiffDamage=\": \"ZombieDiffDamage={{server.build.env.ZombieDiffDamage}}\",\r\n \"HumanDifficulty=\": \"HumanDifficulty={{server.build.env.HumanDifficulty}}\",\r\n \"ZombieAmountMulti=\": \"ZombieAmountMulti={{server.build.env.ZombieAmountMulti}}\",\r\n \"HumanAmountMulti=\": \"HumanAmountMulti={{server.build.env.HumanAmountMulti}}\",\r\n \"ZombieDogMulti=\": \"ZombieDogMulti={{server.build.env.ZombieDogMulti}}\",\r\n \"ZombieRespawnTimer=\": \"ZombieRespawnTimer={{server.build.env.ZombieRespawnTimer}}\",\r\n \"HumanRespawnTimer=\": \"HumanRespawnTimer={{server.build.env.HumanRespawnTimer}}\",\r\n \"AnimalRespawnTimer=\": \"AnimalRespawnTimer={{server.build.env.AnimalRespawnTimer}}\",\r\n \"StartingSeason=\": \"StartingSeason={{server.build.env.StartingSeason}}\",\r\n \"DaysPerSeason=\": \"DaysPerSeason={{server.build.env.DaysPerSeason}}\",\r\n \"DayDur=\": \"DayDur={{server.build.env.DayDur}}\",\r\n \"NightDur=\": \"NightDur={{server.build.env.NightDur}}\",\r\n \"VitalDrain=\": \"VitalDrain={{server.build.env.VitalDrain}}\",\r\n \"DogEnabled=\": \"DogEnabled={{server.build.env.DogEnabled}}\",\r\n \"DogNum=\": \"DogNum={{server.build.env.DogNum}}\",\r\n \"RecruitDog=\": \"RecruitDog={{server.build.env.RecruitDog}}\",\r\n \"BuildingHealth=\": \"BuildingHealth={{server.build.env.BuildingHealth}}\",\r\n \"CompanionHealth=\": \"CompanionHealth={{server.build.env.CompanionHealth}}\",\r\n \"CompanionDmg=\": \"CompanionDmg={{server.build.env.CompanionDmg}}\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"TSSGame\/GameServerSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName=\": \"ServerName={{server.build.env.SERVER_NAME}}\",\r\n \"Password=\\\"\\\"\": \"Password=\\\"{{server.build.env.PASSWORD}}\\\"\",\r\n \"SaveName=\\\"\\\"\": \"SaveName=\\\"{{server.build.env.SAVE_NAME}}\\\"\",\r\n \"AdminPass=\\\"\\\"\": \"AdminPass=\\\"{{server.build.env.ADMIN_PASS}}\\\"\",\r\n \"MaxPlayers=\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\",\r\n \"OnlyAllowedPlayers=\": \"OnlyAllowedPlayers={{server.build.env.ONLY_ALLOWED_PLAYERS}}\",\r\n \"SaveIntervalSec=\": \"SaveIntervalSec={{server.build.env.SAVE_INTERVAL_SEC}}\",\r\n \"NoDeathFeedback=\": \"NoDeathFeedback={{server.build.env.NO_DEATH_FEEDBACK}}\",\r\n \"PermaDeath=\": \"PermaDeath={{server.build.env.PERMA_DEATH}}\",\r\n \"OnDeath=\": \"OnDeath={{server.build.env.ON_DEATH}}\",\r\n \"PVP=\": \"PVP={{server.build.env.PVP}}\",\r\n \"ClearInfection=\": \"ClearInfection={{server.build.env.CLEAR_INFECTION}}\",\r\n \"EagleEye=\": \"EagleEye={{server.build.env.EAGLE_EYE}}\",\r\n \"AirDrop=\": \"AirDrop={{server.build.env.AIR_DROP}}\",\r\n \"WeaponBreak=\": \"WeaponBreak={{server.build.env.WEAPON_BREAK}}\",\r\n \"MultiplayerSleep=\": \"MultiplayerSleep={{server.build.env.MULTIPLAYER_SLEEP}}\",\r\n \"LootRespawn=\": \"LootRespawn={{server.build.env.LOOT_RESPAWN}}\",\r\n \"LootRespawnTimer=\": \"LootRespawnTimer={{server.build.env.LOOT_RESPAWN_TIMER}}\",\r\n \"LootRarity=\": \"LootRarity={{server.build.env.LOOT_RARITY}}\",\r\n \"AirDropInterval=\": \"AirDropInterval={{server.build.env.AIR_DROP_INTERVAL}}\",\r\n \"ZombieDiffHealth=\": \"ZombieDiffHealth={{server.build.env.ZOMBIE_DIFF_HEALTH}}\",\r\n \"ZombieDiffSpeed=\": \"ZombieDiffSpeed={{server.build.env.ZOMBIE_DIFF_SPEED}}\",\r\n \"ZombieDiffDamage=\": \"ZombieDiffDamage={{server.build.env.ZOMBIE_DIFF_DAMAGE}}\",\r\n \"HumanDifficulty=\": \"HumanDifficulty={{server.build.env.HUMAN_DIFFICULTY}}\",\r\n \"ZombieAmountMulti=\": \"ZombieAmountMulti={{server.build.env.ZOMBIE_AMOUNT_MULTI}}\",\r\n \"HumanAmountMulti=\": \"HumanAmountMulti={{server.build.env.HUMAN_AMOUNT_MULTI}}\",\r\n \"ZombieDogMulti=\": \"ZombieDogMulti={{server.build.env.ZOMBIE_DOG_MULTI}}\",\r\n \"ZombieRespawnTimer=\": \"ZombieRespawnTimer={{server.build.env.ZOMBIE_RESPAWN_TIMER}}\",\r\n \"HumanRespawnTimer=\": \"HumanRespawnTimer={{server.build.env.HUMAN_RESPAWN_TIMER}}\",\r\n \"AnimalRespawnTimer=\": \"AnimalRespawnTimer={{server.build.env.ANIMAL_RESPAWN_TIMER}}\",\r\n \"StartingSeason=\": \"StartingSeason={{server.build.env.STARTING_SEASON}}\",\r\n \"DaysPerSeason=\": \"DaysPerSeason={{server.build.env.DAYS_PER_SEASON}}\",\r\n \"DayDur=\": \"DayDur={{server.build.env.DAY_DUR}}\",\r\n \"NightDur=\": \"NightDur={{server.build.env.NIGHT_DUR}}\",\r\n \"VitalDrain=\": \"VitalDrain={{server.build.env.VITAL_DRAIN}}\",\r\n \"DogEnabled=\": \"DogEnabled={{server.build.env.DOG_ENABLED}}\",\r\n \"DogNum=\": \"DogNum={{server.build.env.DOG_NUM}}\",\r\n \"RecruitDog=\": \"RecruitDog={{server.build.env.RECRUIT_DOG}}\",\r\n \"BuildingHealth=\": \"BuildingHealth={{server.build.env.BUILDING_HEALTH}}\",\r\n \"CompanionHealth=\": \"CompanionHealth={{server.build.env.COMPANION_HEALTH}}\",\r\n \"CompanionDmg=\": \"CompanionDmg={{server.build.env.COMPANION_DMG}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"LogKaiHelper: Session created!\"\r\n}", "logs": "{}", "stop": "^C" @@ -71,7 +71,7 @@ { "name": "Server Name", "description": "Name of the server", - "env_variable": "ServerName", + "env_variable": "SERVER_NAME", "default_value": "My HumanitZ Server", "user_viewable": true, "user_editable": true, @@ -81,7 +81,7 @@ { "name": "Server Password", "description": "Server password (if any)", - "env_variable": "Password", + "env_variable": "PASSWORD", "default_value": "", "user_viewable": true, "user_editable": true, @@ -91,7 +91,7 @@ { "name": "Save Name", "description": "Name of the save-file for the server", - "env_variable": "SaveName", + "env_variable": "SAVE_NAME", "default_value": "DedicatedSaveMP", "user_viewable": true, "user_editable": true, @@ -101,7 +101,7 @@ { "name": "Admin Password", "description": "Password for the admin", - "env_variable": "AdminPass", + "env_variable": "ADMIN_PASS", "default_value": "", "user_viewable": true, "user_editable": true, @@ -111,7 +111,7 @@ { "name": "Max Players", "description": "Maximum number of players allowed", - "env_variable": "MaxPlayers", + "env_variable": "MAX_PLAYERS", "default_value": "32", "user_viewable": true, "user_editable": true, @@ -121,7 +121,7 @@ { "name": "Only Allowed Players", "description": "Restrict server to allowed players only", - "env_variable": "OnlyAllowedPlayers", + "env_variable": "ONLY_ALLOWED_PLAYERS", "default_value": "0", "user_viewable": true, "user_editable": true, @@ -131,7 +131,7 @@ { "name": "Saving World Interval", "description": "Save game every X seconds", - "env_variable": "SaveIntervalSec", + "env_variable": "SAVE_INTERVAL_SEC", "default_value": "300", "user_viewable": true, "user_editable": true, @@ -141,7 +141,7 @@ { "name": "Permanent Death", "description": "0=Off, 1=Individual, 2=All", - "env_variable": "PermaDeath", + "env_variable": "PERMA_DEATH", "default_value": "0", "user_viewable": true, "user_editable": true, @@ -151,7 +151,7 @@ { "name": "On Death", "description": "0=Only lose backpack and weapon in hand, 1=Previous + pockets and backpack, 2=All previous + Equipment", - "env_variable": "OnDeath", + "env_variable": "ON_DEATH", "default_value": "2", "user_viewable": true, "user_editable": true, @@ -171,7 +171,7 @@ { "name": "Clear Infection", "description": "0=Respawning does not rid you of the infection, 1=You lose it upon respawning", - "env_variable": "ClearInfection", + "env_variable": "CLEAR_INFECTION", "default_value": "1", "user_viewable": true, "user_editable": true, @@ -181,7 +181,7 @@ { "name": "Eagle Eye", "description": "1=Able to purchase the eagle eye skill, 0=You can't", - "env_variable": "EagleEye", + "env_variable": "EAGLE_EYE", "default_value": "1", "user_viewable": true, "user_editable": true, @@ -191,7 +191,7 @@ { "name": "Air Drop", "description": "1=Enabled, 0=Disabled", - "env_variable": "AirDrop", + "env_variable": "AIR_DROP", "default_value": "1", "user_viewable": true, "user_editable": true, @@ -201,7 +201,7 @@ { "name": "Weapon Durability", "description": "1=Weapons break when reaching 0% durability except crow bar, 0=Only improvised break at 0% durability", - "env_variable": "WeaponBreak", + "env_variable": "WEAPON_BREAK", "default_value": "1", "user_viewable": true, "user_editable": true, @@ -211,7 +211,7 @@ { "name": "Multiplayer Sleep", "description": "1=Time passes if everyone performs the sleep emote at the same time, 0=Passing time is disabled", - "env_variable": "MultiplayerSleep", + "env_variable": "MULTIPLAYER_SLEEP", "default_value": "0", "user_viewable": true, "user_editable": true, @@ -221,7 +221,7 @@ { "name": "Building Health", "description": "Nothing provided in docs regarding this variable. Default value is \"1\".", - "env_variable": "BuildingHealth", + "env_variable": "BUILDING_HEALTH", "default_value": "1", "user_viewable": true, "user_editable": true, @@ -231,7 +231,7 @@ { "name": "Loot Respawn", "description": "If loot respawns, how long does it take in seconds", - "env_variable": "LootRespawnTimer", + "env_variable": "LOOT_RESPAWN_TIMER", "default_value": "90", "user_viewable": true, "user_editable": true, @@ -241,7 +241,7 @@ { "name": "Loot Rarity", "description": "0=Scarce, 1=Low, 2=Default, 3=Plentiful, 4=Abundant", - "env_variable": "LootRarity", + "env_variable": "LOOT_RARITY", "default_value": "2", "user_viewable": true, "user_editable": true, @@ -251,7 +251,7 @@ { "name": "Air Drop Interval", "description": "Air drop every X day", - "env_variable": "AirDropInterval", + "env_variable": "AIR_DROP_INTERVAL", "default_value": "1", "user_viewable": true, "user_editable": true, @@ -261,7 +261,7 @@ { "name": "Zombie Difficulty (Health)", "description": "0=Very Easy, 1=Easy, 2=Default, 3=Hard, 4=Very Hard, 5=Nightmare", - "env_variable": "ZombieDiffHealth", + "env_variable": "ZOMBIE_DIFF_HEALTH", "default_value": "3", "user_viewable": true, "user_editable": true, @@ -271,7 +271,7 @@ { "name": "Zombie Difficulty (Speed)", "description": "0=Very Easy, 1=Easy, 2=Default, 3=Hard, 4=Very Hard, 5=Nightmare", - "env_variable": "ZombieDiffSpeed", + "env_variable": "ZOMBIE_DIFF_SPEED", "default_value": "3", "user_viewable": true, "user_editable": true, @@ -281,7 +281,7 @@ { "name": "Zombie Difficulty (Damage)", "description": "0=Very Easy, 1=Easy, 2=Default, 3=Hard, 4=Very Hard, 5=Nightmare", - "env_variable": "ZombieDiffDamage", + "env_variable": "ZOMBIE_DIFF_DAMAGE", "default_value": "3", "user_viewable": true, "user_editable": true, @@ -291,7 +291,7 @@ { "name": "Human Difficulty", "description": "0=Very Easy, 1=Easy, 2=Default, 3=Hard, 4=Very Hard, 5=Nightmare", - "env_variable": "HumanDifficulty", + "env_variable": "HUMAN_DIFFICULTY", "default_value": "3", "user_viewable": true, "user_editable": true, @@ -301,7 +301,7 @@ { "name": "Zombie Amount Multiplier", "description": "Zombie spawn count multiplier", - "env_variable": "ZombieAmountMulti", + "env_variable": "ZOMBIE_AMOUNT_MULTI", "default_value": "1", "user_viewable": true, "user_editable": true, @@ -311,7 +311,7 @@ { "name": "Human Amount Multiplier", "description": "Hostile humans spawn count multiplier", - "env_variable": "HumanAmountMulti", + "env_variable": "HUMAN_AMOUNT_MULTI", "default_value": "1", "user_viewable": true, "user_editable": true, @@ -321,7 +321,7 @@ { "name": "Zombie Dog Multiplier", "description": "Zombie dog spawn count multiplier", - "env_variable": "ZombieDogMulti", + "env_variable": "ZOMBIE_DOG_MULTI", "default_value": "1", "user_viewable": true, "user_editable": true, @@ -331,7 +331,7 @@ { "name": "Zombie Respawn Timer", "description": "Time in minutes for zombies to respawn", - "env_variable": "ZombieRespawnTimer", + "env_variable": "ZOMBIE_RESPAWN_TIMER", "default_value": "90", "user_viewable": true, "user_editable": true, @@ -341,7 +341,7 @@ { "name": "Human Respawn Timer", "description": "Time in minutes for hostile humans to respawn", - "env_variable": "HumanRespawnTimer", + "env_variable": "HUMAN_RESPAWN_TIMER", "default_value": "90", "user_viewable": true, "user_editable": true, @@ -351,7 +351,7 @@ { "name": "Animal Respawn Timer", "description": "Time in minutes for animals to respawn", - "env_variable": "AnimalRespawnTimer", + "env_variable": "ANIMAL_RESPAWN_TIMER", "default_value": "90", "user_viewable": true, "user_editable": true, @@ -361,7 +361,7 @@ { "name": "Starting Season", "description": "0=Summer, 1=Autum, 2=Winter, 3=Spring", - "env_variable": "StartingSeason", + "env_variable": "STARTING_SEASON", "default_value": "1", "user_viewable": true, "user_editable": true, @@ -371,7 +371,7 @@ { "name": "Days Per Season", "description": "How many days each season lasts", - "env_variable": "DaysPerSeason", + "env_variable": "DAYS_PER_SEASON", "default_value": "5", "user_viewable": true, "user_editable": true, @@ -381,7 +381,7 @@ { "name": "Day Duration", "description": "Day duration in minutes", - "env_variable": "DayDur", + "env_variable": "DAY_DUR", "default_value": "40", "user_viewable": true, "user_editable": true, @@ -391,7 +391,7 @@ { "name": "Night Duration", "description": "Night duration in minutes", - "env_variable": "NightDur", + "env_variable": "NIGHT_DUR", "default_value": "20", "user_viewable": true, "user_editable": true, @@ -401,7 +401,7 @@ { "name": "Vital Drain", "description": "How fast your vitals drain 0=Slow, 1=Normal, 2=Fast", - "env_variable": "VitalDrain", + "env_variable": "VITAL_DRAIN", "default_value": "1", "user_viewable": true, "user_editable": true, @@ -411,7 +411,7 @@ { "name": "Dog Companions Enabled", "description": "Enable finding dog companions you can recruit", - "env_variable": "DogEnabled", + "env_variable": "DOG_ENABLED", "default_value": "1", "user_viewable": true, "user_editable": true, @@ -421,7 +421,7 @@ { "name": "Dog Companion Amount", "description": "Number of companion dogs that could spawn randomly", - "env_variable": "DogNum", + "env_variable": "DOG_NUM", "default_value": "4", "user_viewable": true, "user_editable": true, @@ -431,7 +431,7 @@ { "name": "Recruit Companion Dogs", "description": "Allow players to recruit companion dog", - "env_variable": "RecruitDog", + "env_variable": "RECRUIT_DOG", "default_value": "1", "user_viewable": true, "user_editable": true, @@ -441,7 +441,7 @@ { "name": "Companion Health", "description": "Dog companion health - 0=Low 1=Default 2=High", - "env_variable": "CompanionHealth", + "env_variable": "COMPANION_HEALTH", "default_value": "1", "user_viewable": true, "user_editable": true, @@ -451,7 +451,7 @@ { "name": "Companion Damage", "description": "Dog companion damage - 0=Low 1=Default 2=High", - "env_variable": "CompanionDmg", + "env_variable": "COMPANION_DMG", "default_value": "1", "user_viewable": true, "user_editable": true, @@ -461,7 +461,7 @@ { "name": "No Death Feedback", "description": "0 to enable player died notification in chat - 1 to disable player died notification in chat.", - "env_variable": "NoDeathFeedback", + "env_variable": "NO_DEATH_FEEDBACK", "default_value": "0", "user_viewable": true, "user_editable": true, From 6811333a9adfea6d4ae16c8bd4e647b0c313720a Mon Sep 17 00:00:00 2001 From: Quinten <67589015+QuintenQVD0@users.noreply.github.com> Date: Mon, 25 Dec 2023 12:13:06 +0100 Subject: [PATCH 472/473] remove servername message out of readme --- game_eggs/steamcmd_servers/humanitz/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/game_eggs/steamcmd_servers/humanitz/README.md b/game_eggs/steamcmd_servers/humanitz/README.md index b80b1266..5efa0c27 100644 --- a/game_eggs/steamcmd_servers/humanitz/README.md +++ b/game_eggs/steamcmd_servers/humanitz/README.md @@ -12,8 +12,6 @@ The current version of the server software is slightly buggy, and as of this wri They include a `README.txt` file with the server software, that includes a description of most of the variables, but not more than that. This is only obtainable via the SteamCMD tool. -The `README.txt` also specifies that you can use variables such as `-steamservername` appended to the launch command, but that doesn't work properly. Therefore this egg is designed to manually parse/edit the `GameServerSettings.ini` file, with the values entered in the variables in Pterodactyl. - ## Installation/System Requirements Requires a 64-bit processor and operating system From e00467335a5f550d012d3306a53bdadc1a625d57 Mon Sep 17 00:00:00 2001 From: Dylan <135805091+ImKringle@users.noreply.github.com> Date: Tue, 26 Dec 2023 09:37:57 -0500 Subject: [PATCH 473/473] Fixed Permissions Error --- game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json b/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json index e13e624b..630f2b75 100644 --- a/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json +++ b/game_eggs/minecraft/java/modrinth/egg-modrinth-generic.json @@ -4,7 +4,7 @@ "version": "PTDL_v2", "update_url": null }, - "exported_at": "2023-08-01T20:54:48+02:00", + "exported_at": "2023-12-26T09:36:20-05:00", "name": "Modrinth Generic", "author": "contact@chromozone.dev", "description": "A generic egg for a Modrinth modpack.", @@ -29,7 +29,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# shellcheck disable=SC2155\r\n#\r\n# Modrinth Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n: \"${SERVER_DIR:=\/mnt\/server}\"\r\n: \"${PROJECT_ID:=}\"\r\n: \"${VERSION_ID:=}\"\r\n\r\nif [[ ! -d $SERVER_DIR ]]; then\r\n mkdir -p \"$SERVER_DIR\"\r\nfi\r\n\r\nif ! cd \"$SERVER_DIR\"; then\r\n echo -e \"Failed to change directory to ${SERVER_DIR}\"\r\n exit 1\r\nfi\r\n\r\nfunction install_required {\r\n echo -e \"Installing required packages...\"\r\n\r\n echo -e \"\\tRunning apt update\"\r\n if ! apt update > \/dev\/null 2>&1; then\r\n echo -e \"\\tERROR: apt update failed!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tRunning apt install\"\r\n if ! apt install -y wget jq unzip dos2unix > \/dev\/null 2>&1; then\r\n echo -e \"\\tERROR: apt install failed!\"\r\n exit 1\r\n fi\r\n}\r\n\r\nMODRINTH_API_URL=\"https:\/\/api.modrinth.com\/v2\"\r\n\r\nfunction get_download {\r\n echo -e \"Retrieving Modrinth project information...\"\r\n local PROJECT_DATA=$(wget -q \"${MODRINTH_API_URL}\/project\/${PROJECT_ID}\" -O -)\r\n local PROJECT_TITLE=$(echo \"$PROJECT_DATA\" | jq -r '.title \/\/ empty')\r\n local PROJECT_SUPPORTED=$(echo \"$PROJECT_DATA\" | jq -r '.\"server_side\" \/\/ empty')\r\n\r\n if [[ -z \"${PROJECT_DATA}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve project data for project id '${PROJECT_ID}'\"\r\n exit 1\r\n fi\r\n\r\n if [[ \"${PROJECT_SUPPORTED}\" == \"unsupported\" ]]; then\r\n echo -e \"\\tWARNING: The project '${PROJECT_TITLE}' is listed as unsupported for server use. Continuing anyway...\"\r\n fi\r\n\r\n if [[ -z \"${VERSION_ID}\" || \"${VERSION_ID}\" == \"latest\" ]]; then\r\n echo -e \"\\tNo version ID specified, using latest version\"\r\n VERSION_ID=$(echo \"$PROJECT_DATA\" | jq -r '.versions[-1] \/\/ empty')\r\n else\r\n echo -e \"\\tChecking if provided version id '${VERSION_ID}' exists\"\r\n if [[ $(echo \"$PROJECT_DATA\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.versions[]? | select(. == $VERSION_ID)') != \"${VERSION_ID}\" ]]; then\r\n echo -e \"\\tERROR: Version id '${VERSION_ID}' not found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n fi\r\n\r\n if [[ -z \"${VERSION_ID}\" ]]; then\r\n echo -e \"\\tERROR: No version id found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n\r\n # get json data to work with\r\n echo -e \"\\tRetrieving version information for '${VERSION_ID}'\"\r\n local JSON_DATA=$(wget -q \"${MODRINTH_API_URL}\/version\/${VERSION_ID}\" -O -)\r\n\r\n if [[ -z \"${JSON_DATA}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve version data for version id '${VERSION_ID}'\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tParsing Modrinth pack download url\"\r\n\r\n local DOWNLOAD_URL=$(echo \"$JSON_DATA\" | jq -r '.files[]? | select(.primary == true) | .url')\r\n\r\n if [[ -z \"${DOWNLOAD_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for version ${VERSION_ID}\"\r\n exit 1\r\n fi\r\n\r\n ## download modpack files\r\n echo -e \"\\tDownloading ${DOWNLOAD_URL}\"\r\n if ! wget -q \"${DOWNLOAD_URL}\" -O server.zip; then\r\n echo -e \"\\tERROR: Failed to download modpack files!\"\r\n exit 1\r\n fi\r\n}\r\n\r\nfunction unpack_zip {\r\n unzip -o server.zip\r\n rm -rf server.zip\r\n}\r\n\r\nfunction json_download_mods {\r\n echo \"Downloading mods...\"\r\n\r\n local MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n jq -c '.files[]? | select(.env.server == \"required\") | {name: .path, url: .downloads[0]}' \"${MANIFEST}\" | while read -r mod; do\r\n local FILE_URL=$(echo \"${mod}\" | jq -r '.url \/\/ empty')\r\n local FILE_NAME=$(echo \"${mod}\" | jq -r '.name \/\/ empty')\r\n\r\n if [[ -z \"${FILE_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for mod '${mod}'\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading ${FILE_URL}\"\r\n \r\n if ! wget -q \"${FILE_URL}\" -P \"${SERVER_DIR}\/mods\"; then\r\n echo -e \"\\tERROR: Failed to download mod '${FILE_NAME}'\"\r\n exit 1\r\n fi\r\n done\r\n}\r\n\r\nfunction json_download_overrides {\r\n echo \"Copying overrides...\"\r\n if [[ -d \"${SERVER_DIR}\/overrides\" ]]; then\r\n echo -e \"\\tCopying shared overrides\"\r\n cp -r \"${SERVER_DIR}\/overrides\/\"* \"${SERVER_DIR}\"\r\n rm -r \"${SERVER_DIR}\/overrides\"\r\n fi\r\n\r\n if [[ -d \"${SERVER_DIR}\/server-overrides\" ]]; then\r\n echo -e \"\\tCopying server overrides\"\r\n cp -r \"${SERVER_DIR}\/server-overrides\/\"* \"${SERVER_DIR}\"\r\n rm -r \"${SERVER_DIR}\/server-overrides\"\r\n fi\r\n}\r\n\r\nFORGE_INSTALLER_URL=\"https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/\"\r\n\r\nfunction json_download_forge {\r\n echo \"Downloading Forge...\"\r\n\r\n local MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n local MC_VERSION=$(jq -r '.dependencies.minecraft \/\/ empty' \"${MANIFEST}\")\r\n local FORGE_VERSION=$(jq -r '.dependencies.forge \/\/ empty' \"${MANIFEST}\")\r\n\r\n if [[ -z \"${MC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Minecraft version found in manifest '${MANIFEST}'\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${FORGE_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Forge version found in manifest '${MANIFEST}'\"\r\n exit 1\r\n fi\r\n\r\n FORGE_VERSION=\"${MC_VERSION}-${FORGE_VERSION}\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" || \"${MC_VERSION}\" == \"1.8.9\" ]]; then\r\n FORGE_VERSION=\"${FORGE_VERSION}-${MC_VERSION}\"\r\n fi\r\n\r\n local FORGE_JAR=\"forge-${FORGE_VERSION}.jar\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" ]]; then\r\n FORGE_JAR=\"forge-${FORGE_VERSION}-universal.jar\"\r\n fi\r\n\r\n local FORGE_URL=\"${FORGE_INSTALLER_URL}${FORGE_VERSION}\/forge-${FORGE_VERSION}\"\r\n\r\n echo -e \"\\tUsing Forge ${FORGE_VERSION} from ${FORGE_URL}\"\r\n\r\n local FORGE_INSTALLER=\"${FORGE_URL}-installer.jar\"\r\n echo -e \"\\tDownloading Forge Installer ${FORGE_VERSION} from ${FORGE_INSTALLER}\"\r\n\r\n if ! wget -q -O forge-installer.jar \"${FORGE_INSTALLER}\"; then\r\n echo -e \"\\tERROR: Failed to download Forge Installer ${FORGE_VERSION}\"\r\n exit 1\r\n fi\r\n\r\n rm -rf libraries\/net\/minecraftforge\/forge\/\r\n rm -f unix_args.txt\r\n\r\n echo -e \"\\tInstalling Forge Server ${FORGE_VERSION}\"\r\n if ! java -jar forge-installer.jar --installServer > \/dev\/null 2>&1; then\r\n echo -e \"\\tERROR: Failed to install Forge Server ${FORGE_VERSION}\"\r\n exit 1\r\n fi\r\n\r\n if [[ $MC_VERSION =~ ^1\\.(17|18|19|20|21|22|23) || $FORGE_VERSION =~ ^1\\.(17|18|19|20|21|22|23) ]]; then\r\n echo -e \"\\tDetected Forge 1.17 or newer version. Setting up Forge Unix arguments\"\r\n ln -sf libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt unix_args.txt\r\n else\r\n mv \"$FORGE_JAR\" forge-server-launch.jar\r\n echo \"forge-server-launch.jar\" > \".serverjar\"\r\n fi\r\n\r\n rm -f forge-installer.jar\r\n}\r\n\r\nFABRIC_INSTALLER_URL=\"https:\/\/meta.fabricmc.net\/v2\/versions\/installer\"\r\n\r\nfunction json_download_fabric {\r\n echo \"Downloading Fabric...\"\r\n\r\n local MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n local MC_VERSION=$(jq -r '.dependencies.minecraft \/\/ empty' \"${MANIFEST}\")\r\n local FABRIC_VERSION=$(jq -r '.dependencies.\"fabric-loader\" \/\/ empty' \"${MANIFEST}\")\r\n\r\n if [[ -z \"${MC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Minecraft version found in manifest '${MANIFEST}'\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${FABRIC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric version found in manifest '${MANIFEST}'\"\r\n exit 1\r\n fi\r\n\r\n local INSTALLER_JSON=$(wget -q -O - ${FABRIC_INSTALLER_URL} )\r\n local INSTALLER_VERSION=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].version \/\/ empty')\r\n local INSTALLER_URL=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].url \/\/ empty')\r\n\r\n if [[ -z \"${INSTALLER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric installer version found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${INSTALLER_URL}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric installer url found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading Fabric Installer ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n\r\n if ! wget -q -O fabric-installer.jar \"${INSTALLER_URL}\"; then\r\n echo -e \"\\tERROR: Failed to download Fabric Installer ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Fabric Server ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n if ! java -jar fabric-installer.jar server -mcversion \"${MC_VERSION}\" -loader \"${FABRIC_VERSION}\" -downloadMinecraft; then\r\n echo -e \"\\tERROR: Failed to install Fabric Server ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo \"fabric-server-launch.jar\" > \".serverjar\"\r\n\r\n rm -f fabric-installer.jar\r\n}\r\n\r\nQUILT_INSTALLER_URL=\"https:\/\/meta.quiltmc.org\/v3\/versions\/installer\"\r\n\r\nfunction json_download_quilt {\r\n echo \"Downloading Quilt...\"\r\n\r\n local MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n local MC_VERSION=$(jq -r '.dependencies.minecraft \/\/ empty' \"${MANIFEST}\")\r\n local QUILT_VERSION=$(jq -r '.dependencies.\"quilt-loader\" \/\/ empty' \"${MANIFEST}\")\r\n\r\n if [[ -z \"${MC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Minecraft version found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${QUILT_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt version found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n local INSTALLER_JSON=$(wget -q -O - ${QUILT_INSTALLER_URL} )\r\n local INSTALLER_VERSION=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].version \/\/ empty')\r\n local INSTALLER_URL=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].url \/\/ empty')\r\n\r\n if [[ -z \"${INSTALLER_JSON}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve Quilt installer information from manifest!\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${INSTALLER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt installer version found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${INSTALLER_URL}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt installer URL found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading Quilt Installer ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n\r\n if ! wget -q -O quilt-installer.jar \"${INSTALLER_URL}\"; then\r\n echo -e \"\\tERROR: Failed to download Quilt installer ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Quilt Server ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n if ! java -jar quilt-installer.jar install server \"${MC_VERSION}\" \"${QUILT_VERSION}\" --download-server --install-dir=.\/; then\r\n echo -e \"\\tERROR: Failed to install Quilt Server ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo \"quilt-server-launch.jar\" > \".serverjar\"\r\n\r\n rm quilt-installer.jar\r\n}\r\n\r\ninstall_required\r\n\r\nif [[ -z \"${PROJECT_ID}\" ]]; then\r\n echo \"ERROR: You must specify a PROJECT_ID environment variable!\"\r\n exit 1\r\nfi\r\n\r\nif [[ ! \"${PROJECT_ID}\" = \"zip\" ]]; then\r\n\tget_download\r\n\tunpack_zip\r\nelse\r\n\tunpack_zip\r\nfi\r\n\r\nif [[ -f \"${SERVER_DIR}\/modrinth.index.json\" ]]; then\r\n echo \"Found modrinth.index.json, installing mods\"\r\n json_download_mods\r\n json_download_overrides\r\nfi\r\n\r\nif [[ -f \"${SERVER_DIR}\/modrinth.index.json\" ]]; then\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n if [[ $(jq -r '.dependencies.forge' \"${MANIFEST}\") != \"null\" ]]; then\r\n json_download_forge\r\n fi\r\n\r\n if [[ $(jq -r '.dependencies.\"fabric-loader\"' \"${MANIFEST}\") != \"null\" ]]; then\r\n json_download_fabric\r\n fi\r\n\r\n if [[ $(jq -r '.dependencies.\"quilt-loader\"' \"${MANIFEST}\") != \"null\" ]]; then\r\n json_download_quilt\r\n fi\r\nfi\r\n\r\necho -e \"\\nInstall completed succesfully, enjoy!\"", + "script": "#!\/bin\/bash\r\n# shellcheck disable=SC2155\r\n#\r\n# Modrinth Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n: \"${SERVER_DIR:=\/mnt\/server}\"\r\n: \"${PROJECT_ID:=}\"\r\n: \"${VERSION_ID:=}\"\r\n\r\nif [[ ! -d $SERVER_DIR ]]; then\r\n mkdir -p \"$SERVER_DIR\"\r\nfi\r\n\r\nif ! cd \"$SERVER_DIR\"; then\r\n echo -e \"Failed to change directory to ${SERVER_DIR}\"\r\n exit 1\r\nfi\r\n\r\nfunction install_required {\r\n echo -e \"Installing required packages...\"\r\n\r\n echo -e \"\\tRunning apt update\"\r\n if ! apt update > \/dev\/null 2>&1; then\r\n echo -e \"\\tERROR: apt update failed!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tRunning apt install\"\r\n if ! apt install -y wget jq unzip dos2unix > \/dev\/null 2>&1; then\r\n echo -e \"\\tERROR: apt install failed!\"\r\n exit 1\r\n fi\r\n}\r\n\r\nMODRINTH_API_URL=\"https:\/\/api.modrinth.com\/v2\"\r\n\r\nfunction get_download {\r\n echo -e \"Retrieving Modrinth project information...\"\r\n local PROJECT_DATA=$(wget -q \"${MODRINTH_API_URL}\/project\/${PROJECT_ID}\" -O -)\r\n local PROJECT_TITLE=$(echo \"$PROJECT_DATA\" | jq -r '.title \/\/ empty')\r\n local PROJECT_SUPPORTED=$(echo \"$PROJECT_DATA\" | jq -r '.\"server_side\" \/\/ empty')\r\n\r\n if [[ -z \"${PROJECT_DATA}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve project data for project id '${PROJECT_ID}'\"\r\n exit 1\r\n fi\r\n\r\n if [[ \"${PROJECT_SUPPORTED}\" == \"unsupported\" ]]; then\r\n echo -e \"\\tWARNING: The project '${PROJECT_TITLE}' is listed as unsupported for server use. Continuing anyway...\"\r\n fi\r\n\r\n if [[ -z \"${VERSION_ID}\" || \"${VERSION_ID}\" == \"latest\" ]]; then\r\n echo -e \"\\tNo version ID specified, using latest version\"\r\n VERSION_ID=$(echo \"$PROJECT_DATA\" | jq -r '.versions[-1] \/\/ empty')\r\n else\r\n echo -e \"\\tChecking if provided version id '${VERSION_ID}' exists\"\r\n if [[ $(echo \"$PROJECT_DATA\" | jq -r --arg VERSION_ID \"$VERSION_ID\" '.versions[]? | select(. == $VERSION_ID)') != \"${VERSION_ID}\" ]]; then\r\n echo -e \"\\tERROR: Version id '${VERSION_ID}' not found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n fi\r\n\r\n if [[ -z \"${VERSION_ID}\" ]]; then\r\n echo -e \"\\tERROR: No version id found for project '${PROJECT_TITLE}'\"\r\n exit 1\r\n fi\r\n\r\n # get json data to work with\r\n echo -e \"\\tRetrieving version information for '${VERSION_ID}'\"\r\n local JSON_DATA=$(wget -q \"${MODRINTH_API_URL}\/version\/${VERSION_ID}\" -O -)\r\n\r\n if [[ -z \"${JSON_DATA}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve version data for version id '${VERSION_ID}'\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tParsing Modrinth pack download url\"\r\n\r\n local DOWNLOAD_URL=$(echo \"$JSON_DATA\" | jq -r '.files[]? | select(.primary == true) | .url')\r\n\r\n if [[ -z \"${DOWNLOAD_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for version ${VERSION_ID}\"\r\n exit 1\r\n fi\r\n\r\n ## download modpack files\r\n echo -e \"\\tDownloading ${DOWNLOAD_URL}\"\r\n if ! wget -q \"${DOWNLOAD_URL}\" -O server.zip; then\r\n echo -e \"\\tERROR: Failed to download modpack files!\"\r\n exit 1\r\n fi\r\n}\r\n\r\nfunction unpack_zip {\r\n unzip -o server.zip\r\n rm -rf server.zip\r\n}\r\n\r\nfunction json_download_mods {\r\n echo \"Downloading mods...\"\r\n\r\n local MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n jq -c '.files[]? | select(.env.server == \"required\") | {name: .path, url: .downloads[0]}' \"${MANIFEST}\" | while read -r mod; do\r\n local FILE_URL=$(echo \"${mod}\" | jq -r '.url \/\/ empty')\r\n local FILE_NAME=$(echo \"${mod}\" | jq -r '.name \/\/ empty')\r\n\r\n if [[ -z \"${FILE_URL}\" ]]; then\r\n echo -e \"\\tERROR: No download url found for mod '${mod}'\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading ${FILE_URL}\"\r\n \r\n if ! wget -q \"${FILE_URL}\" -P \"${SERVER_DIR}\/mods\"; then\r\n echo -e \"\\tERROR: Failed to download mod '${FILE_NAME}'\"\r\n exit 1\r\n fi\r\n done\r\n}\r\n\r\nfunction json_download_overrides {\r\n echo \"Copying overrides...\"\r\n if [[ -d \"${SERVER_DIR}\/overrides\" ]]; then\r\n echo -e \"\\tCopying shared overrides\"\r\n chmod -R 755 \"${SERVER_DIR}\/overrides\/\"*\r\n cp -r \"${SERVER_DIR}\/overrides\/\"* \"${SERVER_DIR}\"\r\n rm -r \"${SERVER_DIR}\/overrides\"\r\n fi\r\n\r\n if [[ -d \"${SERVER_DIR}\/server-overrides\" ]]; then\r\n echo -e \"\\tCopying server overrides\"\r\n chmod -R 755 \"${SERVER_DIR}\/server-overrides\/\"*\r\n cp -r \"${SERVER_DIR}\/server-overrides\/\"* \"${SERVER_DIR}\"\r\n rm -r \"${SERVER_DIR}\/server-overrides\"\r\n fi\r\n}\r\n\r\nFORGE_INSTALLER_URL=\"https:\/\/maven.minecraftforge.net\/net\/minecraftforge\/forge\/\"\r\n\r\nfunction json_download_forge {\r\n echo \"Downloading Forge...\"\r\n\r\n local MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n local MC_VERSION=$(jq -r '.dependencies.minecraft \/\/ empty' \"${MANIFEST}\")\r\n local FORGE_VERSION=$(jq -r '.dependencies.forge \/\/ empty' \"${MANIFEST}\")\r\n\r\n if [[ -z \"${MC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Minecraft version found in manifest '${MANIFEST}'\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${FORGE_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Forge version found in manifest '${MANIFEST}'\"\r\n exit 1\r\n fi\r\n\r\n FORGE_VERSION=\"${MC_VERSION}-${FORGE_VERSION}\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" || \"${MC_VERSION}\" == \"1.8.9\" ]]; then\r\n FORGE_VERSION=\"${FORGE_VERSION}-${MC_VERSION}\"\r\n fi\r\n\r\n local FORGE_JAR=\"forge-${FORGE_VERSION}.jar\"\r\n if [[ \"${MC_VERSION}\" == \"1.7.10\" ]]; then\r\n FORGE_JAR=\"forge-${FORGE_VERSION}-universal.jar\"\r\n fi\r\n\r\n local FORGE_URL=\"${FORGE_INSTALLER_URL}${FORGE_VERSION}\/forge-${FORGE_VERSION}\"\r\n\r\n echo -e \"\\tUsing Forge ${FORGE_VERSION} from ${FORGE_URL}\"\r\n\r\n local FORGE_INSTALLER=\"${FORGE_URL}-installer.jar\"\r\n echo -e \"\\tDownloading Forge Installer ${FORGE_VERSION} from ${FORGE_INSTALLER}\"\r\n\r\n if ! wget -q -O forge-installer.jar \"${FORGE_INSTALLER}\"; then\r\n echo -e \"\\tERROR: Failed to download Forge Installer ${FORGE_VERSION}\"\r\n exit 1\r\n fi\r\n\r\n rm -rf libraries\/net\/minecraftforge\/forge\/\r\n rm -f unix_args.txt\r\n\r\n echo -e \"\\tInstalling Forge Server ${FORGE_VERSION}\"\r\n if ! java -jar forge-installer.jar --installServer > \/dev\/null 2>&1; then\r\n echo -e \"\\tERROR: Failed to install Forge Server ${FORGE_VERSION}\"\r\n exit 1\r\n fi\r\n\r\n if [[ $MC_VERSION =~ ^1\\.(17|18|19|20|21|22|23) || $FORGE_VERSION =~ ^1\\.(17|18|19|20|21|22|23) ]]; then\r\n echo -e \"\\tDetected Forge 1.17 or newer version. Setting up Forge Unix arguments\"\r\n ln -sf libraries\/net\/minecraftforge\/forge\/*\/unix_args.txt unix_args.txt\r\n else\r\n mv \"$FORGE_JAR\" forge-server-launch.jar\r\n echo \"forge-server-launch.jar\" > \".serverjar\"\r\n fi\r\n\r\n rm -f forge-installer.jar\r\n}\r\n\r\nFABRIC_INSTALLER_URL=\"https:\/\/meta.fabricmc.net\/v2\/versions\/installer\"\r\n\r\nfunction json_download_fabric {\r\n echo \"Downloading Fabric...\"\r\n\r\n local MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n local MC_VERSION=$(jq -r '.dependencies.minecraft \/\/ empty' \"${MANIFEST}\")\r\n local FABRIC_VERSION=$(jq -r '.dependencies.\"fabric-loader\" \/\/ empty' \"${MANIFEST}\")\r\n\r\n if [[ -z \"${MC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Minecraft version found in manifest '${MANIFEST}'\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${FABRIC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric version found in manifest '${MANIFEST}'\"\r\n exit 1\r\n fi\r\n\r\n local INSTALLER_JSON=$(wget -q -O - ${FABRIC_INSTALLER_URL} )\r\n local INSTALLER_VERSION=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].version \/\/ empty')\r\n local INSTALLER_URL=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].url \/\/ empty')\r\n\r\n if [[ -z \"${INSTALLER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric installer version found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${INSTALLER_URL}\" ]]; then\r\n echo -e \"\\tERROR: No Fabric installer url found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading Fabric Installer ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n\r\n if ! wget -q -O fabric-installer.jar \"${INSTALLER_URL}\"; then\r\n echo -e \"\\tERROR: Failed to download Fabric Installer ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Fabric Server ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n if ! java -jar fabric-installer.jar server -mcversion \"${MC_VERSION}\" -loader \"${FABRIC_VERSION}\" -downloadMinecraft; then\r\n echo -e \"\\tERROR: Failed to install Fabric Server ${MC_VERSION}-${FABRIC_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo \"fabric-server-launch.jar\" > \".serverjar\"\r\n\r\n rm -f fabric-installer.jar\r\n}\r\n\r\nQUILT_INSTALLER_URL=\"https:\/\/meta.quiltmc.org\/v3\/versions\/installer\"\r\n\r\nfunction json_download_quilt {\r\n echo \"Downloading Quilt...\"\r\n\r\n local MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n local MC_VERSION=$(jq -r '.dependencies.minecraft \/\/ empty' \"${MANIFEST}\")\r\n local QUILT_VERSION=$(jq -r '.dependencies.\"quilt-loader\" \/\/ empty' \"${MANIFEST}\")\r\n\r\n if [[ -z \"${MC_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Minecraft version found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${QUILT_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt version found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n local INSTALLER_JSON=$(wget -q -O - ${QUILT_INSTALLER_URL} )\r\n local INSTALLER_VERSION=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].version \/\/ empty')\r\n local INSTALLER_URL=$(echo \"$INSTALLER_JSON\" | jq -r '.[0].url \/\/ empty')\r\n\r\n if [[ -z \"${INSTALLER_JSON}\" ]]; then\r\n echo -e \"\\tERROR: Failed to retrieve Quilt installer information from manifest!\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${INSTALLER_VERSION}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt installer version found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n if [[ -z \"${INSTALLER_URL}\" ]]; then\r\n echo -e \"\\tERROR: No Quilt installer URL found in manifest!\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tDownloading Quilt Installer ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION}) from ${INSTALLER_URL}\"\r\n\r\n if ! wget -q -O quilt-installer.jar \"${INSTALLER_URL}\"; then\r\n echo -e \"\\tERROR: Failed to download Quilt installer ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo -e \"\\tInstalling Quilt Server ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n if ! java -jar quilt-installer.jar install server \"${MC_VERSION}\" \"${QUILT_VERSION}\" --download-server --install-dir=.\/; then\r\n echo -e \"\\tERROR: Failed to install Quilt Server ${MC_VERSION}-${QUILT_VERSION} (${INSTALLER_VERSION})\"\r\n exit 1\r\n fi\r\n\r\n echo \"quilt-server-launch.jar\" > \".serverjar\"\r\n\r\n rm quilt-installer.jar\r\n}\r\n\r\ninstall_required\r\n\r\nif [[ -z \"${PROJECT_ID}\" ]]; then\r\n echo \"ERROR: You must specify a PROJECT_ID environment variable!\"\r\n exit 1\r\nfi\r\n\r\nif [[ ! \"${PROJECT_ID}\" = \"zip\" ]]; then\r\n\tget_download\r\n\tunpack_zip\r\nelse\r\n\tunpack_zip\r\nfi\r\n\r\nif [[ -f \"${SERVER_DIR}\/modrinth.index.json\" ]]; then\r\n echo \"Found modrinth.index.json, installing mods\"\r\n json_download_mods\r\n json_download_overrides\r\nfi\r\n\r\nif [[ -f \"${SERVER_DIR}\/modrinth.index.json\" ]]; then\r\n MANIFEST=\"${SERVER_DIR}\/modrinth.index.json\"\r\n\r\n if [[ $(jq -r '.dependencies.forge' \"${MANIFEST}\") != \"null\" ]]; then\r\n json_download_forge\r\n fi\r\n\r\n if [[ $(jq -r '.dependencies.\"fabric-loader\"' \"${MANIFEST}\") != \"null\" ]]; then\r\n json_download_fabric\r\n fi\r\n\r\n if [[ $(jq -r '.dependencies.\"quilt-loader\"' \"${MANIFEST}\") != \"null\" ]]; then\r\n json_download_quilt\r\n fi\r\nfi\r\n\r\necho -e \"\\nInstall completed succesfully, enjoy!\"", "container": "eclipse-temurin:17-jdk", "entrypoint": "bash" } @@ -56,4 +56,4 @@ "field_type": "text" } ] -} \ No newline at end of file +}