{
  "meta": {
    "version": "PTDL_v2",
    "update_url": null
  },
  "exported_at": "2026-08-18T21:01:56+00:00",
  "name": "Magma",
  "author": "support@pterodactyl.io",
  "description": "Magma es el servidor de Minecraft que combina el rendimiento de Paper con la capacidad de ejecutar mods de Forge, ofreciendo una experiencia de juego optimizada y personalizada para los jugadores de Minecraft.",
  "features": [
    "eula",
    "java_version",
    "pid_limit"
  ],
  "container_version_map": [
    {
      "version": "1.20.1",
      "docker_image": "ghcr.io/pelican-eggs/yolks:java_17"
    },
    {
      "version": "1.19.3",
      "docker_image": "ghcr.io/pelican-eggs/yolks:java_17"
    },
    {
      "version": "1.18.2",
      "docker_image": "ghcr.io/pelican-eggs/yolks:java_17"
    },
    {
      "version": "1.12.2",
      "docker_image": "ghcr.io/pelican-eggs/yolks:java_8"
    }
  ],
  "file_denylist": [],
  "startup": "java -Xms128M -XX:MaxRAMPercentage=95.0 -jar {{SERVER_JARFILE}}",
  "config": {
    "files": "{\n    \"server.properties\": {\n        \"parser\": \"properties\",\n        \"find\": {\n            \"server-ip\": \"0.0.0.0\",\n            \"server-port\": \"{{server.build.default.port}}\"\n        }\n    }\n}",
    "startup": "{\"done\":\")! For help, type\"}",
    "logs": "{}",
    "stop": "stop"
  },
  "scripts": {
    "installation": {
      "script": "#!/bin/bash\n\nset -euo pipefail\n\nsource /usr/local/lib/egg-utils.sh\negg_init\n\n: \"${SERVER_JARFILE:=server.jar}\"\n\nif [[ -z \"${MC_VERSION:-}\" ]]; then\n  egg_warn \"MC_VERSION not defined, defaulting to 1.20.1\"\n  MC_VERSION=\"1.20.1\"\nfi\n\negg_info \"Magma for MC ${MC_VERSION}\"\n\nCURL_HEADERS=()\nif [[ -n \"${GITHUB_PAT:-}\" ]]; then\n  CURL_HEADERS=(-H \"Authorization: Bearer ${GITHUB_PAT}\")\nfi\n\nif [[ -z \"${TAG_VERSION:-}\" || \"${TAG_VERSION}\" == \"latest\" ]]; then\n  LATEST_JSON=$(egg_cached_fetch \"https://api.github.com/repos/magmamaintained/Magma-${MC_VERSION}/releases/latest\" \"magma-${MC_VERSION}-latest\" 300)\n  DOWNLOAD_LINK=$(echo \"${LATEST_JSON}\" | jq -r '.assets[]? | select(.name | endswith(\".jar\")) | .browser_download_url' | head -n 1)\nelse\n  RELEASES=$(curl -fsSL \"${CURL_HEADERS[@]}\" \"https://api.github.com/repos/magmamaintained/Magma-${MC_VERSION}/releases\")\n  DOWNLOAD_LINK=$(echo \"${RELEASES}\" | jq -r --arg VERSION \"${TAG_VERSION}\" '.[]? | select(.tag_name==$VERSION) | .assets[]? | select(.name | endswith(\".jar\")) | .browser_download_url' | head -n 1)\nfi\n\nif [[ -z \"${DOWNLOAD_LINK}\" || \"${DOWNLOAD_LINK}\" == \"null\" ]]; then\n  egg_error \"Could not resolve Magma download link\"\nfi\n\negg_download \"${DOWNLOAD_LINK}\" \"${SERVER_JARFILE}\"\n\nif [[ ! -s \"${SERVER_JARFILE}\" ]]; then\n  egg_error \"Downloaded file is empty\"\nfi\n\necho \"eula=true\" > eula.txt\n\negg_info \"Magma installation complete\"\n",
      "container": "ghcr.io/enderhost/installers:latest",
      "entrypoint": "bash"
    }
  },
  "variables": [
    {
      "name": "Server Jar File",
      "description": "El nombre del archivo JAR con el que se ejecutará el servidor.",
      "env_variable": "SERVER_JARFILE",
      "default_value": "server.jar",
      "user_viewable": true,
      "user_editable": false,
      "rules": "required|regex:/^([\\w\\d._-]+)(\\.jar)$/",
      "field_type": "text",
      "source": "user"
    },
    {
      "name": "Minecraft Version",
      "description": "La versión de Minecraft que se utilizará para instalar Magma.",
      "env_variable": "MC_VERSION",
      "default_value": "1.20.1",
      "user_viewable": true,
      "user_editable": true,
      "rules": "nullable|string|in:1.20.1,1.19.3,1.18.2,1.12.2",
      "field_type": "select",
      "source": "user",
      "defines_version": true
    },
    {
      "name": "Tag Version",
      "description": "Opcional. Especifica la versión del tag a instalar. Usa latest para instalar la más reciente.",
      "env_variable": "TAG_VERSION",
      "default_value": "latest",
      "user_viewable": true,
      "user_editable": true,
      "rules": "required|string|max:32",
      "field_type": "text",
      "source": "user"
    },
    {
      "name": "GitHub Personal Access Token",
      "description": "Opcional. Token de acceso personal de GitHub para evitar límites de tasa (rate limits) en la API de GitHub.",
      "env_variable": "GITHUB_PAT",
      "default_value": "",
      "user_viewable": true,
      "user_editable": true,
      "rules": "nullable|string",
      "field_type": "text",
      "source": "user"
    }
  ]
}
