diff --git a/pavlov-vr.kvp b/pavlov-vr.kvp new file mode 100755 index 0000000..e0e5ffa --- /dev/null +++ b/pavlov-vr.kvp @@ -0,0 +1,66 @@ +Meta.DisplayName=Pavlov VR +Meta.Description=Pavlov VR Dedicated Server +Meta.OS=Linux +Meta.Author=Greelan +Meta.URL=https://pavlov-vr.com +Meta.DisplayImageSource=steam:555160 +Meta.EndpointURIFormat= +Meta.ConfigManifest=pavlov-vrconfig.json +Meta.MetaConfigManifest=pavlov-vrmetaconfig.json +Meta.ConfigRoot=pavlov-vr.kvp +Meta.MinAMPVersion=2.3.2.0 +Meta.SpecificDockerImage= +Meta.ContainerPolicy=Supported +Meta.Prerequsites=[] +App.DisplayName=Pavlov VR +App.RootDir=./pavlovserver/ +App.BaseDirectory=./pavlovserver/622970/ +App.ExecutableWin= +App.ExecutableLinux=622970/Pavlov/Binaries/Linux/PavlovServer +App.WorkingDir=622970 +App.LinuxCommandLineArgs= +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} -PORT={{$ApplicationPort1}} {{$FormattedArgs}} +App.AppSettings={} +App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"555160"} +App.CommandLineParameterFormat=-{0}={1} +App.CommandLineParameterDelimiter= +App.ExitMethod=SIGTERM +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.ApplicationPort1=7777 +App.ApplicationPort2=8177 +App.ApplicationPort3=0 +App.RemoteAdminPort=9100 +App.MaxUsers=10 +App.UseRandomAdminPassword=False +App.RemoteAdminPassword=Password123 +App.AdminMethod=TelnetRCON +App.AdminLoginTransform=MD5_Lower +App.RCONConnectDelaySeconds=0 +App.RCONConnectRetrySeconds=5 +App.TelnetLoginFormat={0} +App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"Linux","UpdateSource":"SteamCMD","UpdateSourceData":"622970"},{"UpdateStageName":"Config File Download","UpdateSourcePlatform":"Linux","UpdateSource":"FetchURL","UpdateSourceData":"https://raw.githubusercontent.com/Greelan/AMPTemplates/pavlov-vr/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=None +App.SteamUpdateAnonymousLogin=True +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.ApplicationReadyMode=RegexMatch +App.TemplateMatchRegex={{(\$?[\w]+)}} +Console.FilterMatchRegex= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$ +Console.AppReadyRegex=^\[[\d.]+-[\d.]+:\d+\]\[[\d ]+\]LogGameState: Match State Changed from WaitingToStart to InProgress$ +Console.UserJoinRegex=^\[[\d.]+-[\d.]+:\d+\]\[[\d ]+\]LogNet: Join succeeded: (?.+?)$ +Console.UserLeaveRegex=^\[[\d.]+-[\d.]+:\d+\]\[[\d ]+\]PavlovLog: Ending auth session for: (?.+?) (?.+?)$ +Console.UserChatRegex= +Console.UpdateAvailableRegex= +Console.SuppressLogAtStart=False +Console.ActivateLogRegex= +Console.UserActions={} \ No newline at end of file diff --git a/pavlov-vrconfig.json b/pavlov-vrconfig.json new file mode 100755 index 0000000..dd71e6f --- /dev/null +++ b/pavlov-vrconfig.json @@ -0,0 +1,267 @@ +[ + { + "DisplayName": "Server Name", + "Category": "Server Settings", + "Description": "Server name visible in the server list. Maximum 35 characters (approx)", + "Keywords": "server,name", + "FieldName": "ServerName", + "InputType": "text", + "IsFlagArgument": false, + "ParamFieldName": "ServerName", + "IncludeInCommandLine": false, + "DefaultValue": "Pavlov VR Server - Powered by AMP" + }, + { + "DisplayName": "Include in Server List", + "Category": "Server Settings", + "Description": "Requires an API key to be set", + "Keywords": "server list", + "FieldName": "bEnabled", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "bEnabled", + "IncludeInCommandLine": false, + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + } + }, + { + "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", + "FieldName": "ApiKey", + "InputType": "password", + "IsFlagArgument": false, + "ParamFieldName": "ApiKey", + "IncludeInCommandLine": false, + "DefaultValue": "" + }, + { + "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", + "FieldName": "Password", + "InputType": "password", + "IsFlagArgument": false, + "ParamFieldName": "Password", + "IncludeInCommandLine": false, + "DefaultValue": "0000" + }, + { + "DisplayName": "RCON Password", + "Category": "Server Settings", + "Description": "Password to connect to RCON. Change this after installing the server", + "Keywords": "password,RCON", + "FieldName": "$RemoteAdminPassword", + "InputType": "RandomPassword", + "IsFlagArgument": false, + "ParamFieldName": "", + "IncludeInCommandLine": false, + "DefaultValue": "Password123" + }, + { + "DisplayName": "Enable Valve Anti-Cheat (Steam VAC)", + "Category": "Server Settings", + "Description": "", + "Keywords": "anti-cheat,VAC,cheat", + "FieldName": "bSecured", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "bSecured", + "IncludeInCommandLine": false, + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + } + }, + { + "DisplayName": "Enable Custom Server", + "Category": "Server Settings", + "Description": "If enabled, activates new modding tools. Required for blacklist functionality", + "Keywords": "custom", + "FieldName": "bCustomServer", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "bCustomServer", + "IncludeInCommandLine": false, + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + } + }, + { + "DisplayName": "Enable Competitive Mode", + "Category": "Server Settings", + "Description": "If enabled, sets the server to competitive mode for SND", + "Keywords": "competitive", + "FieldName": "bCompetitive", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "bCompetitive", + "IncludeInCommandLine": false, + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + } + }, + { + "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", + "FieldName": "$MaxUsers", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "MaxPlayers", + "IncludeInCommandLine": false, + "DefaultValue": "10", + "Suffix": "players" + }, + { + "DisplayName": "Enable Whitelist", + "Category": "Server Settings", + "Description": "If enabled, only whitelisted players can join", + "Keywords": "whitelist", + "FieldName": "bWhitelist", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "bWhitelist", + "IncludeInCommandLine": false, + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + } + }, + { + "DisplayName": "Whitelisted Players", + "Category": "Server Settings", + "Description": "List of Steam64 IDs for whitelisted players. [Find Steam64 IDs](https://steamidfinder.com/)", + "Keywords": "whitelist", + "FieldName": "whitelist", + "InputType": "list", + "IsFlagArgument": false, + "ParamFieldName": "whitelist", + "IncludeInCommandLine": false, + "DefaultValue": "", + "Special": "listfile:./pavlovserver/622970/Pavlov/Saved/Config/whitelist.txt" + }, + { + "DisplayName": "Blacklisted Players", + "Category": "Server Settings", + "Description": "List of Steam64 IDs for blacklisted players. [Find Steam64 IDs](https://steamidfinder.com/)", + "Keywords": "blacklist,banned", + "FieldName": "blacklist", + "InputType": "list", + "IsFlagArgument": false, + "ParamFieldName": "blacklist", + "IncludeInCommandLine": false, + "DefaultValue": "", + "Special": "listfile:./pavlovserver/622970/Pavlov/Saved/Config/blacklist.txt" + }, + { + "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", + "FieldName": "mods", + "InputType": "list", + "IsFlagArgument": false, + "ParamFieldName": "mods", + "IncludeInCommandLine": false, + "DefaultValue": "", + "Special": "listfile:./pavlovserver/622970/Pavlov/Saved/Config/mods.txt" + }, + { + "DisplayName": "Refresh Interval", + "Category": "Server Settings", + "Description": "Sets how often the server checks for updates in whitelist/blacklist/modlist", + "Keywords": "refresh,list", + "FieldName": "RefreshListTime", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "RefreshListTime", + "IncludeInCommandLine": false, + "DefaultValue": "120", + "Suffix": "seconds" + }, + { + "DisplayName": "Server Tick Rate", + "Category": "Server Settings", + "Description": "Sets the server tickrate. Between 50 and 120 is most stable", + "Keywords": "tick,rate", + "FieldName": "TickRate", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "TickRate", + "IncludeInCommandLine": false, + "DefaultValue": "90" + }, + { + "DisplayName": "Map Time Limit", + "Category": "Server Settings", + "Description": "Sets the time limit for each map", + "Keywords": "map,time,limit", + "FieldName": "TimeLimit", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "TimeLimit", + "IncludeInCommandLine": false, + "DefaultValue": "60" + }, + { + "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", + "FieldName": "BalanceTableURL", + "InputType": "text", + "IsFlagArgument": false, + "ParamFieldName": "BalanceTableURL", + "IncludeInCommandLine": false, + "DefaultValue": "vankruptgames/BalancingTable/main" + }, + { + "DisplayName": "Limited Ammo Mode", + "Category": "Server Settings", + "Description": "", + "Keywords": "limited,ammo", + "FieldName": "LimitedAmmoType", + "InputType": "enum", + "IsFlagArgument": false, + "ParamFieldName": "LimitedAmmoType", + "IncludeInCommandLine": false, + "DefaultValue": "0", + "EnumValues": { + "0": "Unlimited", + "1": "Limited Generic", + "2": "Limited Specific", + "3": "Custom (for modders)", + "4": "Limited Special", + "5": "Boxless Mode" + } + }, + { + "DisplayName": "Enable Verbose Logging", + "Category": "Server Settings", + "Description": "If enabled, logging will be significantly increased, mostly with detailed statistics", + "Keywords": "verbose,logging,statistics", + "FieldName": "bVerboseLogging", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "bVerboseLogging", + "IncludeInCommandLine": false, + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + } + } +] diff --git a/pavlov-vrconfigfile.ini b/pavlov-vrconfigfile.ini new file mode 100755 index 0000000..1830929 --- /dev/null +++ b/pavlov-vrconfigfile.ini @@ -0,0 +1,19 @@ +[/Script/Pavlov.DedicatedServer] +ServerName=Pavlov VR Server - Powered by AMP +bEnabled=true +MaxPlayers=10 +ApiKey= +bSecured=true +bCustomServer=true +bVerboseLogging=false +bCompetitive=false +bWhitelist=false +RefreshListTime=120 +LimitedAmmoType=0 +TickRate=90 +TimeLimit=60 +Password=0000 +BalanceTableURL=vankruptgames/BalancingTable/main +#MapRotation=(MapId="UGC1758245796", GameMode="GUN") +#MapRotation=(MapId="datacenter", GameMode="SND") +#MapRotation=(MapId="sand", GameMode="DM") diff --git a/pavlov-vrmetaconfig.json b/pavlov-vrmetaconfig.json new file mode 100755 index 0000000..37ebc92 --- /dev/null +++ b/pavlov-vrmetaconfig.json @@ -0,0 +1,23 @@ +[ + { + "ConfigFile": "Pavlov/Saved/Config/LinuxServer/Game.ini", + "AutoMap": true, + "ConfigType": "kvp", + "ConfigFormat": "{0}={1}", + "ConfigFormatRegex": "^(?.+?)=(?.*?)$" + }, + { + "ConfigFile": "Pavlov/Saved/Config/RconSettings.txt", + "ConfigType": "kvp", + "ConfigFormat": "{0}={1}", + "Subsections": [ + { + "Heading": "$root", + "SettingMappings": { + "Password" : "$RemoteAdminPassword", + "Port" : "$RemoteAdminPort" + } + } + ] + } +] \ No newline at end of file