From fc2e7e4cdc7631c8d9344a7fdc85c9e885e28b5e Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Fri, 16 Sep 2022 07:45:35 +1000 Subject: [PATCH] Stationeers: Various updates for new dedicated server build (#156) --- stationeers-legacy.kvp | 76 ++++++ stationeers-legacyconfig.json | 184 ++++++++++++++ stationeers-legacymetaconfig.json | 7 + stationeers.kvp | 46 ++-- stationeersconfig.json | 399 ++++++++++++++++++------------ stationeersmetaconfig.json | 12 +- 6 files changed, 531 insertions(+), 193 deletions(-) create mode 100644 stationeers-legacy.kvp create mode 100644 stationeers-legacyconfig.json create mode 100644 stationeers-legacymetaconfig.json diff --git a/stationeers-legacy.kvp b/stationeers-legacy.kvp new file mode 100644 index 0000000..a5ce66c --- /dev/null +++ b/stationeers-legacy.kvp @@ -0,0 +1,76 @@ +Meta.DisplayName=Stationeers (Legacy) +Meta.Description=Stationeers Dedicated Server (Legacy) +Meta.OS=Windows, Linux +Meta.Arch=x86_64 +Meta.Author=IceOfWraith, CubeCoders +Meta.URL=https://store.steampowered.com/app/544550/Stationeers/ +Meta.DisplayImageSource=steam:544550 +Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.ApplicationPort2} +Meta.ConfigManifest=stationeers-legacyconfig.json +Meta.MetaConfigManifest=stationeers-legacymetaconfig.json +Meta.ConfigRoot=stationeers-legacy.kvp +Meta.MinAMPVersion= +Meta.SpecificDockerImage= +Meta.ContainerPolicy=Supported +Meta.Prerequsites=[] +Meta.ConfigReleaseState=NotSpecified +App.DisplayName=Stationeers (Legacy) +App.RootDir=./stationeers/ +App.BaseDirectory=./stationeers/600760/ +App.ExecutableWin=600760\rocketstation_DedicatedServer.exe +App.ExecutableLinux=600760/rocketstation_DedicatedServer.x86_64 +App.WorkingDir=600760 +App.LinuxCommandLineArgs= +App.WindowsCommandLineArgs= +App.CommandLineArgs=-batchmode -nographics -autostart -bindip={{$ApplicationIPBinding}} -basedirectory="{{$FullBaseDir}}" -loadworld="{{worldname}}" -modpath="{{$FullBaseDir}}{{modpath}}/" {{$FormattedArgs}} +App.AppSettings={} +App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:{{$FullRootDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"544550"} +App.CommandLineParameterFormat=-{0}="{1}" +App.CommandLineParameterDelimiter= +App.ExitMethod=OS_CLOSE +App.ExitTimeout=30 +App.ExitString=shutdown +App.ExitFile=app_exit.lck +App.HasWriteableConsole=False +App.HasReadableConsole=True +App.SupportsLiveSettingsChanges=False +App.LiveSettingChangeCommandFormat=set {0} "{1}" +App.ApplicationIPBinding=0.0.0.0 +App.ApplicationPort1=28015 +App.ApplicationPort2=27028 +App.ApplicationPort3=0 +App.RemoteAdminPort=0 +App.MaxUsers=20 +App.UseRandomAdminPassword=True +App.RemoteAdminPassword=Password123 +App.AdminMethod=STDIO +App.AdminLoginTransform=None +App.RCONConnectDelaySeconds=5 +App.RCONConnectRetrySeconds=5 +App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"600760","UpdateSourceVersion":"previous"},{"UpdateStageName":"Start Server","UpdateSourcePlatform":"All","UpdateSource":"StartApplication"},{"UpdateStageName":"Wait For Server Start","UpdateSourcePlatform":"All","UpdateSource":"WaitForStartupComplete"},{"UpdateStageName":"Stop Server","UpdateSourcePlatform":"All","UpdateSource":"ShutdownApplication"}] +App.Compatibility=None +App.SteamUpdateAnonymousLogin=True +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.SupportsUniversalSleep=True +App.UniversalSleepApplicationUDPPort=1 +App.UniversalSleepSteamQueryPort=2 +App.WakeupMode=Any +App.ApplicationReadyMode=RegexMatch +App.TemplateMatchRegex={{(\$?[\w]+)}} +Console.FilterMatchRegex= +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$ +Console.AppReadyRegex=^StationeerServer connected to Steam successfully<\/color><\/b>$ +Console.UserJoinRegex= +Console.UserLeaveRegex= +Console.UserChatRegex= +Console.UpdateAvailableRegex=^\[\d\d:\d\d:\d\d\] \[INFO\] A new server update is available! v[\d\.]+.$ +Console.SuppressLogAtStart=False +Console.ActivateLogRegex= +Console.UserActions={} +Limits.SleepMode=False +Limits.SleepOnStart=False +Limits.SleepDelayMinutes=5 +Limits.DozeDelay=2 +Limits.AutoRetryCount=5 diff --git a/stationeers-legacyconfig.json b/stationeers-legacyconfig.json new file mode 100644 index 0000000..512072f --- /dev/null +++ b/stationeers-legacyconfig.json @@ -0,0 +1,184 @@ +[ + { + "DisplayName": "Server Name", + "Category": "Server Settings", + "Description": "Display name of the server.", + "Keywords": "server,name", + "FieldName": "SERVERNAME", + "InputType": "text", + "IsFlagArgument": false, + "ParamFieldName": "SERVER.SERVERNAME", + "IncludeInCommandLine": false, + "DefaultValue": "AMP Powered Stationeers Server", + "EnumValues": {} + }, + { + "DisplayName": "Server Password", + "Category": "Server Settings", + "Description": "Password that clients must supply to join.", + "Keywords": "password", + "FieldName": "PASSWORD", + "InputType": "password", + "IsFlagArgument": false, + "ParamFieldName": "SERVER.PASSWORD", + "IncludeInCommandLine": false, + "DefaultValue": "", + "EnumValues": {} + }, + { + "DisplayName": "RCON Password", + "Category": "Server Settings", + "Description": "Password to access RCON using http://YOURIP:GAMEPORT. You should change after install.", + "Keywords": "RCON,password", + "FieldName": "RCONPASSWORD", + "InputType": "RandomPassword", + "IsFlagArgument": false, + "ParamFieldName": "RCON.RCONPASSWORD", + "IncludeInCommandLine": false, + "DefaultValue": "", + "EnumValues": {} + }, + { + "DisplayName": "Admin Password", + "Category": "Server Settings", + "Description": "Password to become the in-game admin. You should change after install.", + "Keywords": "admin,password", + "FieldName": "ADMINPASSWORD", + "InputType": "RandomPassword", + "IsFlagArgument": false, + "ParamFieldName": "SERVER.ADMINPASSWORD", + "IncludeInCommandLine": false, + "DefaultValue": "Password123", + "EnumValues": {} + }, + { + "DisplayName": "Max Players", + "Category": "Server Settings", + "Description": "The maximum number of players allowed on the server.", + "Keywords": "max,players", + "FieldName": "$MaxUsers", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "SERVER.MAXPLAYER", + "IncludeInCommandLine": false, + "DefaultValue": "20", + "EnumValues": {} + }, + { + "DisplayName": "Creator", + "Category": "Server Settings", + "Description": "Set creator's [Steam64 ID](https://steamidfinder.com/) as gamedata and key-value. This is for future integration of server instancing.", + "Keywords": "creator", + "FieldName": "creator", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "creator", + "IncludeInCommandLine": true, + "DefaultValue": "", + "SkipIfEmpty": true, + "EnumValues": {} + }, + { + "DisplayName": "World Name", + "Category": "Server Settings", + "Description": "Name of the world directory to load.", + "Keywords": "world,name", + "FieldName": "worldname", + "InputType": "text", + "IsFlagArgument": false, + "ParamFieldName": "worldname", + "IncludeInCommandLine": true, + "DefaultValue": "world", + "EnumValues": {} + }, + { + "DisplayName": "Map", + "Category": "Server Settings", + "Description": "Default Moon. Will create a world of this type or display this world type in the server browser if loading a save.", + "Keywords": "world,type", + "FieldName": "worldtype", + "InputType": "enum", + "IsFlagArgument": false, + "ParamFieldName": "worldtype", + "IncludeInCommandLine": true, + "DefaultValue": "", + "SkipIfEmpty": true, + "EnumValues": { + "": "Default", + "Europa2": "Europa2", + "Loulan": "Loulan", + "Mars": "Mars", + "Mimas": "Mimas", + "Moon": "Moon", + "Space": "Space", + "Vulcan2": "Vulcan2" + } + }, + { + "DisplayName": "Auto Save Interval", + "Category": "Server Settings", + "Description": "How frequently the server will save the world.", + "Keywords": "", + "FieldName": "autosaveinterval", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "autosaveinterval", + "IncludeInCommandLine": true, + "DefaultValue": "60", + "EnumValues": {}, + "Suffix": "sec" + }, + { + "DisplayName": "Clear All Interval", + "Category": "Server Settings", + "Description": "The interval to run \"clearall\" command. Minimum is 60 seconds. clearall will delete all disconnected characters. Set to a very high number. 0 to disable. ", + "Keywords": "clear,all,interval", + "FieldName": "clearallinterval", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "clearallinterval", + "IncludeInCommandLine": true, + "DefaultValue": "60", + "EnumValues": {}, + "Suffix": "sec" + }, + { + "DisplayName": "Mod Path", + "Category": "Server Settings", + "Description": "Where mods are located inside the datastore.", + "Keywords": "mod,path", + "FieldName": "modpath", + "InputType": "text", + "IsFlagArgument": false, + "ParamFieldName": "modpath", + "IncludeInCommandLine": false, + "DefaultValue": "Mods", + "EnumValues": {} + }, + { + "DisplayName": "GAMEPORT", + "Category": "Server Settings", + "Description": "", + "Keywords": "", + "FieldName": "$ApplicationPort1", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "SERVER.GAMEPORT", + "IncludeInCommandLine": false, + "DefaultValue": "27500", + "Hidden": true + }, + { + "DisplayName": "UPDATERPORT", + "Category": "Server Settings", + "Description": "", + "Keywords": "", + "FieldName": "$ApplicationPort2", + "InputType": "number", + "IsFlagArgument": false, + "ParamFieldName": "SERVER.UPDATERPORT", + "IncludeInCommandLine": false, + "DefaultValue": "27015", + "Hidden": true + } +] \ No newline at end of file diff --git a/stationeers-legacymetaconfig.json b/stationeers-legacymetaconfig.json new file mode 100644 index 0000000..c4d5b62 --- /dev/null +++ b/stationeers-legacymetaconfig.json @@ -0,0 +1,7 @@ +[ + { + "ConfigFile": "./default.ini", + "AutoMap": true, + "ConfigType": "ini" + } +] diff --git a/stationeers.kvp b/stationeers.kvp index 0cb5166..73d466f 100644 --- a/stationeers.kvp +++ b/stationeers.kvp @@ -1,20 +1,20 @@ -Meta.DisplayName=Stationeers (Legacy Server) -Meta.Description=Stationeers Dedicated Server (Legacy) +Meta.DisplayName=Stationeers +Meta.Description=Stationeers Dedicated Server Meta.OS=Windows, Linux Meta.Arch=x86_64 -Meta.Author=IceOfWraith, CubeCoders +Meta.Author=IceOfWraith, Greelan Meta.URL=https://store.steampowered.com/app/544550/Stationeers/ Meta.DisplayImageSource=steam:544550 -Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.ApplicationPort2} +Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$UpdatePort} Meta.ConfigManifest=stationeersconfig.json Meta.MetaConfigManifest=stationeersmetaconfig.json Meta.ConfigRoot=stationeers.kvp -Meta.MinAMPVersion= +Meta.MinAMPVersion=2.4.0.2 Meta.SpecificDockerImage= Meta.ContainerPolicy=Supported Meta.Prerequsites=[] Meta.ConfigReleaseState=NotSpecified -App.DisplayName=Stationeers (Legacy Server) +App.DisplayName=Stationeers App.RootDir=./stationeers/ App.BaseDirectory=./stationeers/600760/ App.ExecutableWin=600760\rocketstation_DedicatedServer.exe @@ -22,49 +22,47 @@ App.ExecutableLinux=600760/rocketstation_DedicatedServer.x86_64 App.WorkingDir=600760 App.LinuxCommandLineArgs= App.WindowsCommandLineArgs= -App.CommandLineArgs=-batchmode -nographics -autostart -bindip={{$ApplicationIPBinding}} -basedirectory="{{$FullBaseDir}}" -loadworld="{{worldname}}" -modpath="{{$FullBaseDir}}{{modpath}}/" {{$FormattedArgs}} +App.CommandLineArgs=-{{LoadMode}} "{{SaveName}}" {{WorldType}} -noclear -settings StartLocalHost true GamePort {{$GamePort}} UpdatePort {{$UpdatePort}} SavePath "{{$FullBaseDir}}saves" {{$FormattedArgs}} App.AppSettings={} App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:{{$FullRootDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"544550"} -App.CommandLineParameterFormat=-{0}="{1}" +App.CommandLineParameterFormat={0} "{1}" App.CommandLineParameterDelimiter= App.ExitMethod=OS_CLOSE -App.ExitTimeout=30 -App.ExitString=shutdown +App.ExitTimeout=15 +App.ExitString=quit App.ExitFile=app_exit.lck -App.HasWriteableConsole=False +App.HasWriteableConsole=True App.HasReadableConsole=True App.SupportsLiveSettingsChanges=False App.LiveSettingChangeCommandFormat=set {0} "{1}" App.ApplicationIPBinding=0.0.0.0 -App.ApplicationPort1=28015 -App.ApplicationPort2=27028 -App.ApplicationPort3=0 -App.RemoteAdminPort=0 -App.MaxUsers=20 -App.UseRandomAdminPassword=True +App.Ports=[{"Protocol":"UDP","Name":"Game Port","Description":"Port for game traffic","Port":27016,"Ref":"GamePort"},{"Protocol":"UDP","Name":"Update Port","Description":"Port for Steam updates","Port":27015,"Ref":"UpdatePort"}] +App.PrimaryApplicationPortRef=GamePort +App.UniversalSleepApplicationUDPPort=GamePort +App.UniversalSleepSteamQueryPort=UpdatePort +App.MaxUsers=10 +App.UseRandomAdminPassword=False App.RemoteAdminPassword=Password123 App.AdminMethod=STDIO App.AdminLoginTransform=None App.RCONConnectDelaySeconds=5 App.RCONConnectRetrySeconds=5 -App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"600760","UpdateSourceVersion":"previous"},{"UpdateStageName":"Start Server","UpdateSourcePlatform":"All","UpdateSource":"StartApplication"},{"UpdateStageName":"Wait For Server Start","UpdateSourcePlatform":"All","UpdateSource":"WaitForStartupComplete"},{"UpdateStageName":"Stop Server","UpdateSourcePlatform":"All","UpdateSource":"ShutdownApplication"}] +App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"600760"},{"UpdateStageName":"Start Server","UpdateSourcePlatform":"All","UpdateSource":"StartApplication"},{"UpdateStageName":"Wait For Server Start","UpdateSourcePlatform":"All","UpdateSource":"WaitForStartupComplete"},{"UpdateStageName":"Stop Server","UpdateSourcePlatform":"All","UpdateSource":"ShutdownApplication"}] App.Compatibility=None App.SteamUpdateAnonymousLogin=True App.SteamForceLoginPrompt=False App.RapidStartup=False App.SupportsUniversalSleep=True -App.UniversalSleepApplicationUDPPort=1 -App.UniversalSleepSteamQueryPort=2 App.WakeupMode=Any App.ApplicationReadyMode=RegexMatch App.TemplateMatchRegex={{(\$?[\w]+)}} Console.FilterMatchRegex= Console.FilterMatchReplacement= Console.ThrowawayMessageRegex=^(WARNING|ERROR): Shader.+$ -Console.AppReadyRegex=^StationeerServer connected to Steam successfully<\/color><\/b>$ -Console.UserJoinRegex= -Console.UserLeaveRegex= -Console.UserChatRegex= +Console.AppReadyRegex=^(?:> )*?[\d:]+ (Started new game in world .+?|World\s+loaded)$ +Console.UserJoinRegex=^(?:> )*?[\d:]+ Client (?.+?) \((?.+?)\) is ready!$ +Console.UserLeaveRegex=^(?:> )*?[\d:]+ Client disconnected: .* \| (?.+?)\s+connectTime: \d+.\d+s, ClientId: (?.+?)$ +Console.UserChatRegex=^$ Console.UpdateAvailableRegex=^\[\d\d:\d\d:\d\d\] \[INFO\] A new server update is available! v[\d\.]+.$ Console.SuppressLogAtStart=False Console.ActivateLogRegex= diff --git a/stationeersconfig.json b/stationeersconfig.json index 512072f..1e34959 100644 --- a/stationeersconfig.json +++ b/stationeersconfig.json @@ -1,184 +1,257 @@ [ { - "DisplayName": "Server Name", - "Category": "Server Settings", - "Description": "Display name of the server.", - "Keywords": "server,name", - "FieldName": "SERVERNAME", - "InputType": "text", - "IsFlagArgument": false, - "ParamFieldName": "SERVER.SERVERNAME", - "IncludeInCommandLine": false, - "DefaultValue": "AMP Powered Stationeers Server", - "EnumValues": {} + "DisplayName":"Game Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$GamePort", + "InputType":"number", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"GamePort", + "IncludeInCommandLine":false, + "EnumValues":{} }, { - "DisplayName": "Server Password", - "Category": "Server Settings", - "Description": "Password that clients must supply to join.", - "Keywords": "password", - "FieldName": "PASSWORD", - "InputType": "password", - "IsFlagArgument": false, - "ParamFieldName": "SERVER.PASSWORD", - "IncludeInCommandLine": false, - "DefaultValue": "", - "EnumValues": {} + "DisplayName":"Update Port", + "Category":"Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$UpdatePort", + "InputType":"number", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"UpdatePort", + "IncludeInCommandLine":false, + "EnumValues":{} }, { - "DisplayName": "RCON Password", - "Category": "Server Settings", - "Description": "Password to access RCON using http://YOURIP:GAMEPORT. You should change after install.", - "Keywords": "RCON,password", - "FieldName": "RCONPASSWORD", - "InputType": "RandomPassword", - "IsFlagArgument": false, - "ParamFieldName": "RCON.RCONPASSWORD", - "IncludeInCommandLine": false, - "DefaultValue": "", - "EnumValues": {} + "DisplayName":"Server Name", + "Category":"Server Settings", + "Description":"Sets the name of the server to be displayed on the server list.", + "Keywords":"server,name", + "FieldName":"ServerName", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"ServerName", + "IncludeInCommandLine":true, + "DefaultValue":"AMP Powered Stationeers Server", + "EnumValues":{} }, { - "DisplayName": "Admin Password", - "Category": "Server Settings", - "Description": "Password to become the in-game admin. You should change after install.", - "Keywords": "admin,password", - "FieldName": "ADMINPASSWORD", - "InputType": "RandomPassword", - "IsFlagArgument": false, - "ParamFieldName": "SERVER.ADMINPASSWORD", - "IncludeInCommandLine": false, - "DefaultValue": "Password123", - "EnumValues": {} - }, - { - "DisplayName": "Max Players", - "Category": "Server Settings", - "Description": "The maximum number of players allowed on the server.", - "Keywords": "max,players", - "FieldName": "$MaxUsers", - "InputType": "number", - "IsFlagArgument": false, - "ParamFieldName": "SERVER.MAXPLAYER", - "IncludeInCommandLine": false, - "DefaultValue": "20", - "EnumValues": {} - }, - { - "DisplayName": "Creator", - "Category": "Server Settings", - "Description": "Set creator's [Steam64 ID](https://steamidfinder.com/) as gamedata and key-value. This is for future integration of server instancing.", - "Keywords": "creator", - "FieldName": "creator", - "InputType": "number", - "IsFlagArgument": false, - "ParamFieldName": "creator", - "IncludeInCommandLine": true, - "DefaultValue": "", - "SkipIfEmpty": true, - "EnumValues": {} - }, - { - "DisplayName": "World Name", - "Category": "Server Settings", - "Description": "Name of the world directory to load.", - "Keywords": "world,name", - "FieldName": "worldname", - "InputType": "text", - "IsFlagArgument": false, - "ParamFieldName": "worldname", - "IncludeInCommandLine": true, - "DefaultValue": "world", - "EnumValues": {} - }, - { - "DisplayName": "Map", - "Category": "Server Settings", - "Description": "Default Moon. Will create a world of this type or display this world type in the server browser if loading a save.", - "Keywords": "world,type", - "FieldName": "worldtype", - "InputType": "enum", - "IsFlagArgument": false, - "ParamFieldName": "worldtype", - "IncludeInCommandLine": true, - "DefaultValue": "", - "SkipIfEmpty": true, - "EnumValues": { - "": "Default", - "Europa2": "Europa2", - "Loulan": "Loulan", - "Mars": "Mars", - "Mimas": "Mimas", - "Moon": "Moon", - "Space": "Space", - "Vulcan2": "Vulcan2" + "DisplayName":"Make Server Public", + "Category":"Server Settings", + "Description":"If enabled, the server will be visible in the in-game server list.", + "Keywords":"public,visible", + "FieldName":"ServerVisible", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"ServerVisible", + "IncludeInCommandLine":true, + "DefaultValue":"true", + "EnumValues":{ + "True":"true", + "False":"false" } }, { - "DisplayName": "Auto Save Interval", - "Category": "Server Settings", - "Description": "How frequently the server will save the world.", - "Keywords": "", - "FieldName": "autosaveinterval", - "InputType": "number", - "IsFlagArgument": false, - "ParamFieldName": "autosaveinterval", - "IncludeInCommandLine": true, - "DefaultValue": "60", - "EnumValues": {}, - "Suffix": "sec" + "DisplayName":"Server Password", + "Category":"Server Settings", + "Description":"Sets the password to join the server.", + "Keywords":"password", + "FieldName":"ServerPassword", + "InputType":"password", + "IsFlagArgument":false, + "ParamFieldName":"ServerPassword", + "IncludeInCommandLine":true, + "DefaultValue":"", + "EnumValues":{} }, { - "DisplayName": "Clear All Interval", - "Category": "Server Settings", - "Description": "The interval to run \"clearall\" command. Minimum is 60 seconds. clearall will delete all disconnected characters. Set to a very high number. 0 to disable. ", - "Keywords": "clear,all,interval", - "FieldName": "clearallinterval", - "InputType": "number", - "IsFlagArgument": false, - "ParamFieldName": "clearallinterval", - "IncludeInCommandLine": true, - "DefaultValue": "60", - "EnumValues": {}, - "Suffix": "sec" + "DisplayName":"Server Auth Secret", + "Category":"Server Settings", + "Description":"Sets the authorisation secret to allow server commands to be run from a client. Requires the same \"ServerAuthSecret\" to be set on the client.", + "Keywords":"auth,secret,commands", + "FieldName":"ServerAuthSecret", + "InputType":"password", + "IsFlagArgument":false, + "ParamFieldName":"ServerAuthSecret", + "IncludeInCommandLine":true, + "DefaultValue":"", + "EnumValues":{} }, { - "DisplayName": "Mod Path", - "Category": "Server Settings", - "Description": "Where mods are located inside the datastore.", - "Keywords": "mod,path", - "FieldName": "modpath", - "InputType": "text", - "IsFlagArgument": false, - "ParamFieldName": "modpath", - "IncludeInCommandLine": false, - "DefaultValue": "Mods", - "EnumValues": {} + "DisplayName":"Player Limit", + "Category":"Server Settings", + "Description":"The maximum number of players allowed on the server.", + "Keywords":"max,players,limit", + "FieldName":"$MaxUsers", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"ServerMaxPlayers", + "IncludeInCommandLine":true, + "SkipIfEmpty":true, + "DefaultValue":"10", + "EnumValues":{} }, { - "DisplayName": "GAMEPORT", - "Category": "Server Settings", - "Description": "", - "Keywords": "", - "FieldName": "$ApplicationPort1", - "InputType": "number", - "IsFlagArgument": false, - "ParamFieldName": "SERVER.GAMEPORT", - "IncludeInCommandLine": false, - "DefaultValue": "27500", - "Hidden": true + "DisplayName":"Load Mode", + "Category":"Server Settings", + "Description":"Sets the mode for loading world saves based on the Save Name. \"Load Manual Save\" loads the last manual save. \"Load Latest Save\" loads the latest save, whether manual or auto. If there is no save, a new world is created.", + "Keywords":"load,latest", + "FieldName":"LoadMode", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"LoadMode", + "IncludeInCommandLine":false, + "DefaultValue":"loadlatest", + "EnumValues":{ + "load":"Load Manual Save", + "loadlatest":"Load Latest Save" + } }, { - "DisplayName": "UPDATERPORT", - "Category": "Server Settings", - "Description": "", - "Keywords": "", - "FieldName": "$ApplicationPort2", - "InputType": "number", - "IsFlagArgument": false, - "ParamFieldName": "SERVER.UPDATERPORT", - "IncludeInCommandLine": false, - "DefaultValue": "27015", - "Hidden": true + "DisplayName":"Save Name", + "Category":"Server Settings", + "Description":"Sets the name of the world directory to load, or to create if it does not already exist.", + "Keywords":"save,name", + "FieldName":"SaveName", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"SaveName", + "IncludeInCommandLine":false, + "DefaultValue":"world", + "EnumValues":{} + }, + { + "DisplayName":"Map", + "Category":"Server Settings", + "Description":"Sets the type of world (map) to be created. Default is moon.", + "Keywords":"world,type,map", + "FieldName":"WorldType", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"WorldType", + "IncludeInCommandLine":false, + "DefaultValue":"moon", + "EnumValues":{ + "moon":"Moon", + "mars":"Mars", + "europa":"Europa", + "europa2":"Europa2", + "mimas":"Mimas", + "vulcan":"Vulcan", + "vulcan2":"Vulcan2", + "space":"Space", + "loulan":"Loulan", + "venus":"Venus" + } + }, + { + "DisplayName":"Enable Autosave", + "Category":"Server Settings", + "Description":"If enabled, the world will be autosaved at the interval set under \"Autosave Interval\".", + "Keywords":"autosave", + "FieldName":"AutoSave", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"AutoSave", + "IncludeInCommandLine":true, + "DefaultValue":"true", + "EnumValues":{ + "True":"true", + "False":"false" + } + }, + { + "DisplayName":"Autosave Interval", + "Category":"Server Settings", + "Description":"Sets how frequently the server will save the world if autosave is enabled.", + "Keywords":"autosave,interval", + "FieldName":"SaveInterval", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"SaveInterval", + "IncludeInCommandLine":true, + "DefaultValue":"300", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Enable Autopause", + "Category":"Server Settings", + "Description":"If enabled, the server will be paused when no player is connected.", + "Keywords":"autopause", + "FieldName":"AutoPauseServer", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"AutoPauseServer", + "IncludeInCommandLine":true, + "DefaultValue":"true", + "EnumValues":{ + "True":"true", + "False":"false" + } + }, + { + "DisplayName":"Show Framerate", + "Category":"Server Settings", + "Description":"If enabled, shows the framerate of the server.", + "Keywords":"framerate,fps", + "FieldName":"ShowFps", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"ShowFps", + "IncludeInCommandLine":true, + "DefaultValue":"false", + "EnumValues":{ + "True":"true", + "False":"false" + } + }, + { + "DisplayName":"Show Latency", + "Category":"Server Settings", + "Description":"If enabled, shows the latency of the server.", + "Keywords":"latency", + "FieldName":"ShowLatency", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"ShowLatency", + "IncludeInCommandLine":true, + "DefaultValue":"false", + "EnumValues":{ + "True":"true", + "False":"false" + } + }, + { + "DisplayName":"Server IP Binding", + "Category":"Server Settings", + "Description":"Sets the binding of the server. Default is blank (all IPs). Change to internal interface IP only if the server has issues.", + "Keywords":"ip,binding,localip,address", + "FieldName":"LocalIpAddress", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"LocalIpAddress", + "IncludeInCommandLine":true, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Enable UPnP", + "Category":"Server Settings", + "Description":"If enabled, the server will attempt to configure automatic port forwarding on a compatible router.", + "Keywords":"upnp", + "FieldName":"UPNPEnabled", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"UPNPEnabled", + "IncludeInCommandLine":true, + "DefaultValue":"false", + "EnumValues":{ + "True":"true", + "False":"false" + } } ] \ No newline at end of file diff --git a/stationeersmetaconfig.json b/stationeersmetaconfig.json index c4d5b62..9e44428 100644 --- a/stationeersmetaconfig.json +++ b/stationeersmetaconfig.json @@ -1,7 +1,7 @@ [ - { - "ConfigFile": "./default.ini", - "AutoMap": true, - "ConfigType": "ini" - } -] + { + "ConfigFile":"setting.xml", + "AutoMap":true, + "ConfigType":"xml" + } +] \ No newline at end of file