[
    {
        "DisplayName": "Server Name",
        "Category": "Alchemy Factory:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the name of the server as shown in the server browser. Maximum 31 characters, longer names are cut off by the server",
        "Keywords": "name,servername",
        "FieldName": "ServerName",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "ServerSettings.server_name",
        "IncludeInCommandLine": false,
        "DefaultValue": "Alchemy Factory AMP Server",
        "EnumValues": {}
    },
    {
        "DisplayName": "Server Password",
        "Category": "Alchemy Factory:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the password required to join the server, alongside the join code. Default is no password",
        "Keywords": "password,serverpassword,join",
        "FieldName": "ServerPassword",
        "InputType": "Password",
        "IsFlagArgument": false,
        "ParamFieldName": "ServerSettings.server_password",
        "IncludeInCommandLine": false,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Admin Password",
        "Category": "Alchemy Factory:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the password used to become admin in-game with the chat command /admin <password>. The server has no RCON or console, so admin actions are only available in-game. Default is no admin access",
        "Keywords": "admin,password,adminpassword",
        "FieldName": "AdminPassword",
        "InputType": "Password",
        "IsFlagArgument": false,
        "ParamFieldName": "ServerSettings.admin_password",
        "IncludeInCommandLine": false,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Public Server",
        "Category": "Alchemy Factory:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If enabled, lists the server in the public server browser",
        "Keywords": "public,browser,list",
        "FieldName": "ServerPublic",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "ServerSettings.server_public",
        "IncludeInCommandLine": false,
        "DefaultValue": "1",
        "EnumValues": {
            "False": "0",
            "True": "1"
        }
    },
    {
        "DisplayName": "Steam Relay",
        "Category": "Alchemy Factory:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If enabled, routes traffic via the Steam Datagram Relay so the server can be hosted without a public IP address or inbound ports. If disabled, the Game Port and Query Port must be forwarded and players can also connect by IP:port. The join code and public server list work in both modes",
        "Keywords": "relay,steam,sdr,ports",
        "FieldName": "ServerRelay",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "ServerSettings.server_relay",
        "IncludeInCommandLine": false,
        "DefaultValue": "1",
        "EnumValues": {
            "False": "0",
            "True": "1"
        }
    },
    {
        "DisplayName": "LAN Only",
        "Category": "Alchemy Factory:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If enabled, the server is only reachable on the local network",
        "Keywords": "lan,local",
        "FieldName": "ServerLan",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "ServerSettings.server_lan",
        "IncludeInCommandLine": false,
        "DefaultValue": "0",
        "EnumValues": {
            "False": "0",
            "True": "1"
        }
    },
    {
        "DisplayName": "Max Players",
        "Category": "Alchemy Factory:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the maximum number of players that may connect to the server at one time",
        "Keywords": "players,limit,maxplayers,clients",
        "FieldName": "$MaxUsers",
        "InputType": "number",
        "MinValue": "1",
        "MaxValue": "64",
        "IsFlagArgument": false,
        "ParamFieldName": "ServerSettings.max_clients",
        "IncludeInCommandLine": false,
        "DefaultValue": "8",
        "EnumValues": {}
    },
    {
        "DisplayName": "Max Admins",
        "Category": "Alchemy Factory:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the maximum number of players that may be logged in as admin at one time",
        "Keywords": "admin,admins,maxadmins",
        "FieldName": "MaxAdmins",
        "InputType": "number",
        "MinValue": "1",
        "IsFlagArgument": false,
        "ParamFieldName": "ServerSettings.max_admins",
        "IncludeInCommandLine": false,
        "DefaultValue": "1",
        "EnumValues": {}
    },
    {
        "DisplayName": "Autosave Mode",
        "Category": "Alchemy Factory:stadia_controller",
        "Subcategory": "Server Settings:settings:2",
        "Description": "Sets how often the world is saved. Progress since the last autosave may be lost when the server is stopped or restarted",
        "Keywords": "autosave,save,interval",
        "FieldName": "AutosaveMode",
        "InputType": "enum",
        "IsFlagArgument": false,
        "ParamFieldName": "ServerSettings.autosave_mode",
        "IncludeInCommandLine": false,
        "DefaultValue": "1",
        "EnumValues": {
            "0": "Save When Sleeping",
            "1": "Every 5 Minutes",
            "2": "Every 10 Minutes",
            "3": "Never"
        }
    },
    {
        "DisplayName": "Pause When Empty",
        "Category": "Alchemy Factory:stadia_controller",
        "Subcategory": "Server Settings:settings:2",
        "Description": "If enabled, pauses the game while no players are connected. The world is autosaved when the last player leaves",
        "Keywords": "pause,empty,idle",
        "FieldName": "PauseWhenEmpty",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "ServerSettings.pause_when_empty",
        "IncludeInCommandLine": false,
        "DefaultValue": "1",
        "EnumValues": {
            "False": "0",
            "True": "1"
        }
    },
    {
        "DisplayName": "Session Retry Delay",
        "Category": "Alchemy Factory:stadia_controller",
        "Subcategory": "Server Settings:settings:2",
        "Description": "Sets how long to wait after a failed Steam session creation before retrying. Retries never stop",
        "Keywords": "session,retry,steam",
        "FieldName": "SessionRetrySeconds",
        "InputType": "number",
        "MinValue": "1",
        "MaxValue": "300",
        "IsFlagArgument": false,
        "ParamFieldName": "ServerSettings.session_retry_seconds",
        "IncludeInCommandLine": false,
        "DefaultValue": "10",
        "Suffix": "seconds",
        "EnumValues": {}
    },
    {
        "DisplayName": "Game Port",
        "Category": "Alchemy Factory:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "",
        "Keywords": "",
        "FieldName": "$GamePort",
        "InputType": "number",
        "Hidden": true,
        "IsFlagArgument": false,
        "ParamFieldName": "ServerSettings.server_port",
        "IncludeInCommandLine": false,
        "EnumValues": {}
    },
    {
        "DisplayName": "Query Port",
        "Category": "Alchemy Factory:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "",
        "Keywords": "",
        "FieldName": "$QueryPort",
        "InputType": "number",
        "Hidden": true,
        "IsFlagArgument": false,
        "ParamFieldName": "ServerSettings.query_port",
        "IncludeInCommandLine": false,
        "EnumValues": {}
    },
    {
        "DisplayName": "Custom Server Arguments",
        "Category": "Alchemy Factory:stadia_controller",
        "Subcategory": "Server Settings:settings:2",
        "Description": "Sets additional command line arguments to pass to the server executable. Space-separated",
        "Keywords": "custom,arguments,args,launch",
        "FieldName": "CustomArgs",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "CustomArgs",
        "IncludeInCommandLine": false,
        "DefaultValue": "",
        "Placeholder": "-someflag -other=value",
        "EnumValues": {}
    },
    {
        "DisplayName": "Proton GE Release Version (Linux)",
        "Category": "Updates",
        "Subcategory": "Runtime Configuration:build:3",
        "Description": "Sets the Proton GE [release version](https://github.com/GloriousEggroll/proton-ge-custom/releases) to install. Empty = latest. The server is known to work with GE-Proton11-6. Example: GE-Proton11-6",
        "Keywords": "proton,release,version",
        "FieldName": "SpecificReleaseVersion",
        "InputType": "text",
        "ParamFieldName": "SpecificReleaseVersion",
        "DefaultValue": "",
        "Placeholder": "GE-Proton11-6",
        "EnumValues": {}
    }
]
