From 70d9ea04bc0498c309eaa630b1db6be69bafe530 Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Mon, 15 May 2023 06:50:58 +1000 Subject: [PATCH] Pavlov VR: Fix docker support (#364) --- pavlov-vr.kvp | 56 +++++++++++++++++++++------ pavlov-vrconfig.json | 92 +++++++++++++++++++++++--------------------- 2 files changed, 92 insertions(+), 56 deletions(-) diff --git a/pavlov-vr.kvp b/pavlov-vr.kvp index 5f0930e..5268535 100755 --- a/pavlov-vr.kvp +++ b/pavlov-vr.kvp @@ -1,26 +1,39 @@ Meta.DisplayName=Pavlov VR Meta.Description=Pavlov VR Dedicated Server Meta.OS=Linux +Meta.AarchSupport=Unknown +Meta.Arch=x86_64 Meta.Author=Greelan Meta.URL=https://pavlov-vr.com Meta.DisplayImageSource=steam:555160 -Meta.EndpointURIFormat= +Meta.EndpointURIFormat=steam://connect/{0} Meta.ConfigManifest=pavlov-vrconfig.json Meta.MetaConfigManifest=pavlov-vrmetaconfig.json Meta.ConfigRoot=pavlov-vr.kvp -Meta.MinAMPVersion=2.3.2.0 +Meta.MinAMPVersion=2.4.3.6 Meta.SpecificDockerImage= -Meta.ContainerPolicy=NotSupported +Meta.DockerRequired=False +Meta.ContainerPolicy=Supported +Meta.ContainerPolicyReason= +Meta.ExtraSetupStepsURI= Meta.Prerequsites=[] +Meta.ExtraContainerPackages=[] +Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +Meta.ConfigVersion=0.0.0.0 +Meta.ReleaseNotes= +Meta.BreakingReleaseNotes= App.DisplayName=Pavlov VR App.RootDir=./pavlovserver/ App.BaseDirectory=./pavlovserver/622970/ -App.ExecutableWin= +App.SteamWorkshopDownloadLocation= +App.ExecutableWin= App.ExecutableLinux=622970/Pavlov/Binaries/Linux/PavlovServer App.WorkingDir=622970 App.LinuxCommandLineArgs= App.WindowsCommandLineArgs= -App.CommandLineArgs={{$PlatformArgs}} -PORT={{$ApplicationPort1}} {{$FormattedArgs}} +App.CommandLineArgs={{$PlatformArgs}} -PORT={{$ApplicationPort1}} {{$FormattedArgs}} -stdout -forcelogflush +App.UseLinuxIOREDIR=False App.AppSettings={} App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"555160"} App.CommandLineParameterFormat=-{0}={1} @@ -34,23 +47,35 @@ App.HasReadableConsole=True App.SupportsLiveSettingsChanges=False App.LiveSettingChangeCommandFormat=set {0} "{1}" App.ApplicationIPBinding=0.0.0.0 -App.ApplicationPort1=7777 -App.ApplicationPort2=8177 -App.ApplicationPort3=0 -App.RemoteAdminPort=9100 +App.Ports=[{"Protocol":"Both","Port":7777,"Ref":"ApplicationPort1","Name":"Main Game Port","Description":"Main port for game traffic"},{"Protocol":"Both","Port":8177,"Offset":0,"Range":1,"Ref":"ApplicationPort2","Name":"Secondary Game Port","Description":"Secondary port for game traffic"},{"Protocol":"TCP","Port":9100,"Ref":"RemoteAdminPort","Name":"RCON Port","Description":"Port for RCON traffic"}] +App.AdminPortRef=RemoteAdminPort +App.PrimaryApplicationPortRef=ApplicationPort1 +App.UniversalSleepApplicationUDPPortRef=ApplicationPort1 +App.UniversalSleepSteamQueryPortRef=ApplicationPort2 App.MaxUsers=10 App.UseRandomAdminPassword=True +App.PersistRandomPassword=True App.RemoteAdminPassword= App.AdminMethod=TelnetRCON App.AdminLoginTransform=MD5_Lower +App.LoginTransformPrefix= App.RCONConnectDelaySeconds=0 App.RCONConnectRetrySeconds=5 +App.RCONHeartbeatMinutes=0 +App.RCONHeartbeatCommand=ping App.TelnetLoginFormat={0} -App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"Linux","UpdateSource":"SteamCMD","UpdateSourceData":"622970","UpdateSourceArgs":"555160","UpdateSourceVersion":"{{ServerVersion}}"},{"UpdateStageName":"Config File Download","UpdateSourcePlatform":"Linux","UpdateSource":"FetchURL","UpdateSourceData":"https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/pavlov-vrconfigfile.ini","UpdateSourceTarget":"../","OverwriteExistingFiles":true},{"UpdateStageName":"Create Logs Directory","UpdateSourcePlatform":"Linux","UpdateSource":"CreateDirectory","UpdateSourceArgs":"./pavlovserver/622970/Pavlov/Saved/Logs","OverwriteExistingFiles":false},{"UpdateStageName":"Create Config Directory","UpdateSourcePlatform":"Linux","UpdateSource":"CreateDirectory","UpdateSourceArgs":"./pavlovserver/622970/Pavlov/Saved/Config/LinuxServer","OverwriteExistingFiles":false},{"UpdateStageName":"Create Maps Directory","UpdateSourcePlatform":"Linux","UpdateSource":"CreateDirectory","UpdateSourceArgs":"./pavlovserver/622970/Pavlov/Saved/maps","OverwriteExistingFiles":false},{"UpdateStageName":"Copy Config File","UpdateSourcePlatform":"Linux","UpdateSource":"CopyFilePath","UpdateSourceData":"./pavlovserver/622970/Pavlov/Saved/Config/LinuxServer/Game.ini","UpdateSourceArgs":"./pavlov-vrconfigfile.ini","OverwriteExistingFiles":false}] -App.Compatibility=LinuxBufferedConsole +App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"Linux","UpdateSource":"SteamCMD","UpdateSourceData":"622970","UpdateSourceArgs":"555160","UpdateSourceVersion":"{{ServerVersion}}"},{"UpdateStageName":"Create Logs Directory","UpdateSourcePlatform":"Linux","UpdateSource":"CreateDirectory","UpdateSourceArgs":"{{$FullBaseDir}}Pavlov/Saved/Logs","OverwriteExistingFiles":false},{"UpdateStageName":"Create Config Directory","UpdateSourcePlatform":"Linux","UpdateSource":"CreateDirectory","UpdateSourceArgs":"{{$FullBaseDir}}Pavlov/Saved/Config/LinuxServer","OverwriteExistingFiles":false},{"UpdateStageName":"Create Maps Directory","UpdateSourcePlatform":"Linux","UpdateSource":"CreateDirectory","UpdateSourceArgs":"{{$FullBaseDir}}Pavlov/Saved/maps","OverwriteExistingFiles":false},{"UpdateStageName":"Config File Download","UpdateSourcePlatform":"Linux","UpdateSource":"FetchURL","UpdateSourceData":"https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/pavlov-vrconfigfile.ini","UpdateSourceArgs":"Game.ini","UpdateSourceTarget":"{{$FullBaseDir}}Pavlov/Saved/Config/LinuxServer","OverwriteExistingFiles":false}] +App.PreStartStages=[] +App.Compatibility=None App.SteamUpdateAnonymousLogin=True App.SteamForceLoginPrompt=False App.RapidStartup=False +App.MonitorChildProcess=False +App.DumpFullChildProcessTree=False +App.MonitorChildProcessWaitMs=100 +App.MonitorChildProcessName= +App.SupportsUniversalSleep=False +App.WakeupMode=Any App.ApplicationReadyMode=RegexMatch App.TemplateMatchRegex={{(\$?[\w]+)}} Console.FilterMatchRegex=(\[0m|\[33m) @@ -60,7 +85,14 @@ Console.AppReadyRegex=^\[[\d.]+-[\d.]+:\d+\]\[[\d ]+\]LogGameState: Match State Console.UserJoinRegex=^\[[\d.]+-[\d.]+:\d+\]\[[\d ]+\]PavlovLog: Player (?.+?) Joined, current bot Num = \d+$ Console.UserLeaveRegex=^\[[\d.]+-[\d.]+:\d+\]\[[\d ]+\]LogNet: UChannel::Close: Sending CloseBunch\. (?:.*?) UniqueId: NULL:(?.+?)$ Console.UserChatRegex=^$ -Console.UpdateAvailableRegex= +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=5 +Limits.SleepStartThresholdSeconds=25 diff --git a/pavlov-vrconfig.json b/pavlov-vrconfig.json index c55a1a4..c20c434 100755 --- a/pavlov-vrconfig.json +++ b/pavlov-vrconfig.json @@ -1,27 +1,9 @@ [ - { - "DisplayName": "Server Version", - "Category": "Server Settings", - "Description": "Server version to install. NOTE: Update the server after changing this setting!", - "Keywords": "server,version,pc,shack,beta,rc", - "FieldName": "ServerVersion", - "InputType": "enum", - "IsFlagArgument": false, - "ParamFieldName": "", - "IncludeInCommandLine": false, - "DefaultValue": "public", - "EnumValues": { - "public": "PC Server (Non-Beta)", - "beta_server": "PC Beta", - "shack": "Shack Live (Quest)", - "shack_beta": "Shack RC (Quest)" - } - }, { "DisplayName": "Server Name", "Category": "Server Settings", - "Description": "Server name visible in the server list. Maximum 35 characters (approx)", - "Keywords": "server,name", + "Description": "Sets the server name visible in the server list. Maximum 35 characters (approx)", + "Keywords": "server,name,servername", "FieldName": "ServerName", "InputType": "text", "IsFlagArgument": false, @@ -31,7 +13,7 @@ "EnumValues": {} }, { - "DisplayName": "Include in Server List", + "DisplayName": "Include In Server List", "Category": "Server Settings", "Description": "", "Keywords": "", @@ -47,8 +29,8 @@ { "DisplayName": "API Key", "Category": "Server Settings", - "Description": "Unique API key to allow the server to appear in the server list. [Get your API key](https://pavlov-ms.vankrupt.com/servers/v1/key)", - "Keywords": "api,key", + "Description": "Sets a unique API key to allow the server to appear in the server list. [Get your API key](https://pavlov-ms.vankrupt.com/servers/v1/key)", + "Keywords": "api,key,apikey", "FieldName": "ApiKey", "InputType": "password", "IsFlagArgument": false, @@ -60,14 +42,14 @@ { "DisplayName": "Server Password", "Category": "Server Settings", - "Description": "Four digit PIN to connect to the server. NOTE: Change this after installing the server", - "Keywords": "password,PIN", + "Description": "Sets a four digit PIN to connect to the server. NOTE: Change this after installing the server", + "Keywords": "password,pin", "FieldName": "Password", "InputType": "password", "IsFlagArgument": false, "ParamFieldName": "/Script/Pavlov.DedicatedServer.Password", "IncludeInCommandLine": false, - "DefaultValue": "0000", + "DefaultValue": "{{randomdigits(4)}}", "EnumValues": {} }, { @@ -86,7 +68,7 @@ "DisplayName": "Enable Valve Anti-Cheat (Steam VAC)", "Category": "Server Settings", "Description": "", - "Keywords": "anti-cheat,VAC,cheat", + "Keywords": "anti-cheat,vac,cheat,bsecured", "FieldName": "bSecured", "InputType": "checkbox", "IsFlagArgument": false, @@ -102,7 +84,7 @@ "DisplayName": "Enable Custom Server", "Category": "Server Settings", "Description": "If enabled, activates new modding tools. Required for blacklist functionality", - "Keywords": "custom", + "Keywords": "custom,bcustomserver", "FieldName": "bCustomServer", "InputType": "checkbox", "IsFlagArgument": false, @@ -118,7 +100,7 @@ "DisplayName": "Enable Competitive Mode", "Category": "Server Settings", "Description": "If enabled, sets the server to competitive mode for SND", - "Keywords": "competitive", + "Keywords": "competitive,bcompetitive", "FieldName": "bCompetitive", "InputType": "checkbox", "IsFlagArgument": false, @@ -133,23 +115,24 @@ { "DisplayName": "Player Limit", "Category": "Server Settings", - "Description": "Maximum number of players that may connect to the server. No more than 20 to 24 recommended for large maps", - "Keywords": "players,limit", + "Description": "Sets the maximum number of players that may connect to the server. No more than 20 to 24 recommended for large maps", + "Keywords": "players,limit,maxplayers", "FieldName": "$MaxUsers", "InputType": "number", + "MinValue":"1", "IsFlagArgument": false, "ParamFieldName": "/Script/Pavlov.DedicatedServer.MaxPlayers", "IncludeInCommandLine": false, "DefaultValue": "10", + "Placeholder": "10", "Suffix": "players", - "EnumValues": {}, - "MinValue":"1" + "EnumValues": {} }, { "DisplayName": "Enable Whitelist", "Category": "Server Settings", "Description": "If enabled, only whitelisted players can join", - "Keywords": "whitelist", + "Keywords": "whitelist,bwhitelist", "FieldName": "bWhitelist", "InputType": "checkbox", "IsFlagArgument": false, @@ -164,7 +147,7 @@ { "DisplayName": "Whitelisted Players", "Category": "Server Settings", - "Description": "List of Steam64 IDs for whitelisted players. [Find Steam64 IDs](https://steamidfinder.com/)", + "Description": "List of [Steam64 IDs](https://steamidfinder.com/) for whitelisted players", "Keywords": "whitelist", "FieldName": "whitelist", "InputType": "list", @@ -178,7 +161,7 @@ { "DisplayName": "Blacklisted Players", "Category": "Server Settings", - "Description": "List of Steam64 IDs for blacklisted players. [Find Steam64 IDs](https://steamidfinder.com/)", + "Description": "List of [Steam64 IDs](https://steamidfinder.com/) for blacklisted players", "Keywords": "blacklist,banned", "FieldName": "blacklist", "InputType": "list", @@ -192,8 +175,8 @@ { "DisplayName": "Server Moderators", "Category": "Server Settings", - "Description": "List of Steam64 IDs for server moderators/admins (functionality may currently be limited). [Find Steam64 IDs](https://steamidfinder.com/)", - "Keywords": "moderators,admins", + "Description": "List of [Steam64 IDs](https://steamidfinder.com/) for server moderators/admins (functionality may currently be limited)", + "Keywords": "moderators,admins,mods", "FieldName": "mods", "InputType": "list", "IsFlagArgument": false, @@ -207,7 +190,7 @@ "DisplayName": "Refresh Interval", "Category": "Server Settings", "Description": "Sets how often the server checks for updates in whitelist/blacklist/modlist", - "Keywords": "refresh,list", + "Keywords": "refresh,list,refreshlisttime", "FieldName": "RefreshListTime", "InputType": "number", "IsFlagArgument": false, @@ -221,33 +204,36 @@ "DisplayName": "Server Tick Rate", "Category": "Server Settings", "Description": "Sets the server tickrate. Between 50 and 120 is most stable", - "Keywords": "tick,rate", + "Keywords": "tick,rate,tickrate", "FieldName": "TickRate", "InputType": "number", + "MinValue":"1", "IsFlagArgument": false, "ParamFieldName": "/Script/Pavlov.DedicatedServer.TickRate", "IncludeInCommandLine": false, "DefaultValue": "90", + "Placeholder": "90", "EnumValues": {} }, { "DisplayName": "Map Time Limit", "Category": "Server Settings", "Description": "Sets the time limit for each map", - "Keywords": "map,time,limit", + "Keywords": "map,time,limit,timelimit", "FieldName": "TimeLimit", "InputType": "number", "IsFlagArgument": false, "ParamFieldName": "/Script/Pavlov.DedicatedServer.TimeLimit", "IncludeInCommandLine": false, "DefaultValue": "60", + "Placeholder": "60", "EnumValues": {} }, { "DisplayName": "Balance Table URL", "Category": "Server Settings", "Description": "Reference for custom balance table on GitHub. [Follow the instructions](https://github.com/vankruptgames/BalancingTable) to create your own", - "Keywords": "balance,table,URL", + "Keywords": "balance,table,URL,balancetableurl", "FieldName": "BalanceTableURL", "InputType": "text", "IsFlagArgument": false, @@ -261,7 +247,7 @@ "DisplayName": "Limited Ammo Mode", "Category": "Server Settings", "Description": "", - "Keywords": "limited,ammo", + "Keywords": "limited,ammo,limitedammotype", "FieldName": "LimitedAmmoType", "InputType": "enum", "IsFlagArgument": false, @@ -281,7 +267,7 @@ "DisplayName": "Enable Verbose Logging", "Category": "Server Settings", "Description": "If enabled, logging will be significantly increased, mostly with detailed statistics", - "Keywords": "verbose,logging,statistics", + "Keywords": "verbose,logging,statistics,bverboselogging", "FieldName": "bVerboseLogging", "InputType": "checkbox", "IsFlagArgument": false, @@ -292,5 +278,23 @@ "False": "false", "True": "true" } + }, + { + "DisplayName": "Server Release Version", + "Category": "SteamCMD and Updates", + "Description": "Sets the server release version to install. NOTE: Update the server after changing this setting!", + "Keywords": "server,version,pc,shack,beta,rc", + "FieldName": "ServerVersion", + "InputType": "enum", + "IsFlagArgument": false, + "ParamFieldName": "", + "IncludeInCommandLine": false, + "DefaultValue": "public", + "EnumValues": { + "public": "PC Server (Non-Beta)", + "beta_server": "PC Beta", + "shack": "Shack Live (Quest)", + "shack_beta": "Shack RC (Quest)" + } } ]