From 89dd94f0d028386d2f543d7294bb75c2886d2872 Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Sun, 22 Oct 2023 12:40:57 +1100 Subject: [PATCH] Add Swords 'n Magic and Stuff (#490) --- swords-n-magic-and-stuff.kvp | 100 +++++++++++++++++++++ swords-n-magic-and-stuffconfig.json | 113 ++++++++++++++++++++++++ swords-n-magic-and-stuffmetaconfig.json | 16 ++++ swords-n-magic-and-stuffupdates.json | 17 ++++ 4 files changed, 246 insertions(+) create mode 100644 swords-n-magic-and-stuff.kvp create mode 100644 swords-n-magic-and-stuffconfig.json create mode 100644 swords-n-magic-and-stuffmetaconfig.json create mode 100644 swords-n-magic-and-stuffupdates.json diff --git a/swords-n-magic-and-stuff.kvp b/swords-n-magic-and-stuff.kvp new file mode 100644 index 0000000..e7d9087 --- /dev/null +++ b/swords-n-magic-and-stuff.kvp @@ -0,0 +1,100 @@ +Meta.DisplayName=Swords 'n Magic and Stuff +Meta.Description=Swords 'n Magic and Stuff Dedicated Server +Meta.OS=Windows, Linux +Meta.AarchSupport=Unknown +Meta.Arch=x86_64 +Meta.Author=Greelan +Meta.URL=https://www.playswordsandmagic.com/ +Meta.DisplayImageSource=steam:810040 +Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$QueryPort} +Meta.ConfigManifest=swords-n-magic-and-stuffconfig.json +Meta.MetaConfigManifest=swords-n-magic-and-stuffmetaconfig.json +Meta.ConfigRoot=swords-n-magic-and-stuff.kvp +Meta.MinAMPVersion=2.4.6.6 +Meta.SpecificDockerImage=cubecoders/ampbase:wine8 +Meta.DockerRequired=False +Meta.ContainerPolicy=SupportedOnWindows, RecommendedOnLinux +Meta.ContainerPolicyReason=The server requires Wine 8 to run on Linux. Using a container avoids the need to install this dependency on the host. +Meta.ExtraSetupStepsURI= +Meta.Prerequsites=[] +Meta.ExtraContainerPackages=[] +Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +Meta.ConfigVersion=0.0.0.0 +Meta.ReleaseNotes= +Meta.BreakingReleaseNotes= +App.DisplayName=Swords 'n Magic and Stuff +App.RootDir=./swords-n-magic-and-stuff/ +App.BaseDirectory=./swords-n-magic-and-stuff/2058450/ +App.SteamWorkshopDownloadLocation= +App.ExecutableWin=2058450\SNM2020\Binaries\Win64\SNMASServer-Win64-Shipping.exe +App.ExecutableLinux=/usr/bin/wine +App.WorkingDir=2058450 +App.LinuxCommandLineArgs="./SNM2020/Binaries/Win64/SNMASServer-Win64-Shipping.exe" +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} SNM2020 -Port={{$GamePort}} -QueryPort={{$QueryPort}} -stdout -FullStdOutLogOutput +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={"SteamAppId":"810040","SNM_OWNER_STEAM_ID":"{{DedSrv_OwnerSteamID}}","SNM_NAME":"{{DedSrv_Name}}","SNM_PASSWORD":"{{DedSrv_Password}}","SNM_MAX_PLAYERS":"{{$MaxUsers}}","SNM_DAYS_UNTIL_RESET":"{{DedSrv_DaysUntilReset}}","SNM_RESET_TIME_OF_DAY":"{{DedSrv_ResetTimeOfDay}}","SNM_RESET_WARNINGS_IN_MINUTES":"{{DedSrv_ResetWarningsInMinutes}}","WINEPREFIX":"{{$FullRootDir}}.wine","WINEARCH":"win64","WINEDEBUG":"-all"} +App.CommandLineParameterFormat=-{0}="{1}" +App.CommandLineParameterDelimiter= +App.ExitMethod=OS_CLOSE +App.ExitTimeout=30 +App.ExitString=stop +App.ExitFile=app_exit.lck +App.HasWriteableConsole=False +App.HasReadableConsole=True +App.SupportsLiveSettingsChanges=False +App.LiveSettingChangeCommandFormat=set {0} "{1}" +App.ApplicationIPBinding=0.0.0.0 +App.Ports=[{"Protocol":"UDP","Port":7777,"Ref":"GamePort","Name":"Game Port","Description":"Port for game traffic"},{"Protocol":"UDP","Port":27015,"Ref":"QueryPort","Name":"Query Port","Description":"Port for Steam query traffic"}] +App.AdminPortRef=0 +App.PrimaryApplicationPortRef=GamePort +App.UniversalSleepApplicationUDPPortRef=GamePort +App.UniversalSleepSteamQueryPortRef=QueryPort +App.MaxUsers=16 +App.UseRandomAdminPassword=True +App.PersistRandomPassword=True +App.RemoteAdminPassword= +App.AdminMethod=STDIO +App.AdminLoginTransform=None +App.LoginTransformPrefix= +App.RCONConnectDelaySeconds=5 +App.RCONConnectRetrySeconds=5 +App.RCONHeartbeatMinutes=0 +App.RCONHeartbeatCommand=ping +App.TelnetLoginFormat={0} +App.UpdateSources=@IncludeJson[swords-n-magic-and-stuffupdates.json] +App.PreStartStages=[] +App.ForceUpdate=False +App.ForceUpdateReason= +App.Compatibility=None +App.SteamUpdateAnonymousLogin=True +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.MonitorChildProcess=True +App.DumpFullChildProcessTree=False +App.MonitorChildProcessWaitMs=100 +App.MonitorChildProcessName=SNMASServer-Win64-Shipping.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.]+-[\d.:]+\]\[[\d ]+\]LogSnMDedicatedServer: Succeeded to create Steam session with ID: .*$ +Console.UserJoinRegex=^$ +Console.UserLeaveRegex=^$ +Console.UserChatRegex=^$ +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=False +Limits.SleepOnStart=False +Limits.SleepDelayMinutes=5 +Limits.DozeDelay=2 +Limits.AutoRetryCount=0 +Limits.SleepStartThresholdSeconds=25 diff --git a/swords-n-magic-and-stuffconfig.json b/swords-n-magic-and-stuffconfig.json new file mode 100644 index 0000000..70f6e4c --- /dev/null +++ b/swords-n-magic-and-stuffconfig.json @@ -0,0 +1,113 @@ +[ + { + "DisplayName":"Game Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$GamePort", + "InputType":"number", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"URL.Port", + "EnumValues":{} + }, + { + "DisplayName":"Query Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$QueryPort", + "InputType":"number", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"OnlineSubsystemSteam.GameServerQueryPort", + "EnumValues":{} + }, + { + "DisplayName":"Server Owner/Admin", + "Category":"Server Settings", + "Description":"Sets the [Steam64 ID](https://www.steamidfinder.com/) of the server owner/admin", + "Keywords":"owner,steamid,DedSrv_OwnerSteamID", + "FieldName":"DedSrv_OwnerSteamID", + "InputType":"text", + "ParamFieldName":"/Game/Blueprints/GameModes/BP_GameInstance.BP_GameInstance_C.DedSrv_OwnerSteamID", + "DefaultValue":"", + "Required":true, + "EnumValues":{} + }, + { + "DisplayName":"Server Name", + "Category":"Server Settings", + "Description":"Sets the name of the server. Must be between 2 and 5 UNIQUE words (no duplicates, case insensitive). See 'SNM2020/Saved/Logs/Allowed-Words.txt' for approved words. Leave blank for a random name on each start", + "Keywords":"name,DedSrv_Name", + "FieldName":"DedSrv_Name", + "InputType":"text", + "ParamFieldName":"/Game/Blueprints/GameModes/BP_GameInstance.BP_GameInstance_C.DedSrv_Name", + "DefaultValue":"Swords 'n Magic Server", + "EnumValues":{} + }, + { + "DisplayName":"Server Password", + "Category":"Server Settings", + "Description":"Sets the password for players to join the server. Default is no password", + "Keywords":"server,password,DedSrv_Password", + "FieldName":"DedSrv_Password", + "InputType":"password", + "ParamFieldName":"/Game/Blueprints/GameModes/BP_GameInstance.BP_GameInstance_C.DedSrv_Password", + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Player Limit", + "Category":"Server Settings", + "Description":"Sets the maximum number of players that may connect to the server at one time", + "Keywords":"maximum,players,limit,DedSrv_MaxPlayers", + "FieldName":"$MaxUsers", + "InputType":"number", + "MinValue":"1", + "ParamFieldName":"/Game/Blueprints/GameModes/BP_GameInstance.BP_GameInstance_C.DedSrv_MaxPlayers", + "DefaultValue":"16", + "Placeholder":"16", + "Suffix":"players", + "EnumValues":{} + }, + { + "DisplayName":"Days Until Reset", + "Category":"Server Settings", + "Description":"Sets the number of days between resets. 1 = HIGHLY recommended (otherwise strange errors may occur). If 1, and the server is started less than 3 hours before the Reset Time Of Day, it will reset on the next day (ie up to 27 hours later)", + "Keywords":"days,period,reset,DedSrv_DaysUntilReset", + "FieldName":"DedSrv_DaysUntilReset", + "InputType":"number", + "MinValue":"1", + "ParamFieldName":"/Game/Blueprints/GameModes/BP_GameInstance.BP_GameInstance_C.DedSrv_DaysUntilReset", + "DefaultValue":"1", + "Placeholder":"1", + "Suffix":"days", + "EnumValues":{} + }, + { + "DisplayName":"Reset Time Of Day", + "Category":"Server Settings", + "Description":"Sets the local time of day when the server will reset. Format: HH:MM (in 24 hours format). Example: midnight = 00:00", + "Keywords":"reset,time,day,DedSrv_ResetTimeOfDay", + "FieldName":"DedSrv_ResetTimeOfDay", + "InputType":"text", + "ParamFieldName":"/Game/Blueprints/GameModes/BP_GameInstance.BP_GameInstance_C.DedSrv_ResetTimeOfDay", + "DefaultValue":"00:00", + "Placeholder":"00:00", + "EnumValues":{} + }, + { + "DisplayName":"Reset Warnings", + "Category":"Server Settings", + "Description":"Sets an array of when the server will warn players before reset. The array must be in descending order. Example: 60,30,5,1 (will give warnings 60, 30, 5 and 1 minutes before reset). Blank = default", + "Keywords":"warnings,reset,DedSrv_ResetWarningsInMinutes", + "FieldName":"DedSrv_ResetWarningsInMinutes", + "InputType":"text", + "ParamFieldName":"DedSrv_ResetWarningsInMinutes", + "DefaultValue":"60,30,5,1", + "Placeholder":"60,30,5,1", + "Suffix":"minutes", + "EnumValues":{} + } +] diff --git a/swords-n-magic-and-stuffmetaconfig.json b/swords-n-magic-and-stuffmetaconfig.json new file mode 100644 index 0000000..59c1cd2 --- /dev/null +++ b/swords-n-magic-and-stuffmetaconfig.json @@ -0,0 +1,16 @@ +[ + { + "ConfigFile":"SNM2020/Saved/Config/WindowsServer/Game.ini", + "AutoMap":true, + "ConfigType":"ini", + "ConfigFormat":"{0}={1}", + "ConfigFormatRegex":"^(?.+?)=(?.*?)$" + }, + { + "ConfigFile":"SNM2020/Saved/Config/WindowsServer/Engine.ini", + "AutoMap":true, + "ConfigType":"ini", + "ConfigFormat":"{0}={1}", + "ConfigFormatRegex":"^(?.+?)=(?.*?)$" + } +] diff --git a/swords-n-magic-and-stuffupdates.json b/swords-n-magic-and-stuffupdates.json new file mode 100644 index 0000000..934cc6c --- /dev/null +++ b/swords-n-magic-and-stuffupdates.json @@ -0,0 +1,17 @@ +[ + { + "UpdateStageName":"SteamCMD Server Download", + "UpdateSourcePlatform":"All", + "UpdateSource":"SteamCMD", + "UpdateSourceData":"2058450", + "UpdateSourceArgs":"810040", + "ForceDownloadPlatform":"Windows" + }, + { + "UpdateStageName":"Initialise Wine", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"Executable", + "UpdateSourceData":"/bin/bash", + "UpdateSourceArgs":"-c 'WINEPREFIX=\"{{$FullRootDir}}.wine\" WINEARCH=win64 /usr/bin/wineboot --init --update'" + } +]