From 1ddc53cf4c8a40deb12ed1f185f7462327ecd54c Mon Sep 17 00:00:00 2001 From: James Manker Date: Thu, 17 Feb 2022 20:47:43 -0600 Subject: [PATCH] Add Killing Floor 2 (draft) This is the beginning of the Killing Floor 2 config. It needs further settings added before release, but currently runs and can set the starting map. Known issues: The console does not connect as this starts a separate process. Cannot add all ports needed due to 3 port limitation: https://github.com/CubeCoders/AMP/issues/582 --- killing-floor-2.kvp | 76 ++++++++++++++++++++++++++++++++++ killing-floor-2config.json | 85 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 161 insertions(+) create mode 100644 killing-floor-2.kvp create mode 100644 killing-floor-2config.json diff --git a/killing-floor-2.kvp b/killing-floor-2.kvp new file mode 100644 index 0000000..a33e9d3 --- /dev/null +++ b/killing-floor-2.kvp @@ -0,0 +1,76 @@ +Meta.DisplayName=Killing Floor 2 +Meta.Description=Killing Floor 2 Dedicated Server +Meta.OS=Windows, Linux +Meta.Arch=x86_64 +Meta.Author=IceOfWraith +Meta.URL=https://store.steampowered.com/app/232090/Killing_Floor_2/ +Meta.DisplayImageSource=steam:232090 +Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.ApplicationPort2} +Meta.ConfigManifest=killing-floor-2config.json +Meta.MetaConfigManifest= +Meta.ConfigRoot=killing-floor-2.kvp +Meta.MinAMPVersion= +Meta.SpecificDockerImage= +Meta.ContainerPolicy=Supported +Meta.Prerequsites=[] +Meta.ConfigReleaseState=NotSpecified +App.DisplayName=Killing Floor 2 +App.RootDir=./killing-floor-2/ +App.BaseDirectory=./killing-floor-2/232130/ +App.ExecutableWin=232130\Binaries\Win64\KFServer.exe +App.ExecutableLinux=232130/Binaries/Win64/KFGameSteamServer.bin.x86_64 +App.WorkingDir=232130 +App.LinuxCommandLineArgs= +App.WindowsCommandLineArgs= +App.CommandLineArgs={{Map}}?Game={{Game}}?maxplayers={{$MaxUsers}} -Port={{$ApplicationPort1}} -QueryPort={{$ApplicationPort2}} -Multihome={{$ApplicationIPBinding}} {{$FormattedArgs}} +App.AppSettings={} +App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:{{$FullRootDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"232090"} +App.CommandLineParameterFormat=-{0}="{1}" +App.CommandLineParameterDelimiter= +App.ExitMethod=OS_CLOSE +App.ExitTimeout=30 +App.ExitString=stop +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.ApplicationPort1=7777 +App.ApplicationPort2=27015 +App.ApplicationPort3=20560 +App.RemoteAdminPort=0 +App.MaxUsers=6 +App.UseRandomAdminPassword=False +App.RemoteAdminPassword=Password123 +App.AdminMethod=STDIO +App.AdminLoginTransform=None +App.RCONConnectDelaySeconds=5 +App.RCONConnectRetrySeconds=5 +App.UpdateSources=[{"UpdateStageName": "SteamCMD Download","UpdateSourcePlatform": "All", "UpdateSource": "SteamCMD", "UpdateSourceData": "232130"},{"UpdateStageName":"Start Server","UpdateSourcePlatform":"All","UpdateSource":"StartApplication"},{"UpdateStageName":"Wait For Server Start","UpdateSourcePlatform":"All","UpdateSource":"WaitForStartupComplete"},{"UpdateStageName":"Stop Server","UpdateSourcePlatform":"All","UpdateSource":"ShutdownApplication"}] +App.Compatibility=None +App.SteamUpdateAnonymousLogin=True +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.SupportsUniversalSleep=False +App.UniversalSleepApplicationUDPPort=1 +App.UniversalSleepSteamQueryPort=2 +App.WakeupMode=Any +App.ApplicationReadyMode=Immediate +App.TemplateMatchRegex={{(\$?[\w]+)}} +Console.FilterMatchRegex= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$ +Console.AppReadyRegex=^Server is ready.$ +Console.UserJoinRegex=^User (?.+?) \((?-?d+)\) connected from \[::ffff:(?.+?)\]$ +Console.UserLeaveRegex=^User (?.+?) \((?-?d+)\) disconnected\. Reason: (.+?)$ +Console.UserChatRegex=^(?.+?): (?.+)$ +Console.UpdateAvailableRegex=^\[\d\d:\d\d:\d\d\] \[INFO\] A new server update is available! v[\d\.]+.$ +Console.SuppressLogAtStart=False +Console.ActivateLogRegex= +Console.UserActions={} +Limits.SleepMode=True +Limits.SleepOnStart=False +Limits.SleepDelayMinutes=5 +Limits.DozeDelay=2 +Limits.AutoRetryCount=5 diff --git a/killing-floor-2config.json b/killing-floor-2config.json new file mode 100644 index 0000000..703f55e --- /dev/null +++ b/killing-floor-2config.json @@ -0,0 +1,85 @@ +[ + { + "DisplayName": "Starting Map", + "Category": "Server Config", + "Description": "Set the server's starting map. Not all game modes work with all maps.", + "Keywords": "Map", + "FieldName": "Map", + "InputType": "enum", + "IsFlagArgument": false, + "ParamFieldName": "Map", + "IncludeInCommandLine": false, + "DefaultValue": "KF-Bioticslab", + "EnumValues": { + "KF-Airship": "Airship", + "KF-AshwoodAsylum": "Ashwood Asylum", + "KF-Biolapse": "Biolapse", + "KF-Bioticslab": "Biotics Lab", + "KF-BlackForest": "Black Forest", + "KF-BurningParis": "Burning Paris", + "KF-CarillonHamlet": "Carillon Hamlet", + "KF-Catacombs": "Catacombs", + "KF-ContainmentStation": "Containment Station", + "KF-Desolation": "Desolation", + "KF-DieSector": "DieSector", + "KF-Dystopia2029": "Dystopia 2029", + "KF-Elysium": "Elysium", + "KF-EvacuationPoint": "Evacuation Point", + "KF-Farmhouse": "Farmhouse", + "KF-HellmarkStation": "Hellmark Station", + "KF-HostileGrounds": "Hostile Grounds", + "KF-InfernalRealm": "Infernal Realm", + "KF-KrampusLair": "Krampus Lair", + "KF-Lockdown": "Lockdown", + "KF-MonsterBall": "Monster Ball", + "KF-Moonbase": "Moonbase", + "KF-Netherhold": "Netherhold", + "KF-Nightmare": "Nightmare", + "KF-Nuked": "Nuked", + "KF-Outpost": "Outpost", + "KF-PowerCore_Holdout": "Power Core Holdout", + "KF-Prison": "Prison", + "KF-Sanitarium": "Sanitarium", + "KF-Santasworkshop": "Santa's Workshop", + "KF-ShoppingSpree": "Shopping Spree", + "KF-Spillway": "Spillway", + "KF-SteamFortress": "Steam Fortress", + "KF-TheDescent": "The Descent", + "KF-TragicKingdom": "Tragic Kingdom", + "KF-VolterManor": "Volter Manor", + "KF-ZedLanding": "ZedLanding" + } + }, + { + "DisplayName": "Starting Game Mode", + "Category": "Server Config", + "Description": "Set the server's starting game mode. Not all game modes work with all maps.", + "Keywords": "Game,mode", + "FieldName": "Game", + "InputType": "enum", + "IsFlagArgument": false, + "ParamFieldName": "Game", + "IncludeInCommandLine": false, + "DefaultValue": "KFGameContent.KFGameInfo_Survival", + "EnumValues": { + "KFGameContent.KFGameInfo_Survival": "Survival", + "KFGameContent.KFGameInfo_WeeklySurvival": "Weekly", + "KFGameContent.KFGameInfo_VersusSurvival": "Versus", + "KFGameContent.KFGameInfo_Endless": "Endless", + "KFGameContent.KFGameInfo_Objective": "Objective" + } + }, + { + "DisplayName": "Max Players", + "Category": "Server Config", + "Description": "Set server maximum amount of players", + "Keywords": "Max,Users,players", + "FieldName": "$MaxUsers", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "maxplayers", + "IncludeInCommandLine": false, + "DefaultValue": "12", + "EnumValues": {} + }, +] \ No newline at end of file