Add Ground Branch (#393)

This commit is contained in:
Greelan 2023-07-05 23:18:57 +03:00 committed by GitHub
parent 28680c5fd2
commit e2d9dbab4b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 962 additions and 0 deletions

100
ground-branch.kvp Normal file
View File

@ -0,0 +1,100 @@
Meta.DisplayName=Ground Branch
Meta.Description=Ground Branch Dedicated Server
Meta.OS=Windows, Linux
Meta.AarchSupport=Unknown
Meta.Arch=x86_64
Meta.Author=Greelan
Meta.URL=https://www.groundbranch.com/
Meta.DisplayImageSource=steam:16900
Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$QueryPort}
Meta.ConfigManifest=ground-branchconfig.json
Meta.MetaConfigManifest=ground-branchmetaconfig.json
Meta.ConfigRoot=ground-branch.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=Ground Branch
App.RootDir=./ground-branch/
App.BaseDirectory=./ground-branch/476400/
App.SteamWorkshopDownloadLocation={{$FullBaseDir}}GroundBranch/Mods
App.ExecutableWin=476400\GroundBranch\Binaries\Win64\GroundBranchServer-Win64-Shipping.exe
App.ExecutableLinux=/usr/bin/wine
App.WorkingDir=476400
App.LinuxCommandLineArgs="./GroundBranch/Binaries/Win64/GroundBranchServer-Win64-Shipping.exe"
App.WindowsCommandLineArgs=
App.CommandLineArgs={{$PlatformArgs}} {{ServerMap}}?Mission={{ServerMission}}?{{$FormattedArgs}}{{CustomServerArgs}} Port={{$GamePort}} QueryPort={{$QueryPort}} MultiHome={{$ApplicationIPBinding}} -nohomedir -stdout -FullStdOutLogOutput
App.UseLinuxIOREDIR=False
App.AppSettings={}
App.EnvironmentVariables={"SteamAppId":"16900","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":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[ground-branchupdates.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=GroundBranchServer-Win64-Shipping.exe
App.SupportsUniversalSleep=False
App.WakeupMode=Any
App.ApplicationReadyMode=RegexMatch
App.TemplateMatchRegex={{(\$?[\w]+)}}
Console.FilterMatchRegex=
Console.FilterMatchReplacement=
Console.ThrowawayMessageRegex=^((WARNING|ERROR): Shader.+|Could not find Wine Gecko.*)$
Console.AppReadyRegex=^\[[\d\.]+-[\d\.:]+\]\[[\d ]+\]LogWorld: Bringing up level for play took: \d+\.\d+$
Console.UserJoinRegex=^\[[\d\.]+-[\d\.:]+\]\[[\d ]+\]LogNet: SteamSockets: New connection \(\d+\) over listening socket accepted (?<steamid>\d+?):\d+$
Console.UserLeaveRegex=^\[[\d\.]+-[\d\.:]+\]\[[\d ]+\]LogNet: UChannel::CleanUp: ChIndex == \d+\. Closing connection\. (?:.*?) RemoteAddr: (?<steamid>\d+?):\d+, (?:.*?)$
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

727
ground-branchconfig.json Normal file
View File

@ -0,0 +1,727 @@
[
{
"DisplayName":"Server Name",
"Category":"Ground Branch Server",
"Description":"Sets the name of the server as shown in the server browser. Maximum 64 characters",
"Keywords":"name,servername",
"FieldName":"ServerName",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKServer.ServerName",
"IncludeInCommandLine":false,
"DefaultValue":"AMP Powered Ground Branch Server",
"EnumValues":{}
},
{
"DisplayName":"MOTD",
"Category":"Ground Branch Server",
"Description":"Sets the player welcome message (MOTD). Maximum 512 characters. <br> = line break, <b> = bold line, <h1 - 3> = heading 1, 2, 3 etc",
"Keywords":"motd,welcome,message,servermotd",
"FieldName":"ServerMOTD",
"InputType":"Textarea",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKServer.ServerMOTD",
"IncludeInCommandLine":false,
"DefaultValue":"<h1>Welcome!<br>This is my Ground Branch server.<br><b>Enjoy!",
"Placeholder":"<h1>Welcome!<br>This is my Ground Branch server.<br><b>Enjoy!",
"EnumValues":{}
},
{
"DisplayName":"Server Web Banner",
"Category":"Ground Branch Server",
"Description":"Sets the URL of a jpg image to act as a server banner in-game where possible. Recommended resolution = 788 x 386",
"Keywords":"web,banner,serverwebbanner",
"FieldName":"ServerWebBanner",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKServer.ServerWebBanner",
"IncludeInCommandLine":false,
"DefaultValue":"",
"Placeholder":"www.images.com/myimage.jpeg",
"EnumValues":{}
},
{
"DisplayName":"Server Password",
"Category":"Ground Branch Server",
"Description":"Sets the password for players to join the server. Default is no password",
"Keywords":"server,password,serverpassword",
"FieldName":"ServerPassword",
"InputType":"password",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKServer.ServerPassword",
"IncludeInCommandLine":false,
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Spectator Password",
"Category":"Ground Branch Server",
"Description":"Sets the password to join the server as a permanent spectator. Default is no password",
"Keywords":"server,password,spectator,spectatoronlypassword",
"FieldName":"SpectatorOnlyPassword",
"InputType":"password",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKServer.SpectatorOnlyPassword",
"IncludeInCommandLine":false,
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Server Map List",
"Category":"Ground Branch Server",
"Description":"A map list can be specified in GroundBranch/ServerConfig/MapList.ini. Used for automatic rotation or voting selection of maps. The map list is easiest to build from the in-game Admin menu, but can also be done manually",
"Keywords":"map,list,maplist",
"FieldName":"MapList",
"InputType":"hidden",
"IsFlagArgument":false,
"ParamFieldName":"MapList",
"IncludeInCommandLine":false,
"EnumValues":{}
},
{
"DisplayName":"Server Map",
"Category":"Ground Branch Server",
"Description":"Sets the map for the server, if no map list is specified in MapList.ini. Requires the Server Mission also to be set, otherwise the Server Default map will be used. 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":"747",
"EnumValues":{
"747":"747",
"Arena":"Arena",
"Arena2":"Arena II",
"City":"City",
"Compound":"Compound",
"Creek":"Creek",
"Depot":"Depot",
"Depot_Compound":"Depot (Compound)",
"Docks":"Docks",
"Paintball":"Paintball",
"PowerStation":"Power Station",
"RunDown":"Run Down",
"Rig":"Rig",
"SmallTown":"Small Town",
"StorageFacility":"Storage Facility",
"Tanker":"Tanker",
"TheFarm":"The Farm",
"{{CustomMap}}":"Custom"
}
},
{
"DisplayName":"Custom Map Name",
"Category":"Ground Branch Server",
"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":"Server Mission",
"Category":"Ground Branch Server",
"Description":"Sets the mission to be used with the selected map. Check missions available for a map in GroundBranch/Content/GroundBranch/Mission. To use a mission not listed in the dropdown, select Custom and set the \"Custom Mission Name\"",
"Keywords":"mission",
"FieldName":"ServerMission",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"ServerMission",
"IncludeInCommandLine":false,
"DefaultValue":"Deathmatch",
"EnumValues":{
"Deathmatch":"Deathmatch",
"DTAS":"Dynamic Take and Secure (DTAS)",
"HostageRescue":"Hostage Rescue",
"IntelRetrieval":"Intel Retrieval",
"LastManStanding":"Last Man Standing",
"TeamElimination":"Team Elimination",
"TerroristHunt":"Terrorist Hunt",
"Training":"Training",
"Uplink":"Uplink",
"{{CustomMission}}":"Custom"
}
},
{
"DisplayName":"Custom Mission Name",
"Category":"Ground Branch Server",
"Description":"Sets a custom mission to be used with the selected map. Custom type must be selected under \"Server Mission\"",
"Keywords":"custom,mission",
"FieldName":"CustomMission",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"CustomMission",
"IncludeInCommandLine":false,
"DefaultValue":"",
"Placeholder":"",
"EnumValues":{}
},
{
"DisplayName":"Server IP Binding",
"Category":"Ground Branch Server",
"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":"Ground Branch Server",
"Description":"Sets the maximum number of players that may connect to the server at one time. Recommended maximums: PvE/Co-op = 8, PvP = 16",
"Keywords":"maximum,players,limit,maxplayers",
"FieldName":"$MaxUsers",
"InputType":"number",
"MinValue":"1",
"MaxValue":"16",
"IsFlagArgument":false,
"ParamFieldName":"MaxPlayers",
"IncludeInCommandLine":true,
"DefaultValue":"16",
"Placeholder":"16",
"Suffix":"players",
"EnumValues":{}
},
{
"DisplayName":"Player Limit",
"Category":"Ground Branch Server",
"Description":"",
"Keywords":"",
"FieldName":"$MaxUsers",
"InputType":"number",
"Hidden":true,
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKServer.MaxPlayers",
"IncludeInCommandLine":false,
"EnumValues":{}
},
{
"DisplayName":"Spectator Limit",
"Category":"Ground Branch Server",
"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":"/Script/RBZooKeeper.ZKServer.MaxSpectators",
"IncludeInCommandLine":false,
"DefaultValue":"0",
"Placeholder":"0",
"Suffix":"spectators",
"EnumValues":{}
},
{
"DisplayName":"Server Admins",
"Category":"Ground Branch Server",
"Description":"Server admins can be specified in GroundBranch/ServerConfig/Admin.ini. Each admin on a new line, in the format: Admins=(Name=\"<name>\",UniqueId=\"<uniqueid>\",ContactInfo=\"<optional>\",Group=\"<group>\")",
"Keywords":"server,admins,serveradmins",
"FieldName":"ServerAdmins",
"InputType":"hidden",
"IsFlagArgument":false,
"ParamFieldName":"ServerAdmins",
"IncludeInCommandLine":false,
"EnumValues":{}
},
{
"DisplayName":"Additional Command Line Options",
"Category":"Ground Branch Server",
"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":"Maximum AI",
"Category":"Ground Branch Gameplay",
"Description":"Sets the maximum number of AI used in any game mode. Recommended maximum = 30",
"Keywords":"ai,maximum,maxai",
"FieldName":"MaxAI",
"InputType":"number",
"MinValue":"0",
"MaxValue":"50",
"IsFlagArgument":false,
"ParamFieldName":"MaxAI",
"IncludeInCommandLine":true,
"DefaultValue":"2",
"Placeholder":"2",
"Suffix":"AI",
"EnumValues":{}
},
{
"DisplayName":"AI Number For Intel Retrieval / Terrorist Hunt",
"Category":"Ground Branch Gameplay",
"Description":"Sets the number of AI to spawn in the Intel Retrieval and Terrorist Hunt mission types. Limited to Maximum AI",
"Keywords":"ai,spawn,opforcount",
"FieldName":"OpForCount",
"InputType":"number",
"MinValue":"1",
"MaxValue":"50",
"IsFlagArgument":false,
"ParamFieldName":"OpForCount",
"IncludeInCommandLine":true,
"DefaultValue":"1",
"Placeholder":"1",
"Suffix":"AI",
"EnumValues":{}
},
{
"DisplayName":"AI Difficulty Level",
"Category":"Ground Branch Gameplay",
"Description":"Sets the difficulty settings to use for AI in the Intel Retrieval and Terrorist Hunt mission types",
"Keywords":"ai,difficulty",
"FieldName":"Difficulty",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"Difficulty",
"IncludeInCommandLine":true,
"DefaultValue":"2",
"EnumValues":{
"0":"Custom",
"1":"Easy",
"2":"Normal",
"3":"Hard",
"4":"Veteran"
}
},
{
"DisplayName":"Time Limit",
"Category":"Ground Branch Gameplay",
"Description":"Sets the time period until the game ends and the map changes. 0 = disabled",
"Keywords":"time,limit,timelimit",
"FieldName":"TimeLimit",
"InputType":"number",
"MinValue":"0",
"IsFlagArgument":false,
"ParamFieldName":"TimeLimit",
"IncludeInCommandLine":true,
"DefaultValue":"0",
"Placeholder":"0",
"Suffix":"minutes",
"EnumValues":{}
},
{
"DisplayName":"Ready Countdown Time",
"Category":"Ground Branch Gameplay",
"Description":"Sets the time period between declaring ready and everyone being sent to the play area",
"Keywords":"ready,countdown,time,readycountdowntime",
"FieldName":"ReadyCountdownTime",
"InputType":"number",
"MinValue":"5",
"IsFlagArgument":false,
"ParamFieldName":"ReadyCountdownTime",
"IncludeInCommandLine":true,
"DefaultValue":"5",
"Placeholder":"5",
"Suffix":"seconds",
"EnumValues":{}
},
{
"DisplayName":"Pre Round Wait Time",
"Category":"Ground Branch Gameplay",
"Description":"Sets the time period for which players are frozen before the round begins",
"Keywords":"pre,round,wait,time,preroundwaittime",
"FieldName":"PreRoundWaitTime",
"InputType":"number",
"MinValue":"5",
"IsFlagArgument":false,
"ParamFieldName":"PreRoundWaitTime",
"IncludeInCommandLine":true,
"DefaultValue":"5",
"Placeholder":"5",
"Suffix":"seconds",
"EnumValues":{}
},
{
"DisplayName":"Round Time",
"Category":"Ground Branch Gameplay",
"Description":"Sets the time period for which each round lasts",
"Keywords":"round,time,roundtime",
"FieldName":"RoundTime",
"InputType":"number",
"MinValue":"3",
"IsFlagArgument":false,
"ParamFieldName":"RoundTime",
"IncludeInCommandLine":true,
"DefaultValue":"3",
"Placeholder":"3",
"Suffix":"minutes",
"EnumValues":{}
},
{
"DisplayName":"Post Round Wait Time",
"Category":"Ground Branch Gameplay",
"Description":"Sets the time period after a round ends before players are sent back to the ready room",
"Keywords":"post,round,wait,time,postroundwaittime",
"FieldName":"PostRoundWaitTime",
"InputType":"number",
"MinValue":"5",
"IsFlagArgument":false,
"ParamFieldName":"PostRoundWaitTime",
"IncludeInCommandLine":true,
"DefaultValue":"5",
"Placeholder":"5",
"Suffix":"seconds",
"EnumValues":{}
},
{
"DisplayName":"Default PvE/Co-op Match Type",
"Category":"Ground Branch Gameplay",
"Description":"Sets the default match type for the PvE/Co-op game mode",
"Keywords":"match,type,pve,co-op,game,mode,pvematchtype",
"FieldName":"PVEMatchType",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKServer.PVEMatchType",
"IncludeInCommandLine":false,
"DefaultValue":"Continuous",
"EnumValues":{
"Continuous":"Continuous (default)",
"BestOf":"Best Of",
"FirstTo":"First To",
"Play":"Play",
"PlayUntilWin":"Play Until Win",
"TimeLimit":"Time Limit"
}
},
{
"DisplayName":"Default PvE/Co-op Round Limit",
"Category":"Ground Branch Gameplay",
"Description":"Sets the default number of rounds (or default number of minutes in the case of the Time Limit match type) for the PvE/Co-op game mode",
"Keywords":"round,time,limit,pve,co-op,pveroundlimit",
"FieldName":"PVERoundLimit",
"InputType":"number",
"MinValue":"1",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKServer.PVERoundLimit",
"IncludeInCommandLine":false,
"DefaultValue":"2",
"Placeholder":"2",
"Suffix":"rounds/minutes",
"EnumValues":{}
},
{
"DisplayName":"Default PvP Match Type",
"Category":"Ground Branch Gameplay",
"Description":"Sets the default match type for the PvP game mode",
"Keywords":"match,type,game,mode,pvp,pvpmatchtype",
"FieldName":"PVPMatchType",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKServer.PVPMatchType",
"IncludeInCommandLine":false,
"DefaultValue":"Continuous",
"EnumValues":{
"Continuous":"Continuous (default)",
"BestOf":"Best Of",
"FirstTo":"First To",
"Play":"Play",
"PlayUntilWin":"Play Until Win",
"TimeLimit":"Time Limit"
}
},
{
"DisplayName":"Default PvP Round Limit",
"Category":"Ground Branch Gameplay",
"Description":"Sets the default number of rounds (or default number of minutes in the case of the Time Limit match type) for the PvP game mode",
"Keywords":"round,time,limit,pvp,pvproundlimit",
"FieldName":"PVPRoundLimit",
"InputType":"number",
"MinValue":"1",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKServer.PVPRoundLimit",
"IncludeInCommandLine":false,
"DefaultValue":"3",
"Placeholder":"3",
"Suffix":"rounds/minutes",
"EnumValues":{}
},
{
"DisplayName":"Default PvP Free-For-All Match Type",
"Category":"Ground Branch Gameplay",
"Description":"Sets the default match type for the PvP free-for-all game mode",
"Keywords":"match,type,game,mode,pvp,ffa,pvpffamatchtype",
"FieldName":"PVPFFAMatchType",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKServer.PVPFFAMatchType",
"IncludeInCommandLine":false,
"DefaultValue":"Continuous",
"EnumValues":{
"Continuous":"Continuous (default)",
"BestOf":"Best Of",
"FirstTo":"First To",
"Play":"Play",
"PlayUntilWin":"Play Until Win",
"TimeLimit":"Time Limit"
}
},
{
"DisplayName":"Default PvP Free-For-All Round Limit",
"Category":"Ground Branch Gameplay",
"Description":"Sets the default number of rounds (or default number of minutes in the case of the Time Limit match type) for the PvP free-for-all game mode",
"Keywords":"round,time,limit,pvp,ffa,pvpffaroundlimit",
"FieldName":"PVPFFARoundLimit",
"InputType":"number",
"MinValue":"1",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKServer.PVPFFARoundLimit",
"IncludeInCommandLine":false,
"DefaultValue":"1",
"Placeholder":"1",
"Suffix":"rounds/minutes",
"EnumValues":{}
},
{
"DisplayName":"Game Rules",
"Category":"Ground Branch Gameplay",
"Description":"Sets the default game rules for the server",
"Keywords":"game,rules,gamerules",
"FieldName":"GameRules",
"InputType":"Textarea",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKServer.GameRules",
"IncludeInCommandLine":false,
"DefaultValue":"((\"AllowCheats\", False),(\"AllowDeadChat\", True),(\"AllowUnrestrictedRadio\", False),(\"AllowUnrestrictedVoice\", False),(\"SpectateEnemies\", True),(\"SpectateForceFirstPerson\", False),(\"SpectateFreeCam\", True),(\"UseTeamRestrictions\", False))",
"Placeholder":"((\"AllowCheats\", False),(\"AllowDeadChat\", True),(\"AllowUnrestrictedRadio\", False),(\"AllowUnrestrictedVoice\", False),(\"SpectateEnemies\", True),(\"SpectateForceFirstPerson\", False),(\"SpectateFreeCam\", True),(\"UseTeamRestrictions\", False))",
"EnumValues":{}
},
{
"DisplayName":"Time Of Day",
"Category":"Ground Branch Gameplay",
"Description":"Sets the time of day for starting the server, in military time",
"Keywords":"time,day,timeofday",
"FieldName":"TimeOfDay",
"InputType":"number",
"MinValue":"0000",
"MaxValue":"2400",
"IsFlagArgument":false,
"ParamFieldName":"TimeOfDay",
"IncludeInCommandLine":true,
"DefaultValue":"1200",
"Placeholder":"1200",
"EnumValues":{}
},
{
"DisplayName":"Enable Spectator Free Camera",
"Category":"Ground Branch Gameplay",
"Description":"If enabled, spectators will be able to fly around freely without following anyone",
"Keywords":"spectator,fly,free,camera,spectatefreecam",
"FieldName":"SpectateFreeCam",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"SpectateFreeCam",
"IncludeInCommandLine":true,
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Allow Spectators To Follow Enemies",
"Category":"Ground Branch Gameplay",
"Description":"If enabled, spectators will be able to follow members of enemy teams",
"Keywords":"spectator,enemy,follow,spectateenemies",
"FieldName":"SpectateEnemies",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"SpectateEnemies",
"IncludeInCommandLine":true,
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Force Spectator First Person View",
"Category":"Ground Branch Gameplay",
"Description":"If enabled, spectators' view mode will be forced to first-person only",
"Keywords":"spectator,view,first,person,spectateforcefirstferson",
"FieldName":"SpectateForceFirstPerson",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"SpectateForceFirstPerson",
"IncludeInCommandLine":true,
"DefaultValue":"0",
"EnumValues":{
"False":"0",
"True":"1"
}
},
{
"DisplayName":"Default Ban Duration",
"Category":"Ground Branch Gameplay",
"Description":"Sets the default time period that will populate in the Ban Duration prompt when a player moves to ban someone",
"Keywords":"ban,duration,defaultbanduration",
"FieldName":"DefaultBanDuration",
"InputType":"number",
"MinValue":"0",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKBan.DefaultBanDuration",
"IncludeInCommandLine":false,
"DefaultValue":"720",
"Placeholder":"720",
"Suffix":"minutes",
"EnumValues":{}
},
{
"DisplayName":"Vote Duration",
"Category":"Ground Branch Gameplay",
"Description":"Sets the time period for voting",
"Keywords":"vote,duration,voteduration",
"FieldName":"VoteDuration",
"InputType":"number",
"MinValue":"1",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKVote.VoteDuration",
"IncludeInCommandLine":false,
"DefaultValue":"30",
"Placeholder":"30",
"Suffix":"seconds",
"EnumValues":{}
},
{
"DisplayName":"Successful Vote Timeout",
"Category":"Ground Branch Gameplay",
"Description":"Sets the time period that must pass after a successful vote before another vote can be called",
"Keywords":"vote,successful,timeout,votesucceededtimeout",
"FieldName":"VoteSucceededTimeout",
"InputType":"number",
"MinValue":"1",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKVote.VoteSucceededTimeout",
"IncludeInCommandLine":false,
"DefaultValue":"60",
"Placeholder":"60",
"Suffix":"seconds",
"EnumValues":{}
},
{
"DisplayName":"Failed Vote Timeout",
"Category":"Ground Branch Gameplay",
"Description":"Sets the time period that must pass after a failed vote before another vote can be called",
"Keywords":"vote,failed,timeout,votefailedtimeout",
"FieldName":"VoteFailedTimeout",
"InputType":"number",
"MinValue":"1",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKVote.VoteFailedTimeout",
"IncludeInCommandLine":false,
"DefaultValue":"180",
"Placeholder":"180",
"Suffix":"seconds",
"EnumValues":{}
},
{
"DisplayName":"Map Vote Timeout",
"Category":"Ground Branch Gameplay",
"Description":"Sets the time period that must pass before another map vote can be called",
"Keywords":"vote,map,timeout,mapvotetimeout",
"FieldName":"MapVoteTimeout",
"InputType":"number",
"MinValue":"1",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKVote.MapVoteTimeout",
"IncludeInCommandLine":false,
"DefaultValue":"300",
"Placeholder":"300",
"Suffix":"seconds",
"EnumValues":{}
},
{
"DisplayName":"Minimum Players For Voting",
"Category":"Ground Branch Gameplay",
"Description":"Sets the minimum number of players required to cast a vote",
"Keywords":"vote,minimum,players,minplayers",
"FieldName":"MinPlayers",
"InputType":"number",
"MinValue":"1",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKVote.MinPlayers",
"IncludeInCommandLine":false,
"DefaultValue":"1",
"Placeholder":"1",
"Suffix":"players",
"EnumValues":{}
},
{
"DisplayName":"Allow Voting Off Map List",
"Category":"Ground Branch Gameplay",
"Description":"If enabled, players can vote for maps outside of the server map list, assuming the \"changemap\" VotingCommands is specified in Vote.ini, and subject to any PermittedGameModes restrictions in Vote.ini",
"Keywords":"vote,map,off,list,ballowvotingoffmaplist",
"FieldName":"bAllowVotingOffMapList",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKVote.bAllowVotingOffMapList",
"IncludeInCommandLine":false,
"DefaultValue":"False",
"EnumValues":{
"False":"False",
"True":"True"
}
},
{
"DisplayName":"Maximum Teamkills",
"Category":"Ground Branch Gameplay",
"Description":"Sets the threshold number of teamkills before the server automoderates by banning the relevant player",
"Keywords":"teamkill,maximum,maxteamkills",
"FieldName":"MaxTeamKills",
"InputType":"number",
"MinValue":"1",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKTeamKill.MaxTeamKills",
"IncludeInCommandLine":false,
"DefaultValue":"3",
"Placeholder":"3",
"Suffix":"teamkills",
"EnumValues":{}
},
{
"DisplayName":"Teamkill Ban Time",
"Category":"Ground Branch Gameplay",
"Description":"Sets the time period for which a player will be banned if the teamkill server automoderation is activated",
"Keywords":"teamkill,ban,time,bantime",
"FieldName":"BanTime",
"InputType":"number",
"MinValue":"1",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKTeamKill.BanTime",
"IncludeInCommandLine":false,
"DefaultValue":"60",
"Placeholder":"60",
"Suffix":"minutes",
"EnumValues":{}
},
{
"DisplayName":"Teamkill Expire Time Period",
"Category":"Ground Branch Gameplay",
"Description":"Sets the time period after which a teamkill will not be counted towards the Maximum Teamkills number",
"Keywords":"teamkill,expire,refresh,time,teamkillexpiretime",
"FieldName":"TeamKillExpireTime",
"InputType":"number",
"MinValue":"1",
"IsFlagArgument":false,
"ParamFieldName":"/Script/RBZooKeeper.ZKTeamKill.TeamKillExpireTime",
"IncludeInCommandLine":false,
"DefaultValue":"30",
"Placeholder":"30",
"Suffix":"minutes",
"EnumValues":{}
}
]

View File

@ -0,0 +1,30 @@
[
{
"ConfigFile":"./GroundBranch/ServerConfig/Server.ini",
"AutoMap":true,
"ConfigType":"ini",
"ConfigFormat":"{0}={1}",
"ConfigFormatRegex":"^(?<key>.+?)=(?<value>.*?)$"
},
{
"ConfigFile":"./GroundBranch/ServerConfig/Vote.ini",
"AutoMap":true,
"ConfigType":"ini",
"ConfigFormat":"{0}={1}",
"ConfigFormatRegex":"^(?<key>.+?)=(?<value>.*?)$"
},
{
"ConfigFile":"./GroundBranch/ServerConfig/Ban.ini",
"AutoMap":true,
"ConfigType":"ini",
"ConfigFormat":"{0}={1}",
"ConfigFormatRegex":"^(?<key>.+?)=(?<value>.*?)$"
},
{
"ConfigFile":"./GroundBranch/ServerConfig/TeamKill.ini",
"AutoMap":true,
"ConfigType":"ini",
"ConfigFormat":"{0}={1}",
"ConfigFormatRegex":"^(?<key>.+?)=(?<value>.*?)$"
}
]

15
ground-branchserver.ini Normal file
View File

@ -0,0 +1,15 @@
[/Script/RBZooKeeper.ZKServer]
ServerName=AMP Powered Ground Branch Server
ServerMOTD=<h1>Welcome!<br>This is my Ground Branch server.<br><b>Enjoy!
ServerPassword=
SpectatorOnlyPassword=
MaxPlayers=16
MaxSpectators=0
ServerWebBanner=
PVEMatchType=Continuous
PVERoundLimit=2
PVPMatchType=Continuous
PVPRoundLimit=3
PVPFFAMatchType=Continuous
PVPFFARoundLimit=1
GameRules=(("AllowCheats", False),("AllowDeadChat", True),("AllowUnrestrictedRadio", False),("AllowUnrestrictedVoice", False),("SpectateEnemies", True),("SpectateForceFirstPerson", False),("SpectateFreeCam", True),("UseTeamRestrictions", False))

View File

@ -0,0 +1,4 @@
[/Script/RBZooKeeper.ZKTeamKill]
MaxTeamKills=3
BanTime=60
TeamKillExpireTime=30

56
ground-branchupdates.json Normal file
View File

@ -0,0 +1,56 @@
[
{
"UpdateStageName":"Ground Branch SteamCMD Download",
"UpdateSourcePlatform":"All",
"UpdateSource":"SteamCMD",
"UpdateSourceData":"476400",
"UpdateSourceArgs":"16900",
"ForceDownloadPlatform":"Windows"
},
{
"UpdateStageName":"Create ServerConfig Directory",
"UpdateSourcePlatform":"All",
"UpdateSource":"CreateDirectory",
"UpdateSourceArgs":"{{$FullBaseDir}}GroundBranch/ServerConfig"
},
{
"UpdateStageName":"Create Mods Directory",
"UpdateSourcePlatform":"All",
"UpdateSource":"CreateDirectory",
"UpdateSourceArgs":"{{$FullBaseDir}}GroundBranch/Mods"
},
{
"UpdateStageName":"Server.ini File Download",
"UpdateSourcePlatform":"All",
"UpdateSource":"FetchURL",
"UpdateSourceData":"https://github.com/CubeCoders/AMPTemplates/raw/main/ground-branchserver.ini",
"UpdateSourceArgs":"Server.ini",
"UpdateSourceTarget":"{{$FullBaseDir}}GroundBranch/ServerConfig",
"OverwriteExistingFiles":false
},
{
"UpdateStageName":"Vote.ini File Download",
"UpdateSourcePlatform":"All",
"UpdateSource":"FetchURL",
"UpdateSourceData":"https://github.com/CubeCoders/AMPTemplates/raw/main/ground-branchvote.ini",
"UpdateSourceArgs":"Vote.ini",
"UpdateSourceTarget":"{{$FullBaseDir}}GroundBranch/ServerConfig",
"OverwriteExistingFiles":false
},
{
"UpdateStageName":"TeamKill.ini File Download",
"UpdateSourcePlatform":"All",
"UpdateSource":"FetchURL",
"UpdateSourceData":"https://github.com/CubeCoders/AMPTemplates/raw/main/ground-branchteamkill.ini",
"UpdateSourceArgs":"TeamKill.ini",
"UpdateSourceTarget":"{{$FullBaseDir}}GroundBranch/ServerConfig",
"OverwriteExistingFiles":false
},
{
"UpdateStageName":"Initialise Wine",
"UpdateSourcePlatform":"Linux",
"UpdateSource":"Executable",
"UpdateSourceData":"/bin/bash",
"UpdateSourceArgs":"-c 'WINEPREFIX=\"{{$FullRootDir}}.wine\" WINEARCH=win64 /usr/bin/wineboot --init --update'"
}
]

30
ground-branchvote.ini Normal file
View File

@ -0,0 +1,30 @@
[/Script/RBZooKeeper.ZKVote]
; The following settings must be set via the AMP UI
VoteDuration=30
VoteSucceededTimeout=60
VoteFailedTimeout=180
MapVoteTimeout=300
MinPlayers=1
bAllowVotingOffMapList=False
; The following settings must be set manually in this file
; VotingCommands sets the voting commands that will be available to the users
; Only changemap, nextmap, kick, missionsettings and restartround are available
VotingCommands=changemap
VotingCommands=nextmap
VotingCommands=kick
VotingCommands=missionsettings
VotingCommands=restartround
; PermittedGameModes allows server admins to specify particular game modes which can be selected
; (without any restriction on which missions can be selected for those modes).
; For example (multiple can be listed):
; PermittedGameModes=TerroristHunt
; PermittedGameModes=IntelRetrieval
; Custom game modes can be listed here also (use the Lua script name - without spaces)
; Specify "any" to allow all game modes
PermittedGameModes=any
; Note: restrictions to map list and restrictions to specific game modes are cumulative, i.e. both will restrict the selection in turn