{ "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", "meta": { "version": "PTDL_v2", "update_url": null }, "exported_at": "2024-04-01T11:41:53+02:00", "name": "Feed the Beast", "author": "aevum@decess.us", "description": "Egg to handle all official FTB Modpacks", "features": [ "eula", "java_version", "pid_limit" ], "docker_images": { "ghcr.io\/parkervcp\/yolks:java_8": "ghcr.io\/parkervcp\/yolks:java_8" }, "file_denylist": [], "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar FTBserv*.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 \"query.port\": \"{{server.build.default.port}}\",\r\n \"level-name\": \"{{server.build.env.LEVEL_NAME}}\",\r\n \"level-seed\": \"{{server.build.env.LEVEL_SEED}}\",\r\n \"max-players\": \"{{server.build.env.MAX_PLAYERS}}\",\r\n \"motd\": \"{{server.build.env.MOTD}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \")! For help, type \"\r\n}", "logs": "{\r\n\r\n}", "stop": "stop" }, "scripts": { "installation": { "script": "#!\/bin\/ash\r\n# Generic FTB Server Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# MODPACK_VERSION = version of the modpack, set in variables\r\n# i.e MODPACK_VERSION=1.5.0\r\n# MODPACK_URL = url base of the pack, set in variables, hardcoded\r\n# i.e https:\/\/www.feed-the-beast.com\/projects\/ftb-revelation\/files\r\n# MODPACK_URL=ftb-revelation\r\n\r\n## Correcting for bad variables\r\nGETPACK=$(echo ${MODPACK_URL} | cut -d \"\/\" -f 5 )\r\necho -e \"\\n The pack being downloaded is $GETPACK \\n\"\r\n\r\n## Getting the Base URL\r\nBASEURL=https:\/\/www.feed-the-beast.com\/projects\/${GETPACK}\/files\r\necho \"The base URL is ${BASEURL}\"\r\n\r\n## This is meant to get the pack ID that is unique and not exactly clear \r\n\r\n\r\nif [ -z \"${MODPACK_VERSION}\" ] || [ \"${MODPACK_VERSION}\" == \"latest\" ]; then\r\n ID=`curl -sl ${BASEURL} | grep -i -A9 'title=\"release\"' | grep -i -o 'href=\".*\"' | cut -d \"\/\" -f5 | sed s\/\\\"\/\/g`\r\n echo \"ID: ${ID}\"\r\nelse \r\n ID=`curl -sl ${BASEURL} | grep -i -A9 \"${MODPACK_VERSION}\" | grep -m1 -oE 'href=\"[^\\\"]+\"' | cut -d \"\/\" -f5 | grep -oE [0-9]+`\r\n echo \"ID: ${ID}\"\r\nfi\r\n\r\nSECONDURL=${BASEURL}\/${ID}\r\necho \"SECONDURL: ${SECONDURL}\"\r\n\r\nGOOD_ID=`curl -sl ${SECONDURL} | grep -i server | grep -Eo 'href=\"[^\\\"]+\"' | grep -o -E \"[0-9]+\" | tail -1`\r\necho \"GOOD_ID: ${GOOD_ID}\"\r\n\r\nDL_URL=${BASEURL}\/${GOOD_ID}\/download\r\necho \"Download_URL: ${DL_URL}\"\r\n\r\ncd \/mnt\/server\r\n\r\necho \"Executing curl -L ${DL_URL} -o $GETPACK.zip\"\r\ncurl -L ${DL_URL} -o $GETPACK.zip\r\n\r\nunzip ${GETPACK}.zip\r\n\r\nrm -rf ${GETPACK}.zip\r\n\r\necho \"Running FTBInstall.sh\"\r\nif [ -f .\/FTBInstall.sh ]; then\r\n sh .\/FTBInstall.sh\r\nelse\r\n echo -e \"No FTBInstall script found. Assumeing it's not needed.\"\r\nfi\r\n\r\n\r\n## install end\r\necho \"-----------------------------------------\"\r\necho \"Installation completed...\"\r\necho \"-----------------------------------------\"", "container": "ghcr.io\/parkervcp\/installers:alpine", "entrypoint": "ash" } }, "variables": [ { "name": "Modpack URL Name", "description": "Name of the modpack as referenced in URL's on feed-the-beast.com\r\ni.e\r\nhttps:\/\/www.feed-the-beast.com\/projects\/", "env_variable": "MODPACK_URL", "default_value": "", "user_viewable": true, "user_editable": true, "rules": "nullable|regex:([a-z-0-9]+$)", "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": "Level Seed", "description": "Optional specified level seed for map generation", "env_variable": "LEVEL_SEED", "default_value": "", "user_viewable": true, "user_editable": true, "rules": "nullable|string|max:40", "field_type": "text" }, { "name": "Max Players", "description": "Max # of players on the server", "env_variable": "MAX_PLAYERS", "default_value": "20", "user_viewable": true, "user_editable": true, "rules": "required|integer|max:100", "field_type": "text" }, { "name": "Level Name", "description": "Name of the world save", "env_variable": "LEVEL_NAME", "default_value": "world", "user_viewable": true, "user_editable": true, "rules": "required|alpha_dash|max:20", "field_type": "text" }, { "name": "MOTD", "description": "Message to appear when viewing the server in browser and on login", "env_variable": "MOTD", "default_value": "A Minecraft Server", "user_viewable": true, "user_editable": true, "rules": "required|string|max:20", "field_type": "text" } ] }