[
    {
        "DisplayName":"Server Name",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"Sets the name of the server as shown publicly",
        "Keywords":"server,name,Server.Name",
        "FieldName":"Server.Name",
        "InputType":"text",
        "ParamFieldName":"Server.Name",
        "IncludeInCommandLine":true,
        "DefaultValue":"AMP Powered OpenRA Server",
        "Placeholder":"AMP Powered OpenRA Server",
        "EnumValues":{}
    },
    {
        "DisplayName":"MOTD",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"Sets the player welcome message (MOTD)",
        "Keywords":"motd,welcome,message,motd",
        "FieldName":"motd",
        "InputType":"Textarea",
        "ParamFieldName":"motd",
        "DefaultValue":"Welcome to my server!",
        "EnumValues":{}
    },
    {
        "DisplayName":"Default Map",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"Sets the default map to start the server with. Input as a hash that can be obtained by the utility. Empty = random map",
        "Keywords":"server,map,Server.Map",
        "FieldName":"Server.Map",
        "InputType":"text",
        "ParamFieldName":"Server.Map",
        "IncludeInCommandLine":true,
        "DefaultValue":"",
        "EnumValues":{}
    },
    {
        "DisplayName":"Server Password",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"Sets the password for players to join the server. Default is no password",
        "Keywords":"server,password,Server.Password",
        "FieldName":"Server.Password",
        "InputType":"Password",
        "ParamFieldName":"Server.Password",
        "IncludeInCommandLine":true,
        "DefaultValue":"",
        "EnumValues":{}
    },
    {
        "DisplayName":"Advertise Online",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"If enabled, the server will be able to be advertised to the master server list",
        "Keywords":"advertise,advertising,public,online,server,list,Server.AdvertiseOnline",
        "FieldName":"Server.AdvertiseOnline",
        "InputType":"checkbox",
        "ParamFieldName":"Server.AdvertiseOnline",
        "IncludeInCommandLine":true,
        "DefaultValue":"True",
        "EnumValues":{
            "False":"False",
            "True":"True"
        }
    },
    {
        "DisplayName":"IP Ban List",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"Comma-separated list of IP addresses that are not allowed to join the server",
        "Keywords":"banlist,ips,Server.Ban",
        "FieldName":"Server.Ban",
        "InputType":"text",
        "ParamFieldName":"Server.Ban",
        "IncludeInCommandLine":true,
        "DefaultValue":"",
        "EnumValues":{}
    },
    {
        "DisplayName":"Require Authentication",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"If enabled, anonymous clients will not be allowed to join the server",
        "Keywords":"require,authentication,Server.RequireAuthentication",
        "FieldName":"Server.RequireAuthentication",
        "InputType":"checkbox",
        "ParamFieldName":"Server.RequireAuthentication",
        "IncludeInCommandLine":true,
        "DefaultValue":"False",
        "EnumValues":{
            "False":"False",
            "True":"True"
        }
    },
    {
        "DisplayName":"Profile ID Whitelist",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"Sets a list of profile IDs for authenticated players who are allowed to join the server. Assumes Require Authentication is enabled",
        "Keywords":"profile,id,whitelist,Server.ProfileIDWhitelist",
        "FieldName":"Server.ProfileIDWhitelist",
        "InputType":"text",
        "ParamFieldName":"Server.ProfileIDWhitelist",
        "IncludeInCommandLine":true,
        "DefaultValue":"",
        "EnumValues":{}
    },
    {
        "DisplayName":"Profile ID Blacklist",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"Sets a list of profile IDs for authenticated players who will be rejected from joining the server. Assumes Require Authentication is enabled",
        "Keywords":"profile,id,blacklist,Server.ProfileIDBlacklist",
        "FieldName":"Server.ProfileIDBlacklist",
        "InputType":"text",
        "ParamFieldName":"Server.ProfileIDBlacklist",
        "IncludeInCommandLine":true,
        "DefaultValue":"",
        "EnumValues":{}
    },
    {
        "DisplayName":"Enable Singleplayer Mode",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"If enabled, a game can be started with just one human player in the lobby",
        "Keywords":"single,player,singleplayer,Server.EnableSingleplayer",
        "FieldName":"Server.EnableSingleplayer",
        "InputType":"checkbox",
        "ParamFieldName":"Server.EnableSingleplayer",
        "IncludeInCommandLine":true,
        "DefaultValue":"False",
        "EnumValues":{
            "False":"False",
            "True":"True"
        }
    },
    {
        "DisplayName":"Player Limit",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"Sets the maximum number of players at one time to display in the AMP status tab. This is visual only - the actual maximum is determined by the map being played",
        "Keywords":"maximum,players,clients,limit,maxplayers",
        "FieldName":"$MaxUsers",
        "InputType":"number",
        "MinValue":"1",
        "ParamFieldName":"MaxPlayers",
        "DefaultValue":"12",
        "Placeholder":"12",
        "Suffix":"players",
        "EnumValues":{}
    },
    {
        "DisplayName":"Query Map Repository",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"If set, the server will query map information from the Resource Center if they are not available locally",
        "Keywords":"query,map,repository,resource,center,Server.QueryMapRepository",
        "FieldName":"Server.QueryMapRepository",
        "InputType":"checkbox",
        "ParamFieldName":"Server.QueryMapRepository",
        "IncludeInCommandLine":true,
        "DefaultValue":"True",
        "EnumValues":{
            "False":"False",
            "True":"True"
        }
    },
    {
        "DisplayName":"Enable Sync Reports",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"If set, client-side report generation will be enabled to help debug desync errors",
        "Keywords":"sync,reports,Server.EnableSyncReports",
        "FieldName":"Server.EnableSyncReports",
        "InputType":"checkbox",
        "ParamFieldName":"Server.EnableSyncReports",
        "IncludeInCommandLine":true,
        "DefaultValue":"False",
        "EnumValues":{
            "False":"False",
            "True":"True"
        }
    },
    {
        "DisplayName":"Timestamp Format",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"Sets the timestamp format. Default is the [ISO 8601 standard](https://www.iso.org/iso-8601-date-and-time-format.html)",
        "Keywords":"timestamp,format,Server.TimestampFormat",
        "FieldName":"Server.TimestampFormat",
        "InputType":"text",
        "ParamFieldName":"Server.TimestampFormat",
        "IncludeInCommandLine":true,
        "DefaultValue":"yyyy-MM-ddTHH:mm:ss",
        "Placeholder":"yyyy-MM-ddTHH:mm:ss",
        "EnumValues":{}
    },
    {
        "DisplayName":"Share Anonymised IPs",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"If set, clients will be allowed to see anonymised IPs for other clients",
        "Keywords":"share,anonymised,anonymized,IPs,Server.ShareAnonymizedIPs",
        "FieldName":"Server.ShareAnonymizedIPs",
        "InputType":"checkbox",
        "ParamFieldName":"Server.ShareAnonymizedIPs",
        "IncludeInCommandLine":true,
        "DefaultValue":"True",
        "EnumValues":{
            "False":"False",
            "True":"True"
        }
    },
    {
        "DisplayName":"Enable Geo IP",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"If set, clients will be allowed to see the country of other clients",
        "Keywords":"enable,geoip,country,Server.EnableGeoIP",
        "FieldName":"Server.EnableGeoIP",
        "InputType":"checkbox",
        "ParamFieldName":"Server.EnableGeoIP",
        "IncludeInCommandLine":true,
        "DefaultValue":"True",
        "EnumValues":{
            "False":"False",
            "True":"True"
        }
    },
    {
        "DisplayName":"Record Replays",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"If set, the server will save replays for all games played",
        "Keywords":"record,replays,Server.RecordReplays",
        "FieldName":"Server.RecordReplays",
        "InputType":"checkbox",
        "ParamFieldName":"Server.RecordReplays",
        "IncludeInCommandLine":true,
        "DefaultValue":"False",
        "EnumValues":{
            "False":"False",
            "True":"True"
        }
    },
    {
        "DisplayName":"Enable Lint Checks",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"If set, the server treat maps that fail the lint checks as invalid",
        "Keywords":"lint,checks,Server.EnableLintChecks",
        "FieldName":"Server.EnableLintChecks",
        "InputType":"checkbox",
        "ParamFieldName":"Server.EnableLintChecks",
        "IncludeInCommandLine":true,
        "DefaultValue":"True",
        "EnumValues":{
            "False":"False",
            "True":"True"
        }
    },
    {
        "DisplayName":"Flood Limit Join Cooldown",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"Sets the delay before newly joined players can send chat messages",
        "Keywords":"flood,limit,join,cooldown,chat,messages,Server.FloodLimitJoinCooldown",
        "FieldName":"Server.FloodLimitJoinCooldown",
        "InputType":"number",
        "ParamFieldName":"Server.FloodLimitJoinCooldown",
        "IncludeInCommandLine":true,
        "DefaultValue":"5000",
        "Placeholder":"5000",
        "Suffix":"milliseconds",
        "EnumValues":{}
    },
    {
        "DisplayName":"Flood Limit Interval",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"Sets the time period that player chat messages are tracked for",
        "Keywords":"flood,limit,interval,chat,messages,Server.FloodLimitInterval",
        "FieldName":"Server.FloodLimitInterval",
        "InputType":"number",
        "ParamFieldName":"Server.FloodLimitInterval",
        "IncludeInCommandLine":true,
        "DefaultValue":"5000",
        "Placeholder":"5000",
        "Suffix":"milliseconds",
        "EnumValues":{}
    },
    {
        "DisplayName":"Flood Limit Message Count",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"Sets the number of chat messages per Flood Limit Interval that a player can send before flood is detected",
        "Keywords":"flood,limit,chat,message,count,Server.FloodLimitMessageCount",
        "FieldName":"Server.FloodLimitMessageCount",
        "InputType":"number",
        "ParamFieldName":"Server.FloodLimitMessageCount",
        "IncludeInCommandLine":true,
        "DefaultValue":"5",
        "Placeholder":"5",
        "EnumValues":{}
    },
   {
        "DisplayName":"Flood Limit Cooldown",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"Sets the delay before players can send chat messages after flood was detected",
        "Keywords":"flood,limit,cooldown,chat,messages.Server.FloodLimitCooldown",
        "FieldName":"Server.FloodLimitCooldown",
        "InputType":"number",
        "ParamFieldName":"Server.FloodLimitCooldown",
        "IncludeInCommandLine":true,
        "DefaultValue":"15000",
        "Placeholder":"15000",
        "Suffix":"milliseconds",
        "EnumValues":{}
    },
    {
        "DisplayName":"Enable UPnP",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"If set, UPnP/NAT-PMP enabled devices will be searched for automatic port forwarding",
        "Keywords":"discover,upnp,nat-pmp,Server.DiscoverNatDevices",
        "FieldName":"Server.DiscoverNatDevices",
        "InputType":"checkbox",
        "ParamFieldName":"Server.DiscoverNatDevices",
        "IncludeInCommandLine":true,
        "DefaultValue":"False",
        "EnumValues":{
            "False":"False",
            "True":"True"
        }
    },
    {
        "DisplayName":"UPnP Port Mapping Lifetime",
        "Category":"OpenRA:stadia_controller",
        "Subcategory":"Server:dns:1",
        "Description":"Sets the time period for UPnP/NAT-PMP mappings to last",
        "Keywords":"nat,port,mapping,lifetime,Server.NatPortMappingLifetime",
        "FieldName":"Server.NatPortMappingLifetime",
        "InputType":"number",
        "ParamFieldName":"Server.NatPortMappingLifetime",
        "IncludeInCommandLine":true,
        "DefaultValue":"36000",
        "Placeholder":"36000",
        "Suffix":"seconds",
        "EnumValues":{}
    },
    {
        "DisplayName":"Server Build",
        "Category":"Updates",
        "Subcategory":"Server Updates:build:-1",
        "Description":"Sets the server build to install. Update the server after changing this setting",
        "Keywords":"server,build,release,playtest,ServerBuild",
        "FieldName":"ServerBuild",
        "InputType":"enum",
        "ParamFieldName":"ServerBuild",
        "DefaultValue":"release",
        "EnumValues":{
            "release":"Latest stable release (default)",
            "playtest":"Latest playtest"
        }
    }
]
