[
    {
        "DisplayName": "Public Port",
        "Category": "Impostor:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "",
        "Keywords": "",
        "FieldName": "$ServerPort",
        "InputType": "number",
        "IsFlagArgument": false,
        "Hidden": true,
        "ParamFieldName": "$.Server.PublicPort",
        "IncludeInCommandLine": false,
        "EnumValues": {}
    },
    {
        "DisplayName": "Listen Port",
        "Category": "Impostor:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "",
        "Keywords": "",
        "FieldName": "$ServerPort",
        "InputType": "number",
        "IsFlagArgument": false,
        "Hidden": true,
        "ParamFieldName": "$.Server.ListenPort",
        "IncludeInCommandLine": false,
        "EnumValues": {}
    },
    {
        "DisplayName": "HTTP Matchmaking Port",
        "Category": "Impostor:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "",
        "Keywords": "",
        "FieldName": "$ServerPort",
        "InputType": "number",
        "IsFlagArgument": false,
        "Hidden": true,
        "ParamFieldName": "$.HttpServer.ListenPort",
        "IncludeInCommandLine": false,
        "EnumValues": {}
    },
    {
        "DisplayName": "IP Binding",
        "Category": "Impostor:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "",
        "Keywords": "",
        "FieldName": "$ApplicationIPBinding",
        "InputType": "text",
        "IsFlagArgument": false,
        "Hidden": true,
        "ParamFieldName": "$.Server.ListenIp",
        "IncludeInCommandLine": false,
        "EnumValues": {}
    },
    {
        "DisplayName": "Build Stream",
        "Category": "Impostor:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the build stream for the server - either the mainline release stream, or the nightly (CI) stream. The Server Version also needs to be set. Back up configuration and update the server!",
        "Keywords": "build,stream",
        "FieldName": "BuildStream",
        "InputType": "enum",
        "IsFlagArgument": false,
        "ParamFieldName": "BuildStream",
        "IncludeInCommandLine": false,
        "DefaultValue": "Release",
        "EnumValues": {
            "Release": "Mainline (Default)",
            "Nightly": "Nightly"
        }
    },
    {
        "DisplayName": "Server Version",
        "Category": "Impostor:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the server version (either a [release](https://github.com/Impostor/Impostor/releases) version or a [nightly](https://nightly.link/Impostor/Impostor/workflows/ci/master) version) to install. For nightly, you must include the build number, such as \"1.9.1-ci.814\". Update the server after changing this setting",
        "Keywords": "server,version",
        "FieldName": "ServerVersion",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "ServerVersion",
        "IncludeInCommandLine": false,
        "DefaultValue": "1.9.1",
        "Placeholder": "1.9.1 | 1.9.1-ci.814",
        "Required": true,
        "EnumValues": {}
    },
    {
        "DisplayName": "Dotnet Release Stream",
        "Category": "Impostor:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the .NET release stream from which to install the latest ASP.NET Core Runtime version, unless a specific version is specified under Dotnet Version. Use 8.0 for Impostor v1.9.0+. Update the server after changing this setting",
        "Keywords": "dotnet,release,stream",
        "FieldName": "DotnetRelease",
        "InputType": "enum",
        "ParamFieldName": "DotnetRelease",
        "IncludeInCommandLine": false,
        "DefaultValue": "8.0",
        "EnumValues": {
            "8.0": "8.0 (default)",
            "7.0": "7.0"
        }
    },
    {
        "DisplayName": "Dotnet Version",
        "Category": "Impostor:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the ASP.NET Core Runtime [8.0](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) or [7.0](https://dotnet.microsoft.com/en-us/download/dotnet/7.0) version to install. Empty = latest version for the release stream specified under Dotnet Release Stream. Use an 8.0 version for Impostor v1.9.0+. Update the server after changing this setting",
        "Keywords": "dotnet,version",
        "FieldName": "DotnetVersion",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "DotnetVersion",
        "IncludeInCommandLine": false,
        "DefaultValue": "",
        "Placeholder": "8.0.4",
        "EnumValues": {}
    },
    {
        "DisplayName": "Client and HTTP Matchmaking Configuration",
        "Category": "Impostor:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "To connect to the server, players must [configure their Among Us client](https://impostor.github.io/Impostor/). [HTTP matchmaking](https://github.com/Impostor/Impostor/blob/master/docs/Http-server.md) is also required. Impostor v1.9.0+ has the HTTP matchmaking server built-in, while for earlier versions the HTTP Plugin is required",
        "Keywords": "client,configuration,http,matchmaking,plugin",
        "FieldName": "",
        "InputType": "hidden",
        "IsFlagArgument": false,
        "ParamFieldName": "",
        "IncludeInCommandLine": false,
        "EnumValues": {}
    },
    {
        "DisplayName": "HTTP Matchmaking Server Binding",
        "Category": "Impostor:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the binding of the HTTP matchmaking server. Use 0.0.0.0 if clients will connect to the HTTP server directly. Otherwise you can use 127.0.0.1 or a local IP on the host, as appropriate, if using a reverse proxy for the plugin server traffic (preferred)",
        "Keywords": "http,matchmaking,server,binding,listenip",
        "FieldName": "HttpServerListenIp",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.HttpServer.ListenIp",
        "IncludeInCommandLine": false,
        "DefaultValue": "0.0.0.0",
        "Placeholder": "0.0.0.0",
        "EnumValues": {}
    },
    {
        "DisplayName": "Install HTTP Plugin",
        "Category": "Impostor:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If enabled, the [HTTP Plugin](https://github.com/Impostor/Impostor.Http#impostorhttp) will be installed when the server is updated. DO NOT enable this if using Impostor v1.9.0+",
        "Keywords": "http,matchmaking,plugin,install",
        "FieldName": "InstallHttpPlugin",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "InstallHttpPlugin",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "HTTP Plugin Version",
        "Category": "Impostor:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the [Impostor.HTTP plugin version](https://github.com/Impostor/Impostor.Http/releases) to install, if Install HTTP Plugin is enabled",
        "Keywords": "http,matchmaking,plugin,version",
        "FieldName": "HttpPluginVersion",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "HttpPluginVersion",
        "IncludeInCommandLine": false,
        "DefaultValue": "0.5.0",
        "Placeholder": "0.5.0",
        "Required": true,
        "EnumValues": {}
    },
    {
        "DisplayName": "Enable HTTPS For HTTP Matchmaking Plugin",
        "Category": "Impostor:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, the Impostor.Http plugin server (if used) will use its own HTTPS (encrypted HTTP) rather than plain HTTP. Requires the HTTP Matchmaking Plugin Certificate Path to be set. Using a reverse proxy to provide HTTPS is preferred instead of using this setting. Note: HTTPS is required for mobile devices to connect",
        "Keywords": "http,matchmaking,plugin,https,secure,usehttps",
        "FieldName": "HttpServerUseHttps",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.HttpServer.UseHttps",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "HTTP Matchmaking Plugin Certificate Path",
        "Category": "Impostor:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the path to an SSL certificate (in PFX format) to enable the Impostor.Http plugin server (if used) to use its own HTTPS",
        "Keywords": "http,matchmaking,plugin,https,secure,certificate,path,certificatepath",
        "FieldName": "HttpServerCertificatePath",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.HttpServer.CertificatePath",
        "IncludeInCommandLine": false,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Enable Anticheat",
        "Category": "Impostor:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, anticheat will be enabled",
        "Keywords": "anti,cheat",
        "FieldName": "AntiCheat_Enabled",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.AntiCheat.Enabled",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Ban IP",
        "Category": "Impostor:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If enabled, anticheat will ban a hacking player from the server rather than just kicking them. The banned player will not be able to rejoin that game",
        "Keywords": "anti,cheat,ban",
        "FieldName": "AntiCheat_BanIpFromGame",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.AntiCheat.BanIpFromGame",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Public IP Selection Mode",
        "Category": "Impostor:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets whether AMP should automatically select the public IP advertised for the server, or whether it should use the IP set under Server Public IP",
        "Keywords": "public,ip,publicip",
        "FieldName": "PublicIp",
        "InputType": "enum",
        "ParamFieldName": "$.Server.PublicIp",
        "DefaultValue": "{{$ExternalIP}}",
        "EnumValues": {
            "{{$ExternalIP}}": "Automatic (default)",
            "{{ManualPublicIP}}": "Manual"
        }
    },
    {
        "DisplayName": "Server Public IP",
        "Category": "Impostor:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the public IP advertised for the server, if \"Manual\" is selected as the Public IP Selection Mode. Useful if the host network has multiple public IPs, or the server is behind a public proxy",
        "Keywords": "manual,public,ip,publicip",
        "FieldName": "ManualPublicIP",
        "InputType": "text",
        "ParamFieldName": "ManualPublicIP",
        "DefaultValue": "",
        "EnumValues": {}
    }
]