[
    {
        "DisplayName": "Server Port",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "",
        "Keywords": "",
        "FieldName": "$ServerPort",
        "InputType": "number",
        "Hidden": true,
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.ServerPort",
        "IncludeInCommandLine": false,
        "EnumValues": {}
    },
    {
        "DisplayName": "REST API Port",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "",
        "Keywords": "",
        "FieldName": "$RESTAPIPort",
        "InputType": "number",
        "Hidden": true,
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.RestApiPort",
        "IncludeInCommandLine": false,
        "EnumValues": {}
    },
    {
        "DisplayName": "Ban List",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "",
        "Keywords": "",
        "FieldName": "banlist",
        "InputType": "text",
        "Hidden": true,
        "IsFlagArgument": false,
        "ParamFieldName": "banlist",
        "IncludeInCommandLine": true,
        "DefaultValue": "banlist.txt",
        "EnumValues": {}
    },
    {
        "DisplayName": "Log Path",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "",
        "Keywords": "",
        "FieldName": "logpath",
        "InputType": "text",
        "Hidden": true,
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.LogPath",
        "IncludeInCommandLine": false,
        "DefaultValue": "tshock/logs",
        "EnumValues": {}
    },
    {
        "DisplayName": "World Name",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Keywords": "world,name,generate,worldname",
        "Description": "Unless \"Use Server Name For World Name\" is enabled, sets the name of a newly generated world. The world save file will be named accordingly in the Worlds directory. If the save file already exists and is not loaded under World Save Name, then an incrementally numbered save file will be created",
        "FieldName": "worldname",
        "InputType": "text",
        "ParamFieldName": "worldname",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "World",
        "Placeholder": "World",
        "EnumValues": {}
    },
    {
        "DisplayName": "World Save Name",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Keywords": "world,save,name,load,worldname",
        "Description": "Specifies the world save file in the Worlds directory to load on start. Creates the specified file if no World Name is set or \"Use Server Name For World Name\" is enabled. Creates a default world save file if otherwise unspecified",
        "FieldName": "world",
        "InputType": "text",
        "ParamFieldName": "world",
        "IncludeInCommandLine": false,
        "DefaultValue": "World.wld",
        "Placeholder": "World.wld",
        "EnumValues": {}
    },
    {
        "DisplayName": "World Seed",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the world seed to use for a newly generated world. Empty = random seed",
        "Keywords": "world,seed",
        "FieldName": "seed",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "seed",
        "IncludeInCommandLine": true,
        "DefaultValue": "Powered By AMP",
        "Placeholder": "Powered By AMP",
        "EnumValues": {}
    },
    {
        "DisplayName": "World Size",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the size of a newly generated world",
        "Keywords": "world,size,autocreate",
        "FieldName": "autocreate",
        "InputType": "enum",
        "IsFlagArgument": false,
        "ParamFieldName": "autocreate",
        "IncludeInCommandLine": true,
        "DefaultValue": "3",
        "EnumValues": {
            "1": "Small",
            "2": "Medium",
            "3": "Large (default)"
        }
    },
    {
        "DisplayName": "World Difficulty Level",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the difficulty level of a newly generated world",
        "Keywords": "difficulty,normal,expert,master,journey",
        "FieldName": "difficulty",
        "InputType": "enum",
        "IsFlagArgument": false,
        "ParamFieldName": "difficulty",
        "IncludeInCommandLine": true,
        "DefaultValue": "0",
        "EnumValues": {
            "0": "Normal (default)",
            "1": "Expert",
            "2": "Master",
            "3": "Journey"
        }
    },
    {
        "DisplayName": "World Evil",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the evil state for a newly generated world",
        "Keywords": "world,evil,state,worldevil",
        "FieldName": "worldevil",
        "InputType": "enum",
        "ParamFieldName": "worldevil",
        "IncludeInCommandLine": true,
        "DefaultValue": "random",
        "EnumValues": {
            "random": "Random (default)",
            "corrupt": "Corrupt",
            "crimson": "Crimson"
        }
    },
    {
        "DisplayName": "Server Name",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the name of the server shown publicly",
        "Keywords": "server,name,servername",
        "FieldName": "ServerName",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.ServerName",
        "IncludeInCommandLine": false,
        "DefaultValue": "AMP Powered TShock Server",
        "EnumValues": {}
    },
    {
        "DisplayName": "Use Server Name For World Name",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, the Server Name will be used as the world name of a newly generated world, with the world save file named as specified under World Save Name",
        "Keywords": "world,name,useservername",
        "FieldName": "UseServerName",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.UseServerName",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "MOTD",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the server's [MOTD](https://ikebukuro.tshock.co/#/motd) (message of the day)",
        "Keywords": "motd,welcome,message",
        "FieldName": "motd",
        "InputType": "Textarea",
        "IsFlagArgument": false,
        "ParamFieldName": "motd",
        "IncludeInCommandLine": false,
        "DefaultValue": "Welcome to [c/ffff00:%map%] on [c/7ddff8:T][c/81dbf6:S][c/86d7f4:h][c/8ad3f3:o][c/8ecef1:c][c/93caef:k] for [c/55d284:T][c/62d27a:e][c/6fd16f:r][c/7cd165:r][c/89d15a:a][c/95d150:r][c/a4d145:i][c/b1d03b:a].\n[c/FFFFFF:Online players (%onlineplayers%/%serverslots%):] [c/FFFF00:%players%]\nType [c/55D284:%specifier%][c/62D27A:h][c/6FD16F:e][c/7CD165:l][c/89D15A:p] for a list of commands.",
        "EnumValues": {}
    },
    {
        "DisplayName": "Server Password",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the password for players to join the server. Default is no password",
        "Keywords": "password",
        "FieldName": "password",
        "InputType": "Password",
        "IsFlagArgument": false,
        "ParamFieldName": "password",
        "IncludeInCommandLine": true,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Server Password",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Keywords": "",
        "Description": "",
        "FieldName": "password",
        "InputType": "Password",
        "Hidden": true,
        "ParamFieldName": "$.Settings.ServerPassword",
        "IncludeInCommandLine": false,
        "EnumValues": {}
    },
    {
        "DisplayName": "Enable Anti-Spam",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, enables the server's anti-spam feature",
        "Keywords": "secure,anti-spam",
        "FieldName": "secure",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "secure",
        "IncludeInCommandLine": false,
        "DefaultValue": "",
        "EnumValues": {
            "False": "",
            "True": "-secure "
        }
    },
    {
        "DisplayName": "Server Language",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the language of the server",
        "Keywords": "language,lang",
        "FieldName": "lang",
        "InputType": "enum",
        "IsFlagArgument": false,
        "ParamFieldName": "lang",
        "IncludeInCommandLine": true,
        "DefaultValue": "en_US",
        "EnumValues": {
            "en_US": "English (default)",
            "en_PT": "Pirate English",
            "fr_QC": "Canadian French",
            "zh_Hans": "Chinese",
            "zh_CN": "Chinese (simplified)",
            "fr_FR": "French",
            "de_DE": "German",
            "id_ID": "Indonesian",
            "it_IT": "Italian",
            "ja_JP": "Japanese",
            "pl_PL": "Polish",
            "pt_PT": "Portuguese",
            "pt_BR": "Portuguese (Brazil)",
            "ru_RU": "Russian",
            "es_ES": "Spanish",
            "tok": "Toki Pona",
            "tr_TR": "Turkish",
            "ru_UA": "Ukrainian"
        }
    },
    {
        "DisplayName": "Disable Announcement Box",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, disables the text announcements that the Announcement Box makes when pulsed from wire",
        "Keywords": "disable,announcement,box,disableannouncementbox",
        "FieldName": "disableannouncementbox",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "disableannouncementbox",
        "IncludeInCommandLine": false,
        "DefaultValue": "",
        "EnumValues": {
            "False": "",
            "True": "-disableannouncementbox "
        }
    },
    {
        "DisplayName": "Announcement Box Range",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the Announcement Box text messaging range. -1 = serverwide announcements",
        "Keywords": "announcement,box,range,pixels,announcementboxrange",
        "FieldName": "announcementboxrange",
        "InputType": "number",
        "MinValue": "-1",
        "IsFlagArgument": false,
        "ParamFieldName": "announcementboxrange",
        "IncludeInCommandLine": true,
        "DefaultValue": "-1",
        "Placeholder": "-1",
        "Suffix": "pixels",
        "EnumValues": {}
    },
    {
        "DisplayName": "Enable Autosave",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, the server’s backup autosave will be enabled. Backups are stored in the tshock/backups folder",
        "Keywords": "auto,save,autosave",
        "FieldName": "AutoSave",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.AutoSave",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Announce Autosaves",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, world autosave announcements will be enabled",
        "Keywords": "announce,auto,save,autosave,announcesave",
        "FieldName": "AnnounceSave",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.AnnounceSave",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Show Autosave Messages",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, backup autosave messages will be shown",
        "Keywords": "auto,save,autosave,message,showbackupautosavemessages",
        "FieldName": "ShowBackupAutosaveMessages",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.ShowBackupAutosaveMessages",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Backup Interval",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the interval between backup autosaves",
        "Keywords": "backup,interval,backupinterval",
        "FieldName": "BackupInterval",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.BackupInterval",
        "IncludeInCommandLine": false,
        "DefaultValue": "10",
        "Placeholder": "10",
        "Suffix": "minutes",
        "EnumValues": {}
    },
    {
        "DisplayName": "Backup Retention Period",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets how long backup autosaves are kept",
        "Keywords": "backup,retention,period,backupkeepfor",
        "FieldName": "BackupKeepFor",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.BackupKeepFor",
        "IncludeInCommandLine": false,
        "DefaultValue": "240",
        "Placeholder": "240",
        "Suffix": "minutes",
        "EnumValues": {}
    },
    {
        "DisplayName": "Save World On Crash",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If enabled, the world will be saved if the server crashes from an unhandled exception",
        "Keywords": "save,world,crash,saveworldoncrash",
        "FieldName": "SaveWorldOnCrash",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.SaveWorldOnCrash",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Save World On Last Player Exit",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If enabled, the world will be saved when the last player disconnects",
        "Keywords": "save,world,last,player,exit,disconnect,saveworldonlastplayerexit",
        "FieldName": "SaveWorldOnLastPlayerExit",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.SaveWorldOnLastPlayerExit",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Ignore Plugin Version Checks",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, the server will ignore API version checks for plugins, allowing old plugins to run",
        "Keywords": "ignore,version,plugin,check,ignoreversion",
        "FieldName": "ignoreversion",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "ignoreversion",
        "IncludeInCommandLine": false,
        "DefaultValue": "",
        "EnumValues": {
            "False": "",
            "True": "-ignoreversion "
        }
    },
    {
        "DisplayName": "Enable Debug Logs",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If enabled, the server will output debug level messages related to system operation",
        "Keywords": "debug,logs,debuglogs",
        "FieldName": "DebugLogs",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DebugLogs",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Disable Spew Logs",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, disables sending logs as messages to players with the log permission",
        "Keywords": "disable,spew,logs,messages,disablespewlogs",
        "FieldName": "DisableSpewLogs",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DisableSpewLogs",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Disable Second Update Logs",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, prevents On Second Update checks from writing to the log file",
        "Keywords": "disable,second,update,logsdisablesecondupdatelogs",
        "FieldName": "DisableSecondUpdateLogs",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DisableSecondUpdateLogs",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Suppress Permission Failure Notices",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If enabled, the server will suppress build permission failure warnings from regions, spawn point, or server edit failure",
        "Keywords": "suppress,build,permission,failure,warnings,notices,suppresspermissionfailurenotices",
        "FieldName": "SuppressPermissionFailureNotices",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.SuppressPermissionFailureNotices",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Disable UPnP",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, disables UPnP (Universal Plug and Play) on the server",
        "Keywords": "upnp,noupnp",
        "FieldName": "noupnp",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "noupnp",
        "IncludeInCommandLine": false,
        "DefaultValue": "-noupnp ",
        "EnumValues": {
            "False": "",
            "True": "-noupnp "
        }
    },
    {
        "DisplayName": "Server Process Priority",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the server process priority",
        "Keywords": "process,priority,performance,forcepriority",
        "FieldName": "forcepriority",
        "InputType": "enum",
        "IsFlagArgument": false,
        "ParamFieldName": "forcepriority",
        "IncludeInCommandLine": true,
        "DefaultValue": "1",
        "EnumValues": {
            "0": "Realtime",
            "1": "High (default)",
            "2": "Above Normal",
            "3": "Normal",
            "4": "Below Normal",
            "5": "Idle"
        }
    },
    {
        "DisplayName": "Additional Command Line Parameters",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Specifies additional command line parameters that are not otherwise set by AMP. ONE LINE ONLY! Use with care",
        "Keywords": "custom,server,arguments,variables,parameters",
        "FieldName": "CustomServerArgs",
        "InputType": "Textarea",
        "IsFlagArgument": false,
        "ParamFieldName": "CustomServerArgs",
        "IncludeInCommandLine": false,
        "DefaultValue": "",
        "Placeholder": "-heaptile",
        "EnumValues": {}
    },
    {
        "DisplayName": "Force Server Running",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, the server will be forced to continue running, and not hibernate when no players are connected. This will result in time passing, grass growing, and the CPU running",
        "Keywords": "force,update,running,forceupdate",
        "FieldName": "forceupdate",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "forceupdate",
        "IncludeInCommandLine": false,
        "DefaultValue": "",
        "EnumValues": {
            "False": "",
            "True": "-forceupdate "
        }
    },
    {
        "DisplayName": "Invasion Multiplier",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets the size of invasion events, based on: 100 + (multiplier x (number of active players with greater than 200 health))",
        "Keywords": "invasion,multiplier,events,invasionmultiplier",
        "FieldName": "InvasionMultiplier",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.InvasionMultiplier",
        "IncludeInCommandLine": false,
        "DefaultValue": "1",
        "Placeholder": "1",
        "EnumValues": {}
    },
    {
        "DisplayName": "Default Maximum Spawns",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets the default maximum number of mobs that will spawn per wave. Higher = more mobs in that wave",
        "Keywords": "default,maximum,spawns,mobs,waves,defaultmaximumspawns",
        "FieldName": "DefaultMaximumSpawns",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DefaultMaximumSpawns",
        "IncludeInCommandLine": false,
        "DefaultValue": "5",
        "Placeholder": "5",
        "Suffix": "mobs",
        "EnumValues": {}
    },
    {
        "DisplayName": "Default Spawn Rate",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets the delay between waves. Lower = more mobs",
        "Keywords": "default,spawn,rate,waves,mobs,defaultspawnrate",
        "FieldName": "DefaultSpawnRate",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DefaultSpawnRate",
        "IncludeInCommandLine": false,
        "DefaultValue": "600",
        "Placeholder": "600",
        "EnumValues": {}
    },
    {
        "DisplayName": "Enable Infinite Invasion",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, enables never-ending invasion events. The event still needs to be started, such as with the /invade command",
        "Keywords": "infinite,invasion,events,infiniteinvasion",
        "FieldName": "InfiniteInvasion",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.InfiniteInvasion",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "PvP Mode",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets the server's PvP (player vs player) mode",
        "Keywords": "pvp,combat,pve,pvpmode",
        "FieldName": "PvPMode",
        "InputType": "enum",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.PvPMode",
        "IncludeInCommandLine": false,
        "DefaultValue": "normal",
        "EnumValues": {
            "normal": "Normal (default)",
            "always": "Always",
            "disabled": "Disabled"
        }
    },
    {
        "DisplayName": "Enable Spawn Protection",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If enabled, prevents tiles from being placed within the Spawn Protection Radius of the default spawn",
        "Keywords": "spawn,protection,spawnprotection",
        "FieldName": "SpawnProtection",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.SpawnProtection",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Spawn Protection Radius",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets the tile radius around the spawn tile that is protected by the Spawn Protection setting",
        "Keywords": "spawn,protection,radius,spawnprotectionradius",
        "FieldName": "SpawnProtectionRadius",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.SpawnProtectionRadius",
        "IncludeInCommandLine": false,
        "DefaultValue": "10",
        "Placeholder": "10",
        "Suffix": "tiles",
        "EnumValues": {}
    },
    {
        "DisplayName": "Enable Range Checks",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, enables anti-cheat range checks based on the distance between the player and their block placements",
        "Keywords": "range,checks,enable,anti-cheat,rangechecks",
        "FieldName": "RangeChecks",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.RangeChecks",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Enable Hardcore Only",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, only hardcore players cann connect. Don't enable Softcore Only or Mediumcore Only at the same time",
        "Keywords": "hardcore,mode,hardcoreonly",
        "FieldName": "HardcoreOnly",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.HardcoreOnly",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Enable Mediumcore Only",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, softcore players cannot connect. Don't enable Softcore Only or Hardcore Only at the same time",
        "Keywords": "mediumcore,mode,mediumcoreonly",
        "FieldName": "MediumcoreOnly",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.MediumcoreOnly",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Enable Softcore Only",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, only softcore players can connect. Don't enable Mediumcore Only or Hardcore Only at the same time",
        "Keywords": "softcore,mode,softcoreonly",
        "FieldName": "SoftcoreOnly",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.SoftcoreOnly",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Disable Building",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, disables any placing or removal of blocks",
        "Keywords": "disable,build,building,blocks,disablebuild",
        "FieldName": "DisableBuild",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DisableBuild",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Disable Hardmode",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, hardmode will not be activated by the Wall of Flesh or the /starthardmode command",
        "Keywords": "disable,hardmode,disablehardmode",
        "FieldName": "DisableHardmode",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DisableHardmode",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Disable Dungeon Guardian",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, prevents the dungeon guardian from being spawned, while sending players to their spawn point instead",
        "Keywords": "dungeon,guardian,spawn,disable,disabledungeonguardian",
        "FieldName": "DisableDungeonGuardian",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DisableDungeonGuardian",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Disable Clown Bombs",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, disables clown bomb projectiles from spawning",
        "Keywords": "clown,bombs,projectiles,disable,disableclownbombs",
        "FieldName": "DisableClownBombs",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DisableClownBombs",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Disable Snowballs",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, disables snowball projectiles from spawning",
        "Keywords": "snowballs,projectiles,disable,disablesnowballs",
        "FieldName": "DisableSnowBalls",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DisableSnowBalls",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Disable Tombstones",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, disables tombstone dropping during death for all players",
        "Keywords": "tombstones,death,disable,disabletombstones",
        "FieldName": "DisableTombstones",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DisableTombstones",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Disable Prime Bombs",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, disables Skeletron Prime Bombs from spawning. Useful for preventing unwanted world destruction on \"for the worthy\" seed worlds",
        "Keywords": "skeletron,prime,bombs,disable,disableprimebombs",
        "FieldName": "DisablePrimeBombs",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DisablePrimeBombs",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Force Time",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Forces the world time to the specified setting",
        "Keywords": "force,time,day,night,forcetime",
        "FieldName": "ForceTime",
        "InputType": "enum",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.ForceTime",
        "IncludeInCommandLine": false,
        "DefaultValue": "normal",
        "EnumValues": {
            "normal": "Normal (default)",
            "day": "Day",
            "night": "Night"
        }
    },
    {
        "DisplayName": "Disable PvP Invisibility",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, disables the effect of invisibility potions while PvP is enabled, by making the player visible to the other players",
        "Keywords": "invisibility,pvp,disable,disableinvispvp",
        "FieldName": "DisableInvisPvP",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DisableInvisPvP",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Maximum Range For Disabled Players",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets the maximum distance that disabled players can move from",
        "Keywords": "maximum,range,disabled,maxrangefordisabled",
        "FieldName": "MaxRangeForDisabled",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.MaxRangeForDisabled",
        "IncludeInCommandLine": false,
        "DefaultValue": "10",
        "Placeholder": "10",
        "Suffix": "tiles",
        "EnumValues": {}
    },
    {
        "DisplayName": "Enable Region Protection For Chests",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If enabled, region protection will apply to chests",
        "Keywords": "region,protection,chests,regionprotectchests",
        "FieldName": "RegionProtectChests",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.RegionProtectChests",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Enable Region Protection For Gem Locks",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If enabled, region protection will apply to gem locks",
        "Keywords": "region,protection,gem,locks,regionprotectgemlocks",
        "FieldName": "RegionProtectGemLocks",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.RegionProtectGemLocks",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Maximum Player/NPC Damage",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets the maximum damage a player/NPC can inflict",
        "Keywords": "maximum,player,npc,damage,maxdamage",
        "FieldName": "MaxDamage",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.MaxDamage",
        "IncludeInCommandLine": false,
        "DefaultValue": "1175",
        "Placeholder": "1175",
        "EnumValues": {}
    },
    {
        "DisplayName": "Maximum Projectile Damage",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets the maximum damage a projectile can inflict",
        "Keywords": "maximum,projectile,damage,maxprojdamage",
        "FieldName": "MaxProjDamage",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.MaxProjDamage",
        "IncludeInCommandLine": false,
        "DefaultValue": "1175",
        "Placeholder": "1175",
        "EnumValues": {}
    },
    {
        "DisplayName": "Ignore Projectile Update",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, ignores checks to see if a player can update a projectile",
        "Keywords": "ignore,checks,update,projectile,ignoreprojupdate",
        "FieldName": "IgnoreProjUpdate",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.IgnoreProjUpdate",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Ignore Projectile Kill",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, ignores checks to see if a player can kill a projectile",
        "Keywords": "ignore,checks,kill,projectile,ignoreprojkill",
        "FieldName": "IgnoreProjKill",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.IgnoreProjKill",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Allow Cut Tiles And Breakables",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If enabled, allows players to break temporary tiles (grass, pots, etc) where they cannot usually build",
        "Keywords": "break,cut,temporary,tiles,breakables,allowcuttilesandbreakables",
        "FieldName": "AllowCutTilesAndBreakables",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.AllowCutTilesAndBreakables",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Allow Ice",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If enabled, allows ice placement even where a player cannot usually build",
        "Keywords": "allow,ice,allowice",
        "FieldName": "AllowIce",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.AllowIce",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Allow Hardmode Crimson Creep",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If enabled, allows the crimson to spread when a world is in hardmode",
        "Keywords": "allow,crimson,creep,hardmode,allowcrimsoncreep",
        "FieldName": "AllowCrimsonCreep",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.AllowCrimsonCreep",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Allow Hardmode Corruption Creep",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If enabled, allows the corruption to spread when a world is in hardmode",
        "Keywords": "allow,corruption,creep,hardmode,allowcorruptioncreep",
        "FieldName": "AllowCorruptionCreep",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.AllowCorruptionCreep",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Allow Hardmode Hallow Creep",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If enabled, allows the hallow to spread when a world is in hardmode",
        "Keywords": "allow,hallow,creep,hardmode,allowhallowcreep",
        "FieldName": "AllowHallowCreep",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.AllowHallowCreep",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Statue Spawn Within 200 Pixels",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets how many NPCs a statue can spawn within 200 pixels before it stops spawning",
        "Keywords": "statue,spawn,npcs,statuespawn200",
        "FieldName": "StatueSpawn200",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.StatueSpawn200",
        "IncludeInCommandLine": false,
        "DefaultValue": "3",
        "Placeholder": "3",
        "Suffix": "NPCs",
        "EnumValues": {}
    },
    {
        "DisplayName": "Statue Spawn Within 600 Pixels",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets how many NPCs a statue can spawn within 600 pixels before it stops spawning",
        "Keywords": "statue,spawn,npcs,statuespawn600",
        "FieldName": "StatueSpawn600",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.StatueSpawn600",
        "IncludeInCommandLine": false,
        "DefaultValue": "6",
        "Placeholder": "6",
        "Suffix": "NPCs",
        "EnumValues": {}
    },
    {
        "DisplayName": "Statue Spawn Within World",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets how many NPCs a statue can spawn before it stops spawning",
        "Keywords": "statue,spawn,npcs,statuespawnworld",
        "FieldName": "StatueSpawnWorld",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.StatueSpawnWorld",
        "IncludeInCommandLine": false,
        "DefaultValue": "10",
        "Placeholder": "10",
        "Suffix": "NPCs",
        "EnumValues": {}
    },
    {
        "DisplayName": "Prevent Banned Item Spawn",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If enabled, prevents banned items from being spawned or given with commands",
        "Keywords": "prevent,banned,item,spawn,given,preventbanneditemspawn",
        "FieldName": "PreventBannedItemSpawn",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.PreventBannedItemSpawn",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Prevent Dead Modification",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If enabled, prevents players from interacting with the world while they are dead",
        "Keywords": "prevent,interaction,dead,preventdeadmodification",
        "FieldName": "PreventDeadModification",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.PreventDeadModification",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Prevent Invalid Place Style",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If enabled, prevents players from placing tiles with an invalid style",
        "Keywords": "prevent,tiles,invalid,style,preventinvalidplacestyle",
        "FieldName": "PreventInvalidPlaceStyle",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.PreventInvalidPlaceStyle",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Force Christmas",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If enabled, forces Christmas-only events to occur all year",
        "Keywords": "force,christmas,xmas,events,forcexmas",
        "FieldName": "ForceXmas",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.ForceXmas",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Force Halloween",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If enabled, forces Halloween-only events to occur all year",
        "Keywords": "force,halloween,events,forcehalloween",
        "FieldName": "ForceHalloween",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.ForceHalloween",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Allow Allowed Groups To Spawn Banned Items",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If enabled, allows groups on the banned item allowed list to spawn banned items even if Prevent Banned Item Spawn is enabled",
        "Keywords": "allowed,groups,banned,items,spawn,allowallowedgroupstospawnbanneditems",
        "FieldName": "AllowAllowedGroupsToSpawnBannedItems",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.AllowAllowedGroupsToSpawnBannedItems",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Ignore Chest Stacks On Load",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If enabled, allows stacks in chests to go beyond the stack limit during world loading",
        "Keywords": "ignore,chest,stacks,limit,load,ignorecheststacksonload",
        "FieldName": "IgnoreChestStacksOnLoad",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.IgnoreChestStacksOnLoad",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Anonymous Boss Invasions",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If enabled, boss spawning and invasion starts will be announced",
        "Keywords": "anonymous,boss,spawning,invasion,start,announce,anonymousbossinvasions",
        "FieldName": "AnonymousBossInvasions",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.AnonymousBossInvasions",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Bomb Explosion Radius",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Sets the range over which a bomb can affect tiles from its detonation point",
        "Keywords": "bomb,explosion,radius,bombexplosionradius",
        "FieldName": "BombExplosionRadius",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.BombExplosionRadius",
        "IncludeInCommandLine": false,
        "DefaultValue": "5",
        "Placeholder": "5",
        "Suffix": "tiles",
        "EnumValues": {}
    },
    {
        "DisplayName": "Give Items Directly",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If enabled, items given to players will be inserted directly into their inventory. Requires SSC. Otherwise, items given to players will spawn as dropped items. Experimental - may not work correctly or may result in item loss",
        "Keywords": "give,items,directly,inventory,giveitemsdirectly",
        "FieldName": "GiveItemsDirectly",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.GiveItemsDirectly",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Disable Modified Zenith",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, prohibits the use of the Zenith projectile with different objects instead of weapons",
        "Keywords": "modified,zenith,projectile,disable,disablemodifiedzenith",
        "FieldName": "DisableModifiedZenith",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DisableModifiedZenith",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Disable Custom Death Messages",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "If set, enables protection against creating custom messages with death",
        "Keywords": "disable,custom,death,messages,disablecustomdeathmessages",
        "FieldName": "DisableCustomDeathMessages",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DisableCustomDeathMessages",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Command Specifier",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Specifies which string starts a command. Note: Will not function properly if the string length is bigger than 1",
        "Keywords": "command,specifier,string,commandspecifier",
        "FieldName": "CommandSpecifier",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.CommandSpecifier",
        "IncludeInCommandLine": false,
        "DefaultValue": "/",
        "EnumValues": {}
    },
    {
        "DisplayName": "Command Silent Specifier",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Gameplay:joystick:2",
        "Description": "Specifies which string starts a command silently. Note: Will not function properly if the string length is bigger than 1",
        "Keywords": "command,silent,specifier,string,commandsilentspecifier",
        "FieldName": "CommandSilentSpecifier",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.CommandSilentSpecifier",
        "IncludeInCommandLine": false,
        "DefaultValue": ".",
        "EnumValues": {}
    },
    {
        "DisplayName": "Player Limit",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Sets the maximum numbers of players that can connect at one time",
        "Keywords": "player,limit,max,maximum,maxplayers",
        "FieldName": "$MaxUsers",
        "InputType": "number",
        "MinValue": "1",
        "MaxValue": "255",
        "IsFlagArgument": false,
        "ParamFieldName": "maxplayers",
        "IncludeInCommandLine": true,
        "DefaultValue": "8",
        "Placeholder": "8",
        "Suffix": "players",
        "EnumValues": {}
    },
    {
        "DisplayName": "Player Limit",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "",
        "Keywords": "",
        "FieldName": "$MaxUsers",
        "InputType": "number",
        "Hidden": true,
        "ParamFieldName": "$.Settings.MaxSlots",
        "IncludeInCommandLine": false,
        "EnumValues": {}
    },
    {
        "DisplayName": "Reserved Player Slots",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Sets the number of reserved slots above the Player Limit that can be joined by reserved players",
        "Keywords": "reserved,player,slots,reservedslots",
        "FieldName": "ReservedSlots",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.ReservedSlots",
        "IncludeInCommandLine": false,
        "DefaultValue": "20",
        "Placeholder": "20",
        "Suffix": "reserved players",
        "EnumValues": {}
    },
    {
        "DisplayName": "Enable Whitelist",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If set, enables the server's whitelist based on IP addresses in tshock/whitelist.txt",
        "Keywords": "enable,whitelist,enablewhitelist",
        "FieldName": "EnableWhitelist",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.EnableWhitelist",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Whitelist Kick Reason",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Sets the reason given when kicking players for not being on the whitelist",
        "Keywords": "whitelist,kick,reason,whitelistkickreason",
        "FieldName": "WhitelistKickReason",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.WhitelistKickReason",
        "IncludeInCommandLine": false,
        "DefaultValue": "You are not on the whitelist.",
        "EnumValues": {}
    },
    {
        "DisplayName": "Server Full With No Reserved Slots Reason",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Sets the reason given when kicking players that attempt to join while the server is full with no reserved slots available",
        "Keywords": "server,full,reason,reserved,slots,serverfullnoreservedreason",
        "FieldName": "ServerFullNoReservedReason",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.ServerFullNoReservedReason",
        "IncludeInCommandLine": false,
        "DefaultValue": "Server is full. No reserved slots open.",
        "EnumValues": {}
    },
    {
        "DisplayName": "Server Full Reason",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Sets the reason given when kicking players that attempt to join while the server is full",
        "Keywords": "server,full,reason,serverfullreason",
        "FieldName": "ServerFullReason",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.ServerFullReason",
        "IncludeInCommandLine": false,
        "DefaultValue": "Server is full.",
        "EnumValues": {}
    },
    {
        "DisplayName": "Default Registration Group Name",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Sets the default group name to place newly registered users under",
        "Keywords": "default,registration,group,defaultregistrationgroupname",
        "FieldName": "DefaultRegistrationGroupName",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DefaultRegistrationGroupName",
        "IncludeInCommandLine": false,
        "DefaultValue": "default",
        "Placeholder": "default",
        "EnumValues": {}
    },
    {
        "DisplayName": "Default Guest Group Name",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Sets the default group name to place unregistered players under",
        "Keywords": "default,guest,group,unregistered,defaultguestgroupname",
        "FieldName": "DefaultGuestGroupName",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DefaultGuestGroupName",
        "IncludeInCommandLine": false,
        "DefaultValue": "guest",
        "Placeholder": "guest",
        "EnumValues": {}
    },
    {
        "DisplayName": "Remember Leave Position",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If enabled, remembers where a player left off, based on their IP. Does not persist through server restarts",
        "Keywords": "remember,player,leave,position,rememberleavepos",
        "FieldName": "RememberLeavePos",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.RememberLeavePos",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Require Login Or Registration",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If enabled, requires all players to register or login before being allowed to play",
        "Keywords": "require,players,register,login,requirelogin",
        "FieldName": "RequireLogin",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.RequireLogin",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Allow Login With Any Username",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If enabled, allows players to login to any account even if the username doesn't match their character name",
        "Keywords": "allow,login,username,allowloginanyusername",
        "FieldName": "AllowLoginAnyUsername",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.AllowLoginAnyUsername",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Allow Registration With Any Username",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If enabled, allows players to register a username that doesn't necessarily match their character name",
        "Keywords": "allow,register,registration,username,allowregisteranyusername",
        "FieldName": "AllowRegisterAnyUsername",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.AllowRegisterAnyUsername",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Maximum Login Attempts",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Sets the number of failed login attempts before kicking a player",
        "Keywords": "maximum,login,attempts,maximumloginattempts",
        "FieldName": "MaximumLoginAttempts",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.MaximumLoginAttempts",
        "IncludeInCommandLine": false,
        "DefaultValue": "3",
        "Placeholder": "3",
        "EnumValues": {}
    },
    {
        "DisplayName": "Disable Login Before Join",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If set, prevents players from being able to login before they finish connecting",
        "Keywords": "disable,login,join,connect,disableloginbeforejoin",
        "FieldName": "DisableLoginBeforeJoin",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DisableLoginBeforeJoin",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Display IP To Admins",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If enabled, displays a player's IP on join to users with the log permission",
        "Keywords": "ip,admins,display,displayiptoadmins",
        "FieldName": "DisplayIPToAdmins",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DisplayIPToAdmins",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Announce Player Geographic Location",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If enabled, a player's geographic location will be announced on join, based on their IP",
        "Keywords": "geoip,geographic,location,announce,enablegeoip",
        "FieldName": "EnableGeoIP",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.EnableGeoIP",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Kick Proxy Users",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If set, and Announce Player Geographic Location is enabled, users identified as being under a proxy will be kicked",
        "Keywords": "kick,users,proxy,geoip,kickproxyusers",
        "FieldName": "KickProxyUsers",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.KickProxyUsers",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Disable Default IP Bans",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If set, disables IP bans by default, if no arguments are passed to the ban command",
        "Keywords": "disable,default,ip,ban,disabledefaultipban",
        "FieldName": "DisableDefaultIPBan",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DisableDefaultIPBan",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Minimum Password Length",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Sets the minimum password length for new user accounts",
        "Keywords": "minimum,password,length,accounts,minimumpasswordlength",
        "FieldName": "MinimumPasswordLength",
        "InputType": "number",
        "MinValue": "4",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.MinimumPasswordLength",
        "IncludeInCommandLine": false,
        "DefaultValue": "4",
        "Placeholder": "4",
        "EnumValues": {}
    },
    {
        "DisplayName": "BCrypt Work Factor",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Determines the BCrypt work factor to use. If increased, all passwords will be upgraded to the new work-factor on verify. The number of computational rounds is 2^n. Increase with caution",
        "Keywords": "bcrypt,work,factor,passwords,bcryptworkfactor",
        "FieldName": "BCryptWorkFactor",
        "InputType": "number",
        "MinValue": "5",
        "MaxValue": "31",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.BCryptWorkFactor",
        "IncludeInCommandLine": false,
        "DefaultValue": "7",
        "Placeholder": "7",
        "EnumValues": {}
    },
    {
        "DisplayName": "Disable UUID Login",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If set, prevents players from being able to login with their client UUID",
        "Keywords": "disable,uuid,login,disableuuidlogin",
        "FieldName": "DisableUUIDLogin",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.DisableUUIDLogin",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Kick Empty UUID",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If enabled, clients that don't send their UUID to the server will be kicked",
        "Keywords": "kick,empty,uuid,kickemptyuuid",
        "FieldName": "KickEmptyUUID",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.KickEmptyUUID",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Kick On Mediumcore Death",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If enabled, mediumcore players will be kicked on death",
        "Keywords": "kick,mediumcore,death,kickonmediumcoredeath",
        "FieldName": "KickOnMediumcoreDeath",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.KickOnMediumcoreDeath",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Mediumcore Kick Reason",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Sets the reason given when kicking a mediumcore player on death",
        "Keywords": "mediumcore,kick,death,reason,mediumcorekickreason",
        "FieldName": "MediumcoreKickReason",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.MediumcoreKickReason",
        "IncludeInCommandLine": false,
        "DefaultValue": "Death results in a kick.",
        "EnumValues": {}
    },
    {
        "DisplayName": "Ban On Mediumcore Death",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If enabled, mediumcore players will be banned on death",
        "Keywords": "ban,mediumcore,death,banonmediumcoredeath",
        "FieldName": "BanOnMediumcoreDeath",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.BanOnMediumcoreDeath",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Mediumcore Ban Reason",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Sets the reason given when banning a mediumcore player on death",
        "Keywords": "mediumcore,ban,death,reason,mediumcorebanreason",
        "FieldName": "MediumcoreBanReason",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.MediumcoreBanReason",
        "IncludeInCommandLine": false,
        "DefaultValue": "Death results in a ban.",
        "EnumValues": {}
    },
    {
        "DisplayName": "Kick On Hardcore Death",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If enabled, hardcore players will be kicked on death",
        "Keywords": "kick,hardcore,death,kickonhardcoredeath",
        "FieldName": "KickOnHardcoreDeath",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.KickOnHardcoreDeath",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Hardcore Kick Reason",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Sets the reason given when kicking a hardcore player on death",
        "Keywords": "hardcore,kick,death,reason,hardcorekickreason",
        "FieldName": "HardcoreKickReason",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.HardcoreKickReason",
        "IncludeInCommandLine": false,
        "DefaultValue": "Death results in a kick.",
        "EnumValues": {}
    },
    {
        "DisplayName": "Ban On Hardcore Death",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If enabled, hardcore players will be banned on death",
        "Keywords": "ban,hardcore,death,banonhardcoredeath",
        "FieldName": "BanOnHardcoreDeath",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.BanOnHardcoreDeath",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Hardcore Ban Reason",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Sets the reason given when banning a hardcore player on death",
        "Keywords": "hardcore,ban,reason,hardcorebanreason",
        "FieldName": "HardcoreBanReason",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.HardcoreBanReason",
        "IncludeInCommandLine": false,
        "DefaultValue": "Death results in a ban.",
        "EnumValues": {}
    },
    {
        "DisplayName": "Respawn Period",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Sets the period a player must wait before being respawned. Use at your own risk",
        "Keywords": "respawn,seconds,period,respawnseconds",
        "FieldName": "RespawnSeconds",
        "InputType": "number",
        "MinValue": "0",
        "MaxValue": "15",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.RespawnSeconds",
        "IncludeInCommandLine": false,
        "DefaultValue": "0",
        "Placeholder": "0",
        "Suffix": "seconds",
        "EnumValues": {}
    },
    {
        "DisplayName": "Respawn Boss Period",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Sets the period a player must wait before being respawned if there is a boss nearby. Use at your own risk",
        "Keywords": "respawn,seconds,period,boss,respawnbossseconds",
        "FieldName": "RespawnBossSeconds",
        "InputType": "number",
        "MinValue": "0",
        "MaxValue": "30",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.RespawnBossSeconds",
        "IncludeInCommandLine": false,
        "DefaultValue": "0",
        "Placeholder": "0",
        "Suffix": "seconds",
        "EnumValues": {}
    },
    {
        "DisplayName": "Maximum HP",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Sets the maximum HP a player can have, before equipment buffs",
        "Keywords": "max,maximum,hp,maxhp",
        "FieldName": "MaxHP",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.MaxHP",
        "IncludeInCommandLine": false,
        "DefaultValue": "500",
        "Placeholder": "500",
        "EnumValues": {}
    },
    {
        "DisplayName": "Maximum MP",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Sets the maximum MP a player can have, before equipment buffs",
        "Keywords": "max,maximum,mp,maxmp",
        "FieldName": "MaxMP",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.MaxMP",
        "IncludeInCommandLine": false,
        "DefaultValue": "200",
        "Placeholder": "200",
        "EnumValues": {}
    },
    {
        "DisplayName": "Tile Paint Threshold",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Disables a player if the set number of tiles is painted within 1 second",
        "Keywords": "tile,paint,threshold,tilepaintthreshold",
        "FieldName": "TilePaintThreshold",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.TilePaintThreshold",
        "IncludeInCommandLine": false,
        "DefaultValue": "15",
        "Placeholder": "15",
        "Suffix": "tiles",
        "EnumValues": {}
    },
    {
        "DisplayName": "Kick On Tile Paint Threshold Broken",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If enabled, players will be kicked when they surpass the Tile Paint Threshold",
        "Keywords": "kick,tile,paint,threshold,kickontilepaintthresholdbroken",
        "FieldName": "KickOnTilePaintThresholdBroken",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.KickOnTilePaintThresholdBroken",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Tile Kill Threshold",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Disables a player and reverts their actions if the set number of tile kills is exceeded within 1 second",
        "Keywords": "tile,kill,threshold,tilekillthreshold",
        "FieldName": "TileKillThreshold",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.TileKillThreshold",
        "IncludeInCommandLine": false,
        "DefaultValue": "60",
        "Placeholder": "60",
        "Suffix": "tile kills",
        "EnumValues": {}
    },
    {
        "DisplayName": "Kick On Tile Kill Threshold Broken",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If enabled, players will be kicked when they surpass the Tile Kill Threshold",
        "Keywords": "kick,tile,kill,threshold,kickontilekillthresholdbroken",
        "FieldName": "KickOnTileKillThresholdBroken",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.KickOnTileKillThresholdBroken",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Tile Place Threshold",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Disables a player and reverts their actions if the set number of tile places is exceeded within 1 second",
        "Keywords": "tile,place,threshold,tileplacethreshold",
        "FieldName": "TilePlaceThreshold",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.TilePlaceThreshold",
        "IncludeInCommandLine": false,
        "DefaultValue": "32",
        "Placeholder": "32",
        "Suffix": "tile places",
        "EnumValues": {}
    },
    {
        "DisplayName": "Kick On Tile Place Threshold Broken",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If enabled, players will be kicked when they surpass the Tile Place Threshold",
        "Keywords": "kick,tile,place,threshold,kickontileplacethresholdbroken",
        "FieldName": "KickOnTilePlaceThresholdBroken",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.KickOnTilePlaceThresholdBroken",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Tile Liquid Threshold",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Disables a player if the set number of liquid sets is exceeded within 1 second",
        "Keywords": "tile,liquid,threshold,tileliquidthreshold",
        "FieldName": "TileLiquidThreshold",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.TileLiquidThreshold",
        "IncludeInCommandLine": false,
        "DefaultValue": "50",
        "Placeholder": "50",
        "Suffix": "liquid sets",
        "EnumValues": {}
    },
    {
        "DisplayName": "Kick On Tile Liquid Threshold Broken",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If enabled, players will be kicked when they surpass the Tile Liquid Threshold",
        "Keywords": "kick,tile,liquid,threshold,kickontileliquidthresholdbroken",
        "FieldName": "KickOnTileLiquidThresholdBroken",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.KickOnTileLiquidThresholdBroken",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Kick On Damage Threshold Broken",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If enabled, players will be kicked when they surpass the Maximum Player/NPC Damage",
        "Keywords": "kick,damage,threshold,kickondamagethresholdbroken",
        "FieldName": "KickOnDamageThresholdBroken",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.KickOnDamageThresholdBroken",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Ignore Shrapnel For Projectile Threshold",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If set, shrapnel from crystal bullets will be ignored for the projectile threshold count",
        "Keywords": "ignore,shrapnel,crystal,bullets,projectile,threshold,projignoreshrapnel",
        "FieldName": "ProjIgnoreShrapnel",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.ProjIgnoreShrapnel",
        "IncludeInCommandLine": false,
        "DefaultValue": "true",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Projectile Threshold",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Disables a player if the set number of projectiles is created within 1 second",
        "Keywords": "projectile,threshold,projectilethreshold",
        "FieldName": "ProjectileThreshold",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.ProjectileThreshold",
        "IncludeInCommandLine": false,
        "DefaultValue": "50",
        "Placeholder": "50",
        "Suffix": "projectiles",
        "EnumValues": {}
    },
    {
        "DisplayName": "Kick On Projectile Threshold Broken",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If enabled, players will be kicked when they surpass the Projectile Threshold",
        "Keywords": "kick,projectile,threshold,kickonprojectilethresholdbroken",
        "FieldName": "KickOnProjectileThresholdBroken",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.KickOnProjectileThresholdBroken",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Heal Other Threshold",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Disables a player if the set number of Heal Other Player packets is sent within 1 second",
        "Keywords": "heal,other,player,threshold,healotherthreshold",
        "FieldName": "HealOtherThreshold",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.HealOtherThreshold",
        "IncludeInCommandLine": false,
        "DefaultValue": "50",
        "Placeholder": "50",
        "EnumValues": {}
    },
    {
        "DisplayName": "Kick On Heal Other Threshold Broken",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If enabled, players will be kicked when they surpass the Heal Other Threshold",
        "Keywords": "kick,heal,other,threshold,kickonhealotherthresholdbroken",
        "FieldName": "KickOnHealOtherThresholdBroken",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.KickOnHealOtherThresholdBroken",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Chat Format",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Changes in-game chat format: {0} = Group Name, {1} = Group Prefix, {2} = Player Name, {3} = Group Suffix, {4} = Chat Message",
        "Keywords": "chat,format,message,chatformat",
        "FieldName": "ChatFormat",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.ChatFormat",
        "IncludeInCommandLine": false,
        "DefaultValue": "{1}{2}{3}: {4}",
        "Placeholder": "{1}{2}{3}: {4}",
        "EnumValues": {}
    },
    {
        "DisplayName": "Enable Chat Above Heads",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "If enabled, chat messages will be displayed above players' heads",
        "Keywords": "chat,display,heads,enablechataboveheads",
        "FieldName": "EnableChatAboveHeads",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.EnableChatAboveHeads",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Chat Above Heads Format",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Changes the player name when using Chat Above Heads. Starts with a player name wrapped in brackets, as per Terraria's formatting. Same formatting as Chat Format without the message",
        "Keywords": "chat,format,heads,chataboveheadsformat",
        "FieldName": "ChatAboveHeadsFormat",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.ChatAboveHeadsFormat",
        "IncludeInCommandLine": false,
        "DefaultValue": "{2}",
        "EnumValues": {}
    },
    {
        "DisplayName": "Superadmin Chat Prefix",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Sets the superadmin chat prefix",
        "Keywords": "superadmin,chat,prefix,superadminchatprefix",
        "FieldName": "SuperAdminChatPrefix",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.SuperAdminChatPrefix",
        "IncludeInCommandLine": false,
        "DefaultValue": "(Super Admin) ",
        "Placeholder": "(Super Admin) ",
        "EnumValues": {}
    },
    {
        "DisplayName": "Superadmin Chat Suffix",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Players:person:3",
        "Description": "Sets the superadmin chat suffix",
        "Keywords": "superadmin,chat,suffix,superadminchatsuffix",
        "FieldName": "SuperAdminChatSuffix",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.SuperAdminChatSuffix",
        "IncludeInCommandLine": false,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Enable Rest API",
        "Category": "TShock:stadia_controller",
        "Subcategory": "API:code:4",
        "Description": "If set, enables the REST API",
        "Keywords": "enable,rest,api,restapienabled",
        "FieldName": "RestApiEnabled",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.RestApiEnabled",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Log REST API Connections",
        "Category": "TShock:stadia_controller",
        "Subcategory": "API:code:4",
        "Description": "If enabled, REST API connections will be logged",
        "Keywords": "log,rest,api,connections,logrest",
        "FieldName": "LogRest",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.LogRest",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Enable REST API Token Authentication",
        "Category": "TShock:stadia_controller",
        "Subcategory": "API:code:4",
        "Description": "If enabled, token authentication will be required to use the public REST API endpoints",
        "Keywords": "token,authentication,rest,api,enabletokenendpointauthentication",
        "FieldName": "EnableTokenEndpointAuthentication",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.EnableTokenEndpointAuthentication",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Maximum REST API Requests Per Interval",
        "Category": "TShock:stadia_controller",
        "Subcategory": "API:code:4",
        "Description": "Sets the maximum REST API requests in the bucket before denying requests",
        "Keywords": "rest,api,maximum,requests,interval,bucket,restmaximumrequestsperinterval",
        "FieldName": "RESTMaximumRequestsPerInterval",
        "InputType": "number",
        "MinValue": "5",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.RESTMaximumRequestsPerInterval",
        "IncludeInCommandLine": false,
        "DefaultValue": "5",
        "Placeholder": "5",
        "EnumValues": {}
    },
    {
        "DisplayName": "REST API Request Bucket Decrease Interval",
        "Category": "TShock:stadia_controller",
        "Subcategory": "API:code:4",
        "Description": "Sets how often the REST API requests bucket is decreased by one",
        "Keywords": "rest,api,request,bucket,decrease,interval,restrequestbucketdecreaseintervalminutes",
        "FieldName": "RESTRequestBucketDecreaseIntervalMinutes",
        "InputType": "number",
        "MinValue": "1",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.RESTRequestBucketDecreaseIntervalMinutes",
        "IncludeInCommandLine": false,
        "DefaultValue": "1",
        "Placeholder": "1",
        "Suffix": "minutes",
        "EnumValues": {}
    },
    {
        "DisplayName": "Database Storage Type",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Database:database:5",
        "Description": "Sets the type of database to use when storing data",
        "Keywords": "database,storagetype,sqlite,mysql",
        "FieldName": "StorageType",
        "InputType": "enum",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.StorageType",
        "IncludeInCommandLine": false,
        "DefaultValue": "sqlite",
        "EnumValues": {
            "sqlite": "SQLite (default)",
            "mysql": "MySQL"
        }
    },
    {
        "DisplayName": "SQLite Database Path",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Database:database:5",
        "Description": "Sets the path of the SQLite database, when using the SQLite database type",
        "Keywords": "database,path,sqlite,sqlitedbpath",
        "FieldName": "SqliteDBPath",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.SqliteDBPath",
        "IncludeInCommandLine": false,
        "DefaultValue": "tshock.sqlite",
        "EnumValues": {}
    },
    {
        "DisplayName": "MySQL Hostname And Port",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Database:database:5",
        "Description": "Sets the MySQL hostname and port to direct connections to, when using the MySQL database type",
        "Keywords": "database,mysql,hostname,mysqlhost",
        "FieldName": "MySqlHost",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.MySqlHost",
        "IncludeInCommandLine": false,
        "DefaultValue": "localhost:3306",
        "EnumValues": {}
    },
    {
        "DisplayName": "MySQL Database Name",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Database:database:5",
        "Description": "Sets the database name to connect to when using the MySQL database type",
        "Keywords": "database,mysql,name,mysqldbname",
        "FieldName": "MySqlDbName",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.MySqlDbName",
        "IncludeInCommandLine": false,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "MySQL Username",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Database:database:5",
        "Description": "Sets the username to use when connecting to a MySQL database",
        "Keywords": "database,mysql,username,mysqlusername",
        "FieldName": "MySqlUsername",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.MySqlUsername",
        "IncludeInCommandLine": false,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "MySQL Password",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Database:database:5",
        "Description": "Sets the password to use when connecting to a MySQL database",
        "Keywords": "database,mysql,password,mysqlpassword",
        "FieldName": "MySqlPassword",
        "InputType": "Password",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.MySqlPassword",
        "IncludeInCommandLine": false,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Use SQL Log",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Database:database:5",
        "Description": "If enabled, logs will be saved to the SQL database instead of a text file",
        "Keywords": "sqlite,mysql,usesqllog",
        "FieldName": "UseSqlLog",
        "InputType": "checkbox",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.UseSqlLog",
        "IncludeInCommandLine": false,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Failures Before Text Log Reversion",
        "Category": "TShock:stadia_controller",
        "Subcategory": "Database:database:5",
        "Description": "Sets the number of times the SQL log must fail to insert logs before falling back to the text log",
        "Keywords": "sqlite,mysql,log,failure,revert,reverttotextlogsonsqlfailures",
        "FieldName": "RevertToTextLogsOnSqlFailures",
        "InputType": "number",
        "IsFlagArgument": false,
        "ParamFieldName": "$.Settings.RevertToTextLogsOnSqlFailures",
        "IncludeInCommandLine": false,
        "DefaultValue": "10",
        "Placeholder": "10",
        "EnumValues": {}
    },
    {
        "DisplayName": "Dotnet Version",
        "Category": "Updates",
        "Subcategory": "Runtime Configuration:build:3",
        "Description": "Sets the [ASP.NET Core Runtime 9.0 version](https://dotnet.microsoft.com/en-us/download/dotnet/9.0) to install for TShock. Empty = latest. NOTE: Update the server after switching versions!",
        "Keywords": "dotnet,version",
        "FieldName": "DotnetVersion",
        "InputType": "text",
        "IsFlagArgument": false,
        "ParamFieldName": "DotnetVersion",
        "IncludeInCommandLine": false,
        "DefaultValue": "",
        "Placeholder": "9.0.13",
        "EnumValues": {}
    }
]