From f6c4f91209045725d960ccd6a9a6cf11a7b46206 Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Mon, 21 Aug 2023 22:33:26 +1000 Subject: [PATCH] Core Keeper: various updates (#445) --- core-keeper.kvp | 10 +++---- core-keeperconfig.json | 54 +++++++++++++++++++++++++++++++----- core-keepermetaconfig.json | 10 ++++++- core-keeperserverconfig.json | 8 ------ core-keeperupdates.json | 31 +++++++++++++++++++++ 5 files changed, 92 insertions(+), 21 deletions(-) delete mode 100644 core-keeperserverconfig.json create mode 100644 core-keeperupdates.json diff --git a/core-keeper.kvp b/core-keeper.kvp index 1e8b16a..be55b03 100644 --- a/core-keeper.kvp +++ b/core-keeper.kvp @@ -1,5 +1,5 @@ Meta.DisplayName=Core Keeper -Meta.Description=Core Keeper Dedicated Server +Meta.Description=Core Keeper Dedicated Server with BepInEx Option for Windows Meta.OS=Windows, Linux Meta.Arch=x86_64 Meta.Author=Greelan, Shinynecrid @@ -12,8 +12,8 @@ Meta.ConfigRoot=core-keeper.kvp Meta.MinAMPVersion=2.3.3.0 Meta.SpecificDockerImage=cubecoders/ampbase:xvfb Meta.DockerRequired=False -Meta.ContainerPolicy=NotSupported -Meta.ContainerPolicyReason=The server requires a version of Xvfb on Linux which is not present in the Debian version used by AMP's Docker. Ideally use Ubuntu 22.04 or Debian 12 to host the server on Linux. +Meta.ContainerPolicy=RecommendedOnLinux, SupportedOnWindows +Meta.ContainerPolicyReason=The server requires a modern version of Xvfb, as well as libxi6, on Linux. Using a container addresses these requirements. Meta.Prerequsites=[] Meta.ConfigReleaseState=NotSpecified App.DisplayName=Core Keeper @@ -50,7 +50,7 @@ App.AdminLoginTransform=None App.RCONConnectDelaySeconds=5 App.RCONConnectRetrySeconds=5 App.TelnetLoginFormat={0} -App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"1963720","UpdateSourceArgs":"1621690"}] +App.UpdateSources=@IncludeJson[core-keeperupdates.json] App.Compatibility=None App.SteamUpdateAnonymousLogin=True App.SteamForceLoginPrompt=False @@ -64,7 +64,7 @@ App.ApplicationReadyMode=RegexMatch App.TemplateMatchRegex={{(\$?[\w]+)}} Console.FilterMatchRegex= Console.FilterMatchReplacement= -Console.ThrowawayMessageRegex=^((WARNING|ERROR): Shader.+|\d+:err:ole:.*|Could not find Wine Gecko.*)$ +Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$ Console.AppReadyRegex=^Started session with Game ID .+$ Console.UserJoinRegex=^Successful authentication from (?.+?)$ Console.UserLeaveRegex=^Disconnected from (?.+?)$ diff --git a/core-keeperconfig.json b/core-keeperconfig.json index e07f4f0..af9ced6 100644 --- a/core-keeperconfig.json +++ b/core-keeperconfig.json @@ -2,7 +2,7 @@ { "DisplayName":"Game ID", "Category":"Server Settings", - "Description":"Sets the Game ID for the server. Needs to be at least 23 characters and alphanumeric, excluding Y,y,x,0,O. Empty or not valid means a new Game ID will be generated at server start", + "Description":"Sets the Game ID for the server. Needs to be at least 28 characters and alphanumeric, excluding Y,y,x,0,O. Empty or not valid means a new Game ID will be generated at server start", "Keywords":"game,id", "FieldName":"gameid", "InputType":"text", @@ -56,7 +56,7 @@ { "DisplayName":"World Mode", "Category":"Server Settings", - "Description":"Sets whether to use normal or hard mode for the world", + "Description":"Sets the world mode for the world. Changing between Creative and non-Creative worlds is not currently supported", "Keywords":"world,mode", "FieldName":"worldmode", "InputType":"enum", @@ -66,7 +66,9 @@ "DefaultValue":"0", "EnumValues":{ "0":"Normal", - "1":"Hard" + "1":"Hard", + "2":"Creative", + "4":"Casual" } }, { @@ -76,13 +78,13 @@ "Keywords":"max,players,limit", "FieldName":"$MaxUsers", "InputType":"number", + "MinValue":"1", "IsFlagArgument":false, "ParamFieldName":"maxplayers", "IncludeInCommandLine":true, "DefaultValue":"100", "Suffix":"players", - "EnumValues":{}, - "MinValue":"1" + "EnumValues":{} }, { "DisplayName":"Connection Mode", @@ -99,7 +101,29 @@ "":"Steam Relay Network", "{{$GamePort}}":"Direct Port Connection" } - }, + }, + { + "DisplayName":"Season Override", + "Category":"Server Settings", + "Description":"Sets the current season on the server", + "Keywords":"season,override", + "FieldName":"season", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"season", + "IncludeInCommandLine":true, + "DefaultValue":"-1", + "EnumValues":{ + "-1":"System date determines (default)", + "0":"None", + "1":"Easter", + "2":"Halloween", + "3":"Christmas", + "4":"Valentine", + "5":"Anniversary", + "6":"Cherry Blossom" + } + }, { "DisplayName":"Server IP Binding", "Category":"Server Settings", @@ -114,5 +138,21 @@ "DefaultValue":"0.0.0.0", "Placeholder":"0.0.0.0", "EnumValues":{} - } + }, + { + "DisplayName":"Activate BepInEx (Windows Only)", + "Category":"SteamCMD and Updates", + "Description":"If set, BepInEx will be installed when the server is updated and enabled when the server is run, allowing the server to be modded. Mods must be installed in the BepInEx/plugins directory, which is created after BepInEx is first run. Windows only at this time", + "Keywords":"install,enable,bepinex,modded,mods", + "FieldName":"BepInExEnabled", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"General.enabled", + "IncludeInCommandLine":false, + "DefaultValue":"false", + "EnumValues":{ + "False":"false", + "True":"true" + } + } ] \ No newline at end of file diff --git a/core-keepermetaconfig.json b/core-keepermetaconfig.json index 0637a08..734f9dc 100644 --- a/core-keepermetaconfig.json +++ b/core-keepermetaconfig.json @@ -1 +1,9 @@ -[] \ No newline at end of file +[ + { + "ConfigFile":"doorstop_config.ini", + "AutoMap":true, + "ConfigType":"ini", + "ConfigFormat":"{0} = {1}", + "ConfigFormatRegex":"^(?.+?) *= *(?.*?)$" + } +] \ No newline at end of file diff --git a/core-keeperserverconfig.json b/core-keeperserverconfig.json deleted file mode 100644 index a130474..0000000 --- a/core-keeperserverconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "gameId": "", - "world": 0, - "worldName": "Core Keeper Server Powered by AMP", - "worldSeed": 0, - "maxNumberPlayers": 100, - "maxNumberPacketsSentPerFrame": 1 -} \ No newline at end of file diff --git a/core-keeperupdates.json b/core-keeperupdates.json new file mode 100644 index 0000000..17e8cf5 --- /dev/null +++ b/core-keeperupdates.json @@ -0,0 +1,31 @@ +[ + { + "UpdateStageName":"SteamCMD Download", + "UpdateSourcePlatform":"All", + "UpdateSource":"SteamCMD", + "UpdateSourceData":"1963720", + "UpdateSourceArgs":"1621690" + }, + { + "UpdateStageName":"Download BepInEx From Thunderstore", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://thunderstore.io/package/download/BepInEx/BepInExPack_Core_Keeper/2.1.0/", + "UpdateSourceArgs":"BepInEx-BepInExPack_Core_Keeper-2.1.0.zip", + "UpdateSourceTarget":"{{$FullBaseDir}}", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true, + "UpdateSourceConditionSetting":"BepInExEnabled", + "UpdateSourceConditionValue":"true" + }, + { + "UpdateStageName":"BepInEx Copy", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"Executable", + "UpdateSourceData":"cmd.exe", + "UpdateSourceArgs":"/C xcopy /E /Y /I core-keeper\\1963720\\BepInExPack_Core-Keeper\\* core-keeper\\1963720\\ && rmdir /Q /S core-keeper\\1963720\\BepInExPack_Core-Keeper", + "UpdateSourceConditionSetting":"BepInExEnabled", + "UpdateSourceConditionValue":"true" + } +] \ No newline at end of file