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