diff --git a/pumpkin.kvp b/pumpkin.kvp new file mode 100644 index 000000000..1de0e8c6f --- /dev/null +++ b/pumpkin.kvp @@ -0,0 +1,112 @@ +Meta.DisplayName=Pumpkin +Meta.Description=The world's fastest Minecraft server. Pumpkin is in early development. Built with Rust for maximum performance. +Meta.OS=Windows, Linux +Meta.AarchSupport=Native +Meta.Arch=All +Meta.Author=clovertortoise +Meta.URL=https://pumpkinmc.org/ +Meta.DisplayImageSource=url:https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/pumpkinmc.png +Meta.EndpointURIFormat={ip}:{GenericModule.App.Ports.$JavaPort} +Meta.ConfigManifest=pumpkinconfig.json +Meta.MetaConfigManifest=pumpkinmetaconfig.json +Meta.ConfigRoot=pumpkin.kvp +Meta.MinAMPVersion=2.6.5.2 +Meta.SpecificDockerImage=cubecoders/ampbase:debian +Meta.DockerRequired=False +Meta.DockerBaseReadOnly=False +Meta.ContainerPolicy=Supported +Meta.ContainerPolicyReason= +Meta.ExtraSetupStepsURI= +Meta.Prerequisites=[] +Meta.ExtraContainerPackages=[] +Meta.ConfigReleaseState=PreRelease +Meta.NoCommercialUsage=False +Meta.ConfigVersion=1 +Meta.ReleaseNotes=Initial Release +Meta.BreakingReleaseNotes= +Meta.AppConfigId=c7ab5772-934a-4f9b-a822-1776f4817815 +Meta.ImportableExtensions=[] +App.DisplayName=Pumpkin +App.RootDir=./pumpkin/ +App.BaseDirectory=./pumpkin/ +App.SteamWorkshopDownloadLocation= +App.ExecutableWin=Pumpkin.exe +App.ExecutableLinux=pumpkin +App.WorkingDir= +App.LinuxCommandLineArgs= +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} {{$FormattedArgs}} +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={} +App.CommandLineParameterFormat= +App.CommandLineParameterDelimiter= +App.ExitMethod=String +App.ExitTimeout=30 +App.ExitString=stop +App.ExitFile= +App.HasWriteableConsole=True +App.HasReadableConsole=True +App.UDPLogger=False +App.SupportsLiveSettingsChanges=False +App.LiveSettingChangeCommandFormat= +App.ForceIPBinding=False +App.SupportsIPv6=False +App.ApplicationIPBinding=0.0.0.0 +App.Ports=@IncludeJson[pumpkinports.json] +App.AdminPortRef=RCONPort +App.PrimaryApplicationPortRef=JavaPort +App.UniversalSleepApplicationUDPPortRef=BedrockPort +App.UniversalSleepSteamQueryPortRef=JavaPort +App.MaxUsers=1000 +App.UseRandomAdminPassword=False +App.PersistRandomPassword=False +App.RemoteAdminPassword= +App.AdminMethod=STDIO +App.IgnoreSTDOUTAfterRCON=False +App.AdminLoginTransform=None +App.LoginTransformPrefix= +App.RCONConnectDelaySeconds=5 +App.RCONConnectRetrySeconds=5 +App.RCONHeartbeatMinutes=0 +App.RCONHeartbeatCommand=ping +App.RCONSelectIPMethod=Default +App.TelnetLoginFormat={0} +App.TelnetNewLineType=Default +App.UpdateSources=@IncludeJson[pumpkinupdates.json] +App.PreStartStages= +App.UserActions=[] +App.ForceUpdate=False +App.ForceUpdateReason= +App.Compatibility=None +App.SteamUpdateAnonymousLogin=False +App.SteamForceLoginPrompt=False +App.RapidStartup=True +App.SmartExcludeExemptions=["*.cfg","*.conf","*.config","*.ini","*.json","*.xml","*.properties","*.kvp","*.yml","*.yaml","*.toml","*.lua"] +App.SmartExcludeSupported=True +App.DumpFullChildProcessTree=False +App.MonitorChildProcessName= +App.MonitorDirectChildOnly=False +App.SupportsUniversalSleep=False +App.WakeupMode=Any +App.ApplicationReadyMode=RegexMatch +Console.FilterMatchRegex=^\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2}\s+(INFO|WARN|ERROR|DEBUG)\s+.*?ThreadId\(\d+\)\s+ +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex= +Console.AppReadyRegex=^.*?Server is now running\..*$ +Console.UserJoinRegex=^.*?\s+(?[a-zA-Z0-9_]+) joined the game$ +Console.UserLeaveRegex=^.*?\s+(?[a-zA-Z0-9_]+) left the game$ +Console.UserChatRegex=^.*?\s+(?[a-zA-Z0-9_]+):\s+(?.+)$ +Console.UpdateAvailableRegex= +Console.PreConnectRegex= +Console.ConnectIPRegex= +Console.MetricsRegex= +Console.HideFromConsoleRegex= +Console.SuppressLogAtStart=False +Console.UserActions={} +Limits.SleepMode=False +Limits.SleepOnStart=False +Limits.SleepDelayMinutes=5 +Limits.DozeDelay=2 +Limits.AutoRetryCount=2 +Limits.SleepStartThresholdSeconds=25 diff --git a/pumpkinConfig.toml b/pumpkinConfig.toml new file mode 100644 index 000000000..4fbd2eb13 --- /dev/null +++ b/pumpkinConfig.toml @@ -0,0 +1,26 @@ +java_edition = true +java_edition_address = "0.0.0.0:25565" +bedrock_edition = true +bedrock_edition_address = "0.0.0.0:19132" +seed = "" +max_players = 1000 +view_distance = 16 +simulation_distance = 10 +default_difficulty = "Normal" +op_permission_level = 4 +allow_nether = true +allow_end = true +hardcore = false +online_mode = true +encryption = true +motd = "A blazingly fast Pumpkin server!" +tps = 20.0 +default_gamemode = "Survival" +force_gamemode = false +scrub_ips = true +use_favicon = true +favicon_path = "icon.png" +default_level_name = "world" +allow_chat_reports = false +white_list = false +enforce_whitelist = false diff --git a/pumpkinFeatures.toml b/pumpkinFeatures.toml new file mode 100644 index 000000000..150481698 --- /dev/null +++ b/pumpkinFeatures.toml @@ -0,0 +1,122 @@ +[logging] +enabled = true +level = "Info" +threads = true +color = true +timestamp = true +file = "latest.log" + +[resource_pack] +enabled = false +url = "" +sha1 = "" +prompt_message = "" +force = false + +[world] +lighting = "default" +autosave_ticks = 0 + +[world.chunk] +type = "anvil" +linear_version = "V1" +write_in_place = false + +[world.chunk.compression] +algorithm = "LZ4" +level = 6 + +[networking.authentication] +enabled = true +connect_timeout = 5000 +read_timeout = 5000 +prevent_proxy_connections = false +auth_url = "" +prevent_proxy_connection_auth_url = "" + +[networking.authentication.player_profile] +allow_banned_players = false +allowed_actions = ['FORCED_NAME_CHANGE', 'USING_BANNED_SKIN'] + +[networking.authentication.textures] +enabled = true +allowed_url_schemes = ['http', 'https'] +allowed_url_domains = ['.minecraft.net', '.mojang.com'] + +[networking.authentication.textures.types] +skin = true +cape = true +elytra = true + +[networking.query] +enabled = false +address = "0.0.0.0:25565" + +[networking.rcon] +enabled = false +address = "0.0.0.0:25575" +password = "" +max_connections = 0 + +[networking.rcon.logging] +logged_successfully = true +wrong_password = true +commands = true +quit = true + +[networking.proxy] +enabled = false + +[networking.proxy.velocity] +enabled = false +secret = "" + +[networking.proxy.bungeecord] +enabled = false + +[networking.packet_compression] +enabled = true +threshold = 256 +level = 4 + +[networking.lan_broadcast] +enabled = false +port = 0 + +[commands] +use_console = true +use_tty = false +log_console = true +default_op_level = 0 + +[chat] +format = "<{DISPLAYNAME}> {MESSAGE}" + +[pvp] +enabled = true +hurt_animation = true +protect_creative = true +knockback = true +swing = true + +[server_links] +enabled = true +bug_report = "https://github.com/Pumpkin-MC/Pumpkin/issues" +support = "" +status = "" +feedback = "" +community = "" +website = "" +forums = "" +news = "" +announcements = "" + +[server_links.custom] +Discord = "https://discord.gg/pumpkin" + +[player_data] +save_player_data = true +save_player_cron_interval = 300 + +[fun] +april_fools = false diff --git a/pumpkinconfig.json b/pumpkinconfig.json new file mode 100644 index 000000000..d3f0c1fda --- /dev/null +++ b/pumpkinconfig.json @@ -0,0 +1,1547 @@ +[ + { + "DisplayName": "Message of the Day", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server and Startup:dns:1", + "Description": "Sets the message of the day that is shown in the in-game server list.", + "Keywords": "motd,description,server-name", + "FieldName": "motd", + "ParamFieldName": "motd", + "InputType": "text", + "DefaultValue": "A blazingly fast Pumpkin server!", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Level Name", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server and Startup:dns:1", + "Description": "Sets the name of the level (world) to load, or create if it does not exist.", + "Keywords": "level,world,name,level-name", + "FieldName": "default_level_name", + "ParamFieldName": "default_level_name", + "InputType": "text", + "DefaultValue": "world", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Level Seed", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server and Startup:dns:1", + "Description": "Sets the seed to randomise the generation of a new world. Empty = random seed.", + "Keywords": "level,seed,level-seed", + "FieldName": "seed", + "ParamFieldName": "seed", + "InputType": "text", + "DefaultValue": "", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Player Limit", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server and Startup:dns:1", + "Description": "Sets the maximum number of players allowed on the server at one time.", + "Keywords": "max,players,limit,max-players", + "FieldName": "max_players", + "ParamFieldName": "max_players", + "InputType": "number", + "DefaultValue": "1000", + "Placeholder": "1000", + "EnumValues": {}, + "Suffix": "players", + "MinValue": "0", + "MaxValue": "100000", + "IncludeInCommandLine": false + }, + { + "DisplayName": "Enable Java Edition", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server and Startup:dns:1", + "Description": "Whether support for Java Edition clients is enabled.", + "Keywords": "java,enable", + "FieldName": "java_edition", + "ParamFieldName": "java_edition", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Enable Bedrock Edition", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server and Startup:dns:1", + "Description": "Whether support for Bedrock Edition clients is enabled.", + "Keywords": "bedrock,enable", + "FieldName": "bedrock_edition", + "ParamFieldName": "bedrock_edition", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Use Favicon", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server and Startup:dns:1", + "Description": "Whether to use a server favicon or not.", + "Keywords": "favicon,icon", + "FieldName": "use_favicon", + "ParamFieldName": "use_favicon", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Favicon Path", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server and Startup:dns:1", + "Description": "The path to the server's favicon.", + "Keywords": "favicon,path", + "FieldName": "favicon_path", + "ParamFieldName": "favicon_path", + "InputType": "text", + "DefaultValue": "icon.png", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Default Game Mode", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Gameplay and Difficulty:videogame_asset:2", + "Description": "Sets the game mode for new players.", + "Keywords": "game,mode,gamemode", + "FieldName": "default_gamemode", + "ParamFieldName": "default_gamemode", + "InputType": "enum", + "DefaultValue": "Survival", + "EnumValues": { + "Survival": "Survival (default)", + "Creative": "Creative", + "Adventure": "Adventure", + "Spectator": "Spectator" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Force Game Mode", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Gameplay and Difficulty:videogame_asset:2", + "Description": "If set, the server will send game mode values to clients other than the one saved during world creation.", + "Keywords": "force,gamemode,force-gamemode", + "FieldName": "force_gamemode", + "ParamFieldName": "force_gamemode", + "InputType": "checkbox", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Difficulty Level", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Gameplay and Difficulty:videogame_asset:2", + "Description": "Sets the difficulty level of the world.", + "Keywords": "difficulty,level", + "FieldName": "default_difficulty", + "ParamFieldName": "default_difficulty", + "InputType": "enum", + "DefaultValue": "Normal", + "EnumValues": { + "Peaceful": "Peaceful", + "Easy": "Easy", + "Normal": "Normal (default)", + "Hard": "Hard" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Hardcore", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Gameplay and Difficulty:videogame_asset:2", + "Description": "Whether the server is in hardcore mode.", + "Keywords": "hardcore,death", + "FieldName": "hardcore", + "ParamFieldName": "hardcore", + "InputType": "checkbox", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Default Player Permission Level", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Gameplay and Difficulty:videogame_asset:2", + "Description": "Sets the permission level for new players joining the server for the first time.", + "Keywords": "default,player,permission,level", + "FieldName": "default_op_level", + "ParamFieldName": "commands.default_op_level", + "InputType": "enum", + "DefaultValue": "0", + "EnumValues": { + "0": "0 (default)", + "1": "1", + "2": "2", + "3": "3", + "4": "4" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "OP Permission Level", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Gameplay and Difficulty:videogame_asset:2", + "Description": "The permission level assigned by the /op command.", + "Keywords": "op,permission,level", + "FieldName": "op_permission_level", + "ParamFieldName": "op_permission_level", + "InputType": "enum", + "DefaultValue": "4", + "EnumValues": { + "0": "0", + "1": "1", + "2": "2", + "3": "3", + "4": "4" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "PVP Enabled", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Gameplay and Difficulty:videogame_asset:2", + "Description": "Whether PVP is enabled or not.", + "Keywords": "pvp,combat", + "FieldName": "pvp_enabled", + "ParamFieldName": "pvp.enabled", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Protect Creative", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Gameplay and Difficulty:videogame_asset:2", + "Description": "Whether to protect players in creative against PVP.", + "Keywords": "pvp,creative,protection", + "FieldName": "pvp_protect_creative", + "ParamFieldName": "pvp.protect_creative", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "PVP Knockback", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Gameplay and Difficulty:videogame_asset:2", + "Description": "Whether attacks should have knockback or not.", + "Keywords": "pvp,knockback", + "FieldName": "pvp_knockback", + "ParamFieldName": "pvp.knockback", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "PVP Swing", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Gameplay and Difficulty:videogame_asset:2", + "Description": "Whether players should swing when attacking or not.", + "Keywords": "pvp,swing", + "FieldName": "pvp_swing", + "ParamFieldName": "pvp.swing", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "PVP Hurt Animation", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Gameplay and Difficulty:videogame_asset:2", + "Description": "Whether to show red hurt animation and FOV bobbing.", + "Keywords": "pvp,animation", + "FieldName": "pvp_hurt_animation", + "ParamFieldName": "pvp.hurt_animation", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Allow Commands from Console", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Gameplay and Difficulty:videogame_asset:2", + "Description": "Whether commands from the console are accepted or not.", + "Keywords": "console,commands", + "FieldName": "use_console", + "ParamFieldName": "commands.use_console", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Chat Format", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Gameplay and Difficulty:videogame_asset:2", + "Description": "Format for chat messages.", + "Keywords": "chat,format", + "FieldName": "chat_format", + "ParamFieldName": "chat.format", + "InputType": "text", + "DefaultValue": "<{DISPLAYNAME}> {MESSAGE}", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Allow Chat Reports", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Gameplay and Difficulty:videogame_asset:2", + "Description": "Allow players to report chat messages.", + "Keywords": "chat,report", + "FieldName": "allow_chat_reports", + "ParamFieldName": "allow_chat_reports", + "InputType": "checkbox", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "April Fools Mode", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Gameplay and Difficulty:videogame_asset:2", + "Description": "Enable April Fools features.", + "Keywords": "fun,april,fools", + "FieldName": "april_fools", + "ParamFieldName": "fun.april_fools", + "InputType": "checkbox", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "View Distance", + "Category": "Minecraft:stadia_controller", + "Subcategory": "World Generation:language:3", + "Description": "Sets the maximum allowed view distance. Higher values have performance impact.", + "Keywords": "view,distance,view-distance", + "FieldName": "view_distance", + "ParamFieldName": "view_distance", + "InputType": "number", + "DefaultValue": "16", + "Placeholder": "16", + "EnumValues": {}, + "Suffix": "chunks", + "MinValue": "2", + "MaxValue": "32", + "IncludeInCommandLine": false + }, + { + "DisplayName": "Simulation Distance", + "Category": "Minecraft:stadia_controller", + "Subcategory": "World Generation:language:3", + "Description": "Sets the distance from any player that the world will be ticked. Higher values have performance impact.", + "Keywords": "simulation,distance,tick-distance", + "FieldName": "simulation_distance", + "ParamFieldName": "simulation_distance", + "InputType": "number", + "DefaultValue": "10", + "Placeholder": "10", + "EnumValues": {}, + "Suffix": "chunks", + "MinValue": "2", + "MaxValue": "32", + "IncludeInCommandLine": false + }, + { + "DisplayName": "Allow Nether", + "Category": "Minecraft:stadia_controller", + "Subcategory": "World Generation:language:3", + "Description": "Whether the Nether dimension is enabled.", + "Keywords": "nether,hell", + "FieldName": "allow_nether", + "ParamFieldName": "allow_nether", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Allow The End", + "Category": "Minecraft:stadia_controller", + "Subcategory": "World Generation:language:3", + "Description": "Whether the End dimension is enabled.", + "Keywords": "end,dimension", + "FieldName": "allow_end", + "ParamFieldName": "allow_end", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "World Lighting Engine", + "Category": "Minecraft:stadia_controller", + "Subcategory": "World Generation:language:3", + "Description": "The lighting engine to use.", + "Keywords": "world,lighting", + "FieldName": "world_lighting", + "ParamFieldName": "world.lighting", + "InputType": "enum", + "DefaultValue": "default", + "EnumValues": { + "default": "Default", + "full": "Full", + "dark": "Dark" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "World Chunk Type", + "Category": "Minecraft:stadia_controller", + "Subcategory": "World Generation:language:3", + "Description": "The chunk storage format.", + "Keywords": "world,chunk,type,anvil,linear", + "FieldName": "world_chunk_type", + "ParamFieldName": "world.chunk.type", + "InputType": "enum", + "DefaultValue": "anvil", + "EnumValues": { + "anvil": "Anvil", + "linear": "Linear" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Write Chunks in Place", + "Category": "Minecraft:stadia_controller", + "Subcategory": "World Generation:language:3", + "Description": "Whether to write chunk data directly to region files.", + "Keywords": "world,write,in,place", + "FieldName": "world_write_in_place", + "ParamFieldName": "world.chunk.write_in_place", + "InputType": "checkbox", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Target TPS", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Performance:speed:4", + "Description": "The server's target tick rate.", + "Keywords": "tps,tick,rate", + "FieldName": "tps", + "ParamFieldName": "tps", + "InputType": "number", + "DefaultValue": "20.0", + "Placeholder": "20.0", + "EnumValues": {}, + "Suffix": "tps", + "IncludeInCommandLine": false + }, + { + "DisplayName": "World Autosave Ticks", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Performance:speed:4", + "Description": "Interval in ticks to autosave the world (0 to disable).", + "Keywords": "world,autosave,ticks", + "FieldName": "world_autosave_ticks", + "ParamFieldName": "world.autosave_ticks", + "InputType": "number", + "DefaultValue": "0", + "Placeholder": "0", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "World Compression Algorithm", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Performance:speed:4", + "Description": "Compression algorithm for world chunks.", + "Keywords": "world,chunk,compression", + "FieldName": "world_chunk_compression_algorithm", + "ParamFieldName": "world.chunk.compression.algorithm", + "InputType": "enum", + "DefaultValue": "LZ4", + "EnumValues": { + "LZ4": "LZ4", + "GZip": "GZip", + "Zlib": "Zlib", + "Custom": "Custom" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "World Compression Level", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Performance:speed:4", + "Description": "Compression level for world chunks.", + "Keywords": "world,chunk,compression,level", + "FieldName": "world_chunk_compression_level", + "ParamFieldName": "world.chunk.compression.level", + "InputType": "number", + "DefaultValue": "6", + "Placeholder": "6", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Packet Compression", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Performance:speed:4", + "Description": "Whether packet compression is enabled.", + "Keywords": "compression,enable", + "FieldName": "compression_enabled", + "ParamFieldName": "networking.packet_compression.enabled", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Compression Threshold", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Performance:speed:4", + "Description": "Sets the smallest size of raw network payload to compress.", + "Keywords": "compression,threshold", + "FieldName": "compression_threshold", + "ParamFieldName": "networking.packet_compression.threshold", + "InputType": "number", + "DefaultValue": "256", + "Placeholder": "256", + "EnumValues": {}, + "Suffix": "bytes", + "MinValue": "0", + "MaxValue": "1024", + "IncludeInCommandLine": false + }, + { + "DisplayName": "Packet Compression Level", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Performance:speed:4", + "Description": "Compression level (0-9).", + "Keywords": "compression,level", + "FieldName": "compression_level", + "ParamFieldName": "networking.packet_compression.level", + "InputType": "number", + "DefaultValue": "4", + "Placeholder": "4", + "EnumValues": {}, + "MinValue": "0", + "MaxValue": "9", + "IncludeInCommandLine": false + }, + { + "DisplayName": "Save Player Data", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Performance:speed:4", + "Description": "Whether to save player data to disk.", + "Keywords": "save,player,data", + "FieldName": "save_player_data", + "ParamFieldName": "player_data.save_player_data", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Player Data Save Interval", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Performance:speed:4", + "Description": "Interval in seconds to save player data.", + "Keywords": "save,player,interval", + "FieldName": "save_player_cron_interval", + "ParamFieldName": "player_data.save_player_cron_interval", + "InputType": "number", + "DefaultValue": "300", + "Placeholder": "300", + "EnumValues": {}, + "Suffix": "seconds", + "IncludeInCommandLine": false + }, + { + "DisplayName": "Enable Proxy Support", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Network:settings_ethernet:5", + "Description": "Enables support for proxies.", + "Keywords": "proxy,enable", + "FieldName": "proxy_enabled", + "ParamFieldName": "networking.proxy.enabled", + "InputType": "checkbox", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Enable Velocity", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Network:settings_ethernet:5", + "Description": "Whether Velocity support is enabled or not.", + "Keywords": "velocity,proxy", + "FieldName": "velocity_enabled", + "ParamFieldName": "networking.proxy.velocity.enabled", + "InputType": "checkbox", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Velocity Secret", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Network:settings_ethernet:5", + "Description": "The secret as configured in Velocity.", + "Keywords": "velocity,secret", + "FieldName": "velocity_secret", + "ParamFieldName": "networking.proxy.velocity.secret", + "InputType": "password", + "DefaultValue": "", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Enable BungeeCord", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Network:settings_ethernet:5", + "Description": "Whether BungeeCord support is enabled or not.", + "Keywords": "bungeecord,proxy", + "FieldName": "bungeecord_enabled", + "ParamFieldName": "networking.proxy.bungeecord.enabled", + "InputType": "checkbox", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Enable Query", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Network:settings_ethernet:5", + "Description": "Whether to listen for Query protocol requests or not.", + "Keywords": "query,enable", + "FieldName": "query_enabled", + "ParamFieldName": "networking.query.enabled", + "InputType": "checkbox", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Enable RCON", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Network:settings_ethernet:5", + "Description": "Whether the Remote Console RCON protocol is enabled.", + "Keywords": "rcon,enable", + "FieldName": "rcon_enabled", + "ParamFieldName": "networking.rcon.enabled", + "InputType": "checkbox", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "RCON Password", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Network:settings_ethernet:5", + "Description": "The password to use for RCON authentication.", + "Keywords": "rcon,password", + "FieldName": "rcon_password", + "ParamFieldName": "networking.rcon.password", + "InputType": "password", + "DefaultValue": "", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "RCON Max Connections", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Network:settings_ethernet:5", + "Description": "The max number of RCON connections allowed.", + "Keywords": "rcon,connections", + "FieldName": "rcon_max_connections", + "ParamFieldName": "networking.rcon.max_connections", + "InputType": "number", + "DefaultValue": "0", + "Placeholder": "0", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "LAN Broadcast", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Network:settings_ethernet:5", + "Description": "Whether LAN broadcast is enabled or not.", + "Keywords": "lan,broadcast", + "FieldName": "lan_broadcast_enabled", + "ParamFieldName": "networking.lan_broadcast.enabled", + "InputType": "checkbox", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "LAN Broadcast Port", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Network:settings_ethernet:5", + "Description": "What port to bind to.", + "Keywords": "lan,broadcast,port", + "FieldName": "lan_broadcast_port", + "ParamFieldName": "networking.lan_broadcast.port", + "InputType": "text", + "DefaultValue": "0", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Enable Online Mode", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Security:security:6", + "Description": "If set, all connected players must be authenticated.", + "Keywords": "online,mode,online-mode,cracked,premium", + "FieldName": "online_mode", + "ParamFieldName": "online_mode", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Enable Allow List", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Security:security:6", + "Description": "If set, all connected players must be listed in the server whitelist.", + "Keywords": "allowlist,allow,list,whitelist", + "FieldName": "white_list", + "ParamFieldName": "white_list", + "InputType": "checkbox", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Enforce Allow List", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Security:security:6", + "Description": "Kick players not on the whitelist.", + "Keywords": "whitelist,enforce", + "FieldName": "enforce_whitelist", + "ParamFieldName": "enforce_whitelist", + "InputType": "checkbox", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Authentication", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Security:security:6", + "Description": "Whether authentication is enabled or not.", + "Keywords": "auth,enable", + "FieldName": "auth_enabled", + "ParamFieldName": "networking.authentication.enabled", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Encryption", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Security:security:6", + "Description": "Whether packet encryption is enabled.", + "Keywords": "encryption,security", + "FieldName": "encryption", + "ParamFieldName": "encryption", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Prevent Proxy Connections", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Security:security:6", + "Description": "Whether to block proxy connections.", + "Keywords": "proxy,prevent", + "FieldName": "prevent_proxy_connections", + "ParamFieldName": "networking.authentication.prevent_proxy_connections", + "InputType": "checkbox", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Auth Prevent Proxy URL", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Security:security:6", + "Description": "The URL to authenticate with if prevent_proxy_connections is enabled.", + "Keywords": "auth,url,proxy", + "FieldName": "auth_prevent_proxy_url", + "ParamFieldName": "networking.authentication.prevent_proxy_connection_auth_url", + "InputType": "url", + "DefaultValue": "", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Auth URL", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Security:security:6", + "Description": "The URL to authenticate with.", + "Keywords": "auth,url", + "FieldName": "auth_url", + "ParamFieldName": "networking.authentication.auth_url", + "InputType": "url", + "DefaultValue": "", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Auth Connect Timeout", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Security:security:6", + "Description": "Timeout for auth connection.", + "Keywords": "auth,timeout", + "FieldName": "auth_connect_timeout", + "ParamFieldName": "networking.authentication.connect_timeout", + "InputType": "number", + "DefaultValue": "5000", + "Placeholder": "5000", + "EnumValues": {}, + "Suffix": "ms", + "IncludeInCommandLine": false + }, + { + "DisplayName": "Auth Read Timeout", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Security:security:6", + "Description": "Timeout for auth reading.", + "Keywords": "auth,timeout", + "FieldName": "auth_read_timeout", + "ParamFieldName": "networking.authentication.read_timeout", + "InputType": "number", + "DefaultValue": "5000", + "Placeholder": "5000", + "EnumValues": {}, + "Suffix": "ms", + "IncludeInCommandLine": false + }, + { + "DisplayName": "Allow Banned Players", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Security:security:6", + "Description": "Allow players flagged by Mojang.", + "Keywords": "auth,banned", + "FieldName": "auth_allow_banned", + "ParamFieldName": "networking.authentication.player_profile.allow_banned_players", + "InputType": "checkbox", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Auth Allowed Actions", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Security:security:6", + "Description": "Actions allowed if allow_banned_players is enabled. Must follow the exact format: ['FORCED_NAME_CHANGE', 'USING_BANNED_SKIN']", + "Keywords": "auth,actions,banned", + "FieldName": "auth_allowed_actions", + "ParamFieldName": "networking.authentication.player_profile.allowed_actions", + "InputType": "text", + "DefaultValue": "['FORCED_NAME_CHANGE', 'USING_BANNED_SKIN']", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Enable Texture Filtering", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Security:security:6", + "Description": "Whether to filter/validate player textures.", + "Keywords": "texture,filtering", + "FieldName": "texture_filtering_enabled", + "ParamFieldName": "networking.authentication.textures.enabled", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Auth Allowed URL Schemes", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Security:security:6", + "Description": "Allowed URL schemes for textures. Must follow the exact format: ['http', 'https']", + "Keywords": "auth,url,schemes", + "FieldName": "auth_allowed_url_schemes", + "ParamFieldName": "networking.authentication.textures.allowed_url_schemes", + "InputType": "text", + "DefaultValue": "['http', 'https']", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Auth Allowed URL Domains", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Security:security:6", + "Description": "Allowed URL domains for textures. Must follow the exact format: ['.minecraft.net', '.mojang.com']", + "Keywords": "auth,url,domains", + "FieldName": "auth_allowed_url_domains", + "ParamFieldName": "networking.authentication.textures.allowed_url_domains", + "InputType": "text", + "DefaultValue": "['.minecraft.net', '.mojang.com']", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "IP Scrubbing", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Security:security:6", + "Description": "Whether to scrub players' IP addresses from logs.", + "Keywords": "security,ip,log,scrub", + "FieldName": "scrub_ips", + "ParamFieldName": "scrub_ips", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Require Texture Packs", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Resource Packs:texture:7", + "Description": "If set, clients must use resource packs in the current world.", + "Keywords": "resource,pack,enable", + "FieldName": "resource_pack_enabled", + "ParamFieldName": "resource_pack.enabled", + "InputType": "checkbox", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Resource Pack URL", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Resource Packs:texture:7", + "Description": "The direct download URL to the resource pack.", + "Keywords": "resource,pack,url", + "FieldName": "resource_pack_url", + "ParamFieldName": "resource_pack.url", + "InputType": "url", + "DefaultValue": "", + "Placeholder": "https://example.org/resourcepack.zip", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Resource Pack SHA1", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Resource Packs:texture:7", + "Description": "The SHA1 hash of the resource pack.", + "Keywords": "resource,pack,sha1", + "FieldName": "resource_pack_sha1", + "ParamFieldName": "resource_pack.sha1", + "InputType": "text", + "DefaultValue": "", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Resource Pack Prompt", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Resource Packs:texture:7", + "Description": "The message to show to the user when prompted.", + "Keywords": "resource,pack,prompt", + "FieldName": "resource_pack_prompt_message", + "ParamFieldName": "resource_pack.prompt_message", + "InputType": "text", + "DefaultValue": "", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Force Resource Pack", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Resource Packs:texture:7", + "Description": "Whether to force the client to download the resource pack.", + "Keywords": "resource,pack,force", + "FieldName": "resource_pack_force", + "ParamFieldName": "resource_pack.force", + "InputType": "checkbox", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Skin Textures", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Resource Packs:texture:7", + "Description": "Whether to use player skins or not.", + "Keywords": "texture,skin", + "FieldName": "texture_skin", + "ParamFieldName": "networking.authentication.textures.types.skin", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Cape Textures", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Resource Packs:texture:7", + "Description": "Whether to use player capes or not.", + "Keywords": "texture,cape", + "FieldName": "texture_cape", + "ParamFieldName": "networking.authentication.textures.types.cape", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Elytra Textures", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Resource Packs:texture:7", + "Description": "Whether to use player elytras or not.", + "Keywords": "texture,elytra", + "FieldName": "texture_elytra", + "ParamFieldName": "networking.authentication.textures.types.elytra", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Enable Logging", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Logging:receipt:8", + "Description": "Whether logging is enabled or not.", + "Keywords": "logging,enable", + "FieldName": "logging_enabled", + "ParamFieldName": "logging.enabled", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Logging Threads", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Logging:receipt:8", + "Description": "Whether to print threads in the logging message.", + "Keywords": "logging,threads", + "FieldName": "logging_threads", + "ParamFieldName": "logging.threads", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Logging Color", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Logging:receipt:8", + "Description": "Whether to print to the console with color.", + "Keywords": "logging,color", + "FieldName": "logging_color", + "ParamFieldName": "logging.color", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Logging Timestamp", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Logging:receipt:8", + "Description": "Whether to print the timestamp in the message.", + "Keywords": "logging,timestamp", + "FieldName": "logging_timestamp", + "ParamFieldName": "logging.timestamp", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Log File", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Logging:receipt:8", + "Description": "Name of the log file.", + "Keywords": "log,file", + "FieldName": "logging_file", + "ParamFieldName": "logging.file", + "InputType": "text", + "DefaultValue": "latest.log", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Logging Level", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Logging:receipt:8", + "Description": "The log verbosity level.", + "Keywords": "logging,level", + "FieldName": "logging_level", + "ParamFieldName": "logging.level", + "InputType": "enum", + "DefaultValue": "Info", + "EnumValues": { + "Off": "Off", + "Error": "Error", + "Warn": "Warn", + "Info": "Info", + "Debug": "Debug", + "Trace": "Trace" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Use Environment Log Level", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Logging:receipt:8", + "Description": "Whether to allow choosing the log level by setting the RUST_LOG environment variable.", + "Keywords": "logging,env", + "FieldName": "logging_env", + "ParamFieldName": "logging.env", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Use TTY", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Logging:receipt:8", + "Description": "Use TTY for console input.", + "Keywords": "tty,console", + "FieldName": "use_tty", + "ParamFieldName": "commands.use_tty", + "InputType": "checkbox", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Log Console Commands", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Logging:receipt:8", + "Description": "Whether commands from players should be logged in the console or not.", + "Keywords": "log,console,commands", + "FieldName": "log_console", + "ParamFieldName": "commands.log_console", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Log RCON Success", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Logging:receipt:8", + "Description": "Whether successful logins should be logged to console.", + "Keywords": "rcon,log,success", + "FieldName": "rcon_log_success", + "ParamFieldName": "networking.rcon.logging.logged_successfully", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Log RCON Wrong Password", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Logging:receipt:8", + "Description": "Whether wrong password attempts should be logged.", + "Keywords": "rcon,log,fail", + "FieldName": "rcon_log_wrong_pass", + "ParamFieldName": "networking.rcon.logging.wrong_password", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Log RCON Commands", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Logging:receipt:8", + "Description": "Whether to log commands ran from RCON.", + "Keywords": "rcon,log,commands", + "FieldName": "rcon_log_commands", + "ParamFieldName": "networking.rcon.logging.commands", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Log RCON Quit", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Logging:receipt:8", + "Description": "Whether RCON client quit should be logged.", + "Keywords": "rcon,log,quit", + "FieldName": "rcon_log_quit", + "ParamFieldName": "networking.rcon.logging.quit", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Server Links Enabled", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server Links:link:9", + "Description": "Enable custom server links.", + "Keywords": "link,enabled", + "FieldName": "server_links_enabled", + "ParamFieldName": "server_links.enabled", + "InputType": "checkbox", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + }, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Bug Report Link", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server Links:link:9", + "Description": "Link for bug reports.", + "Keywords": "link,bug,report", + "FieldName": "link_bug_report", + "ParamFieldName": "server_links.bug_report", + "InputType": "url", + "DefaultValue": "https://github.com/Pumpkin-MC/Pumpkin/issues", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Support Link", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server Links:link:9", + "Description": "Link for support.", + "Keywords": "link,support", + "FieldName": "link_support", + "ParamFieldName": "server_links.support", + "InputType": "url", + "DefaultValue": "", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Status Link", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server Links:link:9", + "Description": "Link for server status.", + "Keywords": "link,status", + "FieldName": "link_status", + "ParamFieldName": "server_links.status", + "InputType": "url", + "DefaultValue": "", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Feedback Link", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server Links:link:9", + "Description": "Link for feedback.", + "Keywords": "link,feedback", + "FieldName": "link_feedback", + "ParamFieldName": "server_links.feedback", + "InputType": "url", + "DefaultValue": "", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Community Link", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server Links:link:9", + "Description": "Link for community.", + "Keywords": "link,community", + "FieldName": "link_community", + "ParamFieldName": "server_links.community", + "InputType": "url", + "DefaultValue": "", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Website Link", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server Links:link:9", + "Description": "Link for website.", + "Keywords": "link,website", + "FieldName": "link_website", + "ParamFieldName": "server_links.website", + "InputType": "url", + "DefaultValue": "", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Forums Link", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server Links:link:9", + "Description": "Link for forums.", + "Keywords": "link,forums", + "FieldName": "link_forums", + "ParamFieldName": "server_links.forums", + "InputType": "url", + "DefaultValue": "", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "News Link", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server Links:link:9", + "Description": "Link for news.", + "Keywords": "link,news", + "FieldName": "link_news", + "ParamFieldName": "server_links.news", + "InputType": "url", + "DefaultValue": "", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Announcements Link", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server Links:link:9", + "Description": "Link for announcements.", + "Keywords": "link,announcements", + "FieldName": "link_announcements", + "ParamFieldName": "server_links.announcements", + "InputType": "url", + "DefaultValue": "", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Custom Link", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server Links:link:9", + "Description": "The URL for the custom link.", + "Keywords": "custom,link,url", + "FieldName": "server_links_custom_url", + "ParamFieldName": "server_links.custom.Discord", + "InputType": "url", + "DefaultValue": "https://discord.gg/pumpkin", + "EnumValues": {}, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Java Address", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server and Startup:dns:1", + "FieldName": "java_edition_address", + "ParamFieldName": "java_edition_address", + "InputType": "text", + "DefaultValue": "{{$ApplicationIPBinding}}:{{$JavaPort}}", + "EnumValues": {}, + "Hidden": true, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Bedrock Address", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Server and Startup:dns:1", + "FieldName": "bedrock_edition_address", + "ParamFieldName": "bedrock_edition_address", + "InputType": "text", + "DefaultValue": "{{$ApplicationIPBinding}}:{{$BedrockPort}}", + "EnumValues": {}, + "Hidden": true, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Query Address", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Network:settings_ethernet:5", + "FieldName": "query_address", + "ParamFieldName": "networking.query.address", + "InputType": "text", + "DefaultValue": "{{$ApplicationIPBinding}}:{{$JavaPort}}", + "EnumValues": {}, + "Hidden": true, + "IncludeInCommandLine": false + }, + { + "DisplayName": "RCON Address", + "Category": "Minecraft:stadia_controller", + "Subcategory": "Network:settings_ethernet:5", + "FieldName": "rcon_address", + "ParamFieldName": "networking.rcon.address", + "InputType": "text", + "DefaultValue": "{{$ApplicationIPBinding}}:{{$RCONPort}}", + "EnumValues": {}, + "Hidden": true, + "IncludeInCommandLine": false + }, + { + "DisplayName": "Linear Version", + "Category": "Minecraft:stadia_controller", + "Subcategory": "World Generation:language:3", + "FieldName": "linear_version", + "ParamFieldName": "world.chunk.linear_version", + "InputType": "enum", + "DefaultValue": "V1", + "EnumValues": { + "V1": "V1" + }, + "Hidden": true, + "IncludeInCommandLine": false + } +] diff --git a/pumpkinmc.png b/pumpkinmc.png new file mode 100644 index 000000000..885a7337c Binary files /dev/null and b/pumpkinmc.png differ diff --git a/pumpkinmetaconfig.json b/pumpkinmetaconfig.json new file mode 100644 index 000000000..b276ceac9 --- /dev/null +++ b/pumpkinmetaconfig.json @@ -0,0 +1,34 @@ +[ + { + "ConfigFile": "config/configuration.toml", + "AutoMap": true, + "Importable": true, + "ConfigType": "kvp", + "ConfigFormat": "{0} = \"{1}\"", + "ConfigFormatRegex": "^\\s*(?.+?) = \"(?.*?)\"\\r?$" + }, + { + "ConfigFile": "config/configuration.toml", + "AutoMap": true, + "Importable": true, + "ConfigType": "kvp", + "ConfigFormat": "{0} = {1}", + "ConfigFormatRegex": "^\\s*(?.+?) = (?true|false|[\\d\\.-]+|\\[.*?\\])\\r?$" + }, + { + "ConfigFile": "config/features.toml", + "AutoMap": true, + "Importable": true, + "ConfigType": "ini", + "ConfigFormat": "{0} = \"{1}\"", + "ConfigFormatRegex": "^\\s*(?.+?) = \"(?.*?)\"\\r?$" + }, + { + "ConfigFile": "config/features.toml", + "AutoMap": true, + "Importable": true, + "ConfigType": "ini", + "ConfigFormat": "{0} = {1}", + "ConfigFormatRegex": "^\\s*(?.+?) = (?true|false|[\\d\\.-]+|\\[.*?\\])\\r?$" + } +] \ No newline at end of file diff --git a/pumpkinports.json b/pumpkinports.json new file mode 100644 index 000000000..c29a2242d --- /dev/null +++ b/pumpkinports.json @@ -0,0 +1,23 @@ +[ + { + "Protocol": "Both", + "Port": 25565, + "Ref": "JavaPort", + "Name": "Java Edition Port", + "Description": "The main port for Java Edition players" + }, + { + "Protocol": "UDP", + "Port": 19132, + "Ref": "BedrockPort", + "Name": "Bedrock Edition Port", + "Description": "The port for Bedrock Edition players" + }, + { + "Protocol": "TCP", + "Port": 25575, + "Ref": "RCONPort", + "Name": "RCON Port", + "Description": "Port for Remote Console (RCON) connections" + } +] diff --git a/pumpkinupdates.json b/pumpkinupdates.json new file mode 100644 index 000000000..e8259a7a3 --- /dev/null +++ b/pumpkinupdates.json @@ -0,0 +1,71 @@ +[ + { + "UpdateStageName": "Create Config Directory", + "UpdateSourcePlatform": "All", + "UpdateSource": "CreateDirectory", + "UpdateSourceArgs": "{{$FullBaseDir}}config", + "SkipOnFailure": false + }, + { + "UpdateStageName": "Download Linux Binary", + "UpdateSourcePlatform": "Linux", + "UpdateSourceArch": "x86_64", + "UpdateSource": "FetchURL", + "UpdateSourceData": "https://github.com/Pumpkin-MC/Pumpkin/releases/download/nightly/pumpkin-X64-Linux", + "UpdateSourceTarget": "{{$FullBaseDir}}", + "UpdateSourceArgs": "pumpkin", + "SkipOnFailure": false, + "OverwriteExistingFiles": true, + "DeleteAfterExtract": false + }, + { + "UpdateStageName": "Download Linux Binary", + "UpdateSourcePlatform": "Linux", + "UpdateSourceArch": "aarch64", + "UpdateSource": "FetchURL", + "UpdateSourceData": "https://github.com/Pumpkin-MC/Pumpkin/releases/download/nightly/pumpkin-ARM64-Linux", + "UpdateSourceTarget": "{{$FullBaseDir}}", + "UpdateSourceArgs": "pumpkin", + "SkipOnFailure": false, + "OverwriteExistingFiles": true, + "DeleteAfterExtract": false + }, + { + "UpdateStageName": "Make Binary Executable", + "UpdateSourcePlatform": "Linux", + "UpdateSource": "SetExecutableFlag", + "UpdateSourceArgs": "{{$FullBaseDir}}pumpkin", + "SkipOnFailure": false + }, + { + "UpdateStageName": "Download Windows Binary", + "UpdateSourcePlatform": "Windows", + "UpdateSource": "FetchURL", + "UpdateSourceData": "https://github.com/Pumpkin-MC/Pumpkin/releases/download/nightly/pumpkin-X64-Windows.exe", + "UpdateSourceTarget": "{{$FullBaseDir}}", + "UpdateSourceArgs": "Pumpkin.exe", + "SkipOnFailure": false, + "OverwriteExistingFiles": true, + "DeleteAfterExtract": false + }, + { + "UpdateStageName": "Download Config File", + "UpdateSourcePlatform": "All", + "UpdateSource": "FetchURL", + "UpdateSourceData": "https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/pumpkinConfig.toml", + "UpdateSourceTarget": "{{$FullBaseDir}}config", + "UpdateSourceArgs": "configuration.toml", + "SkipOnFailure": false, + "OverwriteExistingFiles": false + }, + { + "UpdateStageName": "Download Features File", + "UpdateSourcePlatform": "All", + "UpdateSource": "FetchURL", + "UpdateSourceData": "https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/pumpkinFeatures.toml", + "UpdateSourceTarget": "{{$FullBaseDir}}config", + "UpdateSourceArgs": "features.toml", + "SkipOnFailure": false, + "OverwriteExistingFiles": false + } +]