{
    "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
    "meta": {
        "version": "PTDL_v2",
        "update_url": null
    },
    "exported_at": "2023-03-19T08:36:18+01:00",
    "name": "tshock",
    "author": "parker@parkervcp.com",
    "description": "The t-shock modded terraria server.\r\n\r\nhttps:\/\/tshock.co\/",
    "features": null,
    "docker_images": {
        "Dotnet 6": "ghcr.io\/parkervcp\/yolks:dotnet_6"
    },
    "file_denylist": [],
    "startup": ".\/TShock.Server -ip 0.0.0.0 -port {{SERVER_PORT}} -maxplayers {{MAX_PLAYERS}} -world {{WORLD_NAME}}.wld -autocreate {{WORLD_SIZE}}",
    "config": {
        "files": "{}",
        "startup": "{\r\n    \"done\": \"Type 'help' for a list of commands\"\r\n}",
        "logs": "{}",
        "stop": "exit"
    },
    "scripts": {
        "installation": {
            "script": "#!\/bin\/bash\r\n# Vanilla tModloader Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n## install packages to get version and download links\r\napt update\r\napt install -y curl wget jq file unzip\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/Pryaxis\/TShock\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/Pryaxis\/TShock\/releases\")\r\nMATCH=$([[ \"$(uname -m)\" == \"x86_64\" ]] && echo \"linux-x64\" || echo \"linux-arm64\")\r\n\r\necho ${MATCH}\r\n\r\nif [ -z \"$TSHOCK_VERSION\" ] || [ \"$TSHOCK_VERSION\" == \"latest\" ]; then\r\n    DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH} | head -1 )\r\nelse\r\n    VERSION_CHECK=$(echo $RELEASES | jq -r --arg VERSION \"$TSHOCK_VERSION\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n    if [ \"$TSHOCK_VERSION\" == \"$VERSION_CHECK\" ]; then\r\n        DOWNLOAD_LINK=$(echo $RELEASES | jq -r --arg VERSION \"$TSHOCK_VERSION\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' |  grep -i ${MATCH} | head -1 )\r\n    else\r\n        echo -e \"defaulting to latest release\"\r\n        DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH} | head -1)\r\n    fi\r\nfi\r\n\r\n## mkdir and cd to \/mnt\/server\/\r\nmkdir -p \/mnt\/server\r\n\r\ncd \/mnt\/server\r\n\r\n## download release\r\necho -e \"running: wget $DOWNLOAD_LINK\"\r\nwget $DOWNLOAD_LINK -O TShock.zip\r\n\r\nunzip -o TShock.zip\r\n\r\ntar xvf TShock-*.tar\r\n\r\nrm TShock.zip TShock-*.tar\r\n\r\nchmod +x TShock.Server\r\n\r\necho -e \"install complete\"",
            "container": "ghcr.io\/parkervcp\/installers:debian",
            "entrypoint": "\/bin\/bash"
        }
    },
    "variables": [
        {
            "name": "Max Players",
            "description": "The maximum number of players a server will hold.",
            "env_variable": "MAX_PLAYERS",
            "default_value": "8",
            "user_viewable": true,
            "user_editable": false,
            "rules": "required|numeric|digits_between:1,3",
            "field_type": "text"
        },
        {
            "name": "World Size",
            "description": "Defines the worlds size. 3 sizes 1 (small), 2 (medium), 3 (large).",
            "env_variable": "WORLD_SIZE",
            "default_value": "1",
            "user_viewable": true,
            "user_editable": false,
            "rules": "required|numeric|digits_between:1,3",
            "field_type": "text"
        },
        {
            "name": "World Name",
            "description": "The name for the world file.",
            "env_variable": "WORLD_NAME",
            "default_value": "world",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|max:20",
            "field_type": "text"
        },
        {
            "name": "Tshock Version",
            "description": "The version on tshock that will be installed. default is latest non-pre-release",
            "env_variable": "TSHOCK_VERSION",
            "default_value": "latest",
            "user_viewable": true,
            "user_editable": false,
            "rules": "required|string|max:20",
            "field_type": "text"
        }
    ]
}
