Add Call of Duty: Modern Warfare 2 (2009) (#480)

This commit is contained in:
Greelan 2023-10-22 10:57:22 +11:00 committed by GitHub
parent 26e0ee4123
commit 2acdf14270
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 1254 additions and 0 deletions

101
call-of-dutymw2.kvp Normal file
View File

@ -0,0 +1,101 @@
Meta.DisplayName=Call of Duty: Modern Warfare 2 (2009)
Meta.Description=Call of Duty: Modern Warfare 2 (2009) Dedicated Server
Meta.OS=Windows, Linux
Meta.AarchSupport=Unknown
Meta.Arch=x86_64
Meta.Author=Greelan
Meta.URL=https://www.callofduty.com/modernwarfare2
Meta.DisplayImageSource=steam:10190
Meta.EndpointURIFormat=steam://connect/{0}
Meta.ConfigManifest=call-of-dutymw2config.json
Meta.MetaConfigManifest=call-of-dutymw2metaconfig.json
Meta.ConfigRoot=call-of-dutymw2.kvp
Meta.MinAMPVersion=2.4.6.4
Meta.SpecificDockerImage=cubecoders/ampbase:wine
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=0.0.0.0
Meta.ReleaseNotes=
Meta.BreakingReleaseNotes=
App.DisplayName=Call of Duty: Modern Warfare 2 (2009)
App.RootDir=./call-of-dutymw2/
App.BaseDirectory=./call-of-dutymw2/10190/
App.SteamWorkshopDownloadLocation=
App.ExecutableWin=10190\iw4x.exe
App.ExecutableLinux=/usr/bin/wine
App.WorkingDir=10190
App.LinuxCommandLineArgs="./iw4x.exe"
App.WindowsCommandLineArgs=
App.CommandLineArgs={{$PlatformArgs}} -console -dedicated -stdout +fs_game "{{fs_game}}" +set net_port "{{$GamePort}}" +set net_ip "{{$ApplicationIPBinding}}" +exec "server.cfg" +set party_enable "0" {{$FormattedArgs}} +map_rotate
App.UseLinuxIOREDIR=False
App.AppSettings={}
App.EnvironmentVariables={"SteamAppId":"10190","WINEPREFIX":"{{$FullRootDir}}.wine","WINEARCH":"win32","WINEDEBUG":"-all"}
App.CommandLineParameterFormat=+set {0} "{1}"
App.CommandLineParameterDelimiter=
App.ExitMethod=OS_CLOSE
App.ExitTimeout=30
App.ExitString=quit
App.ExitFile=app_exit.lck
App.HasWriteableConsole=True
App.HasReadableConsole=True
App.SupportsLiveSettingsChanges=False
App.LiveSettingChangeCommandFormat=set {0} "{1}"
App.ApplicationIPBinding=0.0.0.0
App.Ports=[{"Protocol":"Both","Port":28960,"Ref":"GamePort","Name":"Game Port","Description":"Port for game traffic"}]
App.AdminPortRef=0
App.PrimaryApplicationPortRef=GamePort
App.UniversalSleepApplicationUDPPortRef=0
App.UniversalSleepSteamQueryPortRef=0
App.MaxUsers=18
App.UseRandomAdminPassword=False
App.PersistRandomPassword=False
App.RemoteAdminPassword=
App.AdminMethod=STDIO
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-dutymw2updates.json]
App.PreStartStages=[]
App.ForceUpdate=False
App.ForceUpdateReason=
App.Compatibility=None
App.SteamUpdateAnonymousLogin=False
App.SteamForceLoginPrompt=False
App.RapidStartup=False
App.MonitorChildProcess=True
App.DumpFullChildProcessTree=False
App.MonitorChildProcessWaitMs=1000
App.MonitorChildProcessName=iw4x.exe
App.SupportsUniversalSleep=True
App.WakeupMode=Any
App.ApplicationReadyMode=RegexMatch
App.TemplateMatchRegex={{(\$?[\w]+)}}
Console.FilterMatchRegex=
Console.FilterMatchReplacement=
Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$
Console.AppReadyRegex=^Got \d+ names from the master server$
Console.UserJoinRegex=^Registering xuid (?<userid>.+?) at slot \d+ in .*$
Console.UserLeaveRegex=^Removing xuid (?<userid>.+?) \(clientNum \d+\) from session$
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=5
Limits.SleepStartThresholdSeconds=25

608
call-of-dutymw2config.json Normal file
View File

