Add Astro Colony

This commit is contained in:
Greelan 2023-10-27 19:03:17 +11:00
parent cd9db0d493
commit b1d6d01ea6
6 changed files with 327 additions and 0 deletions

101
astro-colony.kvp Normal file
View File

@ -0,0 +1,101 @@
Meta.DisplayName=Astro Colony
Meta.Description=Astro Colony Dedicated Server
Meta.OS=Windows, Linux
Meta.AarchSupport=Unknown
Meta.Arch=x86_64
Meta.Author=Greelan
Meta.URL=https://astrocolony.com/
Meta.DisplayImageSource=steam:1614550
Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$SteamQueryPort}
Meta.ConfigManifest=astro-colonyconfig.json
Meta.MetaConfigManifest=astro-colonymetaconfig.json
Meta.ConfigRoot=astro-colony.kvp
Meta.MinAMPVersion=2.4.6.6
Meta.SpecificDockerImage=cubecoders/ampbase:wine
Meta.DockerRequired=False
Meta.DockerBaseReadOnly=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=Astro Colony
App.RootDir=./astro-colony/
App.BaseDirectory=./astro-colony/2662210/
App.SteamWorkshopDownloadLocation=
App.ExecutableWin=2662210\AstroColony\Binaries\Win64\AstroColonyServer.exe
App.ExecutableLinux=/usr/bin/wine
App.WorkingDir=2662210
App.LinuxCommandLineArgs="./AstroColony/Binaries/Win64/AstroColonyServer.exe"
App.WindowsCommandLineArgs=
App.CommandLineArgs={{$PlatformArgs}} AstroColony -Port={{$GamePort}} -QueryPort={{$SteamQueryPort}} {{$FormattedArgs}} -stdout -FullStdOutLogOutput
App.UseLinuxIOREDIR=False
App.AppSettings={}
App.EnvironmentVariables={"SteamAppId":"1614550","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=@IncludeJson[astro-colonyports.json]
App.AdminPortRef=0
App.PrimaryApplicationPortRef=GamePort
App.UniversalSleepApplicationUDPPortRef=GamePort
App.UniversalSleepSteamQueryPortRef=SteamQueryPort
App.MaxUsers=5
App.UseRandomAdminPassword=False
App.PersistRandomPassword=False
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[astro-colonyupdates.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=AstroColonyServer.exe
App.SupportsUniversalSleep=False
App.WakeupMode=Any
App.ApplicationReadyMode=RegexMatch
App.TemplateMatchRegex={{(\$?[\w]+)}}
Console.FilterMatchRegex=
Console.FilterMatchReplacement=
Console.ThrowawayMessageRegex=
Console.AppReadyRegex=^\[[\d.]+-[\d.:]+\]\[[\d ]+\]LogBlueprintUserMessages: \[BP_DedicatedServerPlayerController_C_\d+\] server create success$
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=True
Limits.SleepOnStart=False
Limits.SleepDelayMinutes=5
Limits.DozeDelay=2
Limits.AutoRetryCount=5
Limits.SleepStartThresholdSeconds=25

153
astro-colonyconfig.json Normal file
View File

@ -0,0 +1,153 @@
[
{
"DisplayName":"Important Information",
"Category":"Server Settings",
"Description":"Currently, you must ensure that the Game Port allocated in AMP is 7777, otherwise clients will not be able to connect to the server",
"Keywords":"game,port",
"FieldName":"port",
"InputType":"hidden",
"ParamFieldName":"port",
"EnumValues":{}
},
{
"DisplayName":"Server Name",
"Category":"Server Settings",
"Description":"Sets the name of the server to be displayed in the server list",
"Keywords":"server,name,ServerName",
"FieldName":"ServerName",
"InputType":"text",
"ParamFieldName":"/Script/AstroColony.EHServerSubsystem.ServerName",
"DefaultValue":"AMP Powered Astro Colony Server",
"Placeholder":"AMP Powered Astro Colony Server",
"EnumValues":{}
},
{
"DisplayName":"Server Name",
"Category":"Server Settings",
"Description":"",
"Keywords":"",
"FieldName":"ServerName",
"InputType":"text",
"Hidden":true,
"ParamFieldName":"SteamServerName",
"IncludeInCommandLine":true,
"EnumValues":{}
},
{
"DisplayName":"Server Password",
"Category":"Server Settings",
"Description":"Sets the password required to connect to the server. Default is no password",
"Keywords":"server,password,ServerPassword",
"FieldName":"ServerPassword",
"InputType":"password",
"ParamFieldName":"/Script/AstroColony.EHServerSubsystem.ServerPassword",
"SkipIfEmpty":true,
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Map Name",
"Category":"Server Settings",
"Description":"Sets the map name",
"Keywords":"map,name,MapName",
"FieldName":"MapName",
"InputType":"text",
"ParamFieldName":"/Script/AstroColony.EHServerSubsystem.MapName",
"DefaultValue":"MyAstroColony",
"Placeholder":"MyAstroColony",
"EnumValues":{}
},
{
"DisplayName":"Player Limit",
"Category":"Server Settings",
"Description":"Sets the maximum number of players that may connect to the server at one time",
"Keywords":"maximum,players,clients,limit,MaxPlayers",
"FieldName":"$MaxUsers",
"InputType":"number",
"MinValue":"1",
"ParamFieldName":"/Script/AstroColony.EHServerSubsystem.MaxPlayers",
"DefaultValue":"5",
"Placeholder":"5",
"Suffix":"players",
"EnumValues":{}
},
{
"DisplayName":"Server Admins",
"Category":"Server Settings",
"Description":"Comma separated list of [Steam64 IDs](https://www.steamidfinder.com/) of server admins",
"Keywords":"server,admins,ServerAdminAccounts",
"FieldName":"AdminList",
"InputType":"text",
"ParamFieldName":"/Script/AstroColony.EHServerSubsystem.AdminList",
"DefaultValue":"",
"EnumValues":{}
},
{
"DisplayName":"Savegame Name",
"Category":"Server Settings",
"Description":"Sets the name of the savegame (excluding the .sav extension) to load on server start. Will be overridden by Load Latest Savegame if enabled",
"Keywords":"savegame,name,SavegameName",
"FieldName":"SavegameName",
"InputType":"text",
"ParamFieldName":"/Script/AstroColony.EHServerSubsystem.SavegameName",
"DefaultValue":"MyAstroColony",
"DefaultValue":"MyAstroColony",
"EnumValues":{}
},
{
"DisplayName":"Load Latest Savegame",
"Category":"Server Settings",
"Description":"If enabled, the latest savegame will be loaded on server start",
"Keywords":"load,latest,savegame,ShouldLoadLatestSavegame",
"FieldName":"ShouldLoadLatestSavegame",
"InputType":"checkbox",
"ParamFieldName":"/Script/AstroColony.EHServerSubsystem.ShouldLoadLatestSavegame",
"DefaultValue":"True",
"EnumValues":{
"False":"False",
"True":"True"
}
},
{
"DisplayName":"Enable Shared Technologies",
"Category":"Server Settings",
"Description":"If enabled, technologies will be shared between players, so that research is not duplicated",
"Keywords":"shared,technologies,research,SharedTechnologies",
"FieldName":"SharedTechnologies",
"InputType":"checkbox",
"ParamFieldName":"/Script/AstroColony.EHServerSubsystem.SharedTechnologies",
"DefaultValue":"True",
"EnumValues":{
"False":"False",
"True":"True"
}
},
{
"DisplayName":"Enable Oxygen Consumption",
"Category":"Server Settings",
"Description":"If enabled, players will consume oxygen. If disabled, oxygen will not be required by players",
"Keywords":"oxygen,consumption,OxygenConsumption",
"FieldName":"OxygenConsumption",
"InputType":"checkbox",
"ParamFieldName":"/Script/AstroColony.EHServerSubsystem.OxygenConsumption",
"DefaultValue":"True",
"EnumValues":{
"False":"False",
"True":"True"
}
},
{
"DisplayName":"Enable Free Construction",
"Category":"Server Settings",
"Description":"If enabled, construction will be allowed without cost or spending of resources",
"Keywords":"free,construction,cost,resources,FreeConstruction",
"FieldName":"FreeConstruction",
"InputType":"checkbox",
"ParamFieldName":"/Script/AstroColony.EHServerSubsystem.FreeConstruction",
"DefaultValue":"False",
"EnumValues":{
"False":"False",
"True":"True"
}
}
]

View File

@ -0,0 +1,7 @@
[
{
"ConfigFile":"AstroColony/Saved/Config/WindowsServer/ServerSettings.ini",
"ConfigType":"ini",
"AutoMap":true
}
]

16
astro-colonyports.json Normal file
View File

@ -0,0 +1,16 @@
[
{
"Protocol":"UDP",
"Port":"7777",
"Ref":"GamePort",
"Name":"Game Port",
"Description":"Port used for main game traffic"
},
{
"Protocol":"UDP",
"Port":"27015",
"Ref":"SteamQueryPort",
"Name":"Steam Query Port",
"Description":"Port used for Steam query traffic"
}
]

View File

@ -0,0 +1,10 @@
[/Script/AstroColony.EHServerSubsystem]
ServerPassword=
MapName=MyAstroColony
MaxPlayers=5
SavegameName=MyAstroColony
ShouldLoadLatestSavegame=True
AdminList=
SharedTechnologies=True
OxygenConsumption=True
FreeConstruction=False

40
astro-colonyupdates.json Normal file
View File

@ -0,0 +1,40 @@
[
{
"UpdateStageName":"SteamCMD Server Download",
"UpdateSourcePlatform":"All",
"UpdateSource":"SteamCMD",
"UpdateSourceData":"2662210",
"UpdateSourceArgs":"1614550",
"ForceDownloadPlatform":"Windows"
},
{
"UpdateStageName":"SteamCMD Component Download",
"UpdateSourcePlatform":"All",
"UpdateSource":"SteamCMD",
"UpdateSourceData":"1007",
"UpdateSourceTarget":"{{$FullBaseDir}}AstroColony/Binaries/Win64",
"ForceDownloadPlatform":"Windows"
},
{
"UpdateStageName":"Config Directory Creation",
"UpdateSourcePlatform":"All",
"UpdateSource":"CreateDirectory",
"UpdateSourceArgs":"{{$FullBaseDir}}AstroColony/Saved/Config/WindowsServer"
},
{
"UpdateStageName":"Config File Download",
"UpdateSourcePlatform":"All",
"UpdateSource":"FetchURL",
"UpdateSourceData":"https://raw.githubusercontent.com/Greelan/AMPTemplates/dev/astro-colonyserversettings.ini",
"UpdateSourceTarget":"{{$FullBaseDir}}AstroColony/Saved/Config/WindowsServer",
"UpdateSourceArgs":"ServerSettings.ini",
"OverwriteExistingFiles":false
},
{
"UpdateStageName":"Initialise Wine",
"UpdateSourcePlatform":"Linux",
"UpdateSource":"Executable",
"UpdateSourceData":"/bin/bash",
"UpdateSourceArgs":"-c 'WINEPREFIX=\"{{$FullRootDir}}.wine\" WINEARCH=win64 /usr/bin/wineboot --init --update'"
}
]