[
    {
        "DisplayName": "Enable Logging",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Enables logging to files by default",
        "Keywords": "",
        "FieldName": "logging",
        "InputType": "text",
        "Hidden": true,
        "IsFlagArgument": false,
        "ParamFieldName": "config logging",
        "IncludeInCommandLine": true,
        "DefaultValue": "true",
        "EnumValues": {}
    },
    {
        "DisplayName": "Server Version",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the [server version](https://github.com/Anuken/Mindustry/tags) to install. Empty = latest release (default). NOTE: Update the server after changing this setting",
        "Keywords": "server,version,release",
        "FieldName": "ServerVersion",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "ServerVersion",
        "IncludeInCommandLine": false,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Server Name",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the server name as displayed on clients. Don't include commas",
        "Keywords": "server,name",
        "FieldName": "name",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "config name",
        "IncludeInCommandLine": true,
        "DefaultValue": "AMP Powered Mindustry Server",
        "EnumValues": {}
    },
    {
        "DisplayName": "Server Description",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the server description, displayed under the name. Maximum 100 characters. Don't include commas",
        "Keywords": "server,description,desc",
        "FieldName": "desc",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "config desc",
        "IncludeInCommandLine": true,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Message Of The Day",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the message displayed to players on connection (MOTD). Don't include commas",
        "Keywords": "motd,welcome,message",
        "FieldName": "motd",
        "InputType": "Textarea",
        "IsFlagArgument": false,
        "ParamFieldName": "config motd",
        "IncludeInCommandLine": true,
        "DefaultValue": "Welcome to Mindustry!",
        "EnumValues": {}
    },
    {
        "DisplayName": "Initial Map",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the map to initially load, if any. None = server won't be \"opened\", and no game started (unless Load Saved Slot is set). Random = random map started in Survival mode. If Custom is selected, you must also set the Custom Map Name",
        "Keywords": "host,map",
        "FieldName": "host",
        "InputType": "enum",
        "IsFlagArgument": false,
        "ParamFieldName": "host",
        "IncludeInCommandLine": false,
        "DefaultValue": "",
        "EnumValues": {
            "": "None (default)",
            "host,": "Random",
            "host Ancient_Caldera {{Mode}},": "Ancient Caldera",
            "host Archipelago {{Mode}},": "Archipelago",
            "host Debris_Field {{Mode}},": "Debris Field",
            "host Domain {{Mode}},": "Domain",
            "host Fork {{Mode}},": "Fork",
            "host Fortress {{Mode}},": "Fortress",
            "host Glacier {{Mode}},": "Glacier",
            "host Islands {{Mode}},": "Islands",
            "host Labyrinth {{Mode}},": "Labyrinth",
            "host Maze {{Mode}},": "Maze",
            "host Molten_Lake {{Mode}},": "Molten Lake",
            "host Mud_Flats {{Mode}},": "Mud Flats",
            "host Passage {{Mode}},": "Passage",
            "host Shattered {{Mode}},": "Shattered",
            "host Tendrils {{Mode}},": "Tendrils",
            "host Triad {{Mode}},": "Triad",
            "host Veins {{Mode}},": "Veins",
            "host Wasteland {{Mode}},": "Wasteland",
            "host {{CustomMapName}} {{Mode}},": "Custom"
        }
    },
    {
        "DisplayName": "Custom Map Name",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the name of a custom map to initially load. The map must be included in config/maps. \"Custom\" must be selected under Initial Map",
        "Keywords": "custom,map",
        "FieldName": "CustomMapName",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "CustomMapName",
        "IncludeInCommandLine": false,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Map Shuffle Mode",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the map shuffling mode",
        "Keywords": "map,shuffle",
        "FieldName": "shuffle",
        "InputType": "enum",
        "IsFlagArgument": false,
        "ParamFieldName": "shuffle",
        "IncludeInCommandLine": true,
        "DefaultValue": "all",
        "EnumValues": {
            "none": "No shuffling",
            "all": "Shuffle all maps (default)",
            "custom": "Shuffle only custom maps",
            "builtin": "Shuffle only default maps"
        }
    },
    {
        "DisplayName": "Game Mode",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the initial game mode",
        "Keywords": "game,mode",
        "FieldName": "Mode",
        "InputType": "enum",
        "IsFlagArgument": false,
        "ParamFieldName": "Mode",
        "IncludeInCommandLine": false,
        "DefaultValue": "survival",
        "EnumValues": {
            "survival": "Survival (default)",
            "sandbox": "Sandbox",
            "attack": "Attack",
            "pvp": "PvP"
        }
    },
    {
        "DisplayName": "Load Saved Slot",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the saved slot (as included in config/saves, without the .msav extension) to initially load. The Initial Map must be set to None for the saved slot to load, and a game cannot be running",
        "Keywords": "load,save",
        "FieldName": "load",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "load",
        "IncludeInCommandLine": true,
        "DefaultValue": "",
        "SkipIfEmpty": true,
        "EnumValues": {}
    },
    {
        "DisplayName": "Server Mods",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Mods can be enabled by including them in config/mods",
        "Keywords": "mods",
        "FieldName": "Mods",
        "InputType": "hidden",
        "IsFlagArgument": false,
        "ParamFieldName": "Mods",
        "IncludeInCommandLine": false,
        "EnumValues": {}
    },
    {
        "DisplayName": "Player Limit",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the maximum number of players that may connect to the server at one time",
        "Keywords": "maximum,players,clients,limit,maxplayers",
        "FieldName": "$MaxUsers",
        "InputType": "number",
        "MinValue": "1",
        "IsFlagArgument": false,
        "ParamFieldName": "playerlimit",
        "IncludeInCommandLine": true,
        "DefaultValue": "100",
        "Placeholder": "100",
        "Suffix": "players",
        "EnumValues": {}
    },
    {
        "DisplayName": "Enable Whitelist",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, the server whitelist will be enabled. Manage the whitelisted players from the console using \"whitelist [add/remove] [ID]\"",
        "Keywords": "whitelist",
        "FieldName": "whitelist",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "config whitelist",
        "IncludeInCommandLine": true,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Auto Pause When Empty",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, any running game will be paused when no player is online",
        "Keywords": "auto,pause,empty,autopause",
        "FieldName": "autoPause",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "config autoPause",
        "IncludeInCommandLine": true,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Enable Autosave",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If enabled, the server will periodically save the map during play",
        "Keywords": "save,enable,autosave",
        "FieldName": "autosave",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "config autosave",
        "IncludeInCommandLine": true,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Autosave Interval",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the time interval between autosaves, if autosave is enabled",
        "Keywords": "save,autosave,interval,autosavespacing",
        "FieldName": "autosaveSpacing",
        "InputType": "number",
        "MinValue": "1",
        "IsFlagArgument": false,
        "ParamFieldName": "config autosaveSpacing",
        "IncludeInCommandLine": true,
        "DefaultValue": "300",
        "Placeholder": "300",
        "Suffix": "seconds",
        "EnumValues": {}
    },
    {
        "DisplayName": "Maximum Autosave Quantity",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the maximum quantity of autosaves to be retained. Older saves will be replaced when the limit is reached",
        "Keywords": "maximum,autosaves,autosaveamount",
        "FieldName": "autosaveAmount",
        "InputType": "number",
        "MinValue": "1",
        "IsFlagArgument": false,
        "ParamFieldName": "config autosaveAmount",
        "IncludeInCommandLine": true,
        "DefaultValue": "10",
        "Placeholder": "10",
        "Suffix": "autosaves",
        "EnumValues": {}
    },
    {
        "DisplayName": "Enable Debug Logging",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, debug logging will be enabled on the server",
        "Keywords": "log,logging,debug",
        "FieldName": "debug",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "config debug",
        "IncludeInCommandLine": true,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Enable Strict Mode",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, strict mode will be enabled - the server will correct positions and prevent duplicate UUIDs",
        "Keywords": "strict,mode",
        "FieldName": "strict",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "config strict",
        "IncludeInCommandLine": true,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Allow Custom Clients",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If enabled, custom clients will be allowed to connect to the server",
        "Keywords": "custom,clients,allowcustomclients",
        "FieldName": "allowCustomClients",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "config allowCustomClients",
        "IncludeInCommandLine": true,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Show Connect/Disconnect Messages",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, player connect and disconnect messages will be displayed",
        "Keywords": "connect,disconnect,message,showconnectmessages",
        "FieldName": "showConnectMessages",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "config showConnectMessages",
        "IncludeInCommandLine": true,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Enable Vote Kick",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, votekick will be enabled",
        "Keywords": "vote,kick,enablevotekick",
        "FieldName": "enableVotekick",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "config enableVotekick",
        "IncludeInCommandLine": true,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Enable Anti-spam",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If enabled, spammers will be automatically kicked and rate-limited",
        "Keywords": "spam,spammers,antispam",
        "FieldName": "antiSpam",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "config antiSpam",
        "IncludeInCommandLine": true,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Message Rate Limit",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets the message rate limit. 0 = disabled",
        "Keywords": "message,rate,limit,messageratelimit",
        "FieldName": "messageRateLimit",
        "InputType": "number",
        "MinValue": "0",
        "IsFlagArgument": false,
        "ParamFieldName": "config messageRateLimit",
        "IncludeInCommandLine": true,
        "DefaultValue": "0",
        "Placeholder": "0",
        "Suffix": "seconds",
        "EnumValues": {}
    },
    {
        "DisplayName": "Message Spam Kick",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets how many times a player must send a message before the cooldown to get kicked. 0 = disabled",
        "Keywords": "message,spam,kick,messagespamkick",
        "FieldName": "messageSpamKick",
        "InputType": "number",
        "MinValue": "0",
        "IsFlagArgument": false,
        "ParamFieldName": "config messageSpamKick",
        "IncludeInCommandLine": true,
        "DefaultValue": "3",
        "Placeholder": "3",
        "EnumValues": {}
    },
    {
        "DisplayName": "Chat Spam Limit",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets the limit for the chat packet count sent within 2 seconds that will lead to a blacklist and kick. Not the same as a rate limit",
        "Keywords": "chat,spam,blacklist,kick,chatspamlimit",
        "FieldName": "chatSpamLimit",
        "InputType": "number",
        "MinValue": "1",
        "IsFlagArgument": false,
        "ParamFieldName": "config chatSpamLimit",
        "IncludeInCommandLine": true,
        "DefaultValue": "20",
        "Placeholder": "20",
        "EnumValues": {}
    },
    {
        "DisplayName": "Packet Spam Limit",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets the limit for the packet count sent within 3 seconds that will lead to a blacklist and kick",
        "Keywords": "packet,spam,blacklist,kick,packetspamlimit",
        "FieldName": "packetSpamLimit",
        "InputType": "number",
        "MinValue": "1",
        "IsFlagArgument": false,
        "ParamFieldName": "config packetSpamLimit",
        "IncludeInCommandLine": true,
        "DefaultValue": "300",
        "Placeholder": "300",
        "EnumValues": {}
    },
    {
        "DisplayName": "Block Interaction Rate Limit Window",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets the block interaction rate limit window",
        "Keywords": "block,interaction,rate,limit,window,interactratewindow",
        "FieldName": "interactRateWindow",
        "InputType": "number",
        "MinValue": "1",
        "IsFlagArgument": false,
        "ParamFieldName": "config interactRateWindow",
        "IncludeInCommandLine": true,
        "DefaultValue": "6",
        "Placeholder": "6",
        "Suffix": "seconds",
        "EnumValues": {}
    },
    {
        "DisplayName": "Block Interaction Rate Limit",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets the block interaction rate limit",
        "Keywords": "block,interaction,rate,limit,interactratelimit",
        "FieldName": "interactRateLimit",
        "InputType": "number",
        "MinValue": "1",
        "IsFlagArgument": false,
        "ParamFieldName": "config interactRateLimit",
        "IncludeInCommandLine": true,
        "DefaultValue": "25",
        "Placeholder": "25",
        "EnumValues": {}
    },
    {
        "DisplayName": "Minimum Interactions For Kick",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets how many times a player must interact inside the window to get kicked",
        "Keywords": "block,interaction,window,kick,interactratekick",
        "FieldName": "interactRateKick",
        "InputType": "number",
        "MinValue": "1",
        "IsFlagArgument": false,
        "ParamFieldName": "config interactRateKick",
        "IncludeInCommandLine": true,
        "DefaultValue": "60",
        "Placeholder": "60",
        "EnumValues": {}
    },
    {
        "DisplayName": "Client Entity Snapshot Interval",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets the client entity snapshot interval",
        "Keywords": "client,snapshot,interval,snapshotinterval",
        "FieldName": "snapshotInterval",
        "InputType": "number",
        "MinValue": "1",
        "IsFlagArgument": false,
        "ParamFieldName": "config snapshotInterval",
        "IncludeInCommandLine": true,
        "DefaultValue": "200",
        "Placeholder": "200",
        "Suffix": "milliseconds",
        "EnumValues": {}
    },
    {
        "DisplayName": "Java Version",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Java:code:3",
        "Description": "Sets the Eclipse Temurin Java version to install. Update the server after changing this setting",
        "Keywords": "java,version",
        "FieldName": "JavaVersion",
        "InputType": "enum",
        "ParamFieldName": "JavaVersion",
        "IncludeInCommandLine": false,
        "DefaultValue": "17",
        "EnumValues": {
            "25": "25 - LTS",
            "24": "24",
            "23": "23",
            "22": "22",
            "21": "21 - LTS",
            "20": "20",
            "19": "19",
            "18": "18",
            "17": "17 - LTS (default)"
        }
    },
    {
        "DisplayName": "Additional Java Startup Parameters",
        "Category": "Mindustry:stadia_controller",
        "Subcategory": "Java:code:3",
        "Description": "Additional Java arguments (not server arguments) as startup parameters that are not otherwise set by AMP. Use with care",
        "Keywords": "custom,java,arguments,parameters",
        "FieldName": "CustomJavaArgs",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "CustomJavaArgs",
        "IncludeInCommandLine": false,
        "DefaultValue": "",
        "EnumValues": {}
    }
]