[
    {
        "DisplayName": "Force Local Data Directories",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "",
        "Keywords": "",
        "FieldName": "use-system-read-write-data-directories",
        "InputType": "text",
        "Hidden": true,
        "ParamFieldName": "use-system-read-write-data-directories",
        "DefaultValue": "false",
        "EnumValues": {}
    },
    {
        "DisplayName": "Server Start Mode",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the server start mode: Start the server with the specified Save File; or Start the server with the latest save file; or Start the server with a new save with the specified Save File name",
        "Keywords": "server,start,mode,start-server,start-server-load-latest,create",
        "FieldName": "StartMode",
        "InputType": "enum",
        "ParamFieldName": "StartMode",
        "DefaultValue": "--start-server saves/{{SaveFile}}",
        "EnumValues": {
            "--start-server saves/{{SaveFile}}": "Start server (default)",
            "--start-server-load-latest": "Start server with latest save",
            "--start-server saves/{{SaveFile}} ": "Create and start server"
        }
    },
    {
        "DisplayName": "Save File",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the name of the save file in the 'saves' directory to load on server start, if applicable to the Server Start Mode. If the file does not exist, it will be created. It will be overwritten if 'Create and start server' is the Server Start Mode",
        "Keywords": "save,file",
        "FieldName": "SaveFile",
        "InputType": "text",
        "ParamFieldName": "SaveFile",
        "DefaultValue": "default.zip",
        "Placeholder": "default.zip",
        "EnumValues": {}
    },
    {
        "DisplayName": "Server Name",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the name of the server as it will appear in the game listing",
        "Keywords": "name,game,listing",
        "FieldName": "name",
        "InputType": "text",
        "ParamFieldName": "$.name",
        "DefaultValue": "AMP Powered Factorio Server",
        "EnumValues": {}
    },
    {
        "DisplayName": "Server Description",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the description of the server as it will appear in the game listing. [Rich text formatting](https://wiki.factorio.com/Rich_text) and newlines are permitted",
        "Keywords": "description,game,listing",
        "FieldName": "description",
        "InputType": "Textarea",
        "ParamFieldName": "$.description",
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Server Tags",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets a list of tags for the server that will appear in the game listing",
        "Keywords": "tags,game,listing",
        "FieldName": "tags",
        "InputType": "list",
        "ParamFieldName": "$.tags",
        "DefaultValue": "[]",
        "Special": "array:text",
        "EnumValues": {}
    },
    {
        "DisplayName": "Server Admins",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "A list of usernames for server admins can be configured in 'server-adminlist.json'. Must be in valid JSON format: [\"Admin1\",\"Admin2\"]",
        "Keywords": "server,admins,adminlist",
        "FieldName": "admins",
        "InputType": "hidden",
        "ParamFieldName": "admins",
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Player Limit",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the maximum number of players that may connect to the server at one time. Admins can still join a full server, as can returning players if Ignore Player Limit For Returning Players is enabled. 0 = unlimited",
        "Keywords": "maximum,players,clients,limit,max_players",
        "FieldName": "$MaxUsers",
        "InputType": "number",
        "MinValue": "0",
        "ParamFieldName": "$.max_players",
        "DefaultValue": "0",
        "Placeholder": "0",
        "Suffix": "players",
        "EnumValues": {}
    },
    {
        "DisplayName": "Ignore Player Limit For Returning Players",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If enabled, players that have played on this map already can join even when the Player Limit is reached",
        "Keywords": "ignore,player,limit,returning,ignore_player_limit_for_returning_players",
        "FieldName": "ignore_player_limit_for_returning_players",
        "InputType": "checkbox",
        "ParamFieldName": "$.ignore_player_limit_for_returning_players",
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Make Server Visible Publicly",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, the server will be published on the official Factorio matching server. Requires the Factorio.com Username and either Factorio.com Password or Factorio.com Auth Token to be set",
        "Keywords": "visibility,visible,matching,server,public",
        "FieldName": "visibility_public",
        "InputType": "checkbox",
        "ParamFieldName": "$.visibility.public",
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Make Server Visible On LAN",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, the server will be broadcast on LAN",
        "Keywords": "visibility,visible,broadcast,lan",
        "FieldName": "visibility_lan",
        "InputType": "checkbox",
        "ParamFieldName": "$.visibility.lan",
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Factorio.com Username",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the factorio.com login username for the server owner. Required for the server to be visible publicly",
        "Keywords": "username,login,factorio.com,visible,public",
        "FieldName": "username",
        "InputType": "text",
        "ParamFieldName": "$.username",
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Factorio.com Password",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the factorio.com login password for the server owner. Required for the server to be visible publicly. Alternatively set the Factorio.com Auth Token",
        "Keywords": "password,login,factorio.com,visible,public",
        "FieldName": "password",
        "InputType": "Password",
        "ParamFieldName": "$.password",
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Factorio.com Auth Token",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the factorio.com authentication token for the server owner. Required for the server to be visible publicly. Alternatively set the Factorio.com Password",
        "Keywords": "token,authentication,factorio.com,visible,public",
        "FieldName": "token",
        "InputType": "Password",
        "ParamFieldName": "$.token",
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Game Password",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the password required to join the server. Default is no password",
        "Keywords": "server,password,game_password",
        "FieldName": "game_password",
        "InputType": "Password",
        "ParamFieldName": "$.game_password",
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Require User Verification",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If enabled, allow clients that have a valid Factorio.com account will be allowed to connect to the server",
        "Keywords": "require,user,verification,account,clients,require_user_verification",
        "FieldName": "require_user_verification",
        "InputType": "checkbox",
        "ParamFieldName": "$.require_user_verification",
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Use Server Whitelist",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If enabled, only whitelisted players can connect. The whitelist can be configured in 'data/server-whitelist.json'. Must be in valid JSON format: [\"Player1\",\"Player2\"]",
        "Keywords": "whitelist,use-server-whitelist",
        "FieldName": "use-server-whitelist",
        "InputType": "checkbox",
        "ParamFieldName": "use-server-whitelist",
        "IncludeInCommandLine": true,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Use Auth Server Bans",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If enabled, the server will verify that connecting players are not banned from multiplayer and inform Factorio.com about ban/unban commands",
        "Keywords": "bans,auth,server,use-authserver-bans",
        "FieldName": "use-authserver-bans",
        "InputType": "checkbox",
        "ParamFieldName": "use-authserver-bans",
        "IncludeInCommandLine": true,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Maximum Upload Speed",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the maximum upload speed. 0 = unlimited",
        "Keywords": "maximum,upload,speed,kilobytes,max_upload_in_kilobytes_per_second",
        "FieldName": "max_upload_in_kilobytes_per_second",
        "InputType": "number",
        "MinValue": "0",
        "ParamFieldName": "$.max_upload_in_kilobytes_per_second",
        "DefaultValue": "0",
        "Placeholder": "0",
        "Suffix": "kB/second",
        "EnumValues": {}
    },
    {
        "DisplayName": "Maximum Upload Slots",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the maximum number of upload slots. 0 = unlimited",
        "Keywords": "maximum,max,upload,slots,max_upload_slots",
        "FieldName": "max_upload_slots",
        "InputType": "number",
        "MinValue": "0",
        "ParamFieldName": "$.max_upload_slots",
        "DefaultValue": "5",
        "Placeholder": "5",
        "Suffix": "slots",
        "EnumValues": {}
    },
    {
        "DisplayName": "Minimum Latency",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the minimum latency allowed for clients (one tick is 16ms). 0 = no minimum",
        "Keywords": "minimum,latency,clients,ticks,minimum_latency_in_ticks",
        "FieldName": "minimum_latency_in_ticks",
        "InputType": "number",
        "MinValue": "0",
        "ParamFieldName": "$.minimum_latency_in_ticks",
        "DefaultValue": "0",
        "Placeholder": "0",
        "Suffix": "ticks",
        "EnumValues": {}
    },
    {
        "DisplayName": "Maximum Heartbeats",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the network tick rate, being the maximum rate game update packets are sent at before bundling them together",
        "Keywords": "network,tick,rate,maximum,heartbeats,game,updates,max_heartbeats_per_second",
        "FieldName": "max_heartbeats_per_second",
        "InputType": "number",
        "MinValue": "6",
        "MaxValue": "240",
        "ParamFieldName": "$.max_heartbeats_per_second",
        "DefaultValue": "60",
        "Placeholder": "60",
        "Suffix": "heartbeats/second",
        "EnumValues": {}
    },
    {
        "DisplayName": "Commands Permission Level",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the permission level for allowing commands to be run by clients on the server",
        "Keywords": "allow,commands,permissions,allow_commands",
        "FieldName": "allow_commands",
        "InputType": "enum",
        "ParamFieldName": "$.allow_commands",
        "DefaultValue": "admins-only",
        "EnumValues": {
            "admins-only": "Admins only (default)",
            "true": "Everyone",
            "false": "No-one"
        }
    },
    {
        "DisplayName": "Autosave Interval",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the server autosave interval",
        "Keywords": "autosave,interval,autosave_interval",
        "FieldName": "autosave_interval",
        "InputType": "number",
        "MinValue": "0",
        "ParamFieldName": "$.autosave_interval",
        "DefaultValue": "10",
        "Placeholder": "10",
        "Suffix": "minutes",
        "EnumValues": {}
    },
    {
        "DisplayName": "Autosave Slots",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the number of server autosave slots, cycled through when the server autosaves",
        "Keywords": "autosave,slots,autosave_slots",
        "FieldName": "autosave_slots",
        "InputType": "number",
        "MinValue": "0",
        "ParamFieldName": "$.autosave_slots",
        "DefaultValue": "5",
        "Placeholder": "5",
        "Suffix": "slots",
        "EnumValues": {}
    },
    {
        "DisplayName": "AFK Autokick Interval",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the period until someone is kicked when doing nothing. 0 = never kick",
        "Keywords": "afk,autokick,interval,afk_autokick_interval",
        "FieldName": "afk_autokick_interval",
        "InputType": "number",
        "MinValue": "0",
        "ParamFieldName": "$.afk_autokick_interval",
        "DefaultValue": "0",
        "Placeholder": "0",
        "Suffix": "minutes",
        "EnumValues": {}
    },
    {
        "DisplayName": "Enable Auto Pause",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If enabled, the server will be paused when no players are present",
        "Keywords": "auto,pause,players,auto_pause",
        "FieldName": "auto_pause",
        "InputType": "checkbox",
        "ParamFieldName": "$.auto_pause",
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Auto Pause When Players Connect",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If enabled, the server will be paused when a player is connecting to the server",
        "Keywords": "auto,pause,players,connect,auto_pause_when_players_connect",
        "FieldName": "auto_pause_when_players_connect",
        "InputType": "checkbox",
        "ParamFieldName": "$.auto_pause_when_players_connect",
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Only Admins Can Pause",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If enabled, only admins will be able to pause the server",
        "Keywords": "only,admins,pause,game,only_admins_can_pause_the_game",
        "FieldName": "only_admins_can_pause_the_game",
        "InputType": "checkbox",
        "ParamFieldName": "$.only_admins_can_pause_the_game",
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Enable Autosave Only On Server",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If enabled, autosaves will be saved only on the server. Otherwise, they will also be saved on all connected clients",
        "Keywords": "autosave,server,connected,clients,autosave_only_on_server",
        "FieldName": "autosave_only_on_server",
        "InputType": "checkbox",
        "ParamFieldName": "$.autosave_only_on_server",
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Enable Non-Blocking Saving",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Highly experimental feature. Enable only at your own risk of losing saves. On Linux systems, the server will fork itself to create an autosave. Autosaving on connected Windows clients will be disabled regardless of Enable Autosave Only On Server",
        "Keywords": "non-blocking,saving,experimental,non_blocking_saving",
        "FieldName": "non_blocking_saving",
        "InputType": "checkbox",
        "ParamFieldName": "$.non_blocking_saving",
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Minimum Segment Size",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the minimum segment size for long network messages. Increasing the segment size will increase upload bandwidth requirement for the server and download bandwidth requirement for clients",
        "Keywords": "minimum,segment,size,network,minimum_segment_size",
        "FieldName": "minimum_segment_size",
        "InputType": "number",
        "MinValue": "0",
        "ParamFieldName": "$.minimum_segment_size",
        "DefaultValue": "25",
        "Placeholder": "25",
        "EnumValues": {}
    },
    {
        "DisplayName": "Minimum Segment Size Peer Count",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the number of peers required for the minimum segment size",
        "Keywords": "minimum,segment,size,peer,count,network,minimum_segment_size_peer_count",
        "FieldName": "minimum_segment_size_peer_count",
        "InputType": "number",
        "MinValue": "0",
        "ParamFieldName": "$.minimum_segment_size_peer_count",
        "DefaultValue": "20",
        "Placeholder": "20",
        "EnumValues": {}
    },
    {
        "DisplayName": "Maximum Segment Size",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the maximum segment size for long network messages. Increasing the segment size will increase upload bandwidth requirement for the server and download bandwidth requirement for clients",
        "Keywords": "maximum,segment,size,network,maximum_segment_size",
        "FieldName": "maximum_segment_size",
        "InputType": "number",
        "MinValue": "0",
        "ParamFieldName": "$.maximum_segment_size",
        "DefaultValue": "100",
        "Placeholder": "100",
        "EnumValues": {}
    },
    {
        "DisplayName": "Maximum Segment Size Peer Count",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the number of peers required for the maximum segment size",
        "Keywords": "maximum,segment,size,peer,count,network,maximum_segment_size_peer_count",
        "FieldName": "maximum_segment_size_peer_count",
        "InputType": "number",
        "MinValue": "0",
        "ParamFieldName": "$.maximum_segment_size_peer_count",
        "DefaultValue": "10",
        "Placeholder": "10",
        "EnumValues": {}
    },
    {
        "DisplayName": "Custom Command Line Arguments",
        "Category": "Factorio:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets custom [command line arguments](https://wiki.factorio.com/Command_line_parameters) for the server. Don't use options already in AMP's settings!",
        "Keywords": "custom,command,line,options,parameters,arguments",
        "FieldName": "CustomArgs",
        "InputType": "text",
        "ParamFieldName": "CustomArgs",
        "DefaultValue": "",
        "Placeholder": "--no-log-rotation",
        "EnumValues": {}
    },
    {
        "DisplayName": "Install Beta Branch",
        "Category": "Updates",
        "Subcategory": "Steam Downloads:download",
        "Description": "If enabled, allows beta branches (branches other than the 'public' or stable branch) to be installed. Specify the branch under Selected Beta Branch. Update the server after switching branches",
        "Keywords": "install,beta",
        "FieldName": "InstallBeta",
        "InputType": "checkbox",
        "ParamFieldName": "InstallBeta",
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Selected Beta Branch",
        "Category": "Updates",
        "Subcategory": "Steam Downloads:download",
        "Description": "Sets the [beta branch](https://steamdb.info/app/427520/depots/) to install. Requires Install Beta Branch to be enabled. Set any required password under Beta Password. Update the server after switching branches",
        "Keywords": "beta,branch",
        "FieldName": "BetaBranch",
        "InputType": "text",
        "ParamFieldName": "BetaBranch",
        "DefaultValue": "",
        "Placeholder": "",
        "EnumValues": {}
    }
]