@ -0,0 +1,608 @@
[
{
"DisplayName":"Game Port",
"Category":"Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"$GamePort",
"InputType":"number",
"Hidden":true,
"ParamFieldName":"net_port",
"EnumValues":{}
},
{
"DisplayName":"IP Binding",
"Category":"Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"$ApplicationIPBinding",
"InputType":"number",
"Hidden":true,
"ParamFieldName":"net_ip",
"EnumValues":{}
},
{
"DisplayName":"Enable Log File",
"Category":"Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"logfile",
"InputType":"number",
"Hidden":true,
"ParamFieldName":"logfile",
"DefaultValue":"2",
"EnumValues":{}
},
{
"DisplayName":"Continuous Log",
"Category":"Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"g_logSync",
"InputType":"number",
"Hidden":true,
"ParamFieldName":"g_logSync",
"DefaultValue":"1",
"EnumValues":{}
},
{
"DisplayName":"Log File Name",
"Category":"Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"g_log",
"InputType":"text",
"Hidden":true,
"ParamFieldName":"g_log",
"DefaultValue":"logs/games_mp.log",
"EnumValues":{}
},
{
"DisplayName":"Log Filter",
"Category":"Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"com_logFilter",
"InputType":"number",
"Hidden":true,
"ParamFieldName":"com_logFilter",
"DefaultValue":"1",
"EnumValues":{}
},
{
"DisplayName":"Disable Lobby Server",
"Category":"Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"party_enable",
"InputType":"text",
"Hidden":true,
"ParamFieldName":"party_enable",
"DefaultValue":"0",
"EnumValues":{}
},
{
"DisplayName":"Server Name",
"Category":"Server Settings",
"Description":"Sets the name of the server. Colour codes can be used: ^0=Black, ^1=Red, ^2=Green, ^3=Yellow, ^4=Blue, ^5=Cyan, ^6=Pink, ^7=White, ^8=Team Colours, ^9=Grey, ^:=Rainbow",
"Keywords":"server,name,sv_hostname",
"FieldName":"sv_hostname",
"InputType":"text",
"ParamFieldName":"sv_hostname",
"DefaultValue":"^1AMP Hosted CODMW2 Server",
"EnumValues":{}
},
{
"DisplayName":"Message Of The Day",
"Category":"Server Settings",
"Description":"Sets a custom message of the day (MOTD) displayed when players join. Colour codes can also be used, as per the Server Name. Blank = default intel messages",
"Keywords":"message,motd,sv_motd",
"FieldName":"sv_motd",
"InputType":"text",
"ParamFieldName":"sv_motd",
"DefaultValue":"^4Welcome to CODMW2!",
"EnumValues":{}
},
{
"DisplayName":"Enable Private LAN Party Mode",
"Category":"Server Settings",
"Description":"If enabled, the server will be unlisted publicly and added to the local serverlist only. Otherwise, heartbeats will be sent to the online serverlist",
"Keywords":"public,online,private,lan,party,sv_lanonly",
"FieldName":"sv_lanonly",
"InputType":"checkbox",
"ParamFieldName":"sv_lanonly",
"IncludeInCommandLine":true,
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Internet/LAN Server",
"Category":"Server Settings",
"Description":"If enabled, the server will be started as an internet server. Otherwise, it will be started as a LAN server",
"Keywords":"lan,internet,dedicated",
"FieldName":"dedicated",
"InputType":"checkbox",
"ParamFieldName":"dedicated",
"IncludeInCommandLine":true,
"DefaultValue":"2",
"EnumValues":{
"False":"1",
"True":"2"
}
},
{
"DisplayName":"Server Admin Username",
"Category":"Server Settings",
"Description":"Sets the admin username for administrative purposes",
"Keywords":"admin,username,_Admin",
"FieldName":"_Admin",
"InputType":"text",
"ParamFieldName":"_Admin",
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Server Admin Email Address",
"Category":"Server Settings",
"Description":"Sets the email address for the server admin for administrative purposes",
"Keywords":"email,address,_Email",
"FieldName":"_Email",
"InputType":"text",
"ParamFieldName":"_Email",
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Server Admin Website",
"Category":"Server Settings",
"Description":"Sets the URL for the server admin's website",
"Keywords":"website,url,_Website",
"FieldName":"_Website",
"InputType":"url",
"ParamFieldName":"_Website",
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Server Location",
"Category":"Server Settings",
"Description":"Sets the server location that is displayed in the server information",
"Keywords":"location,_Location",
"FieldName":"_Location",
"InputType":"text",
"ParamFieldName":"_Location",
"DefaultValue":"Earth",
"Placeholder":"Earth",
"EnumValues":{}
},
{
"DisplayName":"Server Password",
"Category":"Server Settings",
"Description":"Sets the password to join the server",
"Keywords":"password,g_password",
"FieldName":"g_password",
"InputType":"password",
"ParamFieldName":"g_password",
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"RCON Password",
"Category":"Server Settings",
"Description":"Sets the RCON password to allow sending console commands in-game. Default is no password, disabling console commands",
"Keywords":"rcon,password,rcon_password",
"FieldName":"rcon_password",
"InputType":"password",
"ParamFieldName":"rcon_password",
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"RCON Timeout",
"Category":"Server Settings",
"Description":"Sets the minimum allowed interval between RCON messages per IP address",
"Keywords":"rcon,interval,timeout,rcon_timeout",
"FieldName":"rcon_timeout",
"InputType":"number",
"ParamFieldName":"rcon_timeout",
"DefaultValue":"100",
"Placeholder":"100",
"EnumValues":{}
},
{
"DisplayName":"Map Rotation List",
"Category":"Server Settings",
"Description":"Sets the map list to use for map rotations for the server. Each entry must be in the format: map <mapname>. To mix gametypes, use the format: gametype <gametype> map <mapname>. See userraw/server.cfg for mapnames",
"Keywords":"map,rotation,list,sv_maprotation",
"FieldName":"sv_maprotation",
"InputType":"Textarea",
"ParamFieldName":"sv_maprotation",
"DefaultValue":"map mp_highrise map mp_terminal map mp_firingrange map mp_trailerpark map mp_boneyard map mp_quarry map mp_killhouse map mp_rundown map mp_rust_long map mp_nightshift map mp_afghan map mp_abandon map mp_estate_tropical map mp_crash_tropical map mp_bloc_sh map mp_checkpoint map mp_invasion map mp_storm_spring map mp_fav_tropical map mp_rust map mp_nuked map mp_shipment map mp_strike map mp_cargoship_sh map co_hunted map mp_underpass map oilrig map mp_cross_fire map mp_brecourt map mp_crash map mp_fuel2 map mp_cargoship map mp_vacant map mp_subbase map mp_storm map mp_complex map mp_favela map mp_shipment map mp_derail map mp_compact map mp_overgrown map mp_estate map mp_derail map mp_shipment_long",
"Placeholder":"map mp_highrise map mp_terminal map mp_firingrange map mp_trailerpark map mp_boneyard map mp_quarry map mp_killhouse map mp_rundown map mp_rust_long map mp_nightshift map mp_afghan map mp_abandon map mp_estate_tropical map mp_crash_tropical map mp_bloc_sh map mp_checkpoint map mp_invasion map mp_storm_spring map mp_fav_tropical map mp_rust map mp_nuked map mp_shipment map mp_strike map mp_cargoship_sh map co_hunted map mp_underpass map oilrig map mp_cross_fire map mp_brecourt map mp_crash map mp_fuel2 map mp_cargoship map mp_vacant map mp_subbase map mp_storm map mp_complex map mp_favela map mp_shipment map mp_derail map mp_compact map mp_overgrown map mp_estate map mp_derail map mp_shipment_long",
"EnumValues":{}
},
{
"DisplayName":"Randomise Map Rotation",
"Category":"Server Settings",
"Description":"If set, the loading order of the Map Rotation List maps will be randomised",
"Keywords":"map,rotation,random,randomise,randomize,sv_randomMapRotation",
"FieldName":"sv_randomMapRotation",
"InputType":"checkbox",
"ParamFieldName":"sv_randomMapRotation",
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Default Gametype",
"Category":"Server Settings",
"Description":"Sets the default gametype in case the Map Rotation List does not specify gametypes. Settings for each gametype can be set in userraw/server.cfg",
"Keywords":"game,type,g_gametype",
"FieldName":"g_gametype",
"InputType":"enum",
"ParamFieldName":"g_gametype",
"DefaultValue":"war",
"EnumValues":{
"war":"Team Deathmatch (default)",
"dm":"Free-for-all",
"dom":"Domination",
"koth":"King of the Hill / Headquarters",
"sab":"Sabotage",
"sd":"Search and Destroy",
"arena":"Arena",
"dd":"Demolition",
"ctf":"Capture the Flag",
"oneflag":"One-Flag CTF",
"gtnw":"Global Thermo-Nuclear War"
}
},
{
"DisplayName":"Load Mod",
"Category":"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,fs_game",
"FieldName":"fs_game",
"InputType":"text",
"ParamFieldName":"fs_game",
"DefaultValue":"",
"Placeholder":"mods/bots",
"EnumValues":{}
},
{
"DisplayName":"Player Limit",
"Category":"Server Settings",
"Description":"Sets the maximum number of players allowed on the server",
"Keywords":"max,players,limit",
"FieldName":"$MaxUsers",
"InputType":"number",
"MinValue":"1",
"ParamFieldName":"sv_maxclients",
"DefaultValue":"18",
"Placeholder":"18",
"EnumValues":{}
},
{
"DisplayName":"Player Limit",
"Category":"Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"$MaxUsers",
"InputType":"number",
"Hidden":true,
"ParamFieldName":"party_maxplayers",
"EnumValues":{}
},
{
"DisplayName":"Maximum Ping",
"Category":"Server Settings",
"Description":"Sets the maximum ping permitted for a player to be allowed to join. If a custom DLC reports the 'server is for low ping players only', set to 0",
"Keywords":"maximum,ping,sv_maxPing",
"FieldName":"sv_maxPing",
"InputType":"number",
"MinValue":"0",
"MaxValue":"1000",
"ParamFieldName":"sv_maxPing",
"DefaultValue":"0",
"Placeholder":"0",
"Suffix":"milliseconds",
"EnumValues":{}
},
{
"DisplayName":"Client Timeout Period",
"Category":"Server Settings",
"Description":"Sets the time before the server will kick a client if no response is sent to the server",
"Keywords":"timeout,sv_timeout",
"FieldName":"sv_timeout",
"InputType":"number",
"MinValue":"0",
"MaxValue":"1800",
"ParamFieldName":"sv_timeout",
"DefaultValue":"20",
"Placeholder":"20",
"Suffix":"seconds",
"EnumValues":{}
},
{
"DisplayName":"Player Inactivity Kick Period",
"Category":"Server Settings",
"Description":"Sets the time before the server will kick a player for inactivity",
"Keywords":"inactivity,afk,period,g_inactivity",
"FieldName":"g_inactivity",
"InputType":"number",
"MinValue":"0",
"ParamFieldName":"g_inactivity",
"DefaultValue":"300",
"Placehoder":"300",
"Suffix":"seconds",
"EnumValues":{}
},
{
"DisplayName":"Spectator Kick Period",
"Category":"Server Settings",
"Description":"Sets the time before the server will kick a spectator",
"Keywords":"inactivity,period,spectator,g_inactivitySpectator",
"FieldName":"g_inactivitySpectator",
"InputType":"number",
"MinValue":"0",
"ParamFieldName":"g_inactivitySpectator",
"DefaultValue":"500",
"Placehoder":"500",
"Suffix":"seconds",
"EnumValues":{}
},
{
"DisplayName":"Temporary Ban Period",
"Category":"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":"3600",
"Placeholder":"3600",
"Suffix":"seconds",
"EnumValues":{}
},
{
"DisplayName":"Security Level",
"Category":"Server Settings",
"Description":"Sets the server's security level",
"Keywords":"security,level,sv_securityLevel",
"FieldName":"sv_securityLevel",
"InputType":"number",
"MinValue":"0",
"ParamFieldName":"sv_securityLevel",
"DefaultValue":"23",
"Placeholder":"23",
"EnumValues":{}
},
{
"DisplayName":"Enable Pure Server",
"Category":"Server Settings",
"Description":"If enabled, only clients with verified files will be able to join the server",
"Keywords":"pure,verify,sv_pure",
"FieldName":"sv_pure",
"InputType":"checkbox",
"ParamFieldName":"sv_pure",
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"XP Scaling Factor",
"Category":"Server Settings",
"Description":"Sets the XP scaling factor. DO NOT ABUSE! Warn of high XP via hostname. Don't change this unless you know what you are doing",
"Keywords":"xp,scale,scr_xpscale",
"FieldName":"scr_xpscale",
"InputType":"enum",
"ParamFieldName":"scr_xpscale",
"DefaultValue":"1",
"EnumValues":{
"1":"No scaling (default)",
"2":"2x",
"3":"3x",
"4":"4x"
}
},
{
"DisplayName":"Enable Voice Chat",
"Category":"Server Settings",
"Description":"If set, server voice chat will be enabled (teams only)",
"Keywords":"voice,chat,sv_voice",
"FieldName":"sv_voice",
"InputType":"checkbox",
"ParamFieldName":"sv_voice",
"DefaultValue":"1",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Voice Chat Quality",
"Category":"Server 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":"9",
"Placeholder":"9",
"EnumValues":{}
},
{
"DisplayName":"Disable Chat",
"Category":"Server Settings",
"Description":"If set, chat messages from clients will be disabled",
"Keywords":"disable,chat,messages,sv_disableChat",
"FieldName":"sv_disableChat",
"InputType":"checkbox",
"ParamFieldName":"sv_disableChat",
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Allow Download From Web",
"Category":"Server Settings",
"Description":"If set, clients will be allowed to download maps and mods from a different server instead of the game server",
"Keywords":"allow,download,content,maps,mods,sv_wwwDownload",
"FieldName":"sv_wwwDownload",
"InputType":"checkbox",
"ParamFieldName":"sv_wwwDownload",
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Web Download URL",
"Category":"Server Settings",
"Description":"Sets the http URL to a usermaps and mods folder on a web server for clients to download from. Note that https does NOT work!",
"Keywords":"download,url,sv_wwwBaseUrl",
"FieldName":"sv_wwwBaseUrl",
"InputType":"url",
"ParamFieldName":"sv_wwwBaseUrl",
"DefaultValue":"",
"Placeholder":"http://example.com",
"EnumValues":{}
},
{
"DisplayName":"Enable Flood Protection",
"Category":"Server Settings",
"Description":"If enabled, chat spam protection applies. Should be enabled on non-password-protected public servers",
"Keywords":"flood,protection,sv_floodProtect",
"FieldName":"sv_floodProtect",
"InputType":"checkbox",
"ParamFieldName":"sv_floodProtect",
"DefaultValue":"1",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Reconnect Limit",
"Category":"Server Settings",
"Description":"Sets the number of times a player can reconnect after disconnection",
"Keywords":"reconnect,limit,sv_reconnectlimit",
"FieldName":"sv_reconnectlimit",
"InputType":"number",
"MinValue":"0",
"MaxValue":"1800",
"ParamFieldName":"sv_reconnectlimit",
"DefaultValue":"4",
"Placeholder":"4",
"EnumValues":{}
},
{
"DisplayName":"Allow Voting",
"Category":"Server Settings",
"Description":"If enabled, voting will be allowed on the server",
"Keywords":"vote,voting,g_allowVote",
"FieldName":"g_allowVote",
"InputType":"checkbox",
"ParamFieldName":"g_allowVote",
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Allow Client Console",
"Category":"Server Settings",
"Description":"If enabled, players will be able to access server commands",
"Keywords":"client,console,server,commands,sv_allowClientConsole",
"FieldName":"sv_allowClientConsole",
"InputType":"checkbox",
"ParamFieldName":"sv_allowClientConsole",
"DefaultValue":"1",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Server-Side Say Name",
"Category":"Server Settings",
"Description":"Sets the name that server-side 'say' commands show up as in-game",
"Keywords":"say,name,server-side,sv_sayName",
"FieldName":"sv_sayName",
"InputType":"text",
"ParamFieldName":"sv_sayName",
"DefaultValue":"^7Console",
"Placeholder":"^7Console",
"EnumValues":{}
},
{
"DisplayName":"Randomise Bot Names",
"Category":"Server Settings",
"Description":"If enabled, the names of bots will be randomised",
"Keywords":"random,bot,names,sv_randomBotNames",
"FieldName":"sv_randomBotNames",
"InputType":"checkbox",
"ParamFieldName":"sv_randomBotNames",
"DefaultValue":"1",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Replace Bots",
"Category":"Server Settings",
"Description":"If enabled, test clients will be replaced by connecting players when the server is full",
"Keywords":"replace,bots,test,clients,sv_replaceBots",
"FieldName":"sv_replaceBots",
"InputType":"checkbox",
"ParamFieldName":"sv_replaceBots",
"DefaultValue":"1",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Allow Aim Assist",
"Category":"Server Settings",
"Description":"If set, Controller Aim-Assist will be enabled",
"Keywords":"aim,assist,aim-assist,controller,sv_allowAimAssist, ",
"FieldName":"sv_allowAimAssist",
"InputType":"checkbox",
"ParamFieldName":"sv_allowAimAssist",
"DefaultValue":"1",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Allow Coloured Names",
"Category":"Server Settings",
"Description":"If enabled, colours in player names will be allowed",
"Keywords":"colored,coloured,names,sv_allowColoredNames",
"FieldName":"sv_allowColoredNames",
"InputType":"checkbox",
"ParamFieldName":"sv_allowColoredNames",
"DefaultValue":"1",
"EnumValues":{
"False":"0",
"True":"1"
}
}
]

