{
    "_comment": "Pterodactyl Arma Reforger Egg ~ Red-Thirten ~ 2022-05-20",
    "meta": {
        "version": "PTDL_v1",
        "update_url": null
    },
    "name": "Arma Reforger",
    "author": "rehlmgaming@gmail.com",
    "description": "Experience authentic Cold War combat and join friends in the struggle for a sprawling, 51 km\u00b2 mid-Atlantic island \u2014 or take on the role of Game Master and create your very own scenarios for others to enjoy.",
    "features": [
        "steam_disk_space"
    ],
    "images": [
        "ghcr.io\/parkervcp\/games:source"
    ],
    "file_denylist": [],
    "startup": ".\/ArmaReforgerServer -gproj .\/addons\/data\/ArmaReforger.gproj -config .\/config.json -profile .\/profile -backendlog -nothrow -listScenarios -logStats $(({{LOG_INTERVAL}}*1000)) -maxFPS {{MAX_FPS}}",
    "config": {
        "files": "{\r\n    \"config.json\": {\r\n        \"parser\": \"file\",\r\n        \"find\": {\r\n            \"    \\\"region\\\"\": \"    \\\"region\\\": \\\"{{server.build.env.REGION}}\\\",\",\r\n            \"    \\\"gameHostBindAddress\\\"\": \"    \\\"gameHostBindAddress\\\": \\\"0.0.0.0\\\",\",\r\n            \"    \\\"gameHostBindPort\\\"\": \"    \\\"gameHostBindPort\\\": {{server.build.default.port}},\",\r\n            \"    \\\"gameHostRegisterBindAddress\\\"\": \"    \\\"gameHostRegisterBindAddress\\\": \\\"{{server.build.default.ip}}\\\",\",\r\n            \"    \\\"gameHostRegisterPort\\\"\": \"    \\\"gameHostRegisterPort\\\": {{server.build.default.port}},\",\r\n            \"    \\\"adminPassword\\\"\": \"    \\\"adminPassword\\\": \\\"{{server.build.env.ADMIN_PASS}}\\\",\",\r\n            \"        \\\"name\\\"\": \"        \\\"name\\\": \\\"{{server.build.env.SERVER_NAME}}\\\",\",\r\n            \"        \\\"password\\\"\": \"        \\\"password\\\": \\\"{{server.build.env.SERVER_PASS}}\\\",\",\r\n            \"        \\\"scenarioId\\\"\": \"        \\\"scenarioId\\\": \\\"{{server.build.env.SCENARIO_ID}}\\\",\",\r\n            \"        \\\"playerCountLimit\\\"\": \"        \\\"playerCountLimit\\\": {{server.build.env.MAX_PLAYERS}},\",\r\n\t\t\t\"        \\\"autoJoinable\\\"\": \"        \\\"autoJoinable\\\": {{server.build.env.AUTO_JOINABLE}},\",\r\n\t\t\t\"        \\\"visible\\\"\": \"        \\\"visible\\\": {{server.build.env.VISIBLE}},\",\r\n\t\t\t\"            \\\"disableThirdPerson\\\"\": \"            \\\"disableThirdPerson\\\": {{server.build.env.DISABLE_THIRD}},\",\r\n\t\t\t\"            \\\"battlEye\\\"\": \"            \\\"battlEye\\\": {{server.build.env.BATTLEYE}},\"\r\n        }\r\n    }\r\n}",
        "startup": "{\r\n    \"done\": \"Starting RPL server\"\r\n}",
        "logs": "{}",
        "stop": "^C"
    },
    "scripts": {
        "installation": {
            "script": "#!\/bin\/bash\r\n\r\n## File: Pterodactyl Arma Reforger Egg - egg-arma-reforger.json\r\n## Author: David Wolfe (Red-Thirten)\r\n## Date: 2022\/05\/20\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\n# Install packages. Default packages below are skipped if using image noted above, thus speeding up the install process.\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc-s1 ca-certificates\r\n\r\n# Download and install SteamCMD\r\nexport HOME=\/mnt\/server\r\ncd \/tmp\r\nmkdir -p $HOME\/steamcmd $HOME\/steamapps\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C $HOME\/steamcmd\r\ncd $HOME\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\n# Install game server using SteamCMD\r\n.\/steamcmd.sh +force_install_dir $HOME +login anonymous +app_update ${SRCDS_APPID} validate +quit\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so $HOME\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so $HOME\/.steam\/sdk64\/steamclient.so\r\n\r\n## Arma Reforger setup\r\n# Check for successful installation\r\nif [[ ! -f $HOME\/ArmaReforgerServer ]]; then\r\n    echo -e \"\\n\\nSteamCMD failed to install the Arma Reforger Dedicated Server!\"\r\n    echo -e \"\\tTry reinstalling the server again.\\n\"\r\n    exit 1\r\nfi\r\n\r\nmkdir -p $HOME\/profile\r\n\r\necho -e 'Creating default \"config.json\" configuration file...'\r\ncat > $HOME\/config.json << EOF\r\n{\r\n\t\"dedicatedServerId\": \"\",\r\n\t\"region\": \"${REGION}\",\r\n\t\"gameHostBindAddress\": \"0.0.0.0\",\r\n\t\"gameHostBindPort\": ${SERVER_PORT},\r\n\t\"gameHostRegisterBindAddress\": \"${SERVER_IP}\",\r\n\t\"gameHostRegisterPort\": ${SERVER_PORT},\r\n\t\"adminPassword\": \"${ADMIN_PASS}\",\r\n\t\"game\": {\r\n\t\t\"name\": \"${SERVER_NAME}\",\r\n\t\t\"password\": \"${SERVER_PASS}\",\r\n\t\t\"scenarioId\": \"${SCENARIO_ID}\",\r\n\t\t\"playerCountLimit\": ${MAX_PLAYERS},\r\n\t\t\"autoJoinable\": ${AUTO_JOINABLE},\r\n\t\t\"visible\": ${VISIBLE},\r\n\t\t\"gameProperties\": {\r\n\t\t\t\"serverMaxViewDistance\": 2500,\r\n\t\t\t\"serverMinGrassDistance\": 50,\r\n\t\t\t\"networkViewDistance\": 1000,\r\n\t\t\t\"disableThirdPerson\": ${DISABLE_THIRD},\r\n\t\t\t\"fastValidation\": true,\r\n\t\t\t\"battlEye\": ${BATTLEYE},\r\n\t\t\t\"missionHeader\": {}\r\n\t\t},\r\n\t\t\"mods\": []\r\n\t}\r\n}\r\nEOF\r\n\r\necho -e \"\\nArma Reforger Dedicated Server successfully installed!\\n\"",
            "container": "ghcr.io\/parkervcp\/installers:debian",
            "entrypoint": "\/bin\/bash"
        }
    },
    "variables": [
        {
            "name": "Automatic Updates",
            "description": "Quickly checks for any server or mod updates on startup, and updates if necessary.",
            "env_variable": "AUTO_UPDATE",
            "default_value": "1",
            "user_viewable": true,
            "user_editable": true,
            "rules": "boolean"
        },
        {
            "name": "Server Region",
            "description": "Region listed in the server browser. ISO 3166-1 alpha-2 codes can be used in this field.",
            "env_variable": "REGION",
            "default_value": "US",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|in:AD,AE,AF,AG,AI,AL,AM,AO,AQ,AR,AS,AT,AU,AW,AX,AZ,BA,BB,BD,BE,BF,BG,BH,BI,BJ,BL,BM,BN,BO,BQ,BR,BS,BT,BV,BW,BY,BZ,CA,CC,CD,CF,CG,CH,CI,CK,CL,CM,CN,CO,CR,CU,CV,CW,CX,CY,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,EH,ER,ES,ET,EU,FI,FJ,FK,FM,FO,FR,GA,GB,GD,GE,GF,GG,GH,GI,GL,GM,GN,GP,GQ,GR,GS,GT,GU,GW,GY,HK,HM,HN,HR,HT,HU,ID,IE,IL,IM,IN,IO,IQ,IR,IS,IT,JE,JM,JO,JP,KE,KG,KH,KI,KM,KN,KP,KR,KW,KY,KZ,LA,LB,LC,LI,LK,LR,LS,LT,LU,LV,LY,MA,MC,MD,ME,MF,MG,MH,MK,ML,MM,MN,MO,MP,MQ,MR,MS,MT,MU,MV,MW,MX,MY,MZ,NA,NC,NE,NF,NG,NI,NL,NO,NP,NR,NU,NZ,OM,PA,PE,PF,PG,PH,PK,PL,PM,PN,PR,PS,PT,PW,PY,QA,RE,RO,RS,RU,RW,SA,SB,SC,SD,SE,SG,SH,SI,SJ,SK,SL,SM,SN,SO,SR,SS,ST,SV,SX,SY,SZ,TC,TD,TF,TG,TH,TJ,TK,TL,TM,TN,TO,TR,TT,TV,TW,TZ,UA,UG,UM,US,UY,UZ,VA,VC,VE,VG,VI,VN,VU,WF,WS,YE,YT,ZA,ZM,ZW"
        },
        {
            "name": "Server Name",
            "description": "Name displayed in the server browser.",
            "env_variable": "SERVER_NAME",
            "default_value": "Arma Reforger Server",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|max:255"
        },
        {
            "name": "Max Players",
            "description": "Maximum number of players allowed to join the server.",
            "env_variable": "MAX_PLAYERS",
            "default_value": "32",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|integer|between:1,256"
        },
        {
            "name": "Server Password",
            "description": "Password required for clients to enter before they can join the server. Leave empty to have no password.",
            "env_variable": "SERVER_PASS",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|string|max:32"
        },
        {
            "name": "Admin Password",
            "description": "",
            "env_variable": "ADMIN_PASS",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|string|max:32"
        },
        {
            "name": "Scenario ID",
            "description": "ID of scenario to run\/play. Valid IDs can be viewed in the console upon startup of the server.",
            "env_variable": "SCENARIO_ID",
            "default_value": "{ECC61978EDCC2B5A}Missions\/23_Campaign.conf",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string"
        },
        {
            "name": "Auto Joinable",
            "description": "Set if the session can be selected through the auto join feature.",
            "env_variable": "AUTO_JOINABLE",
            "default_value": "true",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|in:true,false"
        },
        {
            "name": "Visible in Server Browser",
            "description": "Set the visibility of the server in the Server Browser.",
            "env_variable": "VISIBLE",
            "default_value": "true",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|in:true,false"
        },
        {
            "name": "Enable BattlEye",
            "description": "Enables the anti-cheat engine on the server and requires all clients to be running it.",
            "env_variable": "BATTLEYE",
            "default_value": "true",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|in:true,false"
        },
        {
            "name": "Disable Third Person",
            "description": "",
            "env_variable": "DISABLE_THIRD",
            "default_value": "false",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|string|in:true,false"
        },
        {
            "name": "[Advanced] Max FPS",
            "description": "Sets a maximum FPS limit for the server, saving performance in some cases. Leave empty for no limit.",
            "env_variable": "MAX_FPS",
            "default_value": "120",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|integer|gt:0"
        },
        {
            "name": "[Advanced] Log FPS Interval",
            "description": "How often (in seconds) to log the FPS and other debug stats to the console. Set to 0 to disable.",
            "env_variable": "LOG_INTERVAL",
            "default_value": "0",
            "user_viewable": true,
            "user_editable": true,
            "rules": "required|integer|min:0"
        },
        {
            "name": "[Repair] Validate Server Files",
            "description": "\"true\" to enable; empty to disable. Validates all server files when Automatic Updates is enabled. Note: This will significantly increase server startup times, so it is recommended to only enable this when needed.",
            "env_variable": "VALIDATE",
            "default_value": "",
            "user_viewable": true,
            "user_editable": true,
            "rules": "nullable|string"
        },
        {
            "name": "[Advanced] Arma Reforger Dedicated Server App ID",
            "description": "Used for installation and updates. Rarely needs to be changed.",
            "env_variable": "SRCDS_APPID",
            "default_value": "1874900",
            "user_viewable": false,
            "user_editable": false,
            "rules": "required|integer"
        }
    ]
}