From d7b0e71a573cc6b6b981b5ee73c6e19ca8b92842 Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Fri, 1 Sep 2023 08:46:14 +1000 Subject: [PATCH] Vintage Story: updates for new server builds (#449) --- vintage-story-new.kvp | 86 ++++++++++++++++++ vintage-story-newconfig.json | 148 +++++++++++++++++++++++++++++++ vintage-story-newmetaconfig.json | 7 ++ vintage-story-newupdates.json | 83 +++++++++++++++++ vintage-story.kvp | 6 +- vintage-storyconfig.json | 58 ++++++++++-- 6 files changed, 380 insertions(+), 8 deletions(-) create mode 100644 vintage-story-new.kvp create mode 100644 vintage-story-newconfig.json create mode 100644 vintage-story-newmetaconfig.json create mode 100644 vintage-story-newupdates.json diff --git a/vintage-story-new.kvp b/vintage-story-new.kvp new file mode 100644 index 0000000..833669e --- /dev/null +++ b/vintage-story-new.kvp @@ -0,0 +1,86 @@ +Meta.DisplayName=Vintage Story 1.18.8+ +Meta.Description=Vintage Story Dedicated Server, from v1.18.8+ +Meta.OS=Windows, Linux +Meta.Arch=x86_64 +Meta.Author=Greelan +Meta.URL=https://vintagestory.at +Meta.DisplayImageSource=url:https://content.invisioncic.com/r268468/monthly_2018_02/gamelogo-vintagestory-square.png.d938fbc6101feaae3bbc38019e392ff0.png +Meta.EndpointURIFormat= +Meta.ConfigManifest=vintage-story-newconfig.json +Meta.MetaConfigManifest=vintage-story-newmetaconfig.json +Meta.ConfigRoot=vintage-story-new.kvp +Meta.MinAMPVersion=2.4.6.0 +Meta.SpecificDockerImage= +Meta.DockerRequired=False +Meta.ContainerPolicy=Supported +Meta.Prerequsites=[] +Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +App.DisplayName=Vintage Story +App.RootDir=./vintage-story/ +App.BaseDirectory=./vintage-story/ +App.ExecutableWin=server\VintagestoryServer.exe +App.ExecutableLinux=server/VintagestoryServer +App.WorkingDir=server +App.LinuxCommandLineArgs= +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} --port {{$ServerPort}} --dataPath "{{$FullBaseDir}}data" {{$FormattedArgs}} +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={"DOTNET_ROOT":"{{$FullRootDir}}dotnet"} +App.CommandLineParameterFormat=--{0} {1} +App.CommandLineParameterDelimiter= +App.ExitMethod=String +App.ExitTimeout=30 +App.ExitString=/stop +App.ExitFile=lock +App.HasWriteableConsole=True +App.HasReadableConsole=True +App.SupportsLiveSettingsChanges=False +App.LiveSettingChangeCommandFormat=set {0} "{1}" +App.ApplicationIPBinding=0.0.0.0 +App.Ports=[{"Protocol":"TCP","Name":"Server Port","Description":"Port for game traffic","Port":42420,"Ref":"ServerPort"}] +App.AdminPortRef=ServerPort +App.PrimaryApplicationPortRef=ServerPort +App.UniversalSleepApplicationUDPPortRef=ServerPort +App.UniversalSleepSteamQueryPortRef=ServerPort +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={0} +App.UpdateSources=@IncludeJson[vintage-story-newupdates.json] +App.Compatibility=None +App.SteamUpdateAnonymousLogin=True +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.MonitorChildProcess=True +App.MonitorChildProcessWaitMs=100 +App.MonitorChildProcessName=VintagestoryServer.dll +App.SupportsUniversalSleep=False +App.WakeupMode=Any +App.ApplicationReadyMode=RegexMatch +App.TemplateMatchRegex={{(\$?[\w]+)}} +Console.FilterMatchRegex= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$ +Console.AppReadyRegex=^[\d.]*\s*[\d:]+ \[Server Event\] Dedicated Server now running on Port \d+ and (all ips|ip .*)!$ +Console.UserJoinRegex=^[\d.]*\s*[\d:]+ \[Server Event\] (?.+?) [\[\]a-f\d:.]+ joins\.$ +Console.UserLeaveRegex=^[\d.]*\s*[\d:]+ \[Server Event\] Player (?.+?) (left|got removed\. Reason: Server shutting down - Shutdown via server command).*$ +Console.UserChatRegex=^[\d.]*\s*[\d:]+ \[Server Chat\] (?.+?): (?.+?): (?.+)$ +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=True +Limits.SleepOnStart=False +Limits.SleepDelayMinutes=5 +Limits.DozeDelay=2 +Limits.AutoRetryCount=5 +Limits.SleepStartThresholdSeconds=25 diff --git a/vintage-story-newconfig.json b/vintage-story-newconfig.json new file mode 100644 index 0000000..5e19466 --- /dev/null +++ b/vintage-story-newconfig.json @@ -0,0 +1,148 @@ +[ + { + "DisplayName":"Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$ServerPort", + "InputType":"number", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"$.Port", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"Dotnet Version", + "Category":"Server Settings", + "Description":"Sets the [ASP.NET Core 7.0 version](https://dotnet.microsoft.com/en-us/download/dotnet/7.0) to install to run the server. NOTE: Update the server after switching versions!", + "Keywords":"dotnet,version", + "FieldName":"DotnetVersion", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"DotnetVersion", + "IncludeInCommandLine":false, + "DefaultValue":"7.0.10", + "Placeholder":"7.0.10", + "EnumValues":{} + }, + { + "DisplayName":"Server Version", + "Category":"Server Settings", + "Description":"Sets the server version to install. Minimum v1.18.8. NOTE: Update the server after changing this setting!", + "Keywords":"server,version", + "FieldName":"ServerVersion", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"ServerVersion", + "IncludeInCommandLine":false, + "DefaultValue":"1.18.8", + "Placeholder":"1.18.8", + "EnumValues":{} + }, + { + "DisplayName":"Make Server Public", + "Category":"Server Settings", + "Description":"If enabled, the server will be added to the public server listing", + "Keywords":"public", + "FieldName":"AdvertiseServer", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"$.AdvertiseServer", + "IncludeInCommandLine":false, + "DefaultValue":"true", + "EnumValues":{ + "True":"true", + "False":"false" + } + }, + { + "DisplayName":"Server Name", + "Category":"Server Settings", + "Description":"Server name visible in the server list", + "Keywords":"server,name", + "FieldName":"ServerName", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"$.ServerName", + "IncludeInCommandLine":false, + "DefaultValue":"Vintage Story Server - Powered by AMP", + "EnumValues":{} + }, + { + "DisplayName":"Welcome Message", + "Category":"Server Settings", + "Description":"Welcome message when players join the server. Placeholder {0} will be replaced with the player's nickname", + "Keywords":"welcome,message,motd", + "FieldName":"WelcomeMessage", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"$.WelcomeMessage", + "IncludeInCommandLine":false, + "DefaultValue":"Welcome, {0}, may you survive well and prosper", + "EnumValues":{} + }, + { + "DisplayName":"Player Limit", + "Category":"Server Settings", + "Description":"Maximum number of players that may connect to the server", + "Keywords":"players,limit", + "FieldName":"$MaxUsers", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"$.MaxClients", + "IncludeInCommandLine":false, + "DefaultValue":"16", + "Suffix":"players", + "EnumValues":{}, + "MinValue":"1" + }, + { + "DisplayName":"Enable Whitelist", + "Category":"Server Settings", + "Description":"If enabled, only whitelisted players can join the server", + "Keywords":"whitelist", + "FieldName":"OnlyWhitelisted", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"$.OnlyWhitelisted", + "IncludeInCommandLine":false, + "DefaultValue":"false", + "EnumValues":{ + "True":"true", + "False":"false" + } + }, + { + "DisplayName":"Allow PvP", + "Category":"Server Settings", + "Description":"If enabled, players can hit other players", + "Keywords":"pvp", + "FieldName":"AllowPvP", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"$.AllowPvP", + "IncludeInCommandLine":false, + "DefaultValue":"true", + "EnumValues":{ + "True":"true", + "False":"false" + } + }, + { + "DisplayName":"Enable UPnP", + "Category":"Server Settings", + "Description":"If enabled, the server will attempt to configure automatic port forwarding on a compatible router", + "Keywords":"upnp", + "FieldName":"Upnp", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"$.Upnp", + "IncludeInCommandLine":false, + "DefaultValue":"false", + "EnumValues":{ + "True":"true", + "False":"false" + } + } +] diff --git a/vintage-story-newmetaconfig.json b/vintage-story-newmetaconfig.json new file mode 100644 index 0000000..cb13025 --- /dev/null +++ b/vintage-story-newmetaconfig.json @@ -0,0 +1,7 @@ +[ + { + "ConfigFile":"data/serverconfig.json", + "AutoMap":true, + "ConfigType":"json" + } +] \ No newline at end of file diff --git a/vintage-story-newupdates.json b/vintage-story-newupdates.json new file mode 100644 index 0000000..e953ca5 --- /dev/null +++ b/vintage-story-newupdates.json @@ -0,0 +1,83 @@ +[ + { + "UpdateStageName":"Delete Server Directory", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"Executable", + "UpdateSourceData":"/bin/bash", + "UpdateSourceArgs":"-c 'rm -rf {{$FullBaseDir}}server'" + }, + { + "UpdateStageName":"Delete Server Directory", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"Executable", + "UpdateSourceData":"cmd.exe", + "UpdateSourceArgs":"/C del /Q /F {{$FullBaseDir}}server" + }, + { + "UpdateStageName":"Dotnet Directory Creation", + "UpdateSourcePlatform":"All", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}dotnet" + }, + { + "UpdateStageName":"Server Directory Creation", + "UpdateSourcePlatform":"All", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}server" + }, + { + "UpdateStageName":"ASP.NET Core Runtime Download", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/{{DotnetVersion}}/aspnetcore-runtime-{{DotnetVersion}}-win-x64.zip", + "UpdateSourceTarget":"{{$FullBaseDir}}dotnet", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true + }, + { + "UpdateStageName":"ASP.NET Core Runtime Download", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/{{DotnetVersion}}/aspnetcore-runtime-{{DotnetVersion}}-linux-x64.tar.gz", + "UpdateSourceTarget":"{{$FullBaseDir}}dotnet", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true + }, + { + "UpdateStageName":"Server Download", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://cdn.vintagestory.at/gamefiles/stable/vs_server_win-x64_{{ServerVersion}}.zip", + "UpdateSourceTarget":"{{$FullBaseDir}}server", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true + }, + { + "UpdateStageName":"Server Download", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://cdn.vintagestory.at/gamefiles/stable/vs_server_linux-x64_{{ServerVersion}}.tar.gz", + "UpdateSourceTarget":"{{$FullBaseDir}}server", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true + }, + { + "UpdateStageName":"Start Server", + "UpdateSourcePlatform":"All", + "UpdateSource":"StartApplication" + }, + { + "UpdateStageName":"Wait For Server Start", + "UpdateSourcePlatform":"All", + "UpdateSource":"WaitForStartupComplete" + }, + { + "UpdateStageName":"Stop Server", + "UpdateSourcePlatform":"All", + "UpdateSource":"ShutdownApplication" + } +] \ No newline at end of file diff --git a/vintage-story.kvp b/vintage-story.kvp index f0330f7..760e96b 100644 --- a/vintage-story.kvp +++ b/vintage-story.kvp @@ -1,5 +1,5 @@ -Meta.DisplayName=Vintage Story -Meta.Description=Vintage Story Dedicated Server +Meta.DisplayName=Vintage Story (Legacy) +Meta.Description=Vintage Story Dedicated Server, up to v1.18.7 Meta.OS=Windows, Linux Meta.Arch=x86_64 Meta.Author=Greelan @@ -54,7 +54,7 @@ App.RCONConnectRetrySeconds=5 App.RCONHeartbeatMinutes=0 App.RCONHeartbeatCommand=ping App.TelnetLoginFormat={0} -App.UpdateSources=[{"UpdateStageName":"Server Directory Creation","UpdateSourcePlatform":"All","UpdateSource":"CreateDirectory","UpdateSourceArgs":"{{$FullBaseDir}}server"},{"UpdateStageName":"Server Download","UpdateSourcePlatform":"All","UpdateSource":"FetchURL","UpdateSourceData":"https://cdn.vintagestory.at/gamefiles/stable/vs_server_{{ServerVersion}}.tar.gz","UpdateSourceTarget":"{{$FullBaseDir}}server","UnzipUpdateSource":true,"OverwriteExistingFiles":true,"DeleteAfterExtract":true},{"UpdateStageName":"Start Server","UpdateSourcePlatform":"All","UpdateSource":"StartApplication"},{"UpdateStageName":"Wait For Server Start","UpdateSourcePlatform":"All","UpdateSource":"WaitForStartupComplete"},{"UpdateStageName":"Stop Server","UpdateSourcePlatform":"All","UpdateSource":"ShutdownApplication"}] +App.UpdateSources=[{"UpdateStageName":"Delete Server Directory","UpdateSourcePlatform":"Linux","UpdateSource":"Executable","UpdateSourceData":"/bin/bash","UpdateSourceArgs":"-c 'rm -rf {{$FullBaseDir}}server'"},{"UpdateStageName":"Delete Server Directory","UpdateSourcePlatform":"Windows","UpdateSource":"Executable","UpdateSourceData":"cmd.exe","UpdateSourceArgs":"/C del /Q /F {{$FullBaseDir}}server"},{"UpdateStageName":"Server Directory Creation","UpdateSourcePlatform":"All","UpdateSource":"CreateDirectory","UpdateSourceArgs":"{{$FullBaseDir}}server"},{"UpdateStageName":"Server Download","UpdateSourcePlatform":"All","UpdateSource":"FetchURL","UpdateSourceData":"https://cdn.vintagestory.at/gamefiles/stable/vs_server_{{ServerVersion}}.tar.gz","UpdateSourceTarget":"{{$FullBaseDir}}server","UnzipUpdateSource":true,"OverwriteExistingFiles":true,"DeleteAfterExtract":true},{"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 diff --git a/vintage-storyconfig.json b/vintage-storyconfig.json index 198c4ba..d21316c 100644 --- a/vintage-storyconfig.json +++ b/vintage-storyconfig.json @@ -15,16 +15,64 @@ { "DisplayName":"Server Version", "Category":"Server Settings", - "Description":"[Server version](https://account.vintagestory.at/downloads) to install (needs a game account to view versions). NOTE: Delete the \"server\" folder and then update the server after changing this setting!", + "Description":"Sets the server version to install, up to v1.18.7 only. NOTE: Update the server after changing this setting!", "Keywords":"server,version", "FieldName":"ServerVersion", - "InputType":"text", + "InputType":"enum", "IsFlagArgument":false, "ParamFieldName":"ServerVersion", "IncludeInCommandLine":false, "DefaultValue":"1.18.7", - "Placeholder":"1.18.7", - "EnumValues":{} + "EnumValues":{ + "1.18.7":"1.18.7", + "1.18.6":"1.18.6", + "1.18.5":"1.18.5", + "1.18.4":"1.18.4", + "1.18.3":"1.18.3", + "1.18.2":"1.18.2", + "1.18.1":"1.18.1", + "1.18.0":"1.18.0", + "1.17.12":"1.17.12", + "1.17.11":"1.17.11", + "1.17.10":"1.17.10", + "1.17.9":"1.17.9", + "1.17.8":"1.17.8", + "1.17.7":"1.17.7", + "1.17.6":"1.17.6", + "1.17.5":"1.17.5", + "1.17.4":"1.17.4", + "1.17.3":"1.17.3", + "1.17.2":"1.17.2", + "1.17.1":"1.17.1", + "1.17.0":"1.17.0", + "1.16.5":"1.16.5", + "1.16.4":"1.16.4", + "1.16.3":"1.16.3", + "1.16.2":"1.16.2", + "1.16.1":"1.16.1", + "1.16.0":"1.16.0", + "1.15.10":"1.15.10", + "1.15.9":"1.15.9", + "1.15.8":"1.15.8", + "1.15.7":"1.15.7", + "1.15.6":"1.15.6", + "1.15.5":"1.15.5", + "1.15.4":"1.15.4", + "1.15.3":"1.15.3", + "1.15.2":"1.15.2", + "1.15.1":"1.15.1", + "1.15.0":"1.15.0", + "1.14.10":"1.14.10", + "1.13.4":"1.13.4", + "1.13.3":"1.13.3", + "1.13.2":"1.13.2", + "1.13.1":"1.13.1", + "1.13.0":"1.13.0", + "1.12.14":"1.12.14", + "1.11.11":"1.11.11", + "1.10.19":"1.10.19", + "1.9.14":"1.9.14" + } }, { "DisplayName":"Make Server Public", @@ -101,7 +149,7 @@ }, { "DisplayName":"Allow PvP", - "Category":"Gameplay Settings", + "Category":"Server Settings", "Description":"If enabled, players can hit other players", "Keywords":"pvp", "FieldName":"AllowPvP",