diff --git a/astroneer.kvp b/astroneer.kvp index f37fe78..3203c2c 100644 --- a/astroneer.kvp +++ b/astroneer.kvp @@ -1,6 +1,6 @@ Meta.DisplayName=Astroneer Meta.Description=Astroneer Dedicated Server -Meta.OS=Windows +Meta.OS=Windows, Linux Meta.AarchSupport=Unknown Meta.Arch=x86_64 Meta.Author=Greelan, Tueem @@ -11,11 +11,11 @@ Meta.ConfigManifest=astroneerconfig.json Meta.MetaConfigManifest=astroneermetaconfig.json Meta.ConfigRoot=astroneer.kvp Meta.MinAMPVersion=2.3.2.0 -Meta.SpecificDockerImage= +Meta.SpecificDockerImage=cubecoders/ampbase:wine Meta.DockerRequired=False Meta.DockerBaseReadOnly=False -Meta.ContainerPolicy=NotSupported -Meta.ContainerPolicyReason=Astroneer can currently only run under Wine/Proton on Linux (and therefore in Docker), but to do so requires disabling of encryption on server and clients. The AMP template is therefore not configured for Linux. +Meta.ContainerPolicy=SupportedOnWindows, RecommendedOnLinux +Meta.ContainerPolicyReason=Astroneer requires Wine to run on Linux. Using a container avoids the need to install this dependency on the host. Meta.ExtraSetupStepsURI= Meta.Prerequsites=[] Meta.ExtraContainerPackages=[] @@ -29,14 +29,14 @@ App.RootDir=./astroneer/ App.BaseDirectory=./astroneer/728470/ App.SteamWorkshopDownloadLocation= App.ExecutableWin=728470/Astro/Binaries/Win64/AstroServer-Win64-Shipping.exe -App.ExecutableLinux= +App.ExecutableLinux=/usr/bin/wine App.WorkingDir=728470/Astro/Binaries/Win64 -App.LinuxCommandLineArgs= +App.LinuxCommandLineArgs="./AstroServer-Win64-Shipping.exe" -ini:Engine:[SystemSettings]:net.AllowEncryption=False App.WindowsCommandLineArgs= App.CommandLineArgs={{$PlatformArgs}} Port={{$ApplicationPort1}} ConsolePort={{$RemoteAdminPort}} {{$FormattedArgs}} -log App.UseLinuxIOREDIR=False App.AppSettings={} -App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"361420"} +App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"361420","WINEPREFIX":"{{$FullRootDir}}.wine","WINEARCH":"win64","WINEDEBUG":"-all"} App.CommandLineParameterFormat=-{0}={1} App.CommandLineParameterDelimiter= App.ExitMethod=OS_CLOSE @@ -65,7 +65,7 @@ App.RCONConnectRetrySeconds=5 App.RCONHeartbeatMinutes=0 App.RCONHeartbeatCommand=ping App.TelnetLoginFormat={0} -App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"728470","UpdateSourceArgs":"361420","ForceDownloadPlatform":"Windows"}] +App.UpdateSources=@IncludeJson[astroneerupdates.json] App.PreStartStages=[] App.ForceUpdate=False App.ForceUpdateReason= @@ -73,10 +73,10 @@ App.Compatibility=None App.SteamUpdateAnonymousLogin=True App.SteamForceLoginPrompt=False App.RapidStartup=False -App.MonitorChildProcess=False +App.MonitorChildProcess=True App.DumpFullChildProcessTree=False App.MonitorChildProcessWaitMs=100 -App.MonitorChildProcessName= +App.MonitorChildProcessName=wine64 App.SupportsUniversalSleep=False App.WakeupMode=Any App.ApplicationReadyMode=Immediate diff --git a/astroneerconfig.json b/astroneerconfig.json index 35abeb7..5bfce06 100644 --- a/astroneerconfig.json +++ b/astroneerconfig.json @@ -1,186 +1,199 @@ -[ - { - "DisplayName":"Public IP", - "Category":"Server Settings", - "Description":"", - "Keywords":"", - "FieldName":"$ExternalIP", - "InputType":"text", - "Hidden":true, - "IsFlagArgument":false, - "ParamFieldName":"/Script/Astro.AstroServerSettings.PublicIP", - "IncludeInCommandLine":false, - "EnumValues":{} - }, - { - "DisplayName":"Server Port", - "Category":"Server Settings", - "Description":"", - "Keywords":"", - "FieldName":"$ApplicationPort1", - "InputType":"number", - "Hidden":true, - "IsFlagArgument":false, - "ParamFieldName":"URL.Port", - "IncludeInCommandLine":false, - "EnumValues":{} - }, - { - "DisplayName":"Console Port", - "Category":"Server Settings", - "Description":"", - "Keywords":"", - "FieldName":"$RemoteAdminPort", - "InputType":"number", - "Hidden":true, - "IsFlagArgument":false, - "ParamFieldName":"/Script/Astro.AstroServerSettings.ConsolePort", - "IncludeInCommandLine":false, - "EnumValues":{} - }, - { - "DisplayName":"Server Name", - "Category":"Server Settings", - "Description":"The name of the server as it appears publicly", - "Keywords":"name,servername", - "FieldName":"ServerName", - "InputType":"text", - "IsFlagArgument":false, - "ParamFieldName":"/Script/Astro.AstroServerSettings.ServerName", - "IncludeInCommandLine":false, - "DefaultValue":"Astroneer Server - Powered by AMP", - "EnumValues":{} - }, - { - "DisplayName":"Server Password", - "Category":"Server Settings", - "Description":"Password required to connect to the server. Default is no password", - "Keywords":"password,serverpassword", - "FieldName":"ServerPassword", - "InputType":"password", - "IsFlagArgument":false, - "ParamFieldName":"/Script/Astro.AstroServerSettings.ServerPassword", - "IncludeInCommandLine":false, - "DefaultValue":"", - "EnumValues":{} - }, - { - "DisplayName":"Console Password", - "Category":"Server Settings", - "Description":"Password required to connect to the server's RCON (raw TCP socket). Default is a strong random password", - "Keywords":"console,password,rcon,consolepassword", - "FieldName":"ConsolePassword", - "InputType":"password", - "IsFlagArgument":false, - "ParamFieldName":"/Script/Astro.AstroServerSettings.ConsolePassword", - "IncludeInCommandLine":false, - "DefaultValue":"{{newguid()}}", - "EnumValues":{} - }, - { - "DisplayName":"Owner Name", - "Category":"Server Settings", - "Description":"Steam name of the server owner (admin)", - "Keywords":"owner,name,ownername", - "FieldName":"OwnerName", - "InputType":"text", - "IsFlagArgument":false, - "ParamFieldName":"/Script/Astro.AstroServerSettings.OwnerName", - "IncludeInCommandLine":false, - "DefaultValue":"", - "EnumValues":{} - }, - { - "DisplayName":"Player Limit", - "Category":"Server Settings", - "Description":"Maximum number of players that may connect to the server at one time", - "Keywords":"players,limit,maxplayers", - "FieldName":"$MaxUsers", - "InputType":"number", - "MinValue":"2", - "MaxValue":"8", - "IsFlagArgument":false, - "ParamFieldName":"/Script/Astro.AstroGameUserSettings.MaxPlayers", - "IncludeInCommandLine":false, - "DefaultValue":"8", - "Placeholder":"8", - "Suffix":"players", - "EnumValues":{} - }, - { - "DisplayName":"Game Save Interval", - "Category":"Server Settings", - "Description":"The interval between automatic server saves", - "Keywords":"autosave,save,interval,autosavegameinterval", - "FieldName":"AutoSaveGameInterval", - "InputType":"number", - "IsFlagArgument":false, - "ParamFieldName":"/Script/Astro.AstroServerSettings.AutoSaveGameInterval", - "IncludeInCommandLine":false, - "DefaultValue":"900", - "Placeholder":"900", - "Suffix":"seconds", - "EnumValues":{} - }, - { - "DisplayName":"Backup Save Interval", - "Category":"Server Settings", - "Description":"The interval between automatic server backups", - "Keywords":"backup,interval,backupsavegamesinterval", - "FieldName":"BackupSaveGamesInterval", - "InputType":"number", - "IsFlagArgument":false, - "ParamFieldName":"/Script/Astro.AstroServerSettings.BackupSaveGamesInterval", - "IncludeInCommandLine":false, - "DefaultValue":"7200", - "Placeholder":"7200", - "Suffix":"seconds", - "EnumValues":{} - }, - { - "DisplayName":"Enable Whitelist", - "Category":"Server Settings", - "Description":"If enabled, unlisted players will not be able to connect", - "Keywords":"deny,unlisted,denyunlistedplayers", - "FieldName":"DenyUnlistedPlayers", - "InputType":"checkbox", - "IsFlagArgument":false, - "ParamFieldName":"/Script/Astro.AstroServerSettings.DenyUnlistedPlayers", - "IncludeInCommandLine":false, - "DefaultValue":"False", - "EnumValues":{ - "False":"False", - "True":"True" - } - }, - { - "DisplayName":"Maximum Active Server Framerate", - "Category":"Server Settings", - "Description":"The maximum framerate that the server will allow when active", - "Keywords":"fps,framerate,active,maxserverframerate", - "FieldName":"MaxServerFramerate", - "InputType":"number", - "IsFlagArgument":false, - "ParamFieldName":"/Script/Astro.AstroServerSettings.MaxServerFramerate", - "IncludeInCommandLine":false, - "DefaultValue":"30.000000", - "Placeholder":"30.000000", - "Suffix":"fps", - "EnumValues":{} - }, - { - "DisplayName":"Maximum Idle Server Framerate", - "Category":"Server Settings", - "Description":"The maximum framerate that the server will allow when idle", - "Keywords":"fps,framerate,idle,maxserveridleframerate", - "FieldName":"MaxServerIdleFramerate", - "InputType":"number", - "IsFlagArgument":false, - "ParamFieldName":"/Script/Astro.AstroServerSettings.MaxServerIdleFramerate", - "IncludeInCommandLine":false, - "DefaultValue":"3.000000", - "Placeholder":"3.000000", - "Suffix":"fps", - "EnumValues":{} - } -] +[ + { + "DisplayName":"Public IP", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$ExternalIP", + "InputType":"text", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"/Script/Astro.AstroServerSettings.PublicIP", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"Server Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$ApplicationPort1", + "InputType":"number", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"URL.Port", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"Console Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$RemoteAdminPort", + "InputType":"number", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"/Script/Astro.AstroServerSettings.ConsolePort", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"Linux Server Configuration", + "Category":"Server Settings", + "Description":"WARNING: Running Astroneer on Linux requires encryption to be disabled on both server and clients. USE AT YOUR OWN RISK. To disable encryption on a client, add net.AllowEncryption=False under the [SystemSettings] header in %LocalAppData%\\Astro\\Saved\\Config\\WindowsNoEditor\\Engine.ini", + "Keywords":"linux,encryption", + "FieldName":"AllowEncryption", + "InputType":"hidden", + "IsFlagArgument":false, + "ParamFieldName":"SystemSettings.net.AllowEncryption", + "IncludeInCommandLine":false, + "DefaultValue":"False", + "EnumValues":{} + }, + { + "DisplayName":"Server Name", + "Category":"Server Settings", + "Description":"The name of the server as it appears publicly", + "Keywords":"name,servername", + "FieldName":"ServerName", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"/Script/Astro.AstroServerSettings.ServerName", + "IncludeInCommandLine":false, + "DefaultValue":"Astroneer Server - Powered by AMP", + "EnumValues":{} + }, + { + "DisplayName":"Server Password", + "Category":"Server Settings", + "Description":"Password required to connect to the server. Default is no password", + "Keywords":"password,serverpassword", + "FieldName":"ServerPassword", + "InputType":"password", + "IsFlagArgument":false, + "ParamFieldName":"/Script/Astro.AstroServerSettings.ServerPassword", + "IncludeInCommandLine":false, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Console Password", + "Category":"Server Settings", + "Description":"Password required to connect to the server's RCON (raw TCP socket). Default is a strong random password", + "Keywords":"console,password,rcon,consolepassword", + "FieldName":"ConsolePassword", + "InputType":"password", + "IsFlagArgument":false, + "ParamFieldName":"/Script/Astro.AstroServerSettings.ConsolePassword", + "IncludeInCommandLine":false, + "DefaultValue":"{{newguid()}}", + "EnumValues":{} + }, + { + "DisplayName":"Owner Name", + "Category":"Server Settings", + "Description":"Steam name of the server owner (admin)", + "Keywords":"owner,name,ownername", + "FieldName":"OwnerName", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"/Script/Astro.AstroServerSettings.OwnerName", + "IncludeInCommandLine":false, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Player Limit", + "Category":"Server Settings", + "Description":"Maximum number of players that may connect to the server at one time", + "Keywords":"players,limit,maxplayers", + "FieldName":"$MaxUsers", + "InputType":"number", + "MinValue":"2", + "MaxValue":"8", + "IsFlagArgument":false, + "ParamFieldName":"/Script/Astro.AstroGameUserSettings.MaxPlayers", + "IncludeInCommandLine":false, + "DefaultValue":"8", + "Placeholder":"8", + "Suffix":"players", + "EnumValues":{} + }, + { + "DisplayName":"Game Save Interval", + "Category":"Server Settings", + "Description":"The interval between automatic server saves", + "Keywords":"autosave,save,interval,autosavegameinterval", + "FieldName":"AutoSaveGameInterval", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"/Script/Astro.AstroServerSettings.AutoSaveGameInterval", + "IncludeInCommandLine":false, + "DefaultValue":"900", + "Placeholder":"900", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Backup Save Interval", + "Category":"Server Settings", + "Description":"The interval between automatic server backups", + "Keywords":"backup,interval,backupsavegamesinterval", + "FieldName":"BackupSaveGamesInterval", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"/Script/Astro.AstroServerSettings.BackupSaveGamesInterval", + "IncludeInCommandLine":false, + "DefaultValue":"7200", + "Placeholder":"7200", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Enable Whitelist", + "Category":"Server Settings", + "Description":"If enabled, unlisted players will not be able to connect", + "Keywords":"deny,unlisted,denyunlistedplayers", + "FieldName":"DenyUnlistedPlayers", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"/Script/Astro.AstroServerSettings.DenyUnlistedPlayers", + "IncludeInCommandLine":false, + "DefaultValue":"False", + "EnumValues":{ + "False":"False", + "True":"True" + } + }, + { + "DisplayName":"Maximum Active Server Framerate", + "Category":"Server Settings", + "Description":"The maximum framerate that the server will allow when active", + "Keywords":"fps,framerate,active,maxserverframerate", + "FieldName":"MaxServerFramerate", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"/Script/Astro.AstroServerSettings.MaxServerFramerate", + "IncludeInCommandLine":false, + "DefaultValue":"30.000000", + "Placeholder":"30.000000", + "Suffix":"fps", + "EnumValues":{} + }, + { + "DisplayName":"Maximum Idle Server Framerate", + "Category":"Server Settings", + "Description":"The maximum framerate that the server will allow when idle", + "Keywords":"fps,framerate,idle,maxserveridleframerate", + "FieldName":"MaxServerIdleFramerate", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"/Script/Astro.AstroServerSettings.MaxServerIdleFramerate", + "IncludeInCommandLine":false, + "DefaultValue":"3.000000", + "Placeholder":"3.000000", + "Suffix":"fps", + "EnumValues":{} + } +] diff --git a/astroneermetaconfig.json b/astroneermetaconfig.json index 791f850..7c8aa2e 100644 --- a/astroneermetaconfig.json +++ b/astroneermetaconfig.json @@ -1,20 +1,20 @@ -[ - { - "ConfigFile": "Astro/Saved/Config/WindowsServer/AstroServerSettings.ini", - "AutoMap": true, - "ConfigType": "ini", - "ConfigFormatRegex": "^(?.+?)=(?.*?)$" - }, - { - "ConfigFile": "Astro/Saved/Config/WindowsServer/GameUserSettings.ini", - "AutoMap": true, - "ConfigType": "ini", - "ConfigFormatRegex": "^(?.+?)=(?.*?)$" - }, - { - "ConfigFile": "Astro/Saved/Config/WindowsServer/Engine.ini", - "AutoMap": true, - "ConfigType": "ini", - "ConfigFormatRegex": "^(?.+?)=(?.*?)$" - } -] \ No newline at end of file +[ + { + "ConfigFile": "Astro/Saved/Config/WindowsServer/AstroServerSettings.ini", + "AutoMap": true, + "ConfigType": "ini", + "ConfigFormatRegex": "^(?.+?)=(?.*?)$" + }, + { + "ConfigFile": "Astro/Saved/Config/WindowsServer/GameUserSettings.ini", + "AutoMap": true, + "ConfigType": "ini", + "ConfigFormatRegex": "^(?.+?)=(?.*?)$" + }, + { + "ConfigFile": "Astro/Saved/Config/WindowsServer/Engine.ini", + "AutoMap": true, + "ConfigType": "ini", + "ConfigFormatRegex": "^(?.+?)=(?.*?)$" + } +] diff --git a/astroneerupdates.json b/astroneerupdates.json new file mode 100644 index 0000000..8350215 --- /dev/null +++ b/astroneerupdates.json @@ -0,0 +1,17 @@ +[ + { + "UpdateStageName":"SteamCMD Download", + "UpdateSourcePlatform":"All", + "UpdateSource":"SteamCMD", + "UpdateSourceData":"728470", + "UpdateSourceArgs":"361420", + "ForceDownloadPlatform":"Windows" + }, + { + "UpdateStageName":"Initialise Wine", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"Executable", + "UpdateSourceData":"/bin/bash", + "UpdateSourceArgs":"-c 'WINEPREFIX=\"{{$FullRootDir}}.wine\" WINEARCH=win64 /usr/bin/wineboot --init --update'" + } +]