From 2a0246dbeb4c4c825538066d170125cc8ea2fd28 Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Thu, 23 May 2024 19:57:57 +1000 Subject: [PATCH 1/4] Add Call of Duty: World at War --- call-of-dutywaw.kvp | 105 ++++++ call-of-dutywawconfig.json | 587 +++++++++++++++++++++++++++++++++ call-of-dutywawmetaconfig.json | 30 ++ call-of-dutywawupdates.json | 88 +++++ 4 files changed, 810 insertions(+) create mode 100644 call-of-dutywaw.kvp create mode 100644 call-of-dutywawconfig.json create mode 100644 call-of-dutywawmetaconfig.json create mode 100644 call-of-dutywawupdates.json diff --git a/call-of-dutywaw.kvp b/call-of-dutywaw.kvp new file mode 100644 index 000000000..af0212384 --- /dev/null +++ b/call-of-dutywaw.kvp @@ -0,0 +1,105 @@ +Meta.DisplayName=Call of Duty: World at War +Meta.Description=Call of Duty: World at War Dedicated Server using the Plutonium launcher +Meta.OS=Windows, Linux +Meta.AarchSupport=Unknown +Meta.Arch=x86_64 +Meta.Author=Greelan +Meta.URL=https://store.steampowered.com/app/10090/Call_of_Duty_World_at_War/ +Meta.DisplayImageSource=steam:10090 +Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$ServerPort} +Meta.ConfigManifest=call-of-dutywawconfig.json +Meta.MetaConfigManifest=call-of-dutywawmetaconfig.json +Meta.ConfigRoot=call-of-dutywaw.kvp +Meta.MinAMPVersion=2.5.0.4 +Meta.SpecificDockerImage=cubecoders/ampbase:wine8 +Meta.DockerRequired=False +Meta.DockerBaseReadOnly=False +Meta.ContainerPolicy=SupportedOnWindows, RecommendedOnLinux +Meta.ContainerPolicyReason=The server requires Wine to run on Linux. Using a container avoids the need to install this dependency on the host. +Meta.ExtraSetupStepsURI= +Meta.Prerequsites=[] +Meta.ExtraContainerPackages=[] +Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +Meta.ConfigVersion=1.0 +Meta.ReleaseNotes= +Meta.BreakingReleaseNotes= +Meta.AppConfigId=8fa2eeea-23c6-44e3-a25f-389f036b9518 +Meta.ImportableExtensions=[] +App.DisplayName=Call of Duty: World at War +App.RootDir=./call-of-dutywaw/ +App.BaseDirectory=./call-of-dutywaw/10090/ +App.SteamWorkshopDownloadLocation= +App.ExecutableWin=10090\bin\plutonium-bootstrapper-win32.exe +App.ExecutableLinux=/usr/bin/wine +App.WorkingDir=10090 +App.LinuxCommandLineArgs=bin/plutonium-bootstrapper-win32.exe +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} {{GameMode}} +set fs_basepath "{{$FullBaseDir}}" +set net_port {{$ServerPort}} +set net_ip {{$ApplicationIPBinding}} +set rcon_password "{{$RemoteAdminPassword}}" {{$FormattedArgs}} {{MapMode}} +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={"SteamAppId":"10090","WINEPREFIX":"{{$FullRootDir}}.wine","WINEARCH":"win64","WINEDEBUG":"-all"} +App.CommandLineParameterFormat=+set {0} "{1}" +App.CommandLineParameterDelimiter= +App.ExitMethod=String +App.ExitTimeout=30 +App.ExitString=quit +App.ExitFile=app_exit.lck +App.HasWriteableConsole=True +App.HasReadableConsole=True +App.UDPLogger=False +App.SupportsLiveSettingsChanges=False +App.LiveSettingChangeCommandFormat=set {0} "{1}" +App.ForceIPBinding=False +App.SupportsIPv6=False +App.ApplicationIPBinding=0.0.0.0 +App.Ports=[{"Protocol":"Both","Port":28960,"Ref":"ServerPort","Name":"Server Port","Description":"Port for game traffic"}] +App.AdminPortRef=ServerPort +App.PrimaryApplicationPortRef=ServerPort +App.UniversalSleepApplicationUDPPortRef=0 +App.UniversalSleepSteamQueryPortRef=0 +App.MaxUsers=32 +App.UseRandomAdminPassword=True +App.PersistRandomPassword=True +App.RemoteAdminPassword= +App.AdminMethod=QuakeRCON +App.IgnoreSTDOUTAfterRCON=False +App.AdminLoginTransform=None +App.LoginTransformPrefix= +App.RCONConnectDelaySeconds=5 +App.RCONConnectRetrySeconds=5 +App.RCONHeartbeatMinutes=0 +App.RCONHeartbeatCommand=ping +App.TelnetLoginFormat=login {0} +App.UpdateSources=@IncludeJson[call-of-dutywawupdates.json] +App.PreStartStages=[] +App.ForceUpdate=False +App.ForceUpdateReason= +App.Compatibility=None +App.SteamUpdateAnonymousLogin=False +App.SteamForceLoginPrompt=True +App.RapidStartup=False +App.SmartExcludeExemptions=["*.cfg","*.conf","*.config","*.ini","*.json","*.xml","*.properties","*.kvp","*.yml","*.yaml","*.toml","*.lua"] +App.DumpFullChildProcessTree=False +App.MonitorChildProcessName=^bin\/plutonium-bootstrapper-win32\.exe .+ \+set fs_basepath {{$FullBaseDir}} \+set net_port {{$ServerPort}}.+$ +App.SupportsUniversalSleep=False +App.WakeupMode=Any +App.ApplicationReadyMode=RCONConnected +Console.FilterMatchRegex=(\[[\d;]+m|\[\d+K\[[\d;]+m) +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=^((WARNING|ERROR): Shader.+|Could not find Wine Gecko.*)$ +Console.AppReadyRegex=^$ +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=False +Limits.SleepOnStart=False +Limits.SleepDelayMinutes=5 +Limits.DozeDelay=2 +Limits.AutoRetryCount=2 +Limits.SleepStartThresholdSeconds=25 diff --git a/call-of-dutywawconfig.json b/call-of-dutywawconfig.json new file mode 100644 index 000000000..ff15625c0 --- /dev/null +++ b/call-of-dutywawconfig.json @@ -0,0 +1,587 @@ +[ + { + "DisplayName":"RCON Password", + "Category":"CoD WaW Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$RemoteAdminPassword", + "InputType":"text", + "Hidden":true, + "ParamFieldName":"rcon_password", + "EnumValues":{} + }, + { + "DisplayName":"Enable Log File", + "Category":"CoD WaW Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"logfile", + "InputType":"number", + "Hidden":true, + "ParamFieldName":"logfile", + "DefaultValue":"2", + "EnumValues":{} + }, + { + "DisplayName":"Continuous Log", + "Category":"CoD WaW Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"g_logSync", + "InputType":"number", + "Hidden":true, + "ParamFieldName":"g_logSync", + "DefaultValue":"1", + "EnumValues":{} + }, + { + "DisplayName":"Log File Name", + "Category":"CoD WaW Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"g_log", + "InputType":"text", + "Hidden":true, + "ParamFieldName":"g_log", + "DefaultValue":"games_mp.log", + "EnumValues":{} + }, + { + "DisplayName":"Game Mode", + "Category":"CoD WaW Server Settings", + "Description":"Sets the game mode. Configure the relevant config file accordingly - 'server.cfg' for Multiplayer, 'server_zm.cfg' for Zombies", + "Keywords":"game,mode,gamemode", + "FieldName":"GameMode", + "InputType":"enum", + "ParamFieldName":"GameMode", + "DefaultValue":"t4mp \"{{$FullBaseDir}}\" -dedicated +set key {{ServerKey}} +set fs_game {{Mod}} +exec server.cfg", + "EnumValues":{ + "t4mp \"{{$FullBaseDir}}\" -dedicated +set key {{ServerKey}} +set fs_game {{Mod}} +exec server.cfg":"Multiplayer (default)", + "t4sp \"{{$FullBaseDir}}\" -dedicated +set zombiemode 1 +set key {{ServerKey}} +set fs_game {{Mod}} +exec server_zm.cfg":"Zombies" + } + }, + { + "DisplayName":"Server Key", + "Category":"CoD WaW Server Settings", + "Description":"Sets the [server key](https://platform.plutonium.pw/serverkeys) required to run the server. This also sets the server name. A Plutonium account must be at least one week old to create a key, and game ownership must be [verified](https://forum.plutonium.pw/topic/32250/an-update-on-game-ownership-verification)", + "Keywords":"server,key,serverkey", + "FieldName":"ServerKey", + "InputType":"password", + "ParamFieldName":"ServerKey", + "DefaultValue":"", + "Required":true, + "EnumValues":{} + }, + { + "DisplayName":"Server Password", + "Category":"CoD WaW Server Settings", + "Description":"Sets the password to join the server. Default is no password", + "Keywords":"password,g_password", + "FieldName":"g_password", + "InputType":"password", + "ParamFieldName":"g_password", + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Map Mode", + "Category":"CoD WaW Server Settings", + "Description":"Sets whether to enable map rotation (the Map Rotation List must then also be set) or to load a specific initial map (the Initial Game Type and Initial Map must then also be set)", + "Keywords":"map,mode,map_rotate", + "FieldName":"MapMode", + "InputType":"enum", + "ParamFieldName":"MapMode", + "DefaultValue":"+map_rotate", + "EnumValues":{ + "+map_rotate":"Map rotation (default)", + "+map \"{{map_name}}\"":"Specific initial map" + } + }, + { + "DisplayName":"Map Rotation List", + "Category":"CoD WaW Server Settings", + "Description":"Configure the map rotation in 'main/server.cfg' or 'main/server_zm.cfg' (as applicable)", + "Keywords":"map,rotation,list,sv_maprotation", + "FieldName":"MapRotation", + "InputType":"hidden", + "ParamFieldName":"MapRotation", + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Initial Game Type", + "Category":"CoD WaW Server Settings", + "Description":"Sets the game type to start the server with. This setting will be overridden if map rotation is configured. Settings for each game type can be set in 'server.cfg' or 'server_zm.cfg' (as applicable)", + "Keywords":"game,type,g_gametype", + "FieldName":"g_gametype", + "InputType":"enum", + "ParamFieldName":"g_gametype", + "DefaultValue":"dm", + "EnumValues":{ + "ctf":"Capture The Flag", + "dm":"Deathmatch / Free For All (default)", + "dom":"Domination", + "koth":"King Of The Hill / Headquarters", + "sab":"Sabotage", + "sd":"Search And Destroy", + "tdm":"Team Deathmatch", + "twar":"War" + } + }, + { + "DisplayName":"Initial Map", + "Category":"CoD WaW Server Settings", + "Description":"Sets the map to start the server with. See 'server.cfg' or 'server_zm.cfg' (as applicable) for map names. This setting will be overridden if map rotation is configured", + "Keywords":"map", + "FieldName":"map_name", + "InputType":"text", + "ParamFieldName":"map_name", + "DefaultValue":"mp_downfall", + "Placeholder":"mp_downfall", + "EnumValues":{} + }, + { + "DisplayName":"Load Mod", + "Category":"CoD WaW Server Settings", + "Description":"Sets the mod to load when starting the server, based on the path to the mod in the Mods directory", + "Keywords":"mods,mod,fs_game", + "FieldName":"Mod", + "InputType":"text", + "ParamFieldName":"Mod", + "IncludeInCommandLine":true, + "SkipIfEmpty":true, + "DefaultValue":"", + "Placeholder":"Mods/PeZBOTWAW", + "EnumValues":{} + }, + { + "DisplayName":"Player Limit", + "Category":"CoD WaW Server Settings", + "Description":"Sets the maximum number of players allowed on the server at one time. Maximum 64 for Multiplayer, 4 for Zombies", + "Keywords":"max,players,limit,sv_maxclients", + "FieldName":"$MaxUsers", + "InputType":"number", + "MinValue":"1", + "MaxValue":"64", + "ParamFieldName":"sv_maxclients", + "DefaultValue":"32", + "Placeholder":"32", + "Suffix":"players", + "EnumValues":{} + }, + { + "DisplayName":"Player Limit", + "Category":"CoD WaW Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$MaxUsers", + "InputType":"number", + "Hidden":true, + "ParamFieldName":"ui_maxclients", + "EnumValues":{} + }, + { + "DisplayName":"Private Player Limit", + "Category":"CoD WaW Server Settings", + "Description":"Sets the maximum number of private players allowed on the server (those that can use non-public reserved slots). Will be limited to the Player Limit", + "Keywords":"max,private,players,limit,sv_privateclients", + "FieldName":"sv_privateclients", + "InputType":"number", + "MinValue":"0", + "ParamFieldName":"sv_privateclients", + "DefaultValue":"0", + "Placeholder":"0", + "Suffix":"players", + "EnumValues":{} + }, + { + "DisplayName":"Private Player Password", + "Category":"CoD WaW Server Settings", + "Description":"Sets the password for private players to join the server. Private players entering this password have access to all slots on the server, otherwise the players only have access to the public slots (Player Limit less Private Player Limit)", + "Keywords":"private,player,password,sv_privatepassword", + "FieldName":"sv_privatePassword", + "InputType":"password", + "ParamFieldName":"sv_privatePassword", + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Pure Server", + "Category":"CoD WaW Server Settings", + "Description":"If set, clients will be prevented from loading files not on the server", + "Keywords":"pure,server,cheats,sv_pure", + "FieldName":"sv_pure", + "InputType":"checkbox", + "ParamFieldName":"sv_pure", + "DefaultValue":"0", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Maximum Bandwidth", + "Category":"CoD WaW Server Settings", + "Description":"Sets the maximum bandwidth for the server", + "Keywords":"maximum,bandwidth,sv_maxrate", + "FieldName":"sv_maxRate", + "InputType":"number", + "MinValue":"0", + "MaxValue":"100000", + "ParamFieldName":"sv_maxRate", + "DefaultValue":"25000", + "Placeholder":"25000", + "Suffix":"bytes/second", + "EnumValues":{} + }, + { + "DisplayName":"Temporary Ban Period", + "Category":"CoD WaW Server Settings", + "Description":"Sets the time for a player temporary ban (on kick/tempban)", + "Keywords":"ban,period,temporary,sv_kickbantime", + "FieldName":"sv_kickbantime", + "InputType":"number", + "MinValue":"0", + "MaxValue":"3600", + "ParamFieldName":"sv_kickBanTime", + "DefaultValue":"300", + "Placeholder":"300", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Allow Download From Server And Web", + "Category":"CoD WaW Server Settings", + "Description":"If set, clients will be allowed to download content (maps, etc) from either the server or the web", + "Keywords":"allow,download,content,map,model,sv_allowdownload", + "FieldName":"sv_allowDownload", + "InputType":"checkbox", + "ParamFieldName":"sv_allowDownload", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Allow Download From Web", + "Category":"CoD WaW Server Settings", + "Description":"If set, clients will be allowed to download content (maps, etc) from the web. Requires the Base Download URL to be set", + "Keywords":"allow,download,content,map,model,sv_wwwDownload", + "FieldName":"sv_wwwDownload", + "InputType":"checkbox", + "ParamFieldName":"sv_wwwDownload", + "DefaultValue":"0", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Base Download URL", + "Category":"CoD WaW Server Settings", + "Description":"Sets the base URL for download redirection. Must be http only", + "Keywords":"base,url,download,redirection,sv_wwwBaseURL", + "FieldName":"sv_wwwBaseURL", + "InputType":"url", + "ParamFieldName":"sv_wwwBaseURL", + "DefaultValue":"", + "Placeholder":"http://domain.tld/waw", + "EnumValues":{} + }, + { + "DisplayName":"Treat As Disconnected While Downloading", + "Category":"CoD WaW Server Settings", + "Description":"If set, clients will be treated as disconnected while downloading from the web", + "Keywords":"download,disconnect,sv_wwwDlDisconnected", + "FieldName":"sv_wwwDlDisconnected", + "InputType":"checkbox", + "ParamFieldName":"sv_wwwDlDisconnected", + "DefaultValue":"0", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Enable Server Voice Chat", + "Category":"CoD WaW Gameplay Settings", + "Description":"If set, server voice chat will be enabled", + "Keywords":"voice,chat,sv_voice", + "FieldName":"sv_voice", + "InputType":"checkbox", + "ParamFieldName":"sv_voice", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Server Voice Chat Quality", + "Category":"CoD WaW Gameplay Settings", + "Description":"Sets the server voice quality level", + "Keywords":"voice,chat,quality,sv_voicequality", + "FieldName":"sv_voiceQuality", + "InputType":"number", + "MinValue":"0", + "MaxValue":"9", + "ParamFieldName":"sv_voiceQuality", + "DefaultValue":"3", + "Placeholder":"3", + "EnumValues":{} + }, + { + "DisplayName":"Enable Dead Voice Chat", + "Category":"CoD WaW Gameplay Settings", + "Description":"If enabled, dead players will be allowed to use voice chat to communicate with living players", + "Keywords":"voice,dead,chat,voice_deadchat", + "FieldName":"voice_deadChat", + "InputType":"checkbox", + "ParamFieldName":"voice_deadChat", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Enable Dead Text Chat (Zombies)", + "Category":"CoD WaW Gameplay Settings", + "Description":"If enabled, dead players will be allowed to use text chat to communicate with living players", + "Keywords":"text,dead,chat,g_deadChat", + "FieldName":"g_deadChat", + "InputType":"checkbox", + "ParamFieldName":"g_deadChat", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Spectating Type", + "Category":"CoD WaW Gameplay Settings", + "Description":"Sets the type of spectating allowed in the game", + "Keywords":"spectating,type,scr_game_spectatetype", + "FieldName":"scr_game_spectatetype", + "InputType":"enum", + "ParamFieldName":"scr_game_spectatetype", + "DefaultValue":"1", + "EnumValues":{ + "0":"None", + "1":"Players only (default)", + "2":"Free" + } + }, + { + "DisplayName":"Enable Killcam (Multiplayer)", + "Category":"CoD WaW Gameplay Settings", + "Description":"If set, the killcam feature will be enabled, which shows how a player was killed", + "Keywords":"killcam,scr_game_allowkillcam", + "FieldName":"scr_game_allowkillcam", + "InputType":"checkbox", + "ParamFieldName":"scr_game_allowkillcam", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Gravity", + "Category":"CoD WaW Gameplay Settings", + "Description":"Sets the gravity in the game world", + "Keywords":"gravity,physics,g_gravity", + "FieldName":"gravity,g_gravity", + "InputType":"number", + "MinValue":"100", + "MaxValue":"1000", + "ParamFieldName":"g_gravity", + "DefaultValue":"800", + "Placeholder":"800", + "EnumValues":{} + }, + { + "DisplayName":"Player Speed", + "Category":"CoD WaW Gameplay Settings", + "Description":"Sets the movement speed of players", + "Keywords":"speed,movement,players,g_speed", + "FieldName":"g_speed", + "InputType":"number", + "MinValue":"100", + "MaxValue":"300", + "ParamFieldName":"g_speed", + "DefaultValue":"190", + "Placeholder":"190", + "EnumValues":{} + }, + { + "DisplayName":"Team Balancing (Multiplayer)", + "Category":"CoD WaW Gameplay Settings", + "Description":"If set, team balancing will be enabled", + "Keywords":"team,balancing,scr_teambalance", + "FieldName":"scr_teambalance", + "InputType":"checkbox", + "ParamFieldName":"scr_teambalance", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Maximum Dropped Weapons (Multiplayer)", + "Category":"CoD WaW Gameplay Settings", + "Description":"Sets the maximum number of guns allowed to drop in the game", + "Keywords":"maximum,dropped,weapons,guns,g_maxDroppedWeapons", + "FieldName":"g_maxDroppedWeapons", + "InputType":"number", + "MinValue":"1", + "MaxValue":"50", + "ParamFieldName":"g_maxDroppedWeapons", + "DefaultValue":"32", + "Placeholder":"32", + "EnumValues":{} + }, + { + "DisplayName":"Team Affects Bullet Penetration", + "Category":"CoD WaW Gameplay Settings", + "Description":"If set, teammates' bodies will affect bullet penetration", + "Keywords":"bullet,penetration,team,teammates,bodies,bullet_penetration_affected_by_team", + "FieldName":"bullet_penetration_affected_by_team", + "InputType":"checkbox", + "ParamFieldName":"bullet_penetration_affected_by_team", + "DefaultValue":"true", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Fix Bullet Damage Duplication (Multiplayer)", + "Category":"CoD WaW Gameplay Settings", + "Description":"If set, clipping players won't receive duplicate damage", + "Keywords":"bullet,damage,duplication,clipping,prevent,g_fixBulletDamageDupe", + "FieldName":"g_fixBulletDamageDupe", + "InputType":"checkbox", + "ParamFieldName":"g_fixBulletDamageDupe", + "DefaultValue":"true", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Allow Voting (Multiplayer)", + "Category":"CoD WaW Gameplay Settings", + "Description":"If set, voting will be allowed", + "Keywords":"voting,vote,allow,g_allowVote", + "FieldName":"g_allowVote", + "InputType":"checkbox", + "ParamFieldName":"g_allowVote", + "DefaultValue":"0", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Abstain Vote Weight (Multiplayer)", + "Category":"CoD WaW Gameplay Settings", + "Description":"Sets the weight of abstain votes in voting", + "Keywords":"vote,abstain,weight,g_voteAbstainWeight", + "FieldName":"g_voteAbstainWeight", + "InputType":"number", + "MinValue":"0", + "MaxValue":"1", + "ParamFieldName":"g_voteAbstainWeight", + "DefaultValue":"0.5", + "Placeholder":"0.5", + "EnumValues":{} + }, + { + "DisplayName":"Allow Client-Side Features", + "Category":"CoD WaW Gameplay Settings", + "Description":"If set, allows various client-side features to be enabled", + "Keywords":"client,side,features,sv_clientside", + "FieldName":"sv_clientside", + "InputType":"checkbox", + "ParamFieldName":"sv_clientside", + "DefaultValue":"0", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Enable Client Archive (Multiplayer)", + "Category":"CoD WaW Gameplay Settings", + "Description":"If set, clients will archive data to save bandwidth on the server. Requires Client-Side Features to be enabled", + "Keywords":"client,archive,sv_clientArchive", + "FieldName":"sv_clientArchive", + "InputType":"checkbox", + "ParamFieldName":"sv_clientArchive", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Enable Client-Side Bullets", + "Category":"CoD WaW Gameplay Settings", + "Description":"If set, clients will handle bullet holes and tracers. Requires Client-Side Features to be enabled", + "Keywords":"client,side,bullets,sv_clientSideBullets", + "FieldName":"sv_clientSideBullets", + "InputType":"checkbox", + "ParamFieldName":"sv_clientSideBullets", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Enable Client-Side Vehicles", + "Category":"CoD WaW Gameplay Settings", + "Description":"If set, vehicles will be predicted on the client, reducing response time. Requires Client-Side Features to be enabled", + "Keywords":"client,side,vehicles,sv_clientSideVehicles", + "FieldName":"sv_clientSideVehicles", + "InputType":"checkbox", + "ParamFieldName":"sv_clientSideVehicles", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Enable Client-Side Lights (Multiplayer)", + "Category":"CoD WaW Gameplay Settings", + "Description":"If set, clients will handle lighting. Requires Client-Side Features to be enabled", + "Keywords":"client,side,lights,lighting,g_client_side_lights", + "FieldName":"g_client_side_lights", + "InputType":"checkbox", + "ParamFieldName":"g_client_side_lights", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Enhance Weapon Rate (Zombies)", + "Category":"CoD WaW Gameplay Settings", + "Description":"If set, Double Tap 2.0 will be enabled, enhancing both the rate of fire of weapons and the number of bullets per shot", + "Keywords":"enhance,weapon,rate,doubletap,perk_weapRateEnhanced", + "FieldName":"perk_weapRateEnhanced", + "InputType":"checkbox", + "ParamFieldName":"perk_weapRateEnhanced", + "DefaultValue":"false", + "EnumValues":{ + "False":"false", + "True":"true" + } + } +] diff --git a/call-of-dutywawmetaconfig.json b/call-of-dutywawmetaconfig.json new file mode 100644 index 000000000..a215cbf92 --- /dev/null +++ b/call-of-dutywawmetaconfig.json @@ -0,0 +1,30 @@ +[ + { + "ConfigFile":"main/server.cfg", + "AutoMap":true, + "ConfigType":"kvp", + "ConfigFormat":"set {0} \"{1}\"", + "ConfigFormatRegex":"^set (?.+?) \"(?.*?)\".*$" + }, + { + "ConfigFile":"main/server.cfg", + "AutoMap":true, + "ConfigType":"kvp", + "ConfigFormat":"set {0} {1}", + "ConfigFormatRegex":"^set (?.+?) (?[^\"]*?)(?: .*)?$" + }, + { + "ConfigFile":"main/server_zm.cfg", + "AutoMap":true, + "ConfigType":"kvp", + "ConfigFormat":"set {0} \"{1}\"", + "ConfigFormatRegex":"^set (?.+?) \"(?.*?)\".*$" + }, + { + "ConfigFile":"main/server_zm.cfg", + "AutoMap":true, + "ConfigType":"kvp", + "ConfigFormat":"set {0} {1}", + "ConfigFormatRegex":"^set (?.+?) (?[^\"]*?)(?: .*)?$" + } +] \ No newline at end of file diff --git a/call-of-dutywawupdates.json b/call-of-dutywawupdates.json new file mode 100644 index 000000000..1d1458020 --- /dev/null +++ b/call-of-dutywawupdates.json @@ -0,0 +1,88 @@ +[ + { + "UpdateStageName":"SteamCMD Client Download", + "UpdateSourcePlatform":"All", + "UpdateSource":"SteamCMD", + "UpdateSourceData":"10090", + "UpdateSourceArgs":"10090", + "ForceDownloadPlatform":"Windows" + }, + { + "UpdateStageName":"Create Plutonium Updater Directory", + "UpdateSourcePlatform":"All", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullRootDir}}plutonium-updater" + }, + { + "UpdateStageName":"Plutonium Updater Download", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://github.com/mxve/plutonium-updater.rs/releases/latest/download/plutonium-updater-x86_64-pc-windows-msvc.zip", + "UpdateSourceTarget":"{{$FullRootDir}}plutonium-updater", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true + }, + { + "UpdateStageName":"Plutonium Installation", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"Executable", + "UpdateSourceData":"cmd.exe", + "UpdateSourceArgs":"/C cd call-of-dutywaw\\plutonium-updater && plutonium-updater.exe -e \"games/iw5mp.exe\" -e \"games/iw5sp.exe\" -e \"games/t5mp.exe\" -e \"games/t5sp.exe\" -e \"games/t6mp.exe\" -e \"games/t6zm.exe\" -e \"storage/iw5\" -e \"storage/t5\" -e \"storage/t6\" -sfd \"{{$FullBaseDir}}\"", + "SkipOnFailure":false + }, + { + "UpdateStageName":"Plutonium Updater Download", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://github.com/mxve/plutonium-updater.rs/releases/latest/download/plutonium-updater-x86_64-unknown-linux-gnu.tar.gz", + "UpdateSourceTarget":"{{$FullRootDir}}plutonium-updater", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true + }, + { + "UpdateStageName":"Plutonium Installation", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"Executable", + "UpdateSourceData":"/bin/bash", + "UpdateSourceArgs":"-c 'cd call-of-dutywaw/plutonium-updater && chmod +x plutonium-updater && ./plutonium-updater -e \"games/iw5mp.exe\" -e \"games/iw5sp.exe\" -e \"games/t5mp.exe\" -e \"games/t5sp.exe\" -e \"games/t6mp.exe\" -e \"games/t6zm.exe\" -e \"storage/iw5\" -e \"storage/t5\" -e \"storage/t6\" -sfd \"{{$FullBaseDir}}\"'", + "SkipOnFailure":false + }, + { + "UpdateStageName":"Multiplayer Config File Download", + "UpdateSourcePlatform":"All", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://raw.githubusercontent.com/xerxes-at/T4ServerConfigs/main/main/server.cfg", + "UpdateSourceTarget":"{{$FullBaseDir}}main", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"Zombies Config File Download", + "UpdateSourcePlatform":"All", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://raw.githubusercontent.com/xerxes-at/T4ServerConfigs/main/main/server_zm.cfg", + "UpdateSourceTarget":"{{$FullBaseDir}}main", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"Create Mods Directory", + "UpdateSourcePlatform":"All", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}storage/t4/mods" + }, + { + "UpdateStageName":"Initialise Wine", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"Executable", + "UpdateSourceData":"/bin/bash", + "UpdateSourceArgs":"-c 'WINEPREFIX=\"{{$FullRootDir}}.wine\" WINEARCH=win64 WINEDEBUG=-all /usr/bin/wineboot --init --update'" + }, + { + "UpdateStageName":"Disable Prefix Sound", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"Executable", + "UpdateSourceData":"/bin/bash", + "UpdateSourceArgs":"-c 'cd call-of-dutywaw && wget -q -N https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks && chmod +x winetricks; export WINEPREFIX=\"{{$FullRootDir}}.wine\"; export WINEARCH=win64; ./winetricks sound=disabled > winescript_log.txt 2>&1'" + } +] \ No newline at end of file From 2bcf7868a49a4a44f59333d827c6735fbbd4af11 Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Thu, 23 May 2024 22:20:57 +1000 Subject: [PATCH 2/4] Update call-of-dutywaw.kvp --- call-of-dutywaw.kvp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/call-of-dutywaw.kvp b/call-of-dutywaw.kvp index af0212384..ce4817e45 100644 --- a/call-of-dutywaw.kvp +++ b/call-of-dutywaw.kvp @@ -85,7 +85,7 @@ App.MonitorChildProcessName=^bin\/plutonium-bootstrapper-win32\.exe .+ \+set fs_ App.SupportsUniversalSleep=False App.WakeupMode=Any App.ApplicationReadyMode=RCONConnected -Console.FilterMatchRegex=(\[[\d;]+m|\[\d+K\[[\d;]+m) +Console.FilterMatchRegex=\e\[(\d+;)*(\d+)?[ABCDHJKfmsu]|\e\[?[?\>\=\da-z]+ Console.FilterMatchReplacement= Console.ThrowawayMessageRegex=^((WARNING|ERROR): Shader.+|Could not find Wine Gecko.*)$ Console.AppReadyRegex=^$ From 3f7d5fe6c104e7954504fdddd36e5129bdcb0473 Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Sun, 26 May 2024 16:19:11 +1000 Subject: [PATCH 3/4] Update call-of-dutywawupdates.json --- call-of-dutywawupdates.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/call-of-dutywawupdates.json b/call-of-dutywawupdates.json index 1d1458020..d32dc988a 100644 --- a/call-of-dutywawupdates.json +++ b/call-of-dutywawupdates.json @@ -76,13 +76,15 @@ "UpdateSourcePlatform":"Linux", "UpdateSource":"Executable", "UpdateSourceData":"/bin/bash", - "UpdateSourceArgs":"-c 'WINEPREFIX=\"{{$FullRootDir}}.wine\" WINEARCH=win64 WINEDEBUG=-all /usr/bin/wineboot --init --update'" + "UpdateSourceArgs":"-c 'WINEPREFIX=\"{{$FullRootDir}}.wine\" WINEARCH=win64 WINEDEBUG=-all /usr/bin/wineboot --init --update'", + "SkipOnFailure":false }, { "UpdateStageName":"Disable Prefix Sound", "UpdateSourcePlatform":"Linux", "UpdateSource":"Executable", "UpdateSourceData":"/bin/bash", - "UpdateSourceArgs":"-c 'cd call-of-dutywaw && wget -q -N https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks && chmod +x winetricks; export WINEPREFIX=\"{{$FullRootDir}}.wine\"; export WINEARCH=win64; ./winetricks sound=disabled > winescript_log.txt 2>&1'" + "UpdateSourceArgs":"-c 'cd call-of-dutywaw && wget -q -N https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks && chmod +x winetricks; export WINEPREFIX=\"{{$FullRootDir}}.wine\"; export WINEARCH=win64; ./winetricks sound=disabled > winescript_log.txt 2>&1'", + "SkipOnFailure":true } ] \ No newline at end of file From 4e4b6adc6eb9f856a5d166b65a490cad50726ba5 Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Mon, 27 May 2024 07:39:12 +1000 Subject: [PATCH 4/4] Update call-of-dutywawconfig.json --- call-of-dutywawconfig.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/call-of-dutywawconfig.json b/call-of-dutywawconfig.json index ff15625c0..1ed9afe69 100644 --- a/call-of-dutywawconfig.json +++ b/call-of-dutywawconfig.json @@ -54,10 +54,10 @@ "FieldName":"GameMode", "InputType":"enum", "ParamFieldName":"GameMode", - "DefaultValue":"t4mp \"{{$FullBaseDir}}\" -dedicated +set key {{ServerKey}} +set fs_game {{Mod}} +exec server.cfg", + "DefaultValue":"t4mp \"{{$FullBaseDir}}\" -dedicated +set key {{ServerKey}} +set fs_game \"{{Mod}}\" +exec server.cfg", "EnumValues":{ - "t4mp \"{{$FullBaseDir}}\" -dedicated +set key {{ServerKey}} +set fs_game {{Mod}} +exec server.cfg":"Multiplayer (default)", - "t4sp \"{{$FullBaseDir}}\" -dedicated +set zombiemode 1 +set key {{ServerKey}} +set fs_game {{Mod}} +exec server_zm.cfg":"Zombies" + "t4mp \"{{$FullBaseDir}}\" -dedicated +set key {{ServerKey}} +set fs_game \"{{Mod}}\" +exec server.cfg":"Multiplayer (default)", + "t4sp \"{{$FullBaseDir}}\" -dedicated +set zombiemode 1 +set key {{ServerKey}} +set fs_game \"{{Mod}}\" +exec server_zm.cfg":"Zombies" } }, {