View File

@ -0,0 +1,9 @@
[
{
"ConfigFile":"userraw/server.cfg",
"AutoMap":true,
"ConfigType":"kvp",
"ConfigFormat":"set {0} \"{1}\"",
"ConfigFormatRegex":"^set (?<key>.+?) \"?(?<value>.*?)\"?$"
}
]

464
call-of-dutymw2server.cfg Normal file
View File

@ -0,0 +1,464 @@
//////////////////////////////////////////////////
/// IW4x Server Configuration file //
//////////////////////////////////////////////////
//////////////////////////////////////////////////
// AMP CONTROLLED SETTINGS //
//////////////////////////////////////////////////
set sv_hostname "^1AMP Hosted CODMW2 Server"
set sv_motd "4Welcome to CODMW2!"
set dedicated "2"
set g_password ""
set rcon_password ""
set rcon_timeout "100"
set sv_maprotation "map mp_highrise map mp_terminal map mp_firingrange map mp_trailerpark map mp_boneyard map mp_quarry map mp_killhouse map mp_rundown map mp_rust_long map mp_nightshift map mp_afghan map mp_abandon map mp_estate_tropical map mp_crash_tropical map mp_bloc_sh map mp_checkpoint map mp_invasion map mp_storm_spring map mp_fav_tropical map mp_rust map mp_nuked map mp_shipment map mp_strike map mp_cargoship_sh map co_hunted map mp_underpass map oilrig map mp_cross_fire map mp_brecourt map mp_crash map mp_fuel2 map mp_cargoship map mp_vacant map mp_subbase map mp_storm map mp_complex map mp_favela map mp_shipment map mp_derail map mp_compact map mp_overgrown map mp_estate map mp_derail map mp_shipment_long"
set sv_randomMapRotation "0"
set g_gametype "war"
set sv_maxclients "18"
set party_maxplayers "18"
set sv_voice "1"
set sv_voicequality "9"
set sv_maxPing "0"
set sv_timeout "20"
set g_inactivity "300"
set g_inactivitySpectator "500"
set sv_kickBanTime "3600"
set sv_floodProtect "1"
set sv_reconnectlimit "4"
set logfile "2"
set g_logSync "1"
set g_log "logs/games_mp.log"
set com_logFilter "1"
set sv_securityLevel "23"
set g_allowVote "0"
set sv_allowClientConsole "1"
set sv_pure "0"
set sv_sayName "^7Console"
set sv_randomBotNames "1"
set sv_replaceBots "1"
set party_enable "0"
set sv_allowAimAssist "1"
set sv_allowColoredNames "1"
set sv_disableChat "0"
set sv_wwwDownload "0"
set sv_wwwBaseUrl ""
set _Admin ""
set _Email ""
set _Website ""
set _Location "Earth"
set scr_xpscale "1"
//////////////////////////////////////////////////
// OTHER SETTINGS //
//////////////////////////////////////////////////
//////////////////////////////////////////////////
// NON-GAMEPLAY CONFIGURATION //
//////////////////////////////////////////////////
set sv_customTextColor "" // custom color for ^;
//////////////////////////////////////////////////
// BASE GAME CONFIGURATION //
//////////////////////////////////////////////////
// //
// war - Team Deathmatch //
// dm - Free-for-all //
// dom - Domination //
// koth - Headquarters //
// sab - Sabotage //
// sd - Search and Destroy //
// arena - Arena //
// dd - Demolition //
// ctf - Capture the Flag //
// oneflag - One-Flag CTF //
// gtnw - Global Thermo-Nuclear War //
// //
//////////////////////////////////////////////////
set scr_player_forcerespawn "1" // Players respawn automatically after being fragged
set scr_thirdperson "0" // third-person mode
set scr_game_hardpoints "1" // Enable/Disable Killstreak rewards
set scr_hardpoint_allowhelicopter "1" // Allow Attack Helicopters
set scr_hardpoint_allowuav "1" // Allow UAV
set scr_hardpoint_allowartillery "1" // Allow Airstrikes
set scr_game_perks "1" // Allow players to have perks
set scr_game_allowkillcam "1" // Allow Killcam.
set scr_nukeTimer "10" // Timer when nuke goes off
set scr_diehard "0" // die-hard mode. Teammates will have to revive each other.
set scr_teambalance "1" // Enable or Disable auto balance.
set scr_game_spectatetype "2" // Allow Spectators. 0 Disabled, 1 Team/Player only, 2 Free
set scr_player_suicidespawndelay "0" // Wait before you respawn if you committed suicide.
set scr_player_sprinttime "4" // Sprint time, duration a player can run.
set scr_game_killstreakdelay "8" // Delay your killstreaks
set scr_game_objectiveStreaks "1" // Enable Chopper, AC130 and Nuke
set scr_classic "0" // Enable old-school COD4 killstreaks. UAV, Air Strike, Heli Only.
set bg_elevators "1" // Elevator Glitch Settings (default: 1 (normal). 0 = off, 2 = easy).
set bg_rocketJump "0" // Enable CoD4 Rocket Jumps.
set bg_rocketJumpScale "64" // The scale applied to the pushback force of a rocket.
set bg_climbAnything "0" // Treat any surface as a ladder.
set bg_bounces "0" // Enable Bounces (default: 0 (disabled). 1 = enabled, 2 = double).
set bg_bouncesAllAngles "0" // Enable Bounces from all angles (default: 0 (disabled). 1 = simple, 2 = all surfaces).
set bg_disableLandingSlowdown "0" // Toggle landing slowdown.
set bg_bunnyHopAuto "0" // Constantly jump when holding space.
set bg_playerCollision "1" // Push intersecting players away from each other.
set bg_playerEjection "1" // Push intersecting players away from each other.
set bg_surfacePenetration "0" // Values greater than 0 override the surface penetration depth (ability to hit players through obstacles).
set bg_bulletRange "8192" // Maximum Range used when calculating the bullet end position.
set bg_lean "1" // Enable CoD4 leaning.
//////////////////////////////////////////////////
// XP BOOST CONFIGURATION //
//////////////////////////////////////////////////
// uncomment below commands for XP config //
// by removing the // before each set dvar. //
// Change "war" gametype to your liking. //
// //
// DO NOT ABUSE! Some people like to rank. //
// DON'T BE A DICK! Warn HIGH XP via hostname. //
// Don't know what you doing? Don't touch it! //
//////////////////////////////////////////////////
//set scr_war_score_kill "0" // Amount of XP by each kill.
//set scr_war_score_headshot "0" // Amount of XP by each headshot.
//set scr_war_score_death "0" // Amount of XP by each death.
//set scr_war_score_suicide "0" // Amount of XP by each suicide.
//set scr_war_score_assist "0" // Amount of XP by each assist.
//////////////////////////////////////////////////
// HARDCORE CONFIGURATION //
//////////////////////////////////////////////////
// uncomment below commands for some hardcore //
// by removing the // before each set dvar. //
//////////////////////////////////////////////////
// set g_hardcore "1" // Enable hardcore mode
// set scr_hardcore "1" // Enable hardcore mode again...
// set ui_hud_hardcore "1" // Removes Heads up display which can be used both regular and HC
// set scr_game_deathpointloss "0" // Points Loss on death XP.
// set scr_game_onlyheadshots "0" // Enable/Disable Only Headshots mode. You can only kill players by taking headshots.
// set scr_player_maxhealth "30" // Percent of Health players will have on Respawn. (100 is normal. 30 is hardcore)
// set scr_team_fftype "1" // Enable or Disable Friendly Fire. (1 on, 2 reflect, 3 shared)
// set scr_player_healthregentime "0" // Time it takes you to recover damage. (5 is normal, 0 is hardcore)
// set scr_team_kickteamkillers "5" // Anyone who team kills, gets kicked automatically if you enable this feature.
// set scr_team_teamkillspawndelay "20" // Team Killer gets a respawn penalty of specified seconds (20).
//////////////////////////////////////////////////
// AIRDROP CONFIGURATION //
//////////////////////////////////////////////////
// uncomment below commands for airdrop config //
// by removing the // before each set dvar. //
// //
// Weight (1->1000) //
// Selection is weighted random //
// higher weights increase selection chance //
//////////////////////////////////////////////////
// set scr_airdrop_ac130 "3"
// set scr_airdrop_ammo "17"
// set scr_airdrop_counter_uav "15"
// set scr_airdrop_emp "1"
// set scr_airdrop_harrier_airstrike "7"
// set scr_airdrop_helicopter "7"
// set scr_airdrop_helicopter_flares "5"
// set scr_airdrop_helicopter_minigun "3"
// set scr_airdrop_nuke "0"
// set scr_airdrop_precision_airstrike "11"
// set scr_airdrop_predator_missile "12"
// set scr_airdrop_sentry "12"
// set scr_airdrop_stealth_airstrike "5"
// set scr_airdrop_uav "17"
//////////////////////////////////////////////////
// EMERGENCY AIRDROP CONFIGURATION //
//////////////////////////////////////////////////
// uncomment below commands for airdrop config //
// by removing the // before each set dvar. //
// //
// Weight (1->1000) //
// Selection is weighted random //
// higher weights increase selection chance //
//////////////////////////////////////////////////
// set scr_airdrop_mega_ac130 "2"
// set scr_airdrop_mega_ammo "12"
// set scr_airdrop_mega_counter_uav "16"
// set scr_airdrop_mega_emp "0"
// set scr_airdrop_mega_harrier_airstrike "5"
// set scr_airdrop_mega_helicopter "5"
// set scr_airdrop_mega_helicopter_flares "3"
// set scr_airdrop_mega_helicopter_minigun "2"
// set scr_airdrop_mega_nuke "0"
// set scr_airdrop_mega_precision_airstrike "10"
// set scr_airdrop_mega_predator_missile "14"
// set scr_airdrop_mega_sentry "16"
// set scr_airdrop_mega_stealth_airstrike "3"
// set scr_airdrop_mega_uav "12"
//////////////////////////////////////////////////
// FREE FOR ALL GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_dm_scorelimit "1500" // Score limit to win the game.
set scr_dm_timelimit "10" // Duration in minutes for the game to end if the score limit isn't reached.
set scr_dm_playerrespawndelay "-1" // How long player will wait until respawn.
set scr_dm_numlives "0" // Number of lives per player. 0 for unlimited.
set scr_dm_roundlimit "1" // Rounds per game.
set scr_dm_winlimit "1" // amount of wins needed to win a round-based game
set scr_dm_promode "0"
//////////////////////////////////////////////////
// TEAM DEATHMATCH GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_war_scorelimit "25000" // Score limit to win the game.
set scr_war_timelimit "10" // Duration in minutes for the game to end if the score limit isn't reached.
set scr_war_playerrespawndelay "-1" // How long player will wait until respawn.
set scr_war_waverespawndelay "0" // Duration is seconds before the first respawn in each round.
set scr_war_numlives "0" // Number of lives per player 0 for unlimited.
set scr_war_roundlimit "1" // Rounds per game.
set scr_war_winlimit "1" // amount of wins needed to win a round-based game
set scr_war_promode "0"
//////////////////////////////////////////////////
// DOMINATION GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_dom_scorelimit "200" // Score limit to win the game.
set scr_dom_timelimit "0" // Duration in minutes for the game to end if the score limit isn't reached.
set scr_dom_playerrespawndelay "0" // How long player will wait until respawn.
set scr_dom_waverespawndelay "0" // Duration is seconds before the first respawn in each round.
set scr_dom_numlives "0" // Number of lives per player per game. 0 is unlimited.
set scr_dom_roundlimit "1" // Rounds per game
set scr_dom_winlimit "1" // amount of wins needed to win a round-based game
set scr_dom_promode "0"
//////////////////////////////////////////////////
// DEMOLITION GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_dd_scorelimit "1" // Score limit needed to win.
set scr_dd_timelimit "2.5" // Duration in minutes for the game to end if the score limit isn't reached.
set scr_dd_playerrespawndelay "0" // How long player will wait until respawn.
set scr_dd_waverespawndelay "0" // Duration is seconds before the first respawn in each round.
set scr_dd_numlives "0" // Number of lives per player per game. 0 is unlimited.
set scr_dd_roundswitch "1" // Rounds before the teams switch the sides.
set scr_dd_bombtimer "45" // Time the bomb takes to detonate.
set scr_dd_defusetime "5" // Time taken to defuse the bomb.
set scr_dd_planttime "5" // Time it takes to plant a bomb in seconds.
set scr_dd_roundlimit "3" // Rounds the game is limited to, if there are no winners.
set scr_dd_promode "0"
//////////////////////////////////////////////////
// SEARCH AND DESTROY GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_sd_scorelimit "1" // Score limit required to win the game.
set scr_sd_timelimit "2.5" // Duration in minutes for the game to end if the score limit isn't reached.
set scr_sd_playerrespawndelay "0" // How long player will wait until respawn.
set scr_sd_waverespawndelay "0" // Duration is seconds before the first respawn in each round.
set scr_sd_numlives "1" // Number of lives per player per game.
set scr_sd_roundlimit "0" // Rounds the game is limited to 0 for unlimited.
set scr_sd_winlimit "4" // amount of wins needed to win a round-based game.
set scr_sd_roundswitch "3" // after X rounds, switch sides.
set scr_sd_bombtimer "45" // Time taken for the bomb to detonate.
set scr_sd_defusetime "5" // Time taken to defuse the bomb.
set scr_sd_multibomb "0" // allow multiple people to 'have the bomb'.
set scr_sd_planttime "5" // How long will it take player to 'plant the bomb'.
set scr_sd_promode "0"
//////////////////////////////////////////////////
// SABOTAGE GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_sab_scorelimit "0" // Score limit to win the match.
set scr_sab_timelimit "20" // Duration in minutes for the game to end if the score limit isn't reached.
set scr_sab_bombtimer "30" // Duration in seconds the bomb takes to detonate.
set scr_sab_defusetime "5" // Time taken to defuse the bomb.
set scr_sab_hotpotato "0" // One bomb that the teams must fight over. One defending and one have to plant at the site.
set scr_sab_numlives "0" // Number of lives per player per game.
set scr_sab_planttime "2.5" // Time taken to plant the bomb.
set scr_sab_playerrespawndelay "7.5" // Time before respawn.
set scr_sab_roundlimit "1" // Rounds per game.
set scr_sab_roundswitch "1" // Rounds needed to be played before the teams switch sides.
set scr_sab_waverespawndelay "0" // Time delay for first respawn before the game.
set scr_sab_promode "0"
//////////////////////////////////////////////////
// CAPTURE THE FLAG GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_ctf_scorelimit "0" // Target score before the round ends.
set scr_ctf_timelimit "10" // Duration in minutes for the game to end if the score limit isn't reached.
set scr_ctf_numlives "0" // Number of lives per player 0 for unlimited.
set scr_ctf_halftime "1" // Half-Time
set scr_ctf_roundlimit "1" // How many rounds match would last.
set scr_ctf_returntime "30" // How many seconds before flag returns to base without nobody touching it.
set scr_ctf_playerrespawndelay "0" // Respawn wait in seconds.
set scr_ctf_waverespawndelay "10" // Time delay for first respawn before the game.
set scr_ctf_promode "0"
//////////////////////////////////////////////////
// ONE FLAG GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_oneflag_scorelimit "1" // Target score before the round ends.
set scr_oneflag_timelimit "3" // Duration in minutes for the game to end if the score limit isn't reached.
set scr_oneflag_numlives "0" // number of lives per player 0 for unlimited.
set scr_oneflag_playerrespawndelay "0" // Respawn wait in seconds.
set scr_oneflag_roundlimit "1" // How many rounds match would last.
set scr_oneflag_roundswitch "1" // Rounds before the teams switch sides.
set scr_oneflag_waverespawndelay "0" // First respawn delay for each round.
set scr_oneflag_promode "0"
//////////////////////////////////////////////////
// HEADQUARTERS GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_koth_scorelimit "250" // Score limit to win the game.
set scr_koth_timelimit "15" // Duration in minutes the game will continue if the score isn't reached.
set scr_koth_numlives "0" // Number of lives per game. 0 for unlimited.
set scr_koth_playerrespawndelay "0" // Players respawn wait.
set scr_koth_roundlimit "1" // Rounds to be played.
set scr_koth_roundswitch "1" // Rounds to be played before teams switch sides.
set scr_koth_winlimit "1" // rounds per game
set scr_koth_waverespawndelay "0" // First respawn delay for each round.
set scr_koth_promode "0"
//////////////////////////////////////////////////
// ARENA GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_arena_scorelimit "1" // Score limit to win the game.
set scr_arena_timelimit "2.5" // Duration in minutes the game will continue if the score isn't reached.
set scr_arena_numlives "1" // Number of lives per game 0 for unlimited.
set scr_arena_roundlimit "0" // Rounds to be played.
set scr_arena_roundswitch "3" // Rounds before the teams switch sides.
set scr_arena_winlimit "4" // rounds per game
set scr_arena_promode "0"
//////////////////////////////////////////////////
// GLOBAL THERMONUCLEAR WAR GAMETYPE SETTINGS //
//////////////////////////////////////////////////
set scr_gtnw_scorelimit "101" // Score limit to win the game.
set scr_gtnw_timelimit "10" // Duration in minutes the game will continue if the score isn't reached.
set scr_gtnw_numlives "0" // Number of lives per game 0 for unlimited.
set scr_gtnw_playerrespawndelay "0" // Players respawn wait.
set scr_gtnw_roundlimit "1" // Rounds to be played.
set scr_gtnw_roundswitch "0" // Rounds before the teams switch sides.
set scr_gtnw_winlimit "1" // rounds per game
set scr_gtnw_waverespawndelay "0" // First respawn delay for each round.
set scr_gtnw_promode "0"
//////////////////////////////////////////////////
// MAP SHORT NAMES ROTATION LIST //
//////////////////////////////////////////////////
// //
// mp_afghan - Afghan //
// mp_derail - Derail //
// mp_estate - Estate //
// mp_favela - Favela //
// mp_highrise - Highrise //
// mp_invasion - Invasion //
// mp_checkpoint - Karachi //
// mp_quarry - Quarry //
// mp_rundown - Rundown //
// mp_rust - Rust //
// mp_boneyard - Scrapyard //
// mp_nightshift - Skidrow //
// mp_subbase - Sub Base //
// mp_terminal - Terminal //
// mp_underpass - Underpass //
// mp_brecourt - Wasteland //
// //
//// DLC1 STIMULUS ///////////////////////////////
// //
// mp_complex - Bailout //
// mp_crash - Crash //
// mp_overgrown - Overgrown //
// mp_compact - Salvage //
// mp_storm - Storm //
// //
//// DLC2 RESURGENCE /////////////////////////////
// //
// mp_abandon - Carnival //
// mp_fuel2 - Fuel //
// mp_strike - Strike //
// mp_trailerpark - Trailer Park //
// mp_vacant - Vacant //
// //
//// DLC3 NUKETOWN ///////////////////////////////
// //
// mp_nuked - Nuketown //
// //
/// DLC4 CLASSICS 1 //////////////////////////////
// //
// mp_cross_fire - Crossfire //
// mp_bloc - Bloc //
// mp_cargoship - Cargoship //
// //
/// DLC5 CLASSICS 2 //////////////////////////////
// //
// mp_killhouse - Killhouse //
// mp_bog_sh - Bog //
// //
/// DLC6 FREIGHTER ///////////////////////////////
// //
// mp_cargoship_sh - Freighter //
// //
/// DLC7 RESURRECTION ////////////////////////////
// //
// mp_shipment - Shipment //
// mp_shipment_long - Long:Shipment //
// mp_rust_long - Long: Rust //
// mp_firingrange - Firing Range //
// //
/// DLC8 RECYCLED ////////////////////////////////
// //
// mp_storm_spring - Chemical Plant //
// mp_fav_tropical - Tropical: Favela //
// mp_estate_tropical - Tropical: Estate //
// mp_crash_tropical - Tropical: Crash //
// mp_bloc_sh - Forgotten City //
// //
/// DLC9 CLASSICS 3 //////////////////////////////
// //
// mp_backlot - Backlot //
// mp_broadcast - Broadcast //
// mp_carentan - Chinatown //
// mp_citystreets - District //
// mp_convoy - Ambush //
// mp_countdown - Countdown //
// mp_crash_snow - Winter Crash //
// mp_farm - Downpour //
// mp_pipeline - Pipeline //
// mp_showdown - Showdown //
// //
/// DLC10 MW3 ////////////////////////////////////
// //
// mp_dome - Dome //
// mp_hardhat - Hardhat //
// mp_paris - Resistance //
// mp_seatown - Seatown //
// mp_bravo - Mission //
// mp_underground - Underground //
// mp_plaza2 - Arkaden //
// mp_village - Village //
// mp_alpha - Lockdown //
// //
/// SP MAPS to MP ////////////////////////////////
// //
// oilrig - Oilrig //
// iw4_credits - Test map //
// co_hunted - Village //
// //
//////////////////////////////////////////////////

