{"meta":{"slug":"sponge-forge","name":"Sponge Forge","category":"minecraft","source":"pterodactyl","owner":"pterodactyl","repo":"game-eggs","branch":"main","path":"minecraft/java/spongeforge/egg-sponge-forge.json","rawUrl":"https://raw.githubusercontent.com/pterodactyl/game-eggs/main/minecraft/java/spongeforge/egg-sponge-forge.json","indexedAt":1792246788483},"egg":{"_comment":"DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO","meta":{"version":"PTDL_v2","update_url":null},"exported_at":"2026-04-26T20:16:38+02:00","name":"SpongeForge","author":"ptero@redbananaofficial.com","description":"A community-driven open source Minecraft: Java Edition modding platform.","features":["eula","java_version","pid_limit"],"docker_images":{"Java 8":"ghcr.io/ptero-eggs/yolks:java_8","Java 11":"ghcr.io/ptero-eggs/yolks:java_11","Java 16":"ghcr.io/ptero-eggs/yolks:java_16","Java 17":"ghcr.io/ptero-eggs/yolks:java_17","java 21":"ghcr.io/ptero-eggs/yolks:java_21","java 22":"ghcr.io/ptero-eggs/yolks:java_22","Java 25":"ghcr.io/ptero-eggs/yolks:java_25"},"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\" )","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    \"userInteraction\": [\r\n        \"Go to eula.txt for more info.\"\r\n    ]\r\n}","logs":"{}","stop":"stop"},"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\nmkdir -p /mnt/server/mods\r\ncd /mnt/server\r\n\r\n# Create spongeForge download URL using SF_MC_VERSION variable\r\nif [[ \"${SF_MC_VERSION}\" == *-* ]]; then\r\n    echo -e \"Using specific SpongeForge version: ${SF_MC_VERSION}\"\r\n    SF_VERSION=${SF_MC_VERSION}\r\nelse\r\n    echo -e \"Fetching recommended SpongeForge version for Minecraft ${SF_MC_VERSION}\"\r\n    API_URL=\"https://dl-api-new.spongepowered.org/api/v2/groups/org.spongepowered/artifacts/spongeforge/latest?tags=minecraft:${SF_MC_VERSION}&recommended=true\"\r\n    SF_VERSION=$(curl -s ${API_URL} | jq -r '.coordinates.version // empty') || true\r\n    if [[ -z \"${SF_VERSION}\" ]]; then\r\n        echo -e \"Attempting to fetch latest SpongeForge version for Minecraft ${SF_MC_VERSION}\"\r\n        API_URL=\"https://dl-api-new.spongepowered.org/api/v2/groups/org.spongepowered/artifacts/spongeforge/latest?tags=minecraft:${SF_MC_VERSION}&recommended=false\"\r\n        SF_VERSION=$(curl -s ${API_URL} | jq -r '.coordinates.version // empty') || true\r\n    fi\r\n    if [[ -z \"${SF_VERSION}\" ]]; then\r\n        echo -e \"Error: Failed to retrieve SpongeForge version for Minecraft ${SF_MC_VERSION}\"\r\n        exit 1\r\n    fi\r\n    echo -e \"Found SpongeForge version: ${SF_VERSION}\"\r\nfi\r\n\r\n# Handle older versions legacy-transfer\r\nMC_VERSION=${SF_VERSION%%-*}\r\nSF_BASE_URL=\"https://repo.spongepowered.org/repository/maven-releases\"\r\nif [[ \"${MC_VERSION}\" == \"1.12.2\" || $(printf '%s\\n' \"$MC_VERSION\" \"1.12\" | sort -V | head -n1) == \"$MC_VERSION\" ]]; then\r\n    SF_BASE_URL=\"https://repo.spongepowered.org/repository/legacy-transfer\"\r\nfi\r\n\r\n# Download SpongeForge\r\nif [[ $(printf '%s\\n' \"$MC_VERSION\" \"1.16.5\" | sort -V | tail -n1) == \"$MC_VERSION\" || \"${MC_VERSION}\" == \"1.21.4\" ]]; then\r\n    SF_DL_LINK=\"${SF_BASE_URL}/org/spongepowered/spongeforge/${SF_VERSION}/spongeforge-${SF_VERSION}-universal.jar\"\r\nelse\r\n    SF_DL_LINK=\"${SF_BASE_URL}/org/spongepowered/spongeforge/${SF_VERSION}/spongeforge-${SF_VERSION}.jar\"\r\nfi\r\n\r\necho -e \"Downloading SpongeForge: ${SF_DL_LINK}\"\r\ncurl -L --retry 5 --retry-delay 5 -o /mnt/server/mods/spongeforge-${SF_VERSION}.jar ${SF_DL_LINK} || {\r\n    echo -e \"Error: SpongeForge download failed. Attempted URL: ${SF_DL_LINK}\"\r\n    exit 1\r\n}\r\n\r\n# Forge version mappings for older versions\r\ndeclare -A FORGE_VERSIONS=(\r\n    [\"1.12.2\"]=\"14.23.5.2838\"\r\n    [\"1.12.1\"]=\"14.22.1.2480\"\r\n    [\"1.11.2\"]=\"13.20.1.2476\"\r\n    [\"1.10.2\"]=\"12.18.3.2477\"\r\n    [\"1.9.4\"]=\"12.17.0.1968\"\r\n    [\"1.8.9\"]=\"11.15.1.1890-1.8.9\"\r\n)\r\n\r\n# Determine Forge version\r\nif [[ -n \"${FORGE_VERSIONS[${MC_VERSION}]}\" ]]; then\r\n    FORGE_VERSION=${FORGE_VERSIONS[${MC_VERSION}]}\r\nelse\r\n    IFS='-' read -ra VERSION_PARTS <<< \"$SF_VERSION\"\r\n    FORGE_VERSION=${VERSION_PARTS[1]:-${VERSION_PARTS[2]}}\r\nfi\r\n\r\n# Use unix_args.txt for versions 1.17 and above\r\nif printf '%s\\n' \"$MC_VERSION\" \"1.17\" | sort -V | tail -n1 | grep -q \"$MC_VERSION\"; then\r\n    echo -e \"Using unix_args.txt for versions 1.17 and above.\"\r\n    ln -sf libraries/net/minecraftforge/forge/${MC_VERSION}-${FORGE_VERSION}/unix_args.txt unix_args.txt\r\nfi\r\n\r\n# Download Forge\r\necho -e \"Downloading Forge for Minecraft ${MC_VERSION}\"\r\nFORGE_DL_LINK=\"https://maven.minecraftforge.net/net/minecraftforge/forge/${MC_VERSION}-${FORGE_VERSION}/forge-${MC_VERSION}-${FORGE_VERSION}-installer.jar\"\r\n\r\necho -e \"Forge download URL: ${FORGE_DL_LINK}\"\r\ncurl -L --retry 5 --retry-delay 5 -o installer.jar ${FORGE_DL_LINK} || {\r\n    echo -e \"Error: Failed to download Forge installer. URL attempted: ${FORGE_DL_LINK}\"\r\n    exit 1\r\n}\r\n\r\n# Run installer\r\nif ! java -jar installer.jar --installServer; then\r\n    echo -e \"Error: Invalid or corrupt Forge installer. URL: ${FORGE_DL_LINK}\"\r\n    exit 1\r\nfi\r\nrm installer.jar\r\n\r\n# Locate universal jar\r\nSERVER_JAR_PATH=$(find . -type f -name \"forge-*-universal.jar\" | head -n 1)\r\nif [[ -f \"$SERVER_JAR_PATH\" ]]; then\r\n    echo -e \"Found Forge universal JAR: $SERVER_JAR_PATH\"\r\n    cp \"$SERVER_JAR_PATH\" server.jar\r\n    cp \"$SERVER_JAR_PATH\" \"${SERVER_JAR_PATH}.backup\"\r\nelse\r\n    echo -e \"Error: Universal Forge JAR not found. Installation failed.\"\r\n    exit 1\r\nfi\r\n\r\necho -e \"SpongeForge installation complete.\"","container":"eclipse-temurin:8-jdk-jammy","entrypoint":"bash"}},"variables":[{"name":"Server Jar File","description":"The name of the Jarfile to use when running Forge Mod.","env_variable":"SERVER_JARFILE","default_value":"server.jar","user_viewable":true,"user_editable":true,"rules":"required|regex:/^([\\w\\d._-]+)(\\.jar)$/","field_type":"text"},{"name":"Spongeforge Minecraft Version","description":"Either use a full version such as: 1.20.6-50.0.22-11.0.0-RC1633 to fetch an exact version\r\nOr just use the Minecraft version such as: 1.20.6, 1.19.4, etc. to get the recommended version\r\nSupported versions can be found here: https://spongepowered.org/downloads/spongeforge","env_variable":"SF_MC_VERSION","default_value":"1.20.6","user_viewable":true,"user_editable":true,"rules":"required|string|max:30","field_type":"text"}]},"readme":"# SpongeForge\n\nSpongeForge is the implementation of the Sponge API on the Minecraft Forge platform.\n\n[SpongePowered Website](https://www.spongepowered.org/)\n\n## Server Ports\n\nThe minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server.\n\n| Port  | default |\n|-------|---------|\n| Game  | 25565   |\n\n### Author & Contributers\n| Name        | Github Profile  | Buy me a Coffee |\n| ------------- |-------------|-------------|\n|   Red-Banana-Official  | https://github.com/Red-Banana-Official | / |\n|   Parkervcp   | https://github.com/parkervcp | /  |\n"}