Add Post Scriptum (#344)
* Add Post Scriptum Based on the standard Squad Dedicated Server template recently complete - PS is effectively a carbon copy game by the same publisher, so shares a lot of the same things. * Update psconfigmanifest.json Update - accidentally pushed older config * Update post-scriptum.kvp Add UpdateSourceArgs for mod support * Naming Convention tidy Tidy up naming conventions for files - adjust file names within kvp to match new names - no configuration changes other than that. * Update post-scriptum.kvp Change to utilise new ports system * Update post-scriptum.kvp Change to correct binding variable * Update post-scriptum.kvp Remove app.updatesource is redundant * Update post-scriptum.kvp Remove redundant admin port after new ports system implemented * Update KVP - Full refactor Refactor using a newly deployed instance. Bump MinAMPVersion * Various tweaks * Update post-scriptum.kvp Update RCON delay * Add EnforceTeamBalance to config Add EnforceTeamBalance to config file as an option * Filename amendment Amend files to remove hyphens after the name of the service to be in-line with current conventions --------- Co-authored-by: Greelan <53196309+Greelan@users.noreply.github.com>
This commit is contained in:
parent
cb7b997df4
commit
c699f6d196
88
post-scriptum.kvp
Normal file
88
post-scriptum.kvp
Normal file
@ -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\:(?<userid>-?\d+)\] (?<username>.+?) \: (?<message>.+)$
|
||||
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
|
316
post-scriptumconfig.json
Normal file
316
post-scriptumconfig.json
Normal file
@ -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"
|
||||
}
|
||||
}
|
||||
]
|
8
post-scriptummetaconfig.json
Normal file
8
post-scriptummetaconfig.json
Normal file
@ -0,0 +1,8 @@
|
||||
[
|
||||
{
|
||||
"ConfigFile": "./PostScriptum/ServerConfig/Server.cfg",
|
||||
"AutoMap": true,
|
||||
"ConfigType": "kvp",
|
||||
"ConfigFormat": "{0}=\"{1}\""
|
||||
}
|
||||
]
|
Loading…
Reference in New Issue
Block a user