View File

@ -0,0 +1,72 @@
[
{
"UpdateStageName":"Userraw Directory Creation",
"UpdateSourcePlatform":"All",
"UpdateSource":"CreateDirectory",
"UpdateSourceArgs":"{{$FullBaseDir}}userraw"
},
{
"UpdateStageName":"Mods Directory Creation",
"UpdateSourcePlatform":"All",
"UpdateSource":"CreateDirectory",
"UpdateSourceArgs":"{{$FullBaseDir}}mods"
},
{
"UpdateStageName":"SteamCMD Game Download",
"UpdateSourcePlatform":"All",
"UpdateSource":"SteamCMD",
"UpdateSourceData":"10190",
"UpdateSourceArgs":"10190",
"ForceDownloadPlatform":"Windows"
},
{
"UpdateStageName":"AlterWare Launcher Download",
"UpdateSourcePlatform":"Windows",
"UpdateSource":"GithubRelease",
"UpdateSourceArgs":"mxve/alterware-launcher",
"UpdateSourceData":"alterware-launcher.exe",
"UpdateSourceTarget":"{{$FullBaseDir}}",
"OverwriteExistingFiles":true
},
{
"UpdateStageName":"AlterWare Launcher Download",
"UpdateSourcePlatform":"Linux",
"UpdateSource":"GithubRelease",
"UpdateSourceArgs":"mxve/alterware-launcher",
"UpdateSourceData":"alterware-launcher-x86_64-unknown-linux-gnu.tar.gz",
"UpdateSourceTarget":"{{$FullBaseDir}}",
"UnzipUpdateSource":true,
"OverwriteExistingFiles":true,
"DeleteAfterExtract":true
},
{
"UpdateStageName":"Client Installation",
"UpdateSourcePlatform":"Windows",
"UpdateSource":"Executable",
"UpdateSourceData":"cmd.exe",
"UpdateSourceArgs":"/C cd call-of-dutymw2\\10190 && .\\alterware-launcher.exe iw4x --update --skip-launcher-update --bonus --force"
},
{
"UpdateStageName":"Client Installation",
"UpdateSourcePlatform":"Linux",
"UpdateSource":"Executable",
"UpdateSourceData":"/bin/bash",
"UpdateSourceArgs":"-c 'cd ./call-of-dutymw2/10190 && ./alterware-launcher iw4x --update --skip-launcher-update --bonus --force'"
},
{
"UpdateStageName":"Config File Download",
"UpdateSourcePlatform":"All",
"UpdateSource":"FetchURL",
"UpdateSourceData":"https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/call-of-dutymw2server.cfg",
"UpdateSourceArgs":"server.cfg",
"UpdateSourceTarget":"{{$FullBaseDir}}userraw",
"OverwriteExistingFiles":false
},
{
"UpdateStageName":"Initialise Wine",
"UpdateSourcePlatform":"Linux",
"UpdateSource":"Executable",
"UpdateSourceData":"/bin/bash",
"UpdateSourceArgs":"-c 'WINEPREFIX=\"{{$FullRootDir}}.wine\" WINEARCH=win32 /usr/bin/wineboot --init --update'"
}
]