From a6b6f3529472059a2ae51b44b2de6dd8da56bc46 Mon Sep 17 00:00:00 2001 From: PhonicUK Date: Thu, 14 Oct 2021 14:53:11 +0100 Subject: [PATCH] Added Last Oasis and Kaboom, updated Valheim. --- kaboom.kvp | 48 ++++++++++ kaboomconfig.json | 203 ++++++++++++++++++++++++++++++++++++++++++ last-oasis.kvp | 55 ++++++++++++ last-oasisconfig.json | 54 +++++++++++ valheim.kvp | 17 ++-- valheimconfig.json | 33 ++++--- valheimplus.kvp | 4 +- 7 files changed, 390 insertions(+), 24 deletions(-) create mode 100644 kaboom.kvp create mode 100644 kaboomconfig.json create mode 100644 last-oasis.kvp create mode 100644 last-oasisconfig.json diff --git a/kaboom.kvp b/kaboom.kvp new file mode 100644 index 0000000..9d980f8 --- /dev/null +++ b/kaboom.kvp @@ -0,0 +1,48 @@ +Meta.DisplayName=Kaboom! +Meta.Description=Dedicated server for Kaboom! - AMP Exclusive +Meta.OS=Linux +Meta.Author=CubeCoders Limited +Meta.URL=https://kaboom.gg/ +Meta.DisplayImageSource=steam:1574670 +Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.ApplicationPort2} +Meta.ConfigManifest=kaboomconfig.json +Meta.ConfigRoot=kaboom.kvp +Meta.MinAMPVersion=2.2.2.0 +App.DisplayName=Kaboom +App.RootDir=./Kaboom/ +App.BaseDirectory=./Kaboom/1574860/ +App.ExecutableWin= +App.ExecutableLinux=1574860/LinuxHeadless_Core.x86_64 +App.WorkingDir=1574860 +App.CommandLineArgs=+ip {{$ApplicationIPBinding}} +port {{$ApplicationPort1}} +queryport {{$ApplicationPort2}} {{$FormattedArgs}} +amptoken "{{$AMPToken}}" +App.EnvironmentVariables={"LD_LIBRARY_PATH": "./linux64:%LD_LIBRARY_PATH%", "SteamAppId": "1574860"} +App.CommandLineParameterFormat=+{0} "{1}" +App.ExitMethod=String +App.ExitString=stop +App.HasWriteableConsole=True +App.HasReadableConsole=True +App.ApplicationIPBinding=0.0.0.0 +App.ApplicationPort1=7777 +App.ApplicationPort2=27015 +App.ApplicationPort3=0 +App.RemoteAdminPort=40100 +App.MaxUsers=8 +App.UseRandomAdminPassword=False +App.RemoteAdminPassword= +App.AdminMethod=STDIO +App.UpdateSources=[{"UpdateStageName": "Steam Common Components","UpdateSourcePlatform": "Linux", "UpdateSource": "SteamCMD", "UpdateSourceData": "1007", "UpdateSourceTarget": "1574860"},{"UpdateStageName": "Game Server Download","UpdateSourcePlatform": "Linux", "UpdateSource": "SteamCMD", "UpdateSourceData": "1574860"}] +App.Compatibility=None +App.SteamUpdateAnonymousLogin=False +App.SteamForceLoginPrompt=False +App.SteamForceWindowsVersion=False +App.ApplicationReadyMode=RegexMatch +App.StartupAuthenticationRequired=True +App.RapidStartup=True +Console.FilterMatchRegex=^\d\d\/\d\d\/\d{4} \d\d:\d\d:\d\d: +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$|^RecordSteamInterfaceCreation|^CAppInfoCacheReadFromDiskThread|^CApplicationManagerPopulateThread|^Mirror|^\[S_API|^Warning: failed to init SDL|^Warning: failed to set thread priority|^Warning: support for elevated priorities|^Setting breakpad minidump|^Setting up 6 worker threads|^\s*Thread -> id: .+$|^The AnimationClip '|^Shader|^Found path:|^Mono|^Preloaded 'libsteam_api\.so'$|^[Subsystems]|^Forcing GfxDevice: Null$|^NullGfxDevice:$|^Version: NULL 1\.0 \[1\.0\]$|^Renderer: Null Device$|^Vendor: Unity Technologies$|^Begin MonoManager ReloadAssembly$|(DontDestroyOnLoad)$ +Console.AppReadyRegex=^Server started listening$ +Console.UserJoinRegex=^Added Player "(?.+?)" \((?-?\d+)\) \[::ffff:(?.+?)\]$ +Console.UserLeaveRegex=^Removed Player "(?.+?)" \((?-?\d+)\)$ +Console.UserChatRegex= +Console.UserActions={"Kick": "kick {{userid}}", "Ban": "ban {{userid}}", "Ban IP": "banip {{userid}}", "Smite": "smite {{userid}}"} diff --git a/kaboomconfig.json b/kaboomconfig.json new file mode 100644 index 0000000..ee2913c --- /dev/null +++ b/kaboomconfig.json @@ -0,0 +1,203 @@ +[ + { + "DisplayName": "Server Name", + "Description": "Server name as it appears in the server list", + "FieldName": "servername", + "InputType": "text", + "Category": "Server", + "ParamFieldName": "servername", + "IncludeInCommandLine": true, + "DefaultValue": "My Kaboom! Server" + }, + { + "DisplayName": "Server Region", + "Description": "Where in the world the server is located", + "FieldName": "region", + "Category": "Server", + "ParamFieldName": "region", + "IncludeInCommandLine": true, + "InputType": "enum", + "EnumValues": { + "0": "EU West", + "10": "EU Central", + "20": "EU Eastern", + "30": "US West", + "40": "US Central", + "50": "US Eastern", + "60": "Canada", + "70": "South America", + "80": "South East Asia", + "90": "Australia", + "210": "China", + "220": "Russia", + "999": "Other" + }, + "DefaultValue": "0" + }, + { + "DisplayName": "Bot Fill Mode", + "Description": "How should bots be used to manage server population", + "FieldName": "botmode", + "Category": "Server", + "ParamFieldName": "botmode", + "IncludeInCommandLine": true, + "InputType": "enum", + "EnumValues": { + "NoBots": "No Bots", + "MaintainMinimum": "Fill to minimum lobby size", + "FillRemainingSpaces": "Fill all remaining spaces", + "ReplaceLeaversOnly": "Only replace match leavers" + }, + "DefaultValue": "NoBots" + }, + { + "DisplayName": "Respawn Delay", + "Description": "How long the server should wait after a player is eliminated before respawning them.", + "FieldName": "respawndelay", + "Category": "Server", + "ParamFieldName": "respawndelay", + "IncludeInCommandLine": true, + "InputType": "number", + "DefaultValue": "5" + }, + { + "DisplayName": "Invulnerability Time", + "Description": "How long a player is invulnerable for after respawning.", + "FieldName": "saferespawntime", + "Category": "Server", + "ParamFieldName": "saferespawntime", + "IncludeInCommandLine": true, + "InputType": "number", + "DefaultValue": "2" + }, + { + "DisplayName": "Auto Lobby", + "Description": "Automatic lobbies do not have a lobby leader, and will start automatically once the player requirements are met.", + "FieldName": "autolobby", + "Category": "Server", + "ParamFieldName": "autolobby", + "IncludeInCommandLine": true, + "InputType": "checkbox", + "EnumValues": { + "True": "True", + "False": "False" + }, + "DefaultValue": "False" + }, + { + "DisplayName": "Allow joining mid-match", + "Description": "If enabled, players will be able to join a match that it is in progress. Otherwise they will spectate until the match is over.", + "FieldName": "joinmidmatch", + "Category": "Server", + "ParamFieldName": "joinmidmatch", + "IncludeInCommandLine": true, + "InputType": "checkbox", + "EnumValues": { + "True": "True", + "False": "False" + }, + "DefaultValue": "False" + }, + { + "DisplayName": "Start on first join", + "Description": "If enabled, the match will start automatically once the first player connects. Recommend that bots are enabled.", + "FieldName": "startonfirstjoin", + "Category": "Server", + "ParamFieldName": "startonfirstjoin", + "IncludeInCommandLine": true, + "InputType": "checkbox", + "EnumValues": { + "True": "True", + "False": "False" + }, + "DefaultValue": "False" + }, + { + "DisplayName": "Minimum lobby players", + "Description": "How many players must be present in an auto lobby before a match can be started automatically. Minimum of 2.", + "FieldName": "lobbyminplayers", + "Category": "Server", + "ParamFieldName": "lobbyminplayers", + "IncludeInCommandLine": true, + "InputType": "number", + "DefaultValue": "4" + }, + { + "DisplayName": "Lobby hold time", + "Description": "How long the auto lobby should wait for more players to join once the minimum is reached. This timer restarts whenever a player joins or leaves.", + "FieldName": "lobbyholdtime", + "Category": "Server", + "ParamFieldName": "lobbyholdtime", + "IncludeInCommandLine": true, + "InputType": "number", + "DefaultValue": "20" + }, + { + "DisplayName": "Lobby full delay", + "Description": "After an auto lobby fills up, how long should it wait before starting the game?", + "FieldName": "lobbyfulltime", + "Category": "Server", + "ParamFieldName": "lobbyfulltime", + "IncludeInCommandLine": true, + "InputType": "number", + "DefaultValue": "20" + }, + { + "DisplayName": "Lobby overtime timeout", + "Description": "The maximum amount of a time an auto lobby that has the minimum number of players can remain in the 'ready' state. If this time is exceeded, players joining/leaving will not reset the lobby timer. This prevents the lobby from remaining in limbo indefinitely due to the countdown timer resetting from players leaving/joining.", + "FieldName": "lobbyfulltime", + "Category": "Server", + "ParamFieldName": "lobbyovertime", + "IncludeInCommandLine": true, + "InputType": "number", + "DefaultValue": "120" + }, + { + "DisplayName": "Match length (seconds)", + "Description": "The maximum length of a match in seconds. After this time the match will end regardless of win condition", + "FieldName": "matchlength", + "Category": "Server", + "ParamFieldName": "matchlength", + "IncludeInCommandLine": true, + "InputType": "number", + "DefaultValue": "300" + }, + { + "DisplayName": "Match time low trigger (seconds)", + "Description": "When the match has this many seconds left, the 'out of time' trigger will fire and the map will change to speed up the match.", + "FieldName": "lowmatchtime", + "Category": "Server", + "ParamFieldName": "lowmatchtime", + "IncludeInCommandLine": true, + "InputType": "number", + "DefaultValue": "60" + }, + { + "DisplayName": "Allow Special Skins", + "Description": "If enabled, special players such as developers may be given special skins that make them stand out from other players.", + "FieldName": "specialskins", + "Category": "Server", + "ParamFieldName": "specialskins", + "IncludeInCommandLine": true, + "InputType": "checkbox", + "EnumValues": { + "True": "True", + "False": "False" + }, + "DefaultValue": "True" + }, + { + "DisplayName": "Enable GPU accelerated AI", + "Description": "If enabled, the server will accelerate AI for bots using any available nVidia GPU (CUDA support required). Will automatically fall back to CPU driven AI when not available.", + "FieldName": "aigpuacceleration", + "Category": "Server", + "ParamFieldName": "aigpuacceleration", + "IncludeInCommandLine": true, + "InputType": "checkbox", + "EnumValues": { + "True": "True", + "False": "False" + }, + "DefaultValue": "False" + } +] \ No newline at end of file diff --git a/last-oasis.kvp b/last-oasis.kvp new file mode 100644 index 0000000..3425c9b --- /dev/null +++ b/last-oasis.kvp @@ -0,0 +1,55 @@ +Meta.DisplayName=Last Oasis +Meta.Description= +Meta.OS=Windows, Linux +Meta.Author=CubeCoders Limited +Meta.URL=https://store.steampowered.com/app/903950/Last_Oasis/ +Meta.DisplayImageSource=steam:903950 +Meta.EndpointURIFormat=steam://connect/{ip}/{GenericModule.App.ApplicationPort2} +Meta.ConfigManifest=last-oasisconfig.json +Meta.MetaConfigManifest= +Meta.ConfigRoot=last-oasis.kvp +Meta.MinAMPVersion=2.2.3.0 +App.DisplayName=Last Oasis +App.RootDir=./last-oasis/ +App.BaseDirectory=./last-oasis/920720/ +App.ExecutableWin=920720\MistServer.exe +App.ExecutableLinux=920720/Mist/Binaries/Linux/MistServer-Linux-Shipping +App.WorkingDir=920720 +App.LinuxCommandLineArgs=Mist +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$$PlatformArgs}}-force_steamclient_link -messaging -NoLiveServer -EnableCheats -backendapiurloverride="backend.last-oasis.com" -slots={{$MaxUsers}} -port={{$ApplicationPort1}} -QueryPort={{$ApplicationPort2}} -OverrideConnectionAddress {{$FormattedArgs}} +App.EnvironmentVariables={"LD_LIBRARY_PATH":"./linux64:%LD_LIBRARY_PATH%"} +App.CommandLineParameterFormat=-{0}="{1}" +App.CommandLineParameterDelimiter= +App.ExitMethod=Kill +App.ExitTimeout=30 +App.ExitString=stop +App.ExitFile=app_exit.lck +App.HasWriteableConsole=True +App.HasReadableConsole=True +App.SupportsLiveSettingsChanges=False +App.ApplicationIPBinding=0.0.0.0 +App.ApplicationPort1=7777 +App.ApplicationPort2=27015 +App.ApplicationPort3=27016 +App.RemoteAdminPort=0 +App.MaxUsers=20 +App.UseRandomAdminPassword=False +App.AdminMethod=STDIO +App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":31,"UpdateSource":4,"UpdateSourceData":"920720","UpdateSourceArgs":null,"UpdateSourceVersion":null,"UpdateSourceTarget":null,"UnzipUpdateSource":false,"OverwriteExistingFiles":false,"ForceDownloadPlatform":0}] +App.Compatibility=None +App.SteamUpdateAnonymousLogin=True +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.ApplicationReadyMode=RegexMatch +Console.FilterMatchRegex=^\[.+?\]\[.+?\] +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex= +Console.AppReadyRegex=^(LogInit: Display: Starting Game\.)|(LogOnline: GotoState: NewState: Playing)$ +Console.SuppressLogAtStart=False +Console.ActivateLogRegex= +Console.UserActions={} +Limits.SleepMode=False +Limits.SleepOnStart=False +Limits.SleepDelayMinutes=5 +Limits.DozeDelay=2 diff --git a/last-oasisconfig.json b/last-oasisconfig.json new file mode 100644 index 0000000..767bd1a --- /dev/null +++ b/last-oasisconfig.json @@ -0,0 +1,54 @@ +[ + { + "DisplayName": "Provider Key", + "Category": "Last Oasis Server", + "Description": "Your provider key from my [Last Oasis MyRealm site](https://myrealm.lastoasis.gg/).", + "Keywords": "", + "FieldName": "ProviderKey", + "InputType": "password", + "IsFlagArgument": false, + "ParamFieldName": "ProviderKey", + "IncludeInCommandLine": true, + "DefaultValue": "", + "EnumValues": {} + }, + { + "DisplayName": "Customer Key", + "Category": "Last Oasis Server", + "Description": "Your customer key from my [Last Oasis MyRealm site](https://myrealm.lastoasis.gg/).", + "Keywords": "", + "FieldName": "CustomerKey", + "InputType": "password", + "IsFlagArgument": false, + "ParamFieldName": "CustomerKey", + "IncludeInCommandLine": true, + "DefaultValue": "", + "EnumValues": {} + }, + { + "DisplayName": "Identifier", + "Category": "Last Oasis Server", + "Description": "A unique name for your server to identify it", + "Keywords": "", + "FieldName": "identifier", + "InputType": "text", + "IsFlagArgument": false, + "ParamFieldName": "identifier", + "IncludeInCommandLine": true, + "DefaultValue": "", + "EnumValues": {} + }, + { + "DisplayName": "Maximum Players", + "Category": "Last Oasis Server", + "Description": "The number of player slots that this server can accomodate", + "Keywords": "", + "FieldName": "$MaxUsers", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "slots", + "IncludeInCommandLine": true, + "DefaultValue": "8", + "EnumValues": {} + } +] \ No newline at end of file diff --git a/valheim.kvp b/valheim.kvp index a940c73..2139edc 100644 --- a/valheim.kvp +++ b/valheim.kvp @@ -7,7 +7,7 @@ Meta.DisplayImageSource=steam:892970 Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.ApplicationPort2} Meta.ConfigManifest=valheimconfig.json Meta.ConfigRoot=valheim.kvp -Meta.MinAMPVersion=2.1.0.12 +Meta.MinAMPVersion=2.2.2.0 App.DisplayName=Valheim App.RootDir=./Valheim/ App.BaseDirectory=./Valheim/896660/ @@ -15,7 +15,6 @@ App.ExecutableWin=896660\valheim_server.exe App.ExecutableLinux=896660/valheim_server.x86_64 App.WorkingDir=896660 App.CommandLineArgs=-port {{$ApplicationPort1}} {{$FormattedArgs}} -savedir "Data" -App.CommandLineVars={"ServerName": "My Valheim Server - Powered by AMP", "WorldName": "PoweredByAMP", "ServerPassword": "12345"} App.EnvironmentVariables={"LD_LIBRARY_PATH": "./linux64:%LD_LIBRARY_PATH%", "SteamAppId": "892970"} App.CommandLineParameterFormat=-{0} "{1}" App.ExitMethod=OS_CLOSE @@ -24,26 +23,24 @@ App.HasReadableConsole=True App.ApplicationIPBinding=0.0.0.0 App.ApplicationPort1=2456 App.ApplicationPort2=2457 -App.ApplicationPort3=2458 +App.ApplicationPort3=0 App.RemoteAdminPort=0 App.MaxUsers=10 App.UseRandomAdminPassword=False App.RemoteAdminPassword=Password123 App.AdminMethod=STDIO -App.UpdateSource=Multi App.UpdateSources=[{"UpdateStageName": "SteamCMD Download","UpdateSourcePlatform": "All", "UpdateSource": "SteamCMD", "UpdateSourceData": "896660"}] App.Compatibility=None App.SteamUpdateAnonymousLogin=True App.SteamForceWindowsVersion=False -App.UpdateSourceData=896660 -App.UpdateSourceArgs= -App.UpdateSourceVersion= -App.UnzipUpdateSource=False -App.OverwriteExistingFiles=False App.ApplicationReadyMode=RegexMatch +App.SupportsUniversalSleep=True +App.UniversalSleepApplicationUDPPort=1 +App.UniversalSleepSteamQueryPort=2 +App.WakeupMode=Any Console.FilterMatchRegex=^\d\d\/\d\d\/\d{4} \d\d:\d\d:\d\d: Console.FilterMatchReplacement= -Console.ThrowawayMessageRegex=^\(Filename: .*? Line: \d+\)$ +Console.ThrowawayMessageRegex=^\(Filename: .*? Line: \d+\)$|^Thread -> id: .+$ Console.AppReadyRegex=^Game server connected$ Console.UserJoinRegex=^Got character ZDOID from (?.+?) : (?-?\d+):\d+$ Console.UserLeaveRegex=^Destroying abandoned non persistent zdo -?\d+:\d+ owner (?-?\d+)$ diff --git a/valheimconfig.json b/valheimconfig.json index fb3d88b..033d7bb 100644 --- a/valheimconfig.json +++ b/valheimconfig.json @@ -6,7 +6,8 @@ "InputType": "text", "Category": "Server", "ParamFieldName": "name", - "IncludeInCommandLine": true + "IncludeInCommandLine": true, + "DefaultValue": "My Valheim Server - Powered by AMP" }, { "DisplayName": "World Name", @@ -16,7 +17,8 @@ "InputType": "text", "Category": "Server", "ParamFieldName": "world", - "IncludeInCommandLine": true + "IncludeInCommandLine": true, + "DefaultValue": "PoweredByAMP" }, { "DisplayName": "Server Password", @@ -25,7 +27,22 @@ "InputType": "password", "Category": "Server", "ParamFieldName": "password", - "IncludeInCommandLine": true + "IncludeInCommandLine": true, + "DefaultValue": "12345" + }, + { + "DisplayName": "Server is Public", + "Description": "Whether or not the server appears on the server list. Disable for a LAN-only server.", + "FieldName": "ServerPublic", + "Category": "Server", + "ParamFieldName": "public", + "IncludeInCommandLine": true, + "InputType": "checkbox", + "EnumValues": { + "True": "1", + "False": "0" + }, + "DefaultValue": "1" }, { "DisplayName": "Admin Players", @@ -42,13 +59,5 @@ "Category": "Server", "InputType": "list", "Special": "listfile:./Valheim/896660/Data/bannedlist.txt" - }, - { - "DisplayName": "Permitted Players", - "Description": "A list of Steam64 IDs for players that are permitted [Find a Steam64 ID](https://steamidfinder.com/)", - "FieldName": "PermittedPlayers", - "Category": "Server", - "InputType": "list", - "Special": "listfile:./Valheim/896660/Data/permittedlist.txt" } -] +] \ No newline at end of file diff --git a/valheimplus.kvp b/valheimplus.kvp index f9d151b..f9ada5e 100644 --- a/valheimplus.kvp +++ b/valheimplus.kvp @@ -7,7 +7,7 @@ Meta.DisplayImageSource=url:https://raw.githubusercontent.com/nxPublic/ValheimPl Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.ApplicationPort2} Meta.ConfigManifest=valheimconfig.json Meta.ConfigRoot=valheimplus.kvp -Meta.MinAMPVersion=2.1.0.12 +Meta.MinAMPVersion=2.2.2.0 App.DisplayName=Valheim App.RootDir=./Valheim/ App.BaseDirectory=./Valheim/896660/ @@ -24,7 +24,7 @@ App.HasReadableConsole=True App.ApplicationIPBinding=0.0.0.0 App.ApplicationPort1=2456 App.ApplicationPort2=2457 -App.ApplicationPort3=2458 +App.ApplicationPort3=0 App.RemoteAdminPort=0 App.MaxUsers=10 App.UseRandomAdminPassword=False