[
    {
        "DisplayName": "GSP Server Session Token",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "",
        "Keywords": "",
        "FieldName": "session-token",
        "InputType": "text",
        "Hidden": true,
        "ParamFieldName": "session-token",
        "ExcludeFromImport": true,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "GSP Server Identity Token",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "",
        "Keywords": "",
        "FieldName": "identity-token",
        "InputType": "text",
        "Hidden": true,
        "ParamFieldName": "identity-token",
        "ExcludeFromImport": true,
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Server Jar",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the jar to start the server with. Default is 'HytaleServer.jar', the official server jar. Custom jars must be placed in the 'Server' directory, or an absolute path or path relative to the 'Server' directory must be specified",
        "Keywords": "server,jar,startup,StartupJar",
        "FieldName": "StartupJar",
        "InputType": "text",
        "ParamFieldName": "StartupJar",
        "DefaultValue": "HytaleServer.jar",
        "Placeholder": "HytaleServer.jar",
        "Required": true,
        "EnumValues": {}
    },
    {
        "DisplayName": "Server Name",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the server name shown to players",
        "Keywords": "server,name,servername,display",
        "FieldName": "ServerName",
        "InputType": "text",
        "ParamFieldName": "$.ServerName",
        "DefaultValue": "AMP Powered Hytale Server",
        "Placeholder": "AMP Powered Hytale Server",
        "EnumValues": {}
    },
    {
        "DisplayName": "Server MOTD",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the message of the day (MOTD) shown to players on join",
        "Keywords": "motd,message,day,welcome",
        "FieldName": "MOTD",
        "InputType": "text",
        "ParamFieldName": "$.MOTD",
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Server Password",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the password required to join the server. Default is no password",
        "Keywords": "server,password",
        "FieldName": "Password",
        "InputType": "Password",
        "ParamFieldName": "$.Password",
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Player Limit",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the maximum number of players that can connect to the server at one time",
        "Keywords": "players,maxplayers,concurrent,max,maximum,limit",
        "FieldName": "$MaxUsers",
        "InputType": "number",
        "MinValue": "1",
        "ParamFieldName": "$.MaxPlayers",
        "DefaultValue": "100",
        "Placeholder": "100",
        "Suffix": "players",
        "EnumValues": {}
    },
    {
        "DisplayName": "World Name",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the name of the world to load, or to create if it does not exist. Worlds are stored in 'universe/worlds'",
        "Keywords": "world,name,spawn",
        "FieldName": "Defaults.World",
        "InputType": "text",
        "ParamFieldName": "$.Defaults.World",
        "DefaultValue": "default",
        "Placeholder": "default",
        "EnumValues": {}
    },
    {
        "DisplayName": "Game Mode",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the default game mode for new players",
        "Keywords": "gamemode,default,mode,adventure,creative",
        "FieldName": "Defaults.GameMode",
        "InputType": "enum",
        "ParamFieldName": "$.Defaults.GameMode",
        "DefaultValue": "Adventure",
        "EnumValues": {
            "Adventure": "Adventure (default)",
            "Creative": "Creative"
        }
    },
    {
        "DisplayName": "Maximum View Radius",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets how far players can see. Recommended to limit to 12 for both performance and gameplay. Higher values will significantly increase RAM usage",
        "Keywords": "view,render,radius,chunks,MaxViewRadius",
        "FieldName": "MaxViewRadius",
        "InputType": "number",
        "MinValue": "1",
        "ParamFieldName": "$.MaxViewRadius",
        "DefaultValue": "12",
        "Placeholder": "12",
        "Suffix": "chunks",
        "EnumValues": {}
    },
    {
        "DisplayName": "Accept Early Plugins",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, the server will accept early plugins. Note that loading early plugins is unsupported and may cause stability issues",
        "Keywords": "plugins,early,accept-early-plugins",
        "FieldName": "accept-early-plugins",
        "InputType": "checkbox",
        "ParamFieldName": "accept-early-plugins",
        "DefaultValue": "",
        "EnumValues": {
            "False": "",
            "True": "--accept-early-plugins "
        }
    },
    {
        "DisplayName": "Allow Op Command",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, any player will be allowed to use the '/op' command to make themselves or another player an operator on the server",
        "Keywords": "op,allow-op,operator",
        "FieldName": "allow-op",
        "InputType": "checkbox",
        "ParamFieldName": "allow-op",
        "DefaultValue": "",
        "EnumValues": {
            "False": "",
            "True": "--allow-op "
        }
    },
    {
        "DisplayName": "Authentication Mode",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the server's authentication mode. 'Offline' mode allows players to connect without authentication",
        "Keywords": "auth,authentication,authenticated,offline,auth-mode",
        "FieldName": "auth-mode",
        "InputType": "enum",
        "ParamFieldName": "auth-mode",
        "IncludeInCommandLine": true,
        "DefaultValue": "authenticated",
        "EnumValues": {
            "authenticated": "Authenticated (default)",
            "offline": "Offline",
            "insecure": "Insecure"
        }
    },
    {
        "DisplayName": "Enable Automatic Backups",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, the server's automatic backups system will be enabled. Backups will be stored in the directory set under Automatic Backup Directory. This is separate from AMP's own backup system, which uses the 'Backups' directory by default",
        "Keywords": "backup,automatic,enable",
        "FieldName": "backup",
        "InputType": "checkbox",
        "ParamFieldName": "backup",
        "DefaultValue": "",
        "EnumValues": {
            "False": "",
            "True": "--backup "
        }
    },
    {
        "DisplayName": "Automatic Backup Directory",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the directory where the server's automatic backups will be stored. Specify either an absolute path or a path relative to the Server directory",
        "Keywords": "backup,directory,automatic,backup-dir",
        "FieldName": "backup-dir",
        "InputType": "text",
        "ParamFieldName": "backup-dir",
        "DefaultValue": "./autobackups",
        "Placeholder": "./autobackups",
        "Required": true,
        "EnumValues": {}
    },
    {
        "DisplayName": "Automatic Backup Frequency",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the backup interval for the server's automatic backup system, if enabled",
        "Keywords": "backup,frequency,backup-frequency",
        "FieldName": "backup-frequency",
        "InputType": "number",
        "MinValue": "1",
        "ParamFieldName": "backup-frequency",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "30",
        "Placeholder": "30",
        "Suffix": "minutes",
        "EnumValues": {}
    },
    {
        "DisplayName": "Maximum Automatic Backup Count",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Sets the maximum number of backups to keep when automatic backups are enabled. Older backups will be deleted when this limit is reached",
        "Keywords": "backup,maximum,count,backup-max-count",
        "FieldName": "backup-max-count",
        "InputType": "number",
        "ParamFieldName": "backup-max-count",
        "IncludeInCommandLine": true,
        "SkipIfEmpty": true,
        "DefaultValue": "5",
        "Placeholder": "5",
        "Suffix": "backups",
        "EnumValues": {}
    },
    {
        "DisplayName": "Enable Local Compression",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, local network compression will be enabled",
        "Keywords": "compression,network,local,LocalCompressionEnabled",
        "FieldName": "LocalCompressionEnabled",
        "InputType": "checkbox",
        "ParamFieldName": "$.LocalCompressionEnabled",
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Disable Sentry Crash Reporting",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "If set, the server's Sentry crash reporting will be disabled. This should be set during plugin development to avoid excessive crash reporting",
        "Keywords": "sentry,crash,reporting,disable-sentry",
        "FieldName": "disable-sentry",
        "InputType": "checkbox",
        "ParamFieldName": "disable-sentry",
        "DefaultValue": "",
        "EnumValues": {
            "False": "",
            "True": "--disable-sentry "
        }
    },
    {
        "DisplayName": "Custom Command Line Arguments",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Server:dns:1",
        "Description": "Specifies any command line arguments to pass to the server (NOT arguments to run Java wth). Arguments must be preceded with --",
        "Keywords": "command,line,arguments,jar,CustomArgs",
        "FieldName": "CustomArgs",
        "InputType": "text",
        "ParamFieldName": "CustomArgs",
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Java Version",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Java and Memory:code:2",
        "Description": "Sets the Java version to run the server with. Minimum Java 25 required. The version must be accessible to AMP. For \"Specific system version\", also set Specific System Java Version. For \"Specific instance version\", also set Specific Instance Java Version. Ensure the version is compatible with the server",
        "Keywords": "java,version,JavaVersion",
        "FieldName": "JavaVersion",
        "InputType": "enum",
        "ParamFieldName": "JavaVersion",
        "DefaultValue": "{{Windows:java\\bin\\java.exe}}{{Linux:java/bin/java}}",
        "EnumValues": {
            "{{Windows:$PATH\\java.exe}}{{Linux:/usr/bin/java}}": "System default",
            "{{SpecificJavaVersion}}": "Specific system version",
            "{{Windows:java\\bin\\java.exe}}{{Linux:java/bin/java}}": "Specific instance version"
        }
    },
    {
        "DisplayName": "Specific System Java Version",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Java and Memory:code:2",
        "Description": "Sets the full path to the Java executable on the system, if \"Specific system version\" is selected under Java Version",
        "Keywords": "java,version,system,SpecificJavaVersion",
        "FieldName": "SpecificJavaVersion",
        "InputType": "text",
        "ParamFieldName": "SpecificJavaVersion",
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Specific Instance Java Version",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Java and Memory:code:2",
        "Description": "Sets the Eclipse Temurin Java version to install in the instance to run the server with, if \"Specific instance version\" is selected under Java Version. Useful for using a Java version that is not installed on the system or in AMP's Docker image (if using AMP's Docker). Update the server after changing this setting",
        "Keywords": "java,version,instance,SpecificInstanceJavaVersion",
        "FieldName": "SpecificInstanceJavaVersion",
        "InputType": "enum",
        "ParamFieldName": "SpecificInstanceJavaVersion",
        "IncludeInCommandLine": false,
        "DefaultValue": "25",
        "EnumValues": {
            "25": "25 - LTS (default)"
        }
    },
    {
        "DisplayName": "Maximum Memory",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Java and Memory:code:2",
        "Description": "Sets Java's maximum heap size",
        "Keywords": "maximum,memory,heap",
        "FieldName": "MaxMemory",
        "InputType": "number",
        "ParamFieldName": "MaxMemory",
        "IncludeInCommandLine": false,
        "DefaultValue": "4096",
        "Placeholder": "4096",
        "Suffix": "MB",
        "EnumValues": {}
    },
    {
        "DisplayName": "Minimum Memory",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Java and Memory:code:2",
        "Description": "Sets Java's minimum heap size",
        "Keywords": "minimum,memory,heap",
        "FieldName": "MinMemory",
        "InputType": "number",
        "ParamFieldName": "MinMemory",
        "IncludeInCommandLine": false,
        "DefaultValue": "512",
        "Placeholder": "512",
        "Suffix": "MB",
        "EnumValues": {}
    },
    {
        "DisplayName": "Enable AOT Cache",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Java and Memory:code:2",
        "Description": "If set, enables the pre-trained AOT cache (HytaleServer.aot) that improves boot times by skipping JIT warmup. See [JEP-514](https://openjdk.org/jeps/514)",
        "Keywords": "aot,cache,boot,time,jit,warmup",
        "FieldName": "EnableAOTCache",
        "InputType": "checkbox",
        "ParamFieldName": "EnableAOTCache",
        "DefaultValue": "",
        "EnumValues": {
            "False": "",
            "True": "-XX:AOTCache=HytaleServer.aot "
        }
    },
    {
        "DisplayName": "Additional Java Arguments",
        "Category": "Hytale:stadia_controller",
        "Subcategory": "Java and Memory:code:2",
        "Description": "Specifies any [command line arguments](https://www.baeldung.com/jvm-parameters) to run Java with that are not otherwise set by AMP (NOT options passed to the server jar)",
        "Keywords": "command,line,arguments,args,java,JavaArgs",
        "FieldName": "JavaArgs",
        "InputType": "text",
        "ParamFieldName": "JavaArgs",
        "DefaultValue": "",
        "EnumValues": {}
    },
    {
        "DisplayName": "Server Build Channel",
        "Category": "Updates",
        "Subcategory": "Server Updates:build:-1",
        "Description": "Sets the build channel from which to download the server. Update the server after changing this setting",
        "Keywords": "server,version,build,channel,patchline,release,pre-release",
        "FieldName": "ServerBuildChannel",
        "InputType": "enum",
        "ParamFieldName": "ServerBuildChannel",
        "DefaultValue": "release",
        "EnumValues": {
            "release": "Release channel (default)",
            "pre-release": "Pre-release channel"
        }
    },
    {
        "DisplayName": "Disable Server Download",
        "Category": "Updates",
        "Subcategory": "Server Updates:build:-1",
        "Description": "If set, the server files will not be automatically downloaded when the server is updated. The server files (Assets.zip and the Server directory) must be manually transferred from the Hytale launcher files to the 'hytale' directory in the instance datastore (the base directory in the instance's File Manager or SFTP)",
        "Keywords": "disable,server,download,manual,disable-server-download",
        "FieldName": "disable-server-download",
        "InputType": "checkbox",
        "ParamFieldName": "disable-server-download",
        "ExcludeFromImport": true,
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    },
    {
        "DisplayName": "Install Performance Saver Plugin",
        "Category": "Updates",
        "Subcategory": "Server Updates:build:-1",
        "Description": "If set, the [Nitrado Performance Saver plugin](https://github.com/nitrado/hytale-plugin-performance-saver) will be installed when the server is updated. Configure the plugin in 'mods/Nitrado_PerformanceSaver/config.json' after installation",
        "Keywords": "install,performance,saver,plugin,performance-saver-install",
        "FieldName": "performance-saver-install",
        "InputType": "checkbox",
        "ParamFieldName": "performance-saver-install",
        "DefaultValue": "false",
        "EnumValues": {
            "False": "false",
            "True": "true"
        }
    }
]