Add NEBULOUS: Fleet Command (#340)

This commit is contained in:
Greelan 2023-04-29 22:35:26 +10:00 committed by GitHub
parent ce49591cb4
commit 72d11f07f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 498 additions and 0 deletions

View File

@ -0,0 +1,94 @@
Meta.DisplayName=NEBULOUS: Fleet Command
Meta.Description=NEBULOUS: Fleet Command Dedicated Server
Meta.OS=Linux
Meta.AarchSupport=NotSupported
Meta.Arch=x86_64
Meta.Author=Greelan
Meta.URL=https://store.steampowered.com/app/887570/NEBULOUS_Fleet_Command/
Meta.DisplayImageSource=steam:887570
Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$QueryPort}
Meta.ConfigManifest=nebulous-fleet-commandconfig.json
Meta.MetaConfigManifest=nebulous-fleet-commandmetaconfig.json
Meta.ConfigRoot=nebulous-fleet-command.kvp
Meta.MinAMPVersion=2.4.3.0
Meta.SpecificDockerImage=
Meta.DockerRequired=False
Meta.ContainerPolicy=Supported
Meta.ContainerPolicyReason=
Meta.ExtraSetupStepsURI=
Meta.Prerequsites=[]
Meta.ExtraContainerPackages=[]
Meta.ConfigReleaseState=NotSpecified
Meta.NoCommercialUsage=False
App.DisplayName=NEBULOUS: Fleet Command
App.RootDir=./nebulous-fleet-command/
App.BaseDirectory=./nebulous-fleet-command/2353090/
App.SteamWorkshopDownloadLocation=
App.ExecutableWin=
App.ExecutableLinux=2353090/NebulousDedicatedServer
App.WorkingDir=2353090
App.LinuxCommandLineArgs=
App.WindowsCommandLineArgs=
App.CommandLineArgs={{$PlatformArgs}} -nographics -batchmode -serverConfig ./AMPServerConfig.xml {{$FormattedArgs}} -logFile -
App.UseLinuxIOREDIR=False
App.AppSettings={}
App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:{{$FullRootDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"887570"}
App.CommandLineParameterFormat=-{0} "{1}"
App.CommandLineParameterDelimiter=
App.ExitMethod=OS_CLOSE
App.ExitTimeout=30
App.ExitString=exit
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":"TCP","Port":7777,"Ref":"GamePort","Name":"Game Port","Description":"Port for game traffic"},{"Protocol":"UDP","Port":27016,"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=10
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[nebulous-fleet-commandupdates.json]
App.PreStartStages=[]
App.Compatibility=None
App.SteamUpdateAnonymousLogin=True
App.SteamForceLoginPrompt=False
App.RapidStartup=False
App.MonitorChildProcess=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=^Dedicated server startup completed$
Console.UserJoinRegex=^GameManager::OnServerAddPlayer: Adding player: (?<sessionid>\d+?)$
Console.UserLeaveRegex=^GameManager::OnServerDisconnect: Removing player (?<sessionid>\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

View File

@ -0,0 +1,272 @@
[
{
"DisplayName":"Game Port",
"Category":"NFC Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"$GamePort",
"InputType":"number",
"Hidden":true,
"IsFlagArgument":false,
"ParamFieldName":"SkirmishDedicatedServerConfig/GamePort",
"IncludeInCommandLine":false,
"EnumValues":{}
},
{
"DisplayName":"Steam Query Port",
"Category":"NFC Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"$QueryPort",
"InputType":"number",
"Hidden":true,
"IsFlagArgument":false,
"ParamFieldName":"SkirmishDedicatedServerConfig/QueryPort",
"IncludeInCommandLine":false,
"EnumValues":{}
},
{
"DisplayName":"Server Name",
"Category":"NFC Server Settings",
"Description":"Sets the server name visible in the server browser",
"Keywords":"server,name,servername",
"FieldName":"ServerName",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"SkirmishDedicatedServerConfig/ServerName",
"IncludeInCommandLine":false,
"DefaultValue":"AMP Powered NEBULOUS: Fleet Command Server",
"EnumValues":{}
},
{
"DisplayName":"Server Password",
"Category":"NFC Server Settings",
"Description":"Sets the password required to connect to the server. Default is no password",
"Keywords":"server,password",
"FieldName":"password",
"InputType":"password",
"IsFlagArgument":false,
"ParamFieldName":"SkirmishDedicatedServerConfig/Password",
"IncludeInCommandLine":false,
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Server Admins",
"Category":"NFC Server Settings",
"Description":"Server admins can be configured in the Admins section in AMPServerConfig.xml. Admins can execute ! commands on the server without requiring a vote",
"Keywords":"admins",
"FieldName":"Admins",
"InputType":"hidden",
"IsFlagArgument":false,
"ParamFieldName":"",
"IncludeInCommandLine":false,
"EnumValues":{}
},
{
"DisplayName":"Message Of The Day",
"Category":"NFC Server Settings",
"Description":"Sets the player welcome message (MOTD)",
"Keywords":"motd,welcome,message",
"FieldName":"MOTD",
"InputType":"Textarea",
"IsFlagArgument":false,
"ParamFieldName":"SkirmishDedicatedServerConfig/MOTD",
"IncludeInCommandLine":false,
"DefaultValue":"-- Welcome to N:FC! --\nPlay by the rules!",
"EnumValues":{}
},
{
"DisplayName":"Server Scenario",
"Category":"NFC Server Settings",
"Description":"Sets the scenario for the server. If Custom is selected, Custom Scenario Name must also be set",
"Keywords":"scenario",
"FieldName":"Scenario",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"SkirmishDedicatedServerConfig/Scenario",
"IncludeInCommandLine":false,
"DefaultValue":"Control",
"EnumValues":{
"Deathmatch":"Deathmatch",
"Two Flags":"Two Flags",
"Center Flag":"Center Flag",
"Control":"Control (default)",
"Station Capture":"Station Capture",
"Tug Of War":"Tug Of War",
"{{CustomScenario}}":"Custom"
}
},
{
"DisplayName":"Custom Scenario Name",
"Category":"NFC Server Settings",
"Description":"Sets the name of a custom (modded) scenario for the server. \"Custom\" must be selected under Server Scenario",
"Keywords":"custom,scenario",
"FieldName":"CustomScenario",
"InputType":"text",
"IsFlagArgument":false,
"ParamFieldName":"CustomScenario",
"IncludeInCommandLine":false,
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Server Scenario Settings",
"Category":"NFC Server Settings",
"Description":"Scenario settings can be configured in AMPServerConfig.xml. Otherwise defaults apply",
"Keywords":"scenario,settings,scenariosettings",
"FieldName":"ScenarioSettings",
"InputType":"hidden",
"IsFlagArgument":false,
"ParamFieldName":"",
"IncludeInCommandLine":false,
"EnumValues":{}
},
{
"DisplayName":"Server Maps",
"Category":"NFC Server Settings",
"Description":"Maps for the map rotation can be configured in the Maps section in AMPServerConfig.xml. Default map is Pillars. Modded maps must be included in the Mods section in AMPServerConfig.xml as well",
"Keywords":"map,rotation,maps",
"FieldName":"Maps",
"InputType":"hidden",
"IsFlagArgument":false,
"ParamFieldName":"",
"IncludeInCommandLine":false,
"EnumValues":{}
},
{
"DisplayName":"Map Rotation Order",
"Category":"NFC Server Settings",
"Description":"Sets the order in which the server maps will be selected",
"Keywords":"map,rotation,maprotation",
"FieldName":"MapRotation",
"InputType":"enum",
"IsFlagArgument":false,
"ParamFieldName":"SkirmishDedicatedServerConfig/MapRotation",
"IncludeInCommandLine":false,
"DefaultValue":"Sequential",
"EnumValues":{
"Sequential":"Sequential (default)",
"Random":"Random"
}
},
{
"DisplayName":"Server Mods",
"Category":"NFC Server Settings",
"Description":"Mods can be enabled in the Mods section in AMPServerConfig.xml. The mods specified will be automatically downloaded by the server",
"Keywords":"mods",
"FieldName":"Mods",
"InputType":"hidden",
"IsFlagArgument":false,
"ParamFieldName":"",
"IncludeInCommandLine":false,
"EnumValues":{}
},
{
"DisplayName":"Allow Modded Fleets",
"Category":"NFC Server Settings",
"Description":"If set, mods enabled on the server will be permitted for use on player fleets. The server will show the \"Mod Friendly\" icon",
"Keywords":"mods,modded,fleets,allowmoddedfleets",
"FieldName":"AllowModdedFleets",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"SkirmishDedicatedServerConfig/AllowModdedFleets",
"IncludeInCommandLine":false,
"DefaultValue":"false",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Player Limit",
"Category":"NFC Server Settings",
"Description":"Sets the maximum number of players that may connect to the server at one time. The number of players per team is still decided by the map",
"Keywords":"maximum,players,clients,limit,maxplayers",
"FieldName":"$MaxUsers",
"InputType":"number",
"MinValue":"1",
"IsFlagArgument":false,
"ParamFieldName":"SkirmishDedicatedServerConfig/MaxPlayers",
"IncludeInCommandLine":false,
"DefaultValue":"10",
"Placeholder":"10",
"Suffix":"players",
"EnumValues":{}
},
{
"DisplayName":"Team Size To Start",
"Category":"NFC Server Settings",
"Description":"Sets the number of players that must be present on each team before the game can start",
"Keywords":"team,size,minimum,teamsizetostart",
"FieldName":"TeamSizeToStart",
"InputType":"number",
"MinValue":"1",
"IsFlagArgument":false,
"ParamFieldName":"SkirmishDedicatedServerConfig/TeamSizeToStart",
"IncludeInCommandLine":false,
"DefaultValue":"2",
"Placeholder":"2",
"Suffix":"players",
"EnumValues":{}
},
{
"DisplayName":"Enforce Uniform Team Factions",
"Category":"NFC Server Settings",
"Description":"If enabled, the server will enforce uniform factions on teams",
"Keywords":"uniform,team,factions,requireuniformteams",
"FieldName":"RequireUniformTeams",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"SkirmishDedicatedServerConfig/RequireUniformTeams",
"IncludeInCommandLine":false,
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Game Time Limit",
"Category":"NFC Server Settings",
"Description":"Sets the time limit for games. 0 = unlimited time. The value set indexes into a list of possible time settings. It is NOT a minutes value",
"Keywords":"time,limit,timelimit",
"FieldName":"TimeLimit",
"InputType":"number",
"MinValue":"0",
"IsFlagArgument":false,
"ParamFieldName":"SkirmishDedicatedServerConfig/TimeLimit",
"IncludeInCommandLine":false,
"DefaultValue":"0",
"Placeholder":"0",
"EnumValues":{}
},
{
"DisplayName":"Allow Player Voting",
"Category":"NFC Server Settings",
"Description":"If enabled, players can vote on maps, scenarios and rules",
"Keywords":"map,scenarios,rules,voting,allowmapvoting",
"FieldName":"AllowMapVoting",
"InputType":"checkbox",
"IsFlagArgument":false,
"ParamFieldName":"SkirmishDedicatedServerConfig/AllowMapVoting",
"IncludeInCommandLine":false,
"DefaultValue":"true",
"EnumValues":{
"False":"false",
"True":"true"
}
},
{
"DisplayName":"Bot Settings",
"Category":"NFC Server Settings",
"Description":"Bots listed in the Bots section in AMPServerConfig.xml will be created each time the server returns to the lobby",
"Keywords":"bots",
"FieldName":"Bots",
"InputType":"hidden",
"IsFlagArgument":false,
"ParamFieldName":"",
"IncludeInCommandLine":false,
"EnumValues":{}
}
]

View File

@ -0,0 +1,107 @@
<?xml version="1.0"?>
<SkirmishDedicatedServerConfig xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!--
***************************
Settings in this section are controlled by AMP.
***************************
-->
<ServerName>AMP Powered NEBULOUS: Fleet Command Server</ServerName>
<Password></Password>
<MaxPlayers>10</MaxPlayers>
<GamePort>7777</GamePort>
<QueryPort>27016</QueryPort>
<TeamSizeToStart>2</TeamSizeToStart>
<MOTD>-- Welcome to N:FC! --
Play by the rules!
</MOTD>
<AllowMapVoting>true</AllowMapVoting>
<TimeLimit>0</TimeLimit>
<RequireUniformTeams>true</RequireUniformTeams>
<Scenario>Control</Scenario>
<MapRotation>Sequential</MapRotation>
<AllowModdedFleets>false</AllowModdedFleets>
<!--
***************************
Set relevant settings in this section manually.
Don't forget to remove the comment markers before and after settings that you wish to enable!
***************************
-->
<!--
Listed 64-bit Steam IDs will be registered as admins and can execute ! commands
on the server without requiring a vote. They will also have the Host badge next to
their name in the lobby.
-->
<Admins>
<!-- <unsignedLong>0</unsignedLong> -->
</Admins>
<!--
Change settings for the scenario here, otherwise defaults will be used.
Each setting is selected using a Key, which is the name of the setting as it appears
in the lobby settings list.
The Value field is an integer index into the list of options, starting at 0.
The example below sets the Control victory points to 1500, because it is the third option in the list.
-->
<!--
<ScenarioSettings>
<Setting>
<Key>Victory Points</Key>
<Value>2</Value>
</Setting>
</ScenarioSettings>
-->
<!-- List all maps in the map rotation here. Add by name or key. -->
<Maps>
<string>Pillars</string>
</Maps>
<!--
Enable mods for your server here.
Provide the Steam ID of the mod, which can be found in its workshop URL.
Any mod found in this list will be permitted for use in a player fleet, but only if AllowModdedFleets
is set to true.
If you intend to use modded maps in your rotation, they must be included here as well.
-->
<!--
<Mods>
<unsignedLong>0</unsignedLong>
<unsignedLong>0</unsignedLong>
</Mods>
-->
<!--
Bots listed here will be created each time the server returns to the lobby.
Only the Team field is required. Everything else can be left blank and colors, fleet, and badge will
be chosen randomly for each bot.
-->
<!--
<Bots>
<Bot>
<Team>TeamB</Team>
<Colors>
<BaseColor>
<r>1</r>
<g>1</g>
<b>1</b>
<a>1</a>
</BaseColor>
<StripeColor>
<r>1</r>
<g>1</g>
<b>1</b>
<a>1</a>
</StripeColor>
<Prefix>OSPN</Prefix>
</Colors>
<Badge>OSP_Roundel</Badge>
<Fleet>Starter Fleets - Alliance/TF Oak.fleet</Fleet>
</Bot>
</Bots>
-->
</SkirmishDedicatedServerConfig>

View File

@ -0,0 +1,7 @@
[
{
"ConfigFile":"./AMPServerConfig.xml",
"AutoMap":true,
"ConfigType":"xml"
}
]

View File

@ -0,0 +1,18 @@
[
{
"UpdateStageName":"SteamCMD Download",
"UpdateSourcePlatform":"Linux",
"UpdateSource":"SteamCMD",
"UpdateSourceData":"2353090",
"UpdateSourceArgs":"887570"
},
{
"UpdateStageName":"Config File Download",
"UpdateSourcePlatform":"Linux",
"UpdateSource":"FetchURL",
"UpdateSourceData":"https://raw.githubusercontent.com/CubeCoders/AMPTemplates/main/nebulous-fleet-commanddedicatedserverconfig.xml",
"UpdateSourceArgs":"AMPServerConfig.xml",
"UpdateSourceTarget":"{{$FullBaseDir}}",
"OverwriteExistingFiles":false
}
]