diff --git a/post-scriptum.kvp b/post-scriptum.kvp new file mode 100644 index 0000000..8dd4e76 --- /dev/null +++ b/post-scriptum.kvp @@ -0,0 +1,88 @@ +Meta.DisplayName=Post Scriptum +Meta.Description=Post Scriptum Dedicated Server +Meta.OS=Windows, Linux +Meta.AarchSupport=Unknown +Meta.Arch=x86_64 +Meta.Author=Southnode +Meta.URL=http://postscriptumgame.com/ +Meta.DisplayImageSource=steam:736220 +Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$QueryPort} +Meta.ConfigManifest=post-scriptumconfig.json +Meta.MetaConfigManifest=post-scriptummetaconfig.json +Meta.ConfigRoot=post-scriptum.kvp +Meta.MinAMPVersion=2.4.3.2 +Meta.DockerRequired=False +Meta.ContainerPolicy=Supported +Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +App.DisplayName=Post Scriptum +App.RootDir=./post-scriptum-server/ +App.BaseDirectory=./post-scriptum-server/746200/ +App.SteamWorkshopDownloadLocation={{$FullBaseDir}}PostScriptum/Plugins/Mods +App.ExecutableWin=746200\PostScriptum\Binaries\Win64\PostScriptumServer.exe +App.ExecutableLinux=746200/PostScriptum/Binaries/Linux/PostScriptumServer +App.WorkingDir=746200 +App.CommandLineArgs=MULTIHOME={{$ApplicationIPBinding}} Port={{$GamePort}} QueryPort={{$QueryPort}} RCONPORT={{$RCONPort}} RCONPASSWORD={{$RemoteAdminPassword}} FIXEDMAXTICKRATE={{MaxTPS}} RANDOM={{MapRandom}} -log -fullcrashdump +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"736220"} +App.CommandLineParameterFormat={0}="{1}" +App.CommandLineParameterDelimiter= +App.ExitMethod=OS_CLOSE +App.ExitTimeout=30 +App.ExitString=stop +App.ExitFile=app_exit.lck +App.HasWriteableConsole=True +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":27025,"Ref":"QueryPort","Name":"Query Port","Description":"Port for query traffic"},{"Protocol":"TCP","Port":25575,"Ref":"RCONPort","Name":"RCON Port","Description":"Port for RCON traffic"}] +App.AdminPortRef=RCONPort +App.PrimaryApplicationPortRef=GamePort +App.UniversalSleepApplicationUDPPort=GamePort +App.UniversalSleepSteamQueryPort=QueryPort +App.MaxUsers=80 +App.UseRandomAdminPassword=True +App.PersistRandomPassword=True +App.RemoteAdminPassword= +App.AdminMethod=SourceRCON +App.AdminLoginTransform=None +App.LoginTransformPrefix= +App.RCONConnectDelaySeconds=5 +App.RCONConnectRetrySeconds=60 +App.RCONHeartbeatMinutes=0 +App.RCONHeartbeatCommand=ping +App.TelnetLoginFormat={0} +App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"746200","UpdateSourceArgs":"736220"}] +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= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$ +Console.AppReadyRegex=^(LogInit: Display: Starting Game\.)|(LogOnline: GotoState: NewState: Playing)$ +Console.UserJoinRegex=^$ +Console.UserLeaveRegex=^$ +Console.UserChatRegex=^\[Chat.*\] \[SteamID\:(?-?\d+)\] (?.+?) \: (?.+)$ +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 \ No newline at end of file diff --git a/post-scriptumconfig.json b/post-scriptumconfig.json new file mode 100644 index 0000000..1484d9a --- /dev/null +++ b/post-scriptumconfig.json @@ -0,0 +1,316 @@ +[ + { + "DisplayName":"RCON Password", + "Category":"Server Config", + "Description":"See the Security and Privacy menu for configurable options for the server's RCON", + "Keywords":"rcon,password", + "FieldName":"RCONPassword", + "InputType":"hidden", + "IsFlagArgument":false, + "ParamFieldName":"RCONPassword", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName": "Server Name", + "Category": "Server Config", + "Description": "Set the Name for the server in the Server Browser", + "Keywords": "server name, name", + "FieldName": "ServerName", + "InputType": "text", + "IsFlagArgument": false, + "ParamFieldName": "ServerName", + "IncludeInCommandLine": false, + "DefaultValue": "A new Post Scriptum Server!" + }, + { + "DisplayName": "Max Players", + "Category": "Server Config", + "Description": "Set the max players allowed on the server (minus reserved slots)", + "Keywords": "max players, players", + "FieldName": "$MaxUsers", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "MaxPlayers", + "IncludeInCommandLine": false, + "DefaultValue": "80", + "Suffix":"players", + "MinValue":"1" + }, + { + "DisplayName": "Max TPS", + "Category": "Server Config", + "Description": "Set the maximum tickrate for the server (Set below 45 for best stability)", + "Keywords": "tps, tickrate", + "FieldName": "MaxTPS", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "MaxTPS", + "IncludeInCommandLine": false, + "DefaultValue": "40", + "Suffix":"tps", + "MinValue":"10" + }, + { + "DisplayName": "LAN Mode", + "Category": "Server Config", + "Description": "Set the server to LAN mode", + "Keywords": "Lan,Server", + "FieldName": "IsLANMatch", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "IsLANMatch", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + } + }, + { + "DisplayName": "Should Advertise", + "Category": "Server Config", + "Description": "Control visibility in the server browser - disabling removes the server from the Server Browser", + "Keywords": "Visibility,Server", + "FieldName": "ShouldAdvertise", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "ShouldAdvertise", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + } + }, + { + "DisplayName": "Number of Reserved Slots", + "Category": "Server Config", + "Description": "Number of reserved slots for admins within the Admins.cfg file with the 'reserved' group permission", + "Keywords": "reserved players, players", + "FieldName": "NumReservedSlots", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "NumReservedSlots", + "IncludeInCommandLine": false, + "DefaultValue": "0" + }, + { + "DisplayName": "Server Map Randomisation", + "Category": "Server Config", + "Description": "Set whether the server map rotation is randomised when the server starts. ALWAYS randomises all the maps in MapRotation.cfg, FIRST will select a first map at random from the list and proceed through the list in order.", + "Keywords": "Map Rotation,Rotation,Random", + "FieldName": "MapRandom", + "InputType": "enum", + "IsFlagArgument": false, + "ParamFieldName": "MapRandom", + "IncludeInCommandLine": false, + "DefaultValue": "None", + "EnumValues": { + "ALWAYS": "Always", + "FIRST": "First", + "NONE": "None" + } + }, + { + "DisplayName": "Randomize At Start", + "Category": "Server Config", + "Description": "Should the Map/Layer rotations list be randomized at start?", + "Keywords": "Map Rotation,Rotation", + "FieldName": "RandomizeAtStart", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "RandomizeAtStart", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + } + }, + { + "DisplayName": "Enforce Team Balance", + "Category": "Server Config", + "Description": "Enable to force joining players to the side with less players, or randomly if teams are balanced", + "Keywords": "Balance, Enforce, Enable Balance", + "FieldName": "EnforceTeamBalance", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "EnforceTeamBalance", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + } + }, + { + "DisplayName": "Allow Team Change", + "Category": "Server Config", + "Description": "Completly Allow or Disallow Team change to all players. Only users with 'balance' permission within Admins.cfg can bypass this flag", + "Keywords": "Layer,Vote", + "FieldName": "AllowTeamChanges", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "AllowTeamChanges", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + } + }, + { + "DisplayName": "Prevent Team Change If Unbalanced", + "Category": "Server Config", + "Description": "If set to false, players can change teams regardless of team balance. Otherwise, the NumPlayersDiffForTeamChanges Value is used", + "Keywords": "Layer,Vote", + "FieldName": "PreventTeamChangeIfUnbalanced", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "PreventTeamChangeIfUnbalanced", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + } + }, + { + "DisplayName": "Max Allowed Difference in player count", + "Category": "Server Config", + "Description": "Maximum Allowed difference in player count between teams. This takes into account the team the player leaves and the team the player joins", + "Keywords": "queue,players", + "FieldName": "NumPlayersDiffForTeamChanges", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "NumPlayersDiffForTeamChanges", + "IncludeInCommandLine": false, + "DefaultValue": "3" + }, + { + "DisplayName": "Rejoin Squad Delay After Kick", + "Category": "Server Config", + "Description": "Sets the delay after which a player is allowed to rejoin a squad after being kicked.", + "Keywords": "delay,players,kick", + "FieldName": "RejoinSquadDelayAfterKick", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "RejoinSquadDelayAfterKick", + "IncludeInCommandLine": false, + "DefaultValue": "180", + "Suffix":"seconds" + }, + { + "DisplayName": "Map Voting", + "Category": "Server Config", + "Description": "Enable Map Voting at the end of a round", + "Keywords": "map, voting", + "FieldName": "MapVoting", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "MapVoting", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + } + }, + { + "DisplayName": "Server Message Interval", + "Category": "Server Config", + "Description": "Frequency in which the server displays the information inside the ServerMessages.cfg file as a broadcast to all players", + "Keywords": "Interval, Message", + "FieldName": "ServerMessageInterval", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "ServerMessageInterval", + "IncludeInCommandLine": false, + "DefaultValue": "300", + "Suffix":"seconds" + }, + { + "DisplayName": "Team Kill Auto Kick Enabled", + "Category": "Server Config", + "Description": "Enable Auto Kick for teamkilling", + "Keywords": "Kick,Auto,Team,Kill", + "FieldName": "TKAutoKickEnabled", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "TKAutoKickEnabled", + "DefaultValue": "True", + "EnumValues": { + "False": "false", + "True": "true" + } + }, + { + "DisplayName": "Vehicle Kit Requirement Disabled", + "Category": "Server Config", + "Description": "Toggle to disable vehicle kit requirement", + "Keywords": "Vehicle,Kit", + "FieldName": "VehicleKitRequirementDisabled", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "VehicleKitRequirementDisabled", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + } + }, + { + "DisplayName": "Allow Community Admin Access", + "Category": "Server Config", + "Description": "Enable QA Admin Access", + "Keywords": "Admin", + "FieldName": "AllowCommunityAdminAccess", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "AllowCommunityAdminAccess", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + } + }, + { + "DisplayName": "Offworld Developers only Admin", + "Category": "Server Config", + "Description": "Allow Offworld Industries QA Dev Profiling", + "Keywords": "Admin", + "FieldName": "AllowDevProfiling", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "AllowDevProfiling", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + } + }, + { + "DisplayName": "Allow QA", + "Category": "Server Config", + "Description": "Allow Offworld Industries QA", + "Keywords": "QA", + "FieldName": "AllowQA", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "AllowQA", + "DefaultValue": "true", + "EnumValues": { + "False": "false", + "True": "true" + } + }, + { + "DisplayName": "Vehicle Claiming Disabled", + "Category": "Server Config", + "Description": "Disable Vehicle Claiming", + "Keywords": "Vehicle", + "FieldName": "VehicleClaimingDisabled", + "InputType": "checkbox", + "IsFlagArgument": false, + "ParamFieldName": "VehicleClaimingDisabled", + "DefaultValue": "false", + "EnumValues": { + "False": "false", + "True": "true" + } + } +] \ No newline at end of file diff --git a/post-scriptummetaconfig.json b/post-scriptummetaconfig.json new file mode 100644 index 0000000..a841803 --- /dev/null +++ b/post-scriptummetaconfig.json @@ -0,0 +1,8 @@ +[ + { + "ConfigFile": "./PostScriptum/ServerConfig/Server.cfg", + "AutoMap": true, + "ConfigType": "kvp", + "ConfigFormat": "{0}=\"{1}\"" + } +] \ No newline at end of file