Add Call of Duty: Modern Warfare 3 (#193)

This commit is contained in:
Greelan 2022-11-10 10:56:28 +11:00 committed by GitHub
parent fc2d3c930d
commit 30076ca809
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 307 additions and 0 deletions

86
call-of-dutymw3.kvp Normal file
View File

@ -0,0 +1,86 @@
Meta.DisplayName=Call of Duty: Modern Warfare 3
Meta.Description=Call of Duty: Modern Warfare 3 Dedicated Server
Meta.OS=Windows, Linux
Meta.Arch=x86_64
Meta.Author=Greelan
Meta.URL=https://www.callofduty.com/au/en/mw3
Meta.DisplayImageSource=steam:42690
Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$MasterServerPort}
Meta.ConfigManifest=call-of-dutymw3config.json
Meta.MetaConfigManifest=call-of-dutymw3metaconfig.json
Meta.ConfigRoot=call-of-dutymw3.kvp
Meta.MinAMPVersion=2.4.0.8
Meta.SpecificDockerImage=cubecoders/ampbase:wine
Meta.DockerRequired=False
Meta.ContainerPolicy=RecommendedOnLinux
Meta.ContainerPolicyReason=The server requires Wine and Xvfb to run on Linux. Using a container avoids the need to install these dependencies on the host.
Meta.Prerequsites=[]
Meta.ExtraContainerPackages=[]
Meta.ConfigReleaseState=NotSpecified
Meta.NoCommercialUsage=False
App.DisplayName=Call of Duty: Modern Warfare 3
App.RootDir=./call-of-dutymw3/
App.BaseDirectory=./call-of-dutymw3/42750/
App.ExecutableWin=42750\iw5mp_server.exe
App.ExecutableLinux=/usr/bin/xvfb-run
App.WorkingDir=42750
App.LinuxCommandLineArgs=-a wine "./iw5mp_server.exe"
App.WindowsCommandLineArgs=
App.CommandLineArgs={{$PlatformArgs}} +set sv_config "server.cfg" +set net_queryPort {{$OpenGamePort}} +set net_port {{$SecureGamePort}} +set net_authPort {{$AuthPort}} +set net_masterServerPort {{$MasterServerPort}} +start_map_rotate {{$FormattedArgs}}
App.UseLinuxIOREDIR=False
App.AppSettings={}
App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"42690"}
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":"UDP","Port":27014,"Ref":"OpenGamePort","Name":"Open Game Port","Description":"Port for Steam visible server game traffic"},{"Protocol":"UDP","Port":27015,"Ref":"SecureGamePort","Name":"Secure Game Port","Description":"Port for secure game traffic"},{"Protocol":"UDP","Port":8766,"Ref":"AuthPort","Name":"Authentication Port","Description":"Port for Steam authentication traffic"},{"Protocol":"UDP","Port":27016,"Ref":"MasterServerPort","Name":"Master Server Port","Description":"Port for Steam master server or browser traffic"}]
App.PrimaryApplicationPortRef=OpenGamePort
App.UniversalSleepApplicationUDPPort=OpenGamePort
App.UniversalSleepSteamQueryPort=MasterServerPort
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=login {0}
App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"42750","ForceDownloadPlatform":"Windows"}]
App.Compatibility=None
App.SteamUpdateAnonymousLogin=False
App.SteamForceLoginPrompt=False
App.RapidStartup=False
App.MonitorChildProcess=True
App.MonitorChildProcessWaitMs=1000
App.MonitorChildProcessName=wine
App.SupportsUniversalSleep=True
App.WakeupMode=Any
App.ApplicationReadyMode=Immediate
App.TemplateMatchRegex={{(\$?[\w]+)}}
Console.FilterMatchRegex=
Console.FilterMatchReplacement=
Console.ThrowawayMessageRegex=^((WARNING|ERROR): Shader.+|\d+:err:ole:.*|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=5

212
call-of-dutymw3config.json Normal file
View File

@ -0,0 +1,212 @@
[
{
"DisplayName":"Server Name",
"Category":"Server Settings",
"Description":"Sets the name of the server",
"Keywords":"server,name",
"FieldName":"sv_hostname",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"sv_hostname",
"IncludeInCommandLine":false,
"DefaultValue":"AMP Powered Call of Duty: Modern Warfare 3 Server",
"EnumValues":{}
},
{
"DisplayName":"Make Server Public",
"Category":"Server Settings",
"Description":"If enabled, the server will be visible publicly. Otherwise it will only be accessible from the local network",
"Keywords":"public,visible",
"FieldName":"dedicated",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"dedicated",
"IncludeInCommandLine":true,
"DefaultValue":"2",
"EnumValues":{
"True":"2",
"False":"1"
}
},
{
"DisplayName":"Server Password",
"Category":"Server Settings",
"Description":"Sets the password to join the server",
"Keywords":"password",
"FieldName":"g_password",
"InputType":"password",
"IsFlagArgument":false,
"ParamFieldName":"g_password",
"IncludeInCommandLine":false,
"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",
"FieldName":"rcon_password",
"InputType":"password",
"IsFlagArgument":false,
"ParamFieldName":"rcon_password",
"IncludeInCommandLine":false,
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Player Limit",
"Category":"Server Settings",
"Description":"The maximum number of players allowed on the server",
"Keywords":"max,players,limit",
"FieldName":"$MaxUsers",
"InputType":"number",
"MinValue":"1",
"MaxValue":"18",
"IsFlagArgument":false,
"ParamFieldName":"sv_maxclients",
"IncludeInCommandLine":false,
"DefaultValue":"16",
"EnumValues":{}
},
{
"DisplayName":"Private Player Limit",
"Category":"Server Settings",
"Description":"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",
"FieldName":"sv_privateClients",
"InputType":"number",
"MinValue":"0",
"MaxValue":"18",
"IsFlagArgument":false,
"ParamFieldName":"sv_privateClients",
"IncludeInCommandLine":false,
"DefaultValue":"0",
"EnumValues":{}
},
{
"DisplayName":"Private Player Password",
"Category":"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",
"FieldName":"sv_privatePassword",
"InputType":"password",
"IsFlagArgument":false,
"ParamFieldName":"sv_privatePassword",
"IncludeInCommandLine":false,
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Map Rotation",
"Category":"Server Settings",
"Description":"Sets the dedicated server play list (DSPL) for map rotation. Valid game options are controlled via the dedicated server recipe (DSR) specified in the DSPL",
"Keywords":"map,rotation",
"FieldName":"sv_maprotation",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"sv_maprotation",
"IncludeInCommandLine":false,
"DefaultValue":"default",
"EnumValues":{}
},
{
"DisplayName":"Server Voice Chat",
"Category":"Server Settings",
"Description":"Sets the server voice chat configuration",
"Keywords":"voice,chat",
"FieldName":"sv_voice",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"sv_voice",
"IncludeInCommandLine":false,
"DefaultValue":"2",
"EnumValues":{
"0":"No Chat",
"1":"Free Chat",
"2":"Team Chat (default)"
}
},
{
"DisplayName":"Enable Voting",
"Category":"Server Settings",
"Description":"If enabled, voting is allowed for player kick, map restart and next map",
"Keywords":"vote,voting",
"FieldName":"g_allowVote",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"g_allowVote",
"IncludeInCommandLine":false,
"DefaultValue":"1",
"EnumValues":{
"True":"1",
"False":"0"
}
},
{
"DisplayName":"Enable Dead Chat",
"Category":"Server Settings",
"Description":"If enabled, dead players will be allowed to chat with living players",
"Keywords":"dead,chat",
"FieldName":"g_deadChat",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"g_deadChat",
"IncludeInCommandLine":false,
"DefaultValue":"0",
"EnumValues":{
"True":"1",
"False":"0"
}
},
{
"DisplayName":"Inactivity Kick Period",
"Category":"Server Settings",
"Description":"Time before the server will kick a player for inactivity",
"Keywords":"inactivity,afk,period",
"FieldName":"g_inactivity",
"InputType":"number",
"IsFlagArgument":false,
"MinValue":"0",
"MaxValue":"10000",
"ParamFieldName":"g_inactivity",
"IncludeInCommandLine":false,
"DefaultValue":"120",
"Suffix":"seconds",
"Placeholder":"0 - 10000",
"EnumValues":{}
},
{
"DisplayName":"Temporary Ban Period",
"Category":"Server Settings",
"Description":"Time for a player temporary ban (on kick/tempban)",
"Keywords":"ban,period,temporary",
"FieldName":"sv_kickBanTime",
"InputType":"number",
"IsFlagArgument":false,
"MinValue":"0",
"MaxValue":"3600",
"ParamFieldName":"sv_kickBanTime",
"IncludeInCommandLine":true,
"DefaultValue":"300",
"Suffix":"seconds",
"Placeholder":"0 - 3600",
"EnumValues":{}
},
{
"DisplayName":"Enable Flood Protection",
"Category":"Server Settings",
"Description":"If enabled, flood protection applies, so user commands are throttled. Should be enabled on non-password-protected public servers",
"Keywords":"flood,protection",
"FieldName":"sv_floodProtect",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"sv_floodProtect",
"IncludeInCommandLine":true,
"DefaultValue":"1",
"EnumValues":{
"True":"1",
"False":"0"
}
}
]

View File

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