Add Mindustry (#341)

This commit is contained in:
Greelan 2023-04-30 13:01:37 +10:00 committed by GitHub
parent 647fa0805e
commit 5a19f61147
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 689 additions and 0 deletions

94
mindustry.kvp Normal file
View File

@ -0,0 +1,94 @@
Meta.DisplayName=Mindustry
Meta.Description=Mindustry Dedicated Server
Meta.OS=Windows, Linux
Meta.AarchSupport=Native
Meta.Arch=All
Meta.Author=Greelan
Meta.URL=https://mindustrygame.github.io/
Meta.DisplayImageSource=steam:1127400
Meta.EndpointURIFormat=steam://connect/{0}
Meta.ConfigManifest=mindustryconfig.json
Meta.MetaConfigManifest=
Meta.ConfigRoot=mindustry.kvp
Meta.MinAMPVersion=2.4.3.2
Meta.SpecificDockerImage=
Meta.DockerRequired=False
Meta.ContainerPolicy=Supported
Meta.ContainerPolicyReason=
Meta.ExtraSetupStepsURI=
Meta.Prerequsites=[]
Meta.ExtraContainerPackages=[]
Meta.ConfigReleaseState=NotSpecified
Meta.NoCommercialUsage=False
App.DisplayName=Mindustry
App.RootDir=./mindustry/
App.BaseDirectory=./mindustry/
App.SteamWorkshopDownloadLocation=
App.ExecutableWin=java\bin\java.exe
App.ExecutableLinux=java/bin/java
App.WorkingDir=
App.LinuxCommandLineArgs=
App.WindowsCommandLineArgs=
App.CommandLineArgs={{CustomJavaArgs}} -jar server-release.jar config port {{$ServerPort}},config socketInputPort {{$SocketInputPort}},{{host}}{{$FormattedArgs}}
App.UseLinuxIOREDIR=False
App.AppSettings={}
App.EnvironmentVariables={"SteamAppId":"1127400"}
App.CommandLineParameterFormat={0} "{1}"
App.CommandLineParameterDelimiter=,
App.ExitMethod=String
App.ExitTimeout=30
App.ExitString=exit
App.ExitFile=app_exit.lck
App.HasWriteableConsole=True
App.HasReadableConsole=True
App.SupportsLiveSettingsChanges=False
App.LiveSettingChangeCommandFormat={0} {1}
App.ApplicationIPBinding=0.0.0.0
App.Ports=[{"Protocol":"Both","Port":6567,"Ref":"ServerPort","Name":"Server Port","Description":"Port for server traffic"},{"Protocol":"TCP","Port":6569,"Ref":"SocketInputPort","Name":"Socket Input Port","Description":"Port for socket input traffic"}]
App.AdminPortRef=0
App.PrimaryApplicationPortRef=ServerPort
App.UniversalSleepApplicationUDPPortRef=ServerPort
App.UniversalSleepSteamQueryPortRef=0
App.MaxUsers=100
App.UseRandomAdminPassword=True
App.PersistRandomPassword=True
App.RemoteAdminPassword=
App.AdminMethod=STDIO
App.AdminLoginTransform=None
App.LoginTransformPrefix=
App.RCONConnectDelaySeconds=5
App.RCONConnectRetrySeconds=5
App.RCONHeartbeatMinutes=0
App.RCONHeartbeatCommand=ping
App.TelnetLoginFormat={0}
App.UpdateSources=App.UpdateSources=@IncludeJson[mindustryupdates.json]
App.PreStartStages=[]
App.Compatibility=None
App.SteamUpdateAnonymousLogin=True
App.SteamForceLoginPrompt=False
App.RapidStartup=False
App.MonitorChildProcess=False
App.MonitorChildProcessWaitMs=100
App.MonitorChildProcessName=
App.SupportsUniversalSleep=False
App.WakeupMode=Any
App.ApplicationReadyMode=RegexMatch
App.TemplateMatchRegex={{(\$?[\w]+)}}
Console.FilterMatchRegex=\[\d+m
Console.FilterMatchReplacement=
Console.ThrowawayMessageRegex=
Console.AppReadyRegex=^\[[\d-]+ [\d:]+\] \[I\] Server loaded\. Type 'help' for help\.$
Console.UserJoinRegex=^\[[\d-]+ [\d:]+\] \[I\] (?<username>.+?) has connected\. \[(?<sessionid>.+?)\]$
Console.UserLeaveRegex=^\[[\d-]+ [\d:]+\] \[I\] (?<username>.+?) has disconnected\. \[(?<sessionid>.+?)\] \(.*\)$
Console.UserChatRegex=^$
Console.UpdateAvailableRegex=^\[\d\d:\d\d:\d\d\] \[INFO\] A new server update is available! v[\d\.]+.$
Console.MetricsRegex=
Console.SuppressLogAtStart=False
Console.ActivateLogRegex=
Console.UserActions={}
Limits.SleepMode=True
Limits.SleepOnStart=False
Limits.SleepDelayMinutes=5
Limits.DozeDelay=2
Limits.AutoRetryCount=5
Limits.SleepStartThresholdSeconds=25

506
mindustryconfig.json Normal file
View File

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

89
mindustryupdates.json Normal file
View File

@ -0,0 +1,89 @@
[
{
"UpdateStageName":"Server Download",
"UpdateSourcePlatform":"All",
"UpdateSource":"GithubRelease",
"UpdateSourceArgs":"Anuken/Mindustry",
"UpdateSourceData":"server-release.jar",
"UpdateSourceVersion":"{{ServerVersion}}",
"UpdateSourceTarget":"{{$FullRootDir}}",
"OverwriteExistingFiles":true
},
{
"UpdateStageName":"Java Download",
"UpdateSourcePlatform":"Windows",
"UpdateSource":"FetchURL",
"UpdateSourceData":"https://download.oracle.com/java/17/latest/jdk-17_windows-x64_bin.zip",
"UpdateSourceTarget":"{{$FullRootDir}}",
"UnzipUpdateSource":true,
"OverwriteExistingFiles":true,
"DeleteAfterExtract":true
},
{
"UpdateStageName":"Remove Old Java Directory",
"UpdateSourcePlatform":"Windows",
"UpdateSource":"Executable",
"UpdateSourceData":"cmd.exe",
"UpdateSourceArgs":"/C rd /S /Q .\\mindustry\\java"
},
{
"UpdateStageName":"Java Download",
"UpdateSourcePlatform":"Linux",
"UpdateSource":"FetchURL",
"UpdateSourceData":"https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz",
"UpdateSourceArch":"x86_64",
"UpdateSourceTarget":"{{$FullRootDir}}",
"UnzipUpdateSource":true,
"OverwriteExistingFiles":true,
"DeleteAfterExtract":true
},
{
"UpdateStageName":"Java Download",
"UpdateSourcePlatform":"Linux",
"UpdateSource":"FetchURL",
"UpdateSourceData":"https://download.oracle.com/java/17/latest/jdk-17_linux-aarch64_bin.tar.gz",
"UpdateSourceArch":"aarch64",
"UpdateSourceTarget":"{{$FullRootDir}}",
"UnzipUpdateSource":true,
"OverwriteExistingFiles":true,
"DeleteAfterExtract":true
},
{
"UpdateStageName":"Pause Update Stages",
"UpdateSourcePlatform":"Windows",
"UpdateSource":"Pause",
"UpdateSourceArgs":"1"
},
{
"UpdateStageName":"Rename New Java Directory",
"UpdateSourcePlatform":"Windows",
"UpdateSource":"Executable",
"UpdateSourceData":"cmd.exe",
"UpdateSourceArgs":"/C move .\\mindustry\\jdk* .\\mindustry\\java"
},
{
"UpdateStageName":"Replace Java Directory",
"UpdateSourcePlatform":"Linux",
"UpdateSource":"Executable",
"UpdateSourceData":"/bin/bash",
"UpdateSourceArgs":"-c 'rm -rf ./mindustry/java ; mv ./mindustry/jdk* ./mindustry/java ; chmod +x ./mindustry/java/bin/java'"
},
{
"UpdateStageName":"Create Maps Directory",
"UpdateSourcePlatform":"All",
"UpdateSource":"CreateDirectory",
"UpdateSourceArgs":"{{$FullBaseDir}}config/maps"
},
{
"UpdateStageName":"Create Mods Directory",
"UpdateSourcePlatform":"All",
"UpdateSource":"CreateDirectory",
"UpdateSourceArgs":"{{$FullBaseDir}}config/mods"
},
{
"UpdateStageName":"Create Saves Directory",
"UpdateSourcePlatform":"All",
"UpdateSource":"CreateDirectory",
"UpdateSourceArgs":"{{$FullBaseDir}}config/saves"
}
]