{
  "meta": {
    "version": "PTDL_v2",
    "update_url": null
  },
  "exported_at": "2026-08-15T02:37:17+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/ptero-eggs/yolks:java_17"
    },
    {
      "version": "1.19.3",
      "docker_image": "ghcr.io/ptero-eggs/yolks:java_17"
    },
    {
      "version": "1.18.2",
      "docker_image": "ghcr.io/ptero-eggs/yolks:java_17"
    },
    {
      "version": "1.12.2",
      "docker_image": "ghcr.io/ptero-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\nmkdir -p /mnt/server\ncd /mnt/server\n\n[ -z \"${SERVER_JARFILE:-}\" ] && SERVER_JARFILE=\"server.jar\"\n\nif [ -z \"${MC_VERSION:-}\" ]; then\n  echo \"MC_VERSION not defined, using 1.20.1\"\n  MC_VERSION=\"1.20.1\"\nfi\n\necho \"Selected repository: Magma-${MC_VERSION}\"\n\nPAT=\"${GITHUB_PAT}\"\nCURL_HEADERS=()\nif [ -n \"${PAT}\" ]; then\n  CURL_HEADERS=(-H \"Authorization: Bearer ${PAT}\")\nfi\n\nif [ -z \"${TAG_VERSION:-}\" ] || [ \"${TAG_VERSION}\" == \"latest\" ]; then\n  LATEST_JSON=$(curl -sSL \"${CURL_HEADERS[@]}\" \"https://api.github.com/repos/magmamaintained/Magma-${MC_VERSION}/releases/latest\")\n  DOWNLOAD_LINK=$(echo \"${LATEST_JSON}\" | jq -r '.assets[]? | select(.name | endswith(\".jar\")) | .browser_download_url' | head -n 1)\nelse\n  RELEASES=$(curl -sSL \"${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  echo \"Error: Could not resolve Magma download link from GitHub API.\"\n  exit 1\nfi\n\necho \"Download link: ${DOWNLOAD_LINK}\"\necho \"Downloading server jar...\"\ncurl -sSL -o \"${SERVER_JARFILE}\" \"${DOWNLOAD_LINK}\"\n\nif [ ! -f \"${SERVER_JARFILE}\" ] || [ ! -s \"${SERVER_JARFILE}\" ]; then\n  echo \"Error: Downloaded file is missing or empty.\"\n  exit 1\nfi\n\necho \"Install complete\"\n",
      "container": "ghcr.io/ptero-eggs/installers:debian",
      "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"
    }
  ]
}
