From c773c29326d97da543338813305f21e1d9fb7c4a Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Thu, 10 Nov 2022 12:33:31 +1100 Subject: [PATCH] Add UT2004 (#218) --- ut2004.kvp | 86 ++++ ut2004config.json | 1133 +++++++++++++++++++++++++++++++++++++++++ ut2004metaconfig.json | 7 + 3 files changed, 1226 insertions(+) create mode 100644 ut2004.kvp create mode 100644 ut2004config.json create mode 100644 ut2004metaconfig.json diff --git a/ut2004.kvp b/ut2004.kvp new file mode 100644 index 0000000..7e3f822 --- /dev/null +++ b/ut2004.kvp @@ -0,0 +1,86 @@ +Meta.DisplayName=Unreal Tournament 2004 +Meta.Description=Unreal Tournament 2004 Dedicated Server. Based on v3369.3 with bonus packs +Meta.OS=Windows, Linux +Meta.Arch=x86_64 +Meta.Author=Greelan, TABLE +Meta.URL=https://unreal.fandom.com/wiki/Unreal_Tournament_2004 +Meta.DisplayImageSource=steam:13230 +Meta.EndpointURIFormat= +Meta.ConfigManifest=ut2004config.json +Meta.MetaConfigManifest=ut2004metaconfig.json +Meta.ConfigRoot=ut2004.kvp +Meta.MinAMPVersion=2.4.0.8 +Meta.SpecificDockerImage= +Meta.DockerRequired=False +Meta.ContainerPolicy=Supported +Meta.Prerequsites=[] +Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +App.DisplayName=Unreal Tournament 2004 +App.RootDir=./ut2004/ +App.BaseDirectory=./ut2004/ +App.ExecutableWin=System\UCC.exe +App.ExecutableLinux=System/ucc-bin-linux-amd64 +App.WorkingDir=System +App.LinuxCommandLineArgs=-nohomedir +App.WindowsCommandLineArgs= +App.CommandLineArgs=server {{MapName}}?{{$FormattedArgs}} ini=UT2004.ini log=server.log port={{$GamePort}} {{$PlatformArgs}} +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={"SteamAppId":"13230"} +App.CommandLineParameterFormat={0}={1} +App.CommandLineParameterDelimiter=? +App.ExitMethod=OS_CLOSE +App.ExitTimeout=30 +App.ExitString=stop +App.ExitFile=lock +App.HasWriteableConsole=True +App.HasReadableConsole=True +App.SupportsLiveSettingsChanges=False +App.LiveSettingChangeCommandFormat=set {0} "{1}" +App.ApplicationIPBinding=0.0.0.0 +App.Ports=[{"Protocol":"UDP","Port":7777,"Ref":"GamePort","Name":"Game Port","Description":"Port for game traffic"},{"Protocol":"UDP","Port":7778,"Ref":"QueryPort","Name":"Query Port","Description":"Port for query traffic"},{"Protocol":"TCP","Port":8888,"Ref":"WebserverPort","Name":"Webserver Port","Description":"Port for webserver traffic"}] +App.AdminPortRef=0 +App.PrimaryApplicationPortRef=GamePort +App.UniversalSleepApplicationUDPPortRef=GamePort +App.UniversalSleepSteamQueryPortRef=QueryPort +App.MaxUsers=16 +App.UseRandomAdminPassword=False +App.RemoteAdminPassword=Password123 +App.AdminMethod=STDIO +App.AdminLoginTransform=None +App.RCONConnectDelaySeconds=5 +App.RCONConnectRetrySeconds=5 +App.RCONHeartbeatMinutes=0 +App.RCONHeartbeatCommand=ping +App.TelnetLoginFormat={0} +App.UpdateSources=[{"UpdateStageName":"Server Download","UpdateSourcePlatform":"All","UpdateSource":"GitRepo","UpdateSourceData":"https://github.com/IceOfWraith/UT2004.git","UpdateSourceArgs":"UT2004","UpdateSourceTarget":"{{$FullRootDir}}"},{"UpdateStageName":"Pause Update Stages","UpdateSourcePlatform":"Linux","UpdateSource":"Pause","UpdateSourceArgs":"2"},{"UpdateStageName":"Set Executable Flag","UpdateSourcePlatform":"Linux","UpdateSource":"SetExecutableFlag","UpdateSourceArgs":"{{$FullBaseDir}}System/ucc-bin-linux-amd64"}] +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= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$ +Console.AppReadyRegex=^Bringing Level (?:.+?) up for play \(\d+\) appSeconds: \d+\.\d+\.\.\.$ +Console.UserJoinRegex=^$ +Console.UserLeaveRegex=^$ +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 \ No newline at end of file diff --git a/ut2004config.json b/ut2004config.json new file mode 100644 index 0000000..9848ecf --- /dev/null +++ b/ut2004config.json @@ -0,0 +1,1133 @@ +[ + { + "DisplayName":"Game Port", + "Category":"UT2004 Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$GamePort", + "InputType":"number", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"URL.Port", + "IncludeInCommandLine":false, + "DefaultValue":"7777", + "EnumValues":{} + }, + { + "DisplayName":"Webserver Port", + "Category":"UT2004 Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$WebserverPort", + "InputType":"number", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"UWeb.WebServer.ListenPort", + "IncludeInCommandLine":false, + "DefaultValue":"8888", + "EnumValues":{} + }, + { + "DisplayName":"Server Name", + "Category":"UT2004 Server Settings", + "Description":"Sets the name of the server shown publicly", + "Keywords":"name", + "FieldName":"ServerName", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"Engine.GameReplicationInfo.ServerName", + "IncludeInCommandLine":false, + "DefaultValue":"AMP Powered UT2004 Server", + "EnumValues":{} + }, + { + "DisplayName":"Server Shortname", + "Category":"UT2004 Server Settings", + "Description":"Sets the shortname of the server shown publicly", + "Keywords":"short,name", + "FieldName":"ShortName", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"Engine.GameReplicationInfo.ShortName", + "IncludeInCommandLine":false, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Server Admin Name", + "Category":"UT2004 Server Settings", + "Description":"Sets the name of the server admin shown publicly", + "Keywords":"admin,name", + "FieldName":"AdminName", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"Engine.GameReplicationInfo.AdminName", + "IncludeInCommandLine":false, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Welcome Message", + "Category":"UT2004 Server Settings", + "Description":"Player welcome message (MOTD)", + "Keywords":"welcome,message", + "FieldName":"MessageOfTheDay", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"Engine.GameReplicationInfo.MessageOfTheDay", + "IncludeInCommandLine":false, + "DefaultValue":"Welcome to UT2004", + "EnumValues":{} + }, + { + "DisplayName":"Make Server Public", + "Category":"UT2004 Server Settings", + "Description":"If enabled, the server will be registered to the master server and be publicly visible in the in-game browser", + "Keywords":"public,master", + "FieldName":"DoUplink", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"IpDrv.MasterServerUplink.DoUplink", + "IncludeInCommandLine":false, + "DefaultValue":"True", + "EnumValues":{ + "False":"False", + "True":"True" + } + }, + { + "DisplayName":"Server Behind NAT", + "Category":"UT2004 Server Settings", + "Description":"Enable this setting if your server is on a NATed network, to ensure it shows the correct ping in the master server browser", + "Keywords":"nat", + "FieldName":"ServerBehindNAT", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"IpDrv.MasterServerUplink.ServerBehindNAT", + "IncludeInCommandLine":false, + "DefaultValue":"False", + "EnumValues":{ + "False":"False", + "True":"True" + } + }, + { + "DisplayName":"Server Password", + "Category":"UT2004 Server Settings", + "Description":"Password for players and spectators to connect to the server", + "Keywords":"password", + "FieldName":"GamePassword", + "InputType":"password", + "IsFlagArgument":false, + "ParamFieldName":"Engine.AccessControl.GamePassword", + "IncludeInCommandLine":false, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Admin Mode", + "Category":"UT2004 Server Settings", + "Description":"Sets the server admin mode - either Standard (single admin user) or xAdmin (multiple admin users). xAdmin users must be configured in xAdmin.ini", + "Keywords":"admin,mode", + "FieldName":"AccessControlClass", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"Engine.GameInfo.AccessControlClass", + "DefaultValue":"Engine.AccessControl", + "EnumValues":{ + "Engine.AccessControl":"Standard", + "XAdmin.AccessControlIni":"xAdmin" + } + }, + { + "DisplayName":"Standard Admin Password", + "Category":"UT2004 Server Settings", + "Description":"In-game and webserver admin password (for Standard admin mode)", + "Keywords":"admin,password", + "FieldName":"AdminPassword", + "InputType":"password", + "IsFlagArgument":false, + "ParamFieldName":"Engine.AccessControl.AdminPassword", + "IncludeInCommandLine":false, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Player Limit", + "Category":"UT2004 Server Settings", + "Description":"Maximum number of players that may connect to the server", + "Keywords":"players,limit", + "FieldName":"$MaxUsers", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"Engine.GameInfo.MaxPlayers", + "IncludeInCommandLine":false, + "DefaultValue":"16", + "Suffix":"players", + "EnumValues":{} + }, + { + "DisplayName":"Spectator Limit", + "Category":"UT2004 Server Settings", + "Description":"Maximum number of spectators that may connect to the server", + "Keywords":"spectators,limit", + "FieldName":"MaxSpectators", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"Engine.GameInfo.MaxSpectators", + "IncludeInCommandLine":false, + "DefaultValue":"2", + "Suffix":"spectators", + "EnumValues":{} + }, + { + "DisplayName":"Map Name", + "Category":"UT2004 Server Settings", + "Description":"Sets the name of the map to load. The Game Type must match. If Custom is selected, the Custom Map Name must also be set", + "Keywords":"map,name", + "FieldName":"MapName", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"MapName", + "IncludeInCommandLine":false, + "DefaultValue":"ONS-Torlan", + "EnumValues":{ + "AS-BP2-Acatana":"AS-BP2-Acatana", + "AS-BP2-Jumpship":"AS-BP2-Jumpship", + "AS-BP2-Outback":"AS-BP2-Outback", + "AS-BP2-SubRosa":"AS-BP2-SubRosa", + "AS-BP2-Thrust":"AS-BP2-Thrust", + "AS-Confexia":"AS-Confexia", + "AS-Convoy":"AS-Convoy", + "AS-FallenCity":"AS-FallenCity", + "AS-Glacier":"AS-Glacier", + "AS-Junkyard":"AS-Junkyard", + "AS-MotherShip":"AS-MotherShip", + "AS-RobotFactory":"AS-RobotFactory", + "BR-Anubis":"BR-Anubis", + "BR-Bifrost":"BR-Bifrost", + "BR-BridgeOfFate":"BR-BridgeOfFate", + "BR-Canyon":"BR-Canyon", + "BR-Colossus":"BR-Colossus", + "BR-DE-ElecFields":"BR-DE-ElecFields", + "BR-Disclosure":"BR-Disclosure", + "BR-IceFields":"BR-IceFields", + "BR-Serenity":"BR-Serenity", + "BR-Skyline":"BR-Skyline", + "BR-Slaughterhouse":"BR-Slaughterhouse", + "BR-TwinTombs":"BR-TwinTombs", + "CTF-1on1-Joust":"CTF-1on1-Joust", + "CTF-AbsoluteZero":"CTF-AbsoluteZero", + "CTF-Avaris":"CTF-Avaris", + "CTF-BP2-Concentrate":"CTF-BP2-Concentrate", + "CTF-BP2-Pistola":"CTF-BP2-Pistola", + "CTF-BridgeOfFate":"CTF-BridgeOfFate", + "CTF-Chrome":"CTF-Chrome", + "CTF-Citadel":"CTF-Citadel", + "CTF-Colossus":"CTF-Colossus", + "CTF-DE-ElecFields":"CTF-DE-ElecFields", + "CTF-DE-LavaGiant2":"CTF-DE-LavaGiant2", + "CTF-December":"CTF-December", + "CTF-DoubleDammage":"CTF-DoubleDammage", + "CTF-Face3":"CTF-Face3", + "CTF-FaceClassic":"CTF-FaceClassic", + "CTF-Geothermal":"CTF-Geothermal", + "CTF-Grassyknoll":"CTF-Grassyknoll", + "CTF-Grendelkeep":"CTF-Grendelkeep", + "CTF-January":"CTF-January", + "CTF-Lostfaith":"CTF-Lostfaith", + "CTF-Magma":"CTF-Magma", + "CTF-Maul":"CTF-Maul", + "CTF-MoonDragon":"CTF-MoonDragon", + "CTF-Orbital2":"CTF-Orbital2", + "CTF-Smote":"CTF-Smote", + "CTF-TwinTombs":"CTF-TwinTombs", + "DM-1on1-Albatross":"DM-1on1-Albatross", + "DM-1on1-Crash":"DM-1on1-Crash", + "DM-1on1-Desolation":"DM-1on1-Desolation", + "DM-1on1-Idoma":"DM-1on1-Idoma", + "DM-1on1-Irondust":"DM-1on1-Irondust", + "DM-1on1-Mixer":"DM-1on1-Mixer", + "DM-1on1-Roughinery":"DM-1on1-Roughinery", + "DM-1on1-Serpentine":"DM-1on1-Serpentine", + "DM-1on1-Spirit":"DM-1on1-Spirit", + "DM-1on1-Squader":"DM-1on1-Squader", + "DM-1on1-Trite":"DM-1on1-Trite", + "DM-Antalus":"DM-Antalus", + "DM-Asbestos":"DM-Asbestos", + "DM-BP2-Calandras":"DM-BP2-Calandras", + "DM-BP2-GoopGod":"DM-BP2-GoopGod", + "DM-Compressed":"DM-Compressed", + "DM-Corrugation":"DM-Corrugation", + "DM-Curse4":"DM-Curse4", + "DM-DE-GrendelKeep":"DM-DE-GrendelKeep", + "DM-DE-Ironic":"DM-DE-Ironic", + "DM-DE-Osiris2":"DM-DE-Osiris2", + "DM-Deck17":"DM-Deck17", + "DM-DesertIsle":"DM-DesertIsle", + "DM-Flux2":"DM-Flux2", + "DM-Forbidden":"DM-Forbidden", + "DM-Gael":"DM-Gael", + "DM-Gestalt":"DM-Gestalt", + "DM-Goliath":"DM-Goliath", + "DM-HyperBlast2":"DM-HyperBlast2", + "DM-Icetomb":"DM-Icetomb", + "DM-Inferno":"DM-Inferno", + "DM-Injector":"DM-Injector", + "DM-Insidious":"DM-Insidious", + "DM-IronDeity":"DM-IronDeity", + "DM-Junkyard":"DM-Junkyard", + "DM-Leviathan":"DM-Leviathan", + "DM-Metallurgy":"DM-Metallurgy", + "DM-Morpheus3":"DM-Morpheus3", + "DM-Oceanic":"DM-Oceanic", + "DM-Phobos2":"DM-Phobos2", + "DM-Plunge":"DM-Plunge", + "DM-Rankin":"DM-Rankin", + "DM-Rrajigar":"DM-Rrajigar", + "DM-Rustatorium":"DM-Rustatorium", + "DM-Sulphur":"DM-Sulphur", + "DM-TokaraForest":"DM-TokaraForest", + "DM-TrainingDay":"DM-TrainingDay", + "DOM-Access":"DOM-Access", + "DOM-Aswan":"DOM-Aswan", + "DOM-Atlantis":"DOM-Atlantis", + "DOM-Conduit":"DOM-Conduit", + "DOM-Core":"DOM-Core", + "DOM-Junkyard":"DOM-Junkyard", + "DOM-OutRigger":"DOM-OutRigger", + "DOM-Renascent":"DOM-Renascent", + "DOM-Ruination":"DOM-Ruination", + "DOM-ScorchedEarth":"DOM-ScorchedEarth", + "DOM-SepukkuGorge":"DOM-SepukkuGorge", + "DOM-Suntemple":"DOM-Suntemple", + "Entry":"Entry", + "ONS-Adara":"ONS-Adara", + "ONS-ArcticStronghold":"ONS-ArcticStronghold", + "ONS-Aridoom":"ONS-Aridoom", + "ONS-Ascendancy":"ONS-Ascendancy", + "ONS-Crossfire":"ONS-Crossfire", + "ONS-Dawn":"ONS-Dawn", + "ONS-Dria":"ONS-Dria", + "ONS-FrostBite":"ONS-FrostBite", + "ONS-Icarus":"ONS-Icarus", + "ONS-IslandHop":"ONS-IslandHop", + "ONS-Primeval":"ONS-Primeval", + "ONS-RedPlanet":"ONS-RedPlanet", + "ONS-Severance":"ONS-Severance", + "ONS-Torlan":"ONS-Torlan (Default)", + "ONS-Tricky":"ONS-Tricky", + "ONS-Urban":"ONS-Urban", + "{{CustomMap}}":"Custom" + } + }, + { + "DisplayName":"Custom Map Name", + "Category":"UT2004 Server Settings", + "Description":"If Custom map is selected, sets the name of the map. The map file must be included in the Maps directory", + "Keywords":"custom,map", + "FieldName":"CustomMap", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"CustomMap", + "IncludeInCommandLine":false, + "DefaultValue":"", + "Placeholder":"DM-1on1-Lea", + "EnumValues":{} + }, + { + "DisplayName":"Auto Rotate Maps", + "Category":"UT2004 Server Settings", + "Description":"If enabled, the server map will automatically rotate", + "Keywords":"rotate,map", + "FieldName":"bChangeLevels", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"Engine.GameInfo.bChangeLevels", + "IncludeInCommandLine":false, + "DefaultValue":"True", + "EnumValues":{ + "False":"False", + "True":"True" + } + }, + { + "DisplayName":"Game Type", + "Category":"UT2004 Server Settings", + "Description":"Sets the game type for the server. If Custom is selected, the Custom Game Type Name must also be set", + "Keywords":"game,type", + "FieldName":"game", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"game", + "IncludeInCommandLine":true, + "SkipIfEmpty":true, + "DefaultValue":"Onslaught.ONSOnslaughtGame", + "EnumValues":{ + "UT2K4Assault.ASGameInfo":"Assault", + "XGame.xBombingRun":"Bombing Run", + "XGame.xCTFGame":"Capture The Flag", + "XGame.xDeathMatch":"Deathmatch", + "XGame.xDoubleDom":"Double Domination", + "SkaarjPack.Invasion":"Invasion", + "BonusPack.xLastManStandingGame":"Last Man Standing", + "BonusPack.xMutantGame":"Mutant", + "Onslaught.ONSOnslaughtGame":"Onslaught (Default)", + "XGame.xTeamGame":"Team Deathmatch", + "XGame.xVehicleCTFGame":"Vehicle CTF (Requires Custom Maps)", + "{{CustomGame}}":"Custom" + } + }, + { + "DisplayName":"Custom Game Type Name", + "Category":"UT2004 Server Settings", + "Description":"If Custom game type is selected, sets the name of the game type", + "Keywords":"custom,game,type", + "FieldName":"CustomGame", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"CustomGame", + "IncludeInCommandLine":false, + "DefaultValue":"", + "Placeholder":"JailBreak.JailBreak", + "EnumValues":{} + }, + { + "DisplayName":"Mutators", + "Category":"UT2004 Server Settings", + "Description":"Comma-separated list of mutators to enable on the server", + "Keywords":"mutators", + "FieldName":"mutator", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"mutator", + "IncludeInCommandLine":true, + "SkipIfEmpty":true, + "DefaultValue":"", + "Placeholder":"XGame.MutInstaGib,UnrealGame.MutLowGrav", + "EnumValues":{} + }, + { + "DisplayName":"Redirection URL", + "Category":"UT2004 Server Settings", + "Description":"Sets the URL for a redirection website for clients to download required files. The URL must end in a slash", + "Keywords":"redirection,url", + "FieldName":"RedirectToURL", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"IpDrv.HTTPDownload.RedirectToURL", + "IncludeInCommandLine":false, + "DefaultValue":"http://uz.ut-files.com/", + "Placeholder":"http://uz.ut-files.com/", + "EnumValues":{} + }, + { + "DisplayName":"Enable Webserver", + "Category":"UT2004 Server Settings", + "Description":"If enabled, the server's webserver will operate", + "Keywords":"webserver", + "FieldName":"bEnabled", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"UWeb.WebServer.bEnabled", + "IncludeInCommandLine":false, + "DefaultValue":"True", + "EnumValues":{ + "False":"False", + "True":"True" + } + }, + { + "DisplayName":"Gore Level", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the level of gore displayed in-game", + "Keywords":"gore,level", + "FieldName":"GoreLevel", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"Engine.GameInfo.GoreLevel", + "IncludeInCommandLine":false, + "DefaultValue":"2", + "EnumValues":{} + }, + { + "DisplayName":"Mute Spectators", + "Category":"UT2004 Gameplay Settings", + "Description":"If enabled, spectators will be muted (cannot chat during the game)", + "Keywords":"mute,spectators", + "FieldName":"bMuteSpectators", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"Engine.BroadcastHandler.bMuteSpectators", + "IncludeInCommandLine":false, + "DefaultValue":"False", + "EnumValues":{ + "False":"False", + "True":"True" + } + }, + { + "DisplayName":"Kick Idle Players", + "Category":"UT2004 Gameplay Settings", + "Description":"If enabled, idle players will be kicked after the set interval. 0 = no idle kicking", + "Keywords":"kick,idle", + "FieldName":"MaxIdleTime", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"Engine.GameInfo.MaxIdleTime", + "IncludeInCommandLine":false, + "DefaultValue":"0", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Minimum Players", + "Category":"UT2004 Gameplay Settings", + "Description":"Minimum number of players for all standard game types. Vacant slots will be filled with bots, unless bots are disabled. 0 = no minimum", + "Keywords":"minimum,players", + "FieldName":"MinPlayers", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"UnrealGame.UnrealMPGameInfo.MinPlayers", + "IncludeInCommandLine":false, + "DefaultValue":"0", + "Placeholder":"0", + "EnumValues":{} + }, + { + "DisplayName":"Disable Bots", + "Category":"UT2004 Gameplay Settings", + "Description":"If enabled, bots will not join the server", + "Keywords":"disable,bots", + "FieldName":"bNoBots", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"Engine.GameInfo.bNoBots", + "IncludeInCommandLine":false, + "DefaultValue":"False", + "EnumValues":{ + "False":"False", + "True":"True" + } + }, + { + "DisplayName":"Bot Difficulty Level", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the difficulty level of bots on the server", + "Keywords":"bot,difficulty,level", + "FieldName":"GameDifficulty", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"Engine.GameInfo.GameDifficulty", + "IncludeInCommandLine":false, + "DefaultValue":"1.000000", + "EnumValues":{ + "0.000000":"Novice", + "1.000000":"Average (Default)", + "2.000000":"Experienced", + "3.000000":"Skilled", + "4.000000":"Adept", + "5.000000":"Masterful", + "6.000000":"Inhuman", + "7.000000":"Godlike" + } + }, + { + "DisplayName":"Assault: Player Wait Period", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets how long to wait for players before spawning bots for the Assault standard game type. 0 = start the game immediately", + "Keywords":"assault,wait,period", + "FieldName":"ASGameInfo_NetWait", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"UT2k4Assault.ASGameInfo.NetWait", + "IncludeInCommandLine":false, + "DefaultValue":"5", + "Placeholder":"5", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Assault: Time Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the game time limit for the Assault standard game type. 0 = no time limit", + "Keywords":"assault,time,limit", + "FieldName":"ASGameInfo_TimeLimit", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"UT2k4Assault.ASGameInfo.TimeLimit", + "IncludeInCommandLine":false, + "DefaultValue":"20", + "Placeholder":"20", + "Suffix":"minutes", + "EnumValues":{} + }, + { + "DisplayName":"Assault: Round Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the number of pairs of rounds a game lasts for the Assault standard game type", + "Keywords":"assault,round,limit", + "FieldName":"ASGameInfo_RoundLimit", + "InputType":"number", + "MinValue":"1", + "IsFlagArgument":false, + "ParamFieldName":"UT2k4Assault.ASGameInfo.RoundLimit", + "IncludeInCommandLine":false, + "DefaultValue":"1", + "Placeholder":"1", + "EnumValues":{} + }, + { + "DisplayName":"Assault: Round Time Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the time period a round lasts for the Assault standard game type", + "Keywords":"assault,round,time,limit", + "FieldName":"ASGameInfo_RoundTimeLimit", + "InputType":"number", + "MinValue":"1", + "IsFlagArgument":false, + "ParamFieldName":"UT2k4Assault.ASGameInfo.RoundTimeLimit", + "IncludeInCommandLine":false, + "DefaultValue":"10", + "Placeholder":"10", + "Suffix":"minutes", + "EnumValues":{} + }, + { + "DisplayName":"Assault: Practice Time Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the time period the practice round lasts for the Assault standard game type", + "Keywords":"assault,practice,time,limit", + "FieldName":"ASGameInfo_PracticeTimeLimit", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"UT2k4Assault.ASGameInfo.PracticeTimeLimit", + "IncludeInCommandLine":false, + "DefaultValue":"60", + "Placeholder":"60", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Bombing Run: Player Wait Period", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets how long to wait for players before spawning bots for the Bombing Run standard game type. 0 = start the game immediately", + "Keywords":"bombing,run,wait,period", + "FieldName":"xBombingRun_NetWait", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"XGame.xBombingRun.NetWait", + "IncludeInCommandLine":false, + "DefaultValue":"5", + "Placeholder":"5", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Bombing Run: Score Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the score limit (goal score) for the Bombing Run standard game type. When reached by a team the game will end. 0 = no score limit", + "Keywords":"bombing,run,score,limit,goal", + "FieldName":"xBombingRun_GoalScore", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"XGame.xBombingRun.GoalScore", + "IncludeInCommandLine":false, + "DefaultValue":"15", + "Placeholder":"15", + "EnumValues":{} + }, + { + "DisplayName":"Bombing Run: Time Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the game time limit for the Bombing Run standard game type. 0 = no time limit", + "Keywords":"bombing,run,time,limit", + "FieldName":"xBombingRun_TimeLimit", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"XGame.xBombingRun.TimeLimit", + "IncludeInCommandLine":false, + "DefaultValue":"20", + "Placeholder":"20", + "Suffix":"minutes", + "EnumValues":{} + }, + { + "DisplayName":"Capture The Flag: Player Wait Period", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets how long to wait for players before spawning bots for the Capture The Flag standard game type. 0 = start the game immediately", + "Keywords":"capture,flag,ctf,wait,period", + "FieldName":"xCTFGame_NetWait", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"XGame.xCTFGame.NetWait", + "IncludeInCommandLine":false, + "DefaultValue":"5", + "Placeholder":"5", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Capture The Flag: Score Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the score limit (goal score) for the Capture the Flag standard game type. When reached by a team the game will end. 0 = no score limit", + "Keywords":"capture,flag,ctf,score,limit,goal", + "FieldName":"xCTFGame_GoalScore", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"XGame.xCTFGame.GoalScore", + "IncludeInCommandLine":false, + "DefaultValue":"3", + "Placeholder":"3", + "EnumValues":{} + }, + { + "DisplayName":"Capture The Flag: Time Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the game time limit for the Capture the Flag standard game type. 0 = no time limit", + "Keywords":"capture,flag,ctf,time,limit", + "FieldName":"xCTFGame_TimeLimit", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"XGame.xCTFGame.TimeLimit", + "IncludeInCommandLine":false, + "DefaultValue":"20", + "Placeholder":"20", + "Suffix":"minutes", + "EnumValues":{} + }, + { + "DisplayName":"Deathmatch: Player Wait Period", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets how long to wait for players before spawning bots for the Deathmatch standard game type. 0 = start the game immediately", + "Keywords":"deathmatch,wait,period", + "FieldName":"xDeathMatch_NetWait", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"XGame.xDeathMatch.NetWait", + "IncludeInCommandLine":false, + "DefaultValue":"5", + "Placeholder":"5", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Deathmatch: Score Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the score limit (goal score) for the Deathmatch standard game type. When reached by a player the game will end. 0 = no score limit", + "Keywords":"deathmatch,score,limit,goal", + "FieldName":"xDeathMatch_GoalScore", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"XGame.xDeathMatch.GoalScore", + "IncludeInCommandLine":false, + "DefaultValue":"25", + "Placeholder":"25", + "EnumValues":{} + }, + { + "DisplayName":"Deathmatch: Time Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the game time limit for the Deathmatch standard game type. 0 = no time limit", + "Keywords":"deathmatch,time,limit", + "FieldName":"xDeathMatch_TimeLimit", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"XGame.xDeathMatch.TimeLimit", + "IncludeInCommandLine":false, + "DefaultValue":"20", + "Placeholder":"20", + "Suffix":"minutes", + "EnumValues":{} + }, + { + "DisplayName":"Double Domination: Player Wait Period", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets how long to wait for players before spawning bots for the Double Domination standard game type. 0 = start the game immediately", + "Keywords":"double,domination,wait,period", + "FieldName":"xDoubleDom_NetWait", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"XGame.xDoubleDom.NetWait", + "IncludeInCommandLine":false, + "DefaultValue":"5", + "Placeholder":"5", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Double Domination: Score Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the score limit (goal score) for the Double Domination standard game type. When reached by a team the game will end. 0 = no score limit", + "Keywords":"double,domination,score,limit,goal", + "FieldName":"xDoubleDom_GoalScore", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"XGame.xDoubleDom.GoalScore", + "IncludeInCommandLine":false, + "DefaultValue":"3", + "Placeholder":"3", + "EnumValues":{} + }, + { + "DisplayName":"Double Domination: Time Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the game time limit for the Double Domination standard game type. 0 = no time limit", + "Keywords":"double,domination,time,limit", + "FieldName":"xDoubleDom_TimeLimit", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"XGame.xDoubleDom.TimeLimit", + "IncludeInCommandLine":false, + "DefaultValue":"20", + "Placeholder":"20", + "Suffix":"minutes", + "EnumValues":{} + }, + { + "DisplayName":"Double Domination: Time To Score", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets how long a team needs to hold both domination points before scoring", + "Keywords":"double,domination,time,score", + "FieldName":"xDoubleDom_TimeToScore", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"XGame.xDoubleDom.TimeToScore", + "IncludeInCommandLine":false, + "DefaultValue":"10", + "Placeholder":"10", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Invasion: Player Wait Period", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets how long to wait for players before spawning bots for the Invasion standard game type. 0 = start the game immediately", + "Keywords":"invasion,wait,period", + "FieldName":"Invasion_NetWait", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"SkaarjPack.Invasion.NetWait", + "IncludeInCommandLine":false, + "DefaultValue":"5", + "Placeholder":"5", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Invasion: Score Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the score limit (goal score) for the Invasion standard game type. When reached by a player the game will end. 0 = no score limit", + "Keywords":"invasion,score,limit,goal", + "FieldName":"Invasion_GoalScore", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"SkaarjPack.Invasion.GoalScore", + "IncludeInCommandLine":false, + "DefaultValue":"60", + "Placeholder":"60", + "EnumValues":{} + }, + { + "DisplayName":"Invasion: Time Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the game time limit for the Invasion standard game type. 0 = no time limit", + "Keywords":"invasion,time,limit", + "FieldName":"Invasion_TimeLimit", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"SkaarjPack.Invasion.TimeLimit", + "IncludeInCommandLine":false, + "DefaultValue":"20", + "Placeholder":"20", + "Suffix":"minutes", + "EnumValues":{} + }, + { + "DisplayName":"Invasion: Maximum Lives", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the number of lives a player has before they are out of the game for the Invasion standard game type", + "Keywords":"invasion,max,lives", + "FieldName":"Invasion_MaxLives", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"SkaarjPack.Invasion.MaxLives", + "IncludeInCommandLine":false, + "DefaultValue":"4", + "Placeholder":"4", + "EnumValues":{} + }, + { + "DisplayName":"Invasion: Initial Wave", + "Category":"UT2004 Gameplay Settings", + "Description":"Specifies the first wave of incoming monsters", + "Keywords":"invasion,initial,wave", + "FieldName":"Invasion_InitialWave", + "InputType":"number", + "MinValue":"0", + "MaxValue":"16", + "IsFlagArgument":false, + "ParamFieldName":"SkaarjPack.Invasion.InitialWave", + "IncludeInCommandLine":false, + "DefaultValue":"0", + "Placeholder":"0", + "EnumValues":{} + }, + { + "DisplayName":"Invasion: Final Wave", + "Category":"UT2004 Gameplay Settings", + "Description":"Specifies the final wave of incoming monsters that must be completed to finish the game", + "Keywords":"invasion,final,wave", + "FieldName":"Invasion_FinalWave", + "InputType":"number", + "MinValue":"0", + "MaxValue":"16", + "IsFlagArgument":false, + "ParamFieldName":"SkaarjPack.Invasion.FinalWave", + "IncludeInCommandLine":false, + "DefaultValue":"16", + "Placeholder":"16", + "EnumValues":{} + }, + { + "DisplayName":"Last Man Standing: Player Wait Period", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets how long to wait for players before spawning bots for the Last Man Standing standard game type. 0 = start the game immediately", + "Keywords":"lms,last,man,standing,wait,period", + "FieldName":"xLastManStandingGame_NetWait", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"BonusPack.xLastManStandingGame.NetWait", + "IncludeInCommandLine":false, + "DefaultValue":"5", + "Placeholder":"5", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Last Man Standing: Score Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the score limit (goal score) for the Last Man Standing standard game type. When reached by a player the game will end. 0 = no score limit", + "Keywords":"lms,last,man,standing,score,limit,goal", + "FieldName":"xLastManStandingGame_GoalScore", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"BonusPack.xLastManStandingGame.GoalScore", + "IncludeInCommandLine":false, + "DefaultValue":"25", + "Placeholder":"25", + "EnumValues":{} + }, + { + "DisplayName":"Last Man Standing: Time Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the game time limit for the Last Man Standing standard game type. 0 = no time limit", + "Keywords":"lms,last,man,standing,time,limit", + "FieldName":"xLastManStandingGame_TimeLimit", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"BonusPack.xLastManStandingGame.TimeLimit", + "IncludeInCommandLine":false, + "DefaultValue":"0", + "Placeholder":"0", + "Suffix":"minutes", + "EnumValues":{} + }, + { + "DisplayName":"Last Man Standing: Maximum Lives", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the number of lives a player has before they are out of the game for the Last Man Standing standard game type", + "Keywords":"lms,last,man,standing,max,lives", + "FieldName":"xLastManStandingGame_MaxLives", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"BonusPack.xLastManStandingGame.MaxLives", + "IncludeInCommandLine":false, + "DefaultValue":"4", + "Placeholder":"4", + "EnumValues":{} + }, + { + "DisplayName":"Mutant: Player Wait Period", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets how long to wait for players before spawning bots for the Mutant standard game type. 0 = start the game immediately", + "Keywords":"mutant,wait,period", + "FieldName":"xMutantGame_NetWait", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"BonusPack.xMutantGame.NetWait", + "IncludeInCommandLine":false, + "DefaultValue":"5", + "Placeholder":"5", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Mutant: Score Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the score limit (goal score) for the Mutant standard game type. When reached by a player the game will end. 0 = no score limit", + "Keywords":"mutant,score,limit,goal", + "FieldName":"xMutantGame_GoalScore", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"BonusPack.xMutantGame.GoalScore", + "IncludeInCommandLine":false, + "DefaultValue":"20", + "Placeholder":"20", + "EnumValues":{} + }, + { + "DisplayName":"Mutant: Time Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the game time limit for the Mutant standard game type. 0 = no time limit", + "Keywords":"mutant,time,limit", + "FieldName":"xMutantGame_TimeLimit", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"BonusPack.xMutantGame.TimeLimit", + "IncludeInCommandLine":false, + "DefaultValue":"20", + "Placeholder":"20", + "Suffix":"minutes", + "EnumValues":{} + }, + { + "DisplayName":"Mutant: Enable Bottom Feeder", + "Category":"UT2004 Gameplay Settings", + "Description":"If enabled, the player with the lowest score can kill other players for the Mutant standard game type", + "Keywords":"mutant,bottom,feeder", + "FieldName":"xMutantGame.bEnableBottomFeeder", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"BonusPack.xMutantGame.bEnableBottomFeeder", + "IncludeInCommandLine":false, + "DefaultValue":"True", + "EnumValues":{ + "False":"False", + "True":"True" + } + }, + { + "DisplayName":"Team Deathmatch: Player Wait Period", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets how long to wait for players before spawning bots for the Team Deathmatch standard game type. 0 = start the game immediately", + "Keywords":"team,deathmatch,wait,period", + "FieldName":"xTeamGame_NetWait", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"XGame.xTeamGame.NetWait", + "IncludeInCommandLine":false, + "DefaultValue":"5", + "Placeholder":"5", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Team Deathmatch: Score Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the score limit (goal score) for the Team Deathmatch standard game type. When reached by a team the game will end. 0 = no score limit", + "Keywords":"team,deathmatch,score,limit,goal", + "FieldName":"xTeamGame_GoalScore", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"XGame.xTeamGame.GoalScore", + "IncludeInCommandLine":false, + "DefaultValue":"25", + "Placeholder":"25", + "EnumValues":{} + }, + { + "DisplayName":"Team Deathmatch: Time Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the game time limit for the Team Deathmatch standard game type. 0 = no time limit", + "Keywords":"team,deathmatch,time,limit", + "FieldName":"xTeamGame_TimeLimit", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"XGame.xTeamGame.TimeLimit", + "IncludeInCommandLine":false, + "DefaultValue":"60", + "Placeholder":"60", + "Suffix":"minutes", + "EnumValues":{} + }, + { + "DisplayName":"Onslaught: Player Wait Period", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets how long to wait for players before spawning bots for the Onslaught standard game type. 0 = start the game immediately", + "Keywords":"onslaught,wait,period", + "FieldName":"ONSOnslaughtGame_NetWait", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"Onslaught.ONSOnslaughtGame.NetWait", + "IncludeInCommandLine":false, + "DefaultValue":"15", + "Placeholder":"15", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Onslaught: Score Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the score limit (goal score) for the Onslaught standard game type. When reached by a player the game will end. 0 = no score limit", + "Keywords":"onslaught,score,limit,goal", + "FieldName":"ONSOnslaughtGame_GoalScore", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"Onslaught.ONSOnslaughtGame.GoalScore", + "IncludeInCommandLine":false, + "DefaultValue":"3", + "Placeholder":"3", + "EnumValues":{} + }, + { + "DisplayName":"Onslaught: Time Limit", + "Category":"UT2004 Gameplay Settings", + "Description":"Sets the game time limit for the Onslaught standard game type. 0 = no time limit", + "Keywords":"onslaught,time,limit", + "FieldName":"ONSOnslaughtGame_TimeLimit", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"Onslaught.ONSOnslaughtGame.TimeLimit", + "IncludeInCommandLine":false, + "DefaultValue":"20", + "Placeholder":"20", + "Suffix":"minutes", + "EnumValues":{} + } +] \ No newline at end of file diff --git a/ut2004metaconfig.json b/ut2004metaconfig.json new file mode 100644 index 0000000..066b569 --- /dev/null +++ b/ut2004metaconfig.json @@ -0,0 +1,7 @@ +[ + { + "ConfigFile":"System/UT2004.ini", + "AutoMap":true, + "ConfigType":"ini" + } +] \ No newline at end of file