From 75b6cc29b37c67edfc1b787f85158c1fb5225a61 Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Wed, 14 Sep 2022 20:13:54 +1000 Subject: [PATCH] Add Vintage Story (#152) --- vintage-story.kvp | 86 ++++++++++++++++++++++ vintage-storyconfig.json | 133 +++++++++++++++++++++++++++++++++++ vintage-storymetaconfig.json | 7 ++ 3 files changed, 226 insertions(+) create mode 100644 vintage-story.kvp create mode 100644 vintage-storyconfig.json create mode 100644 vintage-storymetaconfig.json diff --git a/vintage-story.kvp b/vintage-story.kvp new file mode 100644 index 0000000..754086e --- /dev/null +++ b/vintage-story.kvp @@ -0,0 +1,86 @@ +Meta.DisplayName=Vintage Story +Meta.Description=Vintage Story Dedicated Server +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-storyconfig.json +Meta.MetaConfigManifest=vintage-storymetaconfig.json +Meta.ConfigRoot=vintage-story.kvp +Meta.MinAMPVersion=2.4.0.2 +Meta.SpecificDockerImage=cubecoders/ampbase:mono +Meta.DockerRequired=False +Meta.ContainerPolicy=RecommendedOnLinux +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=/usr/bin/mono +App.WorkingDir=server +App.LinuxCommandLineArgs=./VintagestoryServer.exe +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} --port {{$ServerPort}} --dataPath "{{$FullBaseDir}}data" {{$FormattedArgs}} +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={} +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=[{"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 +App.RapidStartup=False +App.MonitorChildProcess=True +App.MonitorChildProcessWaitMs=100 +App.MonitorChildProcessName=VintagestoryServer.exe +App.SupportsUniversalSleep=False +App.WakeupMode=Any +App.ApplicationReadyMode=RegexMatch +App.TemplateMatchRegex={{(\$?[\w]+)}} +Console.FilterMatchRegex= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$ +Console.AppReadyRegex=^[\d:]+ \[Server Event\] Dedicated Server now running on Port \d+ and (all ips|ip .*)!$ +Console.UserJoinRegex=^[\d:]+ \[Server Event\] (?.+?) [\[\]a-f\d:.]+ joins\.$ +Console.UserLeaveRegex=^[\d:]+ \[Server Event\] Player (?.+?) (left|got removed\. Reason: Server shutting down - Shutdown via server command).*$ +Console.UserChatRegex=^[\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 \ No newline at end of file diff --git a/vintage-storyconfig.json b/vintage-storyconfig.json new file mode 100644 index 0000000..6088f64 --- /dev/null +++ b/vintage-storyconfig.json @@ -0,0 +1,133 @@ +[ + { + "DisplayName":"Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$ServerPort", + "InputType":"number", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"$.Port", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "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!", + "Keywords":"server,version", + "FieldName":"ServerVersion", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"ServerVersion", + "IncludeInCommandLine":false, + "DefaultValue":"1.16.5", + "Placeholder":"1.16.5", + "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":{} + }, + { + "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":"Gameplay 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" + } + } +] \ No newline at end of file diff --git a/vintage-storymetaconfig.json b/vintage-storymetaconfig.json new file mode 100644 index 0000000..cb13025 --- /dev/null +++ b/vintage-storymetaconfig.json @@ -0,0 +1,7 @@ +[ + { + "ConfigFile":"data/serverconfig.json", + "AutoMap":true, + "ConfigType":"json" + } +] \ No newline at end of file