Add Primal Carnage: Extinction

This commit is contained in:
Greelan 2023-07-24 20:28:19 +10:00
parent ed01652e6a
commit b6aa85c649
4 changed files with 531 additions and 0 deletions

View File

@ -0,0 +1,100 @@
Meta.DisplayName=Primal Carnage: Extinction
Meta.Description=Primal Carnage: Extinction Dedicated Server
Meta.OS=Windows, Linux
Meta.AarchSupport=Unknown
Meta.Arch=x86_64
Meta.Author=Greelan
Meta.URL=https://www.primalcarnage.com
Meta.DisplayImageSource=steam:321360
Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$QueryPort}
Meta.ConfigManifest=primal-carnage-extinctionconfig.json
Meta.MetaConfigManifest=primal-carnage-extinctionmetaconfig.json
Meta.ConfigRoot=primal-carnage-extinction.kvp
Meta.MinAMPVersion=2.4.4.0
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=Primal Carnage: Extinction
App.RootDir=./primal-carnage-extinction/
App.BaseDirectory=./primal-carnage-extinction/336400/
App.SteamWorkshopDownloadLocation=
App.ExecutableWin=336400\Binaries\Win64\PrimalCarnageServer.exe
App.ExecutableLinux=/usr/bin/wine
App.WorkingDir=336400
App.LinuxCommandLineArgs="./Binaries/Win64/PrimalCarnageServer.exe"
App.WindowsCommandLineArgs=
App.CommandLineArgs={{$PlatformArgs}} {{ServerMap}}?game={{GameMode}}?bIsDedicated=true?{{$FormattedArgs}}{{CustomServerArgs}} Port={{$GamePort}} PeerPort={{$PeerPort}} QueryPort={{$QueryPort}} MultiHome={{$ApplicationIPBinding}} -seekfreeloadingserver -stdout -FullStdOutLogOutput
App.UseLinuxIOREDIR=False
App.AppSettings={}
App.EnvironmentVariables={"SteamAppId":"321360","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=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":7778,"Ref":"PeerPort","Name":"Peer Port","Description":"Port for Steam traffic"},{"Protocol":"Both","Port":13000,"Ref":"StatsPort","Name":"Stats Port","Description":"Port for stats 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[primal-carnage-extinctionupdates.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=PrimalCarnageServer.exe
App.SupportsUniversalSleep=False
App.WakeupMode=Any
App.ApplicationReadyMode=Immediate
App.TemplateMatchRegex={{(\$?[\w]+)}}
Console.FilterMatchRegex=
Console.FilterMatchReplacement=
Console.ThrowawayMessageRegex=^((WARNING|ERROR): Shader.+|Could not find Wine Gecko.*)$
Console.AppReadyRegex=^$
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=5
Limits.SleepStartThresholdSeconds=25

View File

@ -0,0 +1,384 @@
[
{
"DisplayName":"Game Port",
"Category":"PCE Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"$GamePort",
"InputType":"number",
"Hidden":true,
"IsFlagArgument":false,
"ParamFieldName":"URL.Port",
"EnumValues":{}
},
{
"DisplayName":"Peer Port",
"Category":"PCE Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"$PeerPort",
"InputType":"number",
"Hidden":true,
"IsFlagArgument":false,
"ParamFieldName":"URL.PeerPort",
"EnumValues":{}
},
{
"DisplayName":"Stats Port",
"Category":"PCE Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"$StatsPort",
"InputType":"number",
"Hidden":true,
"IsFlagArgument":false,
"ParamFieldName":"StatNotifyProviders.StatNotifyProvider_UDP.ListenPort",
"EnumValues":{}
},
{
"DisplayName":"Query Port",
"Category":"PCE Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"$QueryPort",
"InputType":"number",
"Hidden":true,
"IsFlagArgument":false,
"ParamFieldName":"OnlineSubsystemSteamworks.OnlineSubsystemSteamworks.QueryPort",
"EnumValues":{}
},
{
"DisplayName":"Server Name",
"Category":"PCE Server Settings",
"Description":"Sets the name of the server as shown in the server browser",
"Keywords":"name,servername",
"FieldName":"ServerName",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"Engine.GameReplicationInfo.ServerName",
"IncludeInCommandLine":false,
"DefaultValue":"AMP Powered Primal Carnage: Extinction Server",
"EnumValues":{}
},
{
"DisplayName":"Server Password",
"Category":"PCE Server Settings",
"Description":"Sets the password for players to join the server. Default is no password",
"Keywords":"server,password,gamepassword",
"FieldName":"GamePassword",
"InputType":"password",
"IsFlagArgument":false,
"ParamFieldName":"GamePassword",
"IncludeInCommandLine":true,
"SkipIfEmpty":true,
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Server Map Rotation List",
"Category":"PCE Server Settings",
"Description":"A map rotation list can be specified for each game mode in PrimalCarnageGame/Config/PCServer-PrimalCarnageGame.ini",
"Keywords":"map,rotation,list,maprotation",
"FieldName":"MapRotation",
"InputType":"hidden",
"IsFlagArgument":false,
"ParamFieldName":"MapRotation",
"IncludeInCommandLine":false,
"EnumValues":{}
},
{
"DisplayName":"Initial Server Map",
"Category":"PCE Server Settings",
"Description":"Sets the initial map for the server. Available game modes for each map are indicated. To use a map not listed in the dropdown, select Custom and set the \"Custom Map Name\"",
"Keywords":"map",
"FieldName":"ServerMap",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"ServerMap",
"IncludeInCommandLine":false,
"DefaultValue":"PC-Docks",
"EnumValues":{
"PC-Airbase":"PC-Airbase (Team Deathmatch, Free Roam)",
"PC-Borealis":"PC-Borealis (Team Deathmatch, Free Roam)",
"PC-Contingency":"PC-Contingency (Team Deathmatch, Free Roam)",
"PC-DeadTide":"PC-DeadTide (Team Deathmatch, Free Roam)",
"PC-Desertionpoint":"PC-Desertionpoint (Team Deathmatch, Free Roam)",
"PC-Docks":"PC-Docks (Team Deathmatch, Free Roam, Hunt, Capture The Egg)",
"PC-ForestChasm":"PC-ForestChasm (Team Deathmatch, Free Roam, Hunt, Capture The Egg)",
"PC-ForestChasmSnow":"PC-ForestChasmSnow (Team Deathmatch, Free Roam)",
"PC-ForgottenOutpost":"PC-ForgottenOutpost (Team Deathmatch, Free Roam, Capture The Egg)",
"PC-Marsh":"PC-Marsh (Team Deathmatch, Free Roam)",
"PC-Pandoria":"PC-Pandoria (Free Roam)",
"PC-SandstormValley":"PC-SandstormValley (Team Deathmatch, Free Roam)",
"PC-Snowbound":"PC-Snowbound (Team Deathmatch, Free Roam, Hunt)",
"PC-TheFalls":"PC-TheFalls (Team Deathmatch, Free Roam, Hunt, Capture The Egg)",
"PC-Transfer":"PC-Transfer (Team Deathmatch, Free Roam, Hunt)",
"PC-UtilityBase":"PC-UtilityBase (Team Deathmatch, Free Roam, Hunt, Capture The Egg)",
"PC-UtilityBaseSnow":"PC-UtilityBaseSnow (Team Deathmatch, Free Roam)",
"PC-Verdant":"PC-Verdant (Team Deathmatch, Free Roam, Hunt)",
"PC-Volcano":"PC-Volcano (Team Deathmatch, Free Roam)",
"PC-Waterlogged":"PC-Waterlogged (Team Deathmatch, Free Roam)",
"GTTC-Docks":"GTTC-Docks (Get To The Chopper, Free Roam)",
"GTTC-Downpour":"GTTC-Downpour (Get To The Chopper, Free Roam)",
"GTTC-PhantomCave":"GTTC-PhantomCave (Get To The Chopper)",
"GTTC-Ruthless":"GTTC-Ruthless (Get To The Chopper, Free Roam)",
"GTTC-RuthlessSnow":"GTTC-RuthlessSnow (Get To The Chopper, Free Roam)",
"GTTC-TheFalls":"GTTC-TheFalls (Get To The Chopper, Free Roam)",
"FR-ForgottenWorld":"FR-ForgottenWorld (Free Roam)",
"FR-Island":"FR-Island (Free Roam)",
"FR-Seasons":"FR-Seasons (Free Roam)",
"FR-Valley":"FR-Valley (Free Roam)",
"AI-Geothermal":"AI-Geothermal (Survival)",
"AI-Renaissance":"AI-Renaissance (Survival)",
"AI-VisitorCenter":"AI-VisitorCenter (Survival)",
"AI-WhiteForest":"AI-WhiteForest (Survival)",
"{{CustomMap}}":"Custom"
}
},
{
"DisplayName":"Custom Map Name",
"Category":"PCE Server Settings",
"Description":"Sets a custom map for the server. Custom type must be selected under \"Server Map\"",
"Keywords":"custom,map",
"FieldName":"CustomMap",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"CustomMap",
"IncludeInCommandLine":false,
"DefaultValue":"",
"Placeholder":"",
"EnumValues":{}
},
{
"DisplayName":"Game Mode",
"Category":"Ground Branch Server",
"Description":"Sets the game mode to be used with the selected map",
"Keywords":"game,mode,gamemode",
"FieldName":"GameMode",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"GameMode",
"IncludeInCommandLine":false,
"DefaultValue":"PrimalCarnageGame.PCTeamDeathMatchGame",
"EnumValues":{
"PrimalCarnageGame.PCTeamDeathMatchGame":"Team Deathmatch (default)",
"PrimalCarnageGame.PCGetToTheChopperGame":"Get To The Chopper (GTTC)",
"PrimalCarnageGame.PCFreeRoamGame":"Free Roam",
"PrimalCarnageGame.PCSurvivalGame":"Survival",
"PrimalCarnageGame.PCHuntGame":"Hunt",
"PrimalCarnageGame.PCCaptureTheEggGame":"Capture The Egg"
}
},
{
"DisplayName":"Server IP Binding",
"Category":"PCE Server Settings",
"Description":"If required, you can change the binding of the server by editing App.ApplicationIPBinding in GenericModule.kvp for the instance. Stop the instance (not just the server) first",
"Keywords":"ip,binding,multihome",
"FieldName":"MultiHome",
"InputType":"hidden",
"IsFlagArgument":false,
"ParamFieldName":"MultiHome",
"IncludeInCommandLine":false,
"EnumValues":{}
},
{
"DisplayName":"Player Limit",
"Category":"PCE Server Settings",
"Description":"Sets the maximum number of players that may connect to the server at one time",
"Keywords":"maximum,players,limit,maxplayers",
"FieldName":"$MaxUsers",
"InputType":"number",
"MinValue":"1",
"IsFlagArgument":false,
"ParamFieldName":"MaxPlayers",
"IncludeInCommandLine":true,
"DefaultValue":"16",
"Placeholder":"16",
"Suffix":"players",
"EnumValues":{}
},
{
"DisplayName":"Player Limit",
"Category":"PCE Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"$MaxUsers",
"InputType":"number",
"Hidden":true,
"IsFlagArgument":false,
"ParamFieldName":"Engine.GameInfo.MaxPlayers",
"IncludeInCommandLine":false,
"EnumValues":{}
},
{
"DisplayName":"Spectator Limit",
"Category":"PCE Server Settings",
"Description":"Sets the maximum number of spectators that may connect to the server at one time",
"Keywords":"maximum,spectators,limit,maxspectators",
"FieldName":"MaxSpectators",
"InputType":"number",
"MinValue":"0",
"IsFlagArgument":false,
"ParamFieldName":"Engine.GameInfo.MaxSpectators",
"IncludeInCommandLine":false,
"DefaultValue":"2",
"Placeholder":"2",
"Suffix":"spectators",
"EnumValues":{}
},
{
"DisplayName":"Enable Valve Anti-cheat",
"Category":"PCE Server Settings",
"Description":"If set, Valve Anti-cheat (VAC) will be enabled",
"Keywords":"valve,anti,cheat,vac,busevac",
"FieldName":"bUseVAC",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"OnlineSubsystemSteamworks.OnlineSubsystemSteamworks.bUseVAC",
"IncludeInCommandLine":false,
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Additional Command Line Options",
"Category":"PCE Server Settings",
"Description":"Specifies additional command line options (if any) that are not otherwise set by AMP. ONE LINE ONLY! Format: ?<setting>=<value> (with no spaces between settings). Use with care",
"Keywords":"custom,server,options",
"FieldName":"CustomServerArgs",
"InputType":"Textarea",
"IsFlagArgument":false,
"ParamFieldName":"CustomServerArgs",
"IncludeInCommandLine":false,
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Match Win Condition",
"Category":"PCE Gameplay Settings",
"Description":"Sets the match win condition",
"Keywords":"match,win,condition,matchwincondition",
"FieldName":"MatchWinCondition",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"MatchWinCondition",
"IncludeInCommandLine":true,
"DefaultValue":"bestof",
"EnumValues":{
"bestof":"Best Of",
"":""
}
},
{
"DisplayName":"Match Time Limit",
"Category":"PCE Gameplay Settings",
"Description":"Sets the match time limit. 0 = disabled",
"Keywords":"match,time,limit,matchtimelimit",
"FieldName":"MatchTimeLimit",
"InputType":"number",
"MinValue":"0",
"IsFlagArgument":false,
"ParamFieldName":"MatchTimeLimit",
"IncludeInCommandLine":true,
"DefaultValue":"0",
"Placeholder":"0",
"Suffix":"minutes",
"EnumValues":{}
},
{
"DisplayName":"Match Score Target",
"Category":"PCE Gameplay Settings",
"Description":"Sets the match score target. 0 = disabled",
"Keywords":"match,score,target,matchscoretarget",
"FieldName":"MatchScoreTarget",
"InputType":"number",
"MinValue":"0",
"IsFlagArgument":false,
"ParamFieldName":"MatchScoreTarget",
"IncludeInCommandLine":true,
"DefaultValue":"0",
"Placeholder":"0",
"EnumValues":{}
},
{
"DisplayName":"Round Time Limit",
"Category":"PCE Gameplay Settings",
"Description":"Sets the round time limit. 0 = disabled",
"Keywords":"round,time,limit,roundtimelimit",
"FieldName":"RoundTimeLimit",
"InputType":"number",
"MinValue":"0",
"IsFlagArgument":false,
"ParamFieldName":"RoundTimeLimit",
"IncludeInCommandLine":true,
"DefaultValue":"780",
"Placeholder":"780",
"Suffix":"minutes",
"EnumValues":{}
},
{
"DisplayName":"Round Score Target",
"Category":"PCE Gameplay Settings",
"Description":"Sets the round score target. 0 = disabled",
"Keywords":"round,score,target,roundscoretarget",
"FieldName":"RoundScoreTarget",
"InputType":"number",
"MinValue":"0",
"IsFlagArgument":false,
"ParamFieldName":"RoundScoreTarget",
"IncludeInCommandLine":true,
"DefaultValue":"50",
"Placeholder":"50",
"EnumValues":{}
},
{
"DisplayName":"Enable Damage",
"Category":"PCE Gameplay Settings",
"Description":"If set, damage will be enabled",
"Keywords":"enable,damage,benabledamage",
"FieldName":"bEnableDamage",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"bEnableDamage",
"IncludeInCommandLine":true,
"DefaultValue":"false",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Enable Killing",
"Category":"PCE Gameplay Settings",
"Description":"If set, killing will be enabled",
"Keywords":"enable,killing,benablekilling",
"FieldName":"bEnableKilling",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"bEnableKilling",
"IncludeInCommandLine":true,
"DefaultValue":"false",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Balance Teams",
"Category":"PCE Gameplay Settings",
"Description":"If set, teams will be automatically balanced",
"Keywords":"balance,teams,bbalanceteams",
"FieldName":"bBalanceTeams",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"bBalanceTeams",
"IncludeInCommandLine":true,
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
}
]

View File

@ -0,0 +1,30 @@
[
{
"ConfigFile":"./PrimalCarnageGame/Config/DefaultGame.ini",
"AutoMap":true,
"ConfigType":"ini",
"ConfigFormat":"{0}={1}",
"ConfigFormatRegex":"^(?<key>.+?)=(?<value>.*?)$"
},
{
"ConfigFile":"./PrimalCarnageGame/Config/DefaultEngine.ini",
"AutoMap":true,
"ConfigType":"ini",
"ConfigFormat":"{0}={1}",
"ConfigFormatRegex":"^(?<key>.+?)=(?<value>.*?)$"
},
{
"ConfigFile":"./PrimalCarnageGame/Config/PCServer-PrimalCarnageGame.ini",
"AutoMap":true,
"ConfigType":"ini",
"ConfigFormat":"{0}={1}",
"ConfigFormatRegex":"^(?<key>.+?)=(?<value>.*?)$"
},
{
"ConfigFile":"./PrimalCarnageGame/Config/PCServer-PrimalCarnageEngine.ini",
"AutoMap":true,
"ConfigType":"ini",
"ConfigFormat":"{0}={1}",
"ConfigFormatRegex":"^(?<key>.+?)=(?<value>.*?)$"
}
]

View File

@ -0,0 +1,17 @@
[
{
"UpdateStageName":"Primal Carnage: Extinction SteamCMD Download",
"UpdateSourcePlatform":"All",
"UpdateSource":"SteamCMD",
"UpdateSourceData":"336400",
"UpdateSourceArgs":"321360",
"ForceDownloadPlatform":"Windows"
},
{
"UpdateStageName":"Initialise Wine",
"UpdateSourcePlatform":"Linux",
"UpdateSource":"Executable",
"UpdateSourceData":"/bin/bash",
"UpdateSourceArgs":"-c 'WINEPREFIX=\"{{$FullRootDir}}.wine\" WINEARCH=win64 /usr/bin/wineboot --init --update'"
}
]