[
    {
        "UpdateStageName": "SteamCMD Server Download",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "SteamCMD",
        "UpdateSourceData": "376030",
        "UpdateSourceArgs": "346110",
        "ForceDownloadPlatform": "Windows",
        "UpdateSourceVersion": "{{ServerBranch}}",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Modscript Download",
        "UpdateSourcePlatform": "Linux",
        "UpdateSource": "FetchURL",
        "UpdateSourceData": "https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/ark-se-minapimanagemods.sh",
        "UpdateSourceArgs": "managemods.sh",
        "UpdateSourceTarget": "{{$FullInstanceDir}}",
        "OverwriteExistingFiles": true,
        "UpdateSourceConditionSetting": "automanagedmods",
        "UpdateSourceConditionValue": " ",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Manage Mods",
        "UpdateSourcePlatform": "Linux",
        "UpdateSource": "Executable",
        "UpdateSourceData": "/bin/bash",
        "UpdateSourceArgs": "./managemods.sh \\\"{{GameModIds}}\\\"",
        "UpdateSourceConditionSetting": "automanagedmods",
        "UpdateSourceConditionValue": " ",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Modscript Download",
        "UpdateSourcePlatform": "Windows",
        "UpdateSource": "FetchURL",
        "UpdateSourceData": "https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/ark-se-minapimanagemods.ps1",
        "UpdateSourceArgs": "managemods.ps1",
        "UpdateSourceTarget": "{{$FullInstanceDir}}",
        "OverwriteExistingFiles": true,
        "UpdateSourceConditionSetting": "automanagedmods",
        "UpdateSourceConditionValue": " ",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Manage Mods",
        "UpdateSourcePlatform": "Windows",
        "UpdateSource": "Executable",
        "UpdateSourceData": "powershell.exe",
        "UpdateSourceArgs": "-NoProfile -ExecutionPolicy Bypass -File \"managemods.ps1\" \"{{GameModIds}}\"",
        "UpdateSourceConditionSetting": "automanagedmods",
        "UpdateSourceConditionValue": " ",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "ServerAPI First Config Backup",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "CopyFilePath",
        "UpdateSourceData": "{{$FullBaseDir}}ShooterGame/Binaries/Win64/config.json.bak",
        "UpdateSourceArgs": "{{$FullBaseDir}}ShooterGame/Binaries/Win64/config.json",
        "OverwriteExistingFiles": true,
        "SkipOnFailure": true
    },
    {
        "UpdateStageName": "ServerAPI Second Config Backup",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "CopyFilePath",
        "UpdateSourceData": "{{$FullBaseDir}}ShooterGame/Binaries/Win64/ArkApi/Plugins/Permissions/config.json.bak",
        "UpdateSourceArgs": "{{$FullBaseDir}}ShooterGame/Binaries/Win64/ArkApi/Plugins/Permissions/config.json",
        "OverwriteExistingFiles": true,
        "SkipOnFailure": true
    },
    {
        "UpdateStageName": "ServerAPI Download",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "GithubRelease",
        "UpdateSourceArgs": "ArkServerApi/AseApi",
        "UpdateSourceTarget": "{{$FullBaseDir}}ShooterGame/Binaries/Win64/",
        "UnzipUpdateSource": true,
        "OverwriteExistingFiles": true,
        "DeleteAfterExtract": true
    },
    {
        "UpdateStageName": "ServerAPI First Config Restore",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "CopyFilePath",
        "UpdateSourceData": "{{$FullBaseDir}}ShooterGame/Binaries/Win64/config.json",
        "UpdateSourceArgs": "{{$FullBaseDir}}ShooterGame/Binaries/Win64/config.json.bak",
        "OverwriteExistingFiles": true,
        "SkipOnFailure": true
    },
    {
        "UpdateStageName": "ServerAPI Second Config Restore",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "CopyFilePath",
        "UpdateSourceData": "{{$FullBaseDir}}ShooterGame/Binaries/Win64/ArkApi/Plugins/Permissions/config.json",
        "UpdateSourceArgs": "{{$FullBaseDir}}ShooterGame/Binaries/Win64/ArkApi/Plugins/Permissions/config.json.bak",
        "OverwriteExistingFiles": true,
        "SkipOnFailure": true
    },
    {
        "UpdateStageName": "Config Directory Creation",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "CreateDirectory",
        "UpdateSourceArgs": "{{$FullBaseDir}}ShooterGame/Saved/Config/WindowsServer",
        "OverwriteExistingFiles": false
    },
    {
        "UpdateStageName": "Create Game.ini",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "CreateFile",
        "UpdateSourceArgs": "{{$FullBaseDir}}ShooterGame/Saved/Config/WindowsServer/Game.ini",
        "OverwriteExistingFiles": false
    },
    {
        "UpdateStageName": "Create GameUserSettings.ini",
        "UpdateSourcePlatform": "All",
        "UpdateSource": "CreateFile",
        "UpdateSourceArgs": "{{$FullBaseDir}}ShooterGame/Saved/Config/WindowsServer/GameUserSettings.ini",
        "OverwriteExistingFiles": false
    },
    {
        "UpdateStageName": "Initialise Wine",
        "UpdateSourcePlatform": "Linux",
        "UpdateSource": "Executable",
        "UpdateSourceData": "/bin/bash",
        "UpdateSourceArgs": "-c \"WINEPREFIX=\\\"{{$FullRootDir}}.wine\\\" WINEARCH=win64 WINEDEBUG=-all /usr/bin/wineboot --init --update\"",
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Winescript Download",
        "UpdateSourcePlatform": "Linux",
        "UpdateSource": "FetchURL",
        "UpdateSourceData": "https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/ark-seminapiwinescript.sh",
        "UpdateSourceArgs": "winescript.sh",
        "UpdateSourceTarget": "{{$FullInstanceDir}}",
        "OverwriteExistingFiles": true,
        "SkipOnFailure": false
    },
    {
        "UpdateStageName": "Install Windows Components",
        "UpdateSourcePlatform": "Linux",
        "UpdateSource": "Executable",
        "UpdateSourceData": "/bin/bash",
        "UpdateSourceArgs": "./winescript.sh",
        "SkipOnFailure": false
    }
]