diff --git a/eco.kvp b/eco.kvp index 0b368376f..7834355af 100644 --- a/eco.kvp +++ b/eco.kvp @@ -2,7 +2,7 @@ Meta.DisplayName=Eco Meta.Description=Eco Dedicated Server Meta.OS=Windows, Linux Meta.Arch=x86_64 -Meta.Author=Greelan, stroskler +Meta.Author=HarryPlopper, Greelan, stroskler Meta.URL=https://play.eco/ Meta.DisplayImageSource=steam:382310 Meta.EndpointURIFormat=steam://connect/{0} @@ -11,9 +11,14 @@ Meta.MetaConfigManifest=ecometaconfig.json Meta.ConfigRoot=eco.kvp Meta.MinAMPVersion=2.3.2.8 Meta.SpecificDockerImage= +Meta.DockerRequired=False Meta.ContainerPolicy=Supported +Meta.ContainerPolicyReason= Meta.Prerequsites=[] +Meta.ExtraContainerPackages=[] Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +Meta.OriginalSource= App.DisplayName=Eco App.RootDir=./eco/ App.BaseDirectory=./eco/739590/ @@ -23,6 +28,7 @@ App.WorkingDir=739590 App.LinuxCommandLineArgs= App.WindowsCommandLineArgs= App.CommandLineArgs={{$PlatformArgs}} {{$FormattedArgs}} +App.UseLinuxIOREDIR=False App.AppSettings={} App.EnvironmentVariables={"LD_LIBRARY_PATH":"{{$FullBaseDir}}linux64:%LD_LIBRARY_PATH%","SteamAppId":"382310"} App.CommandLineParameterFormat=-{0} {1} @@ -36,10 +42,11 @@ App.HasReadableConsole=True App.SupportsLiveSettingsChanges=False App.LiveSettingChangeCommandFormat=set {0} "{1}" App.ApplicationIPBinding=0.0.0.0 -App.ApplicationPort1=3000 -App.ApplicationPort2=3001 -App.ApplicationPort3=0 -App.RemoteAdminPort=3002 +App.Ports=[{"Protocol":"UDP","Port":3000,"Ref":"ApplicationPort1","Name":"Game Server Port","Description":"Port for game traffic"},{"Protocol":"TCP","Port":3001,"Ref":"ApplicationPort2","Name":"Web Server Port","Description":"Port for web server traffic"},{"Protocol":"TCP","Port":3002,"Ref":"RemoteAdminPort","Name":"RCON Server Port","Description":"Port for RCON traffic"}] +App.AdminPortRef=RemoteAdminPort +App.PrimaryApplicationPortRef=ApplicationPort1 +App.UniversalSleepApplicationUDPPortRef=ApplicationPort1 +App.UniversalSleepSteamQueryPortRef=ApplicationPort2 App.MaxUsers=-1 App.UseRandomAdminPassword=True App.RemoteAdminPassword= @@ -47,14 +54,18 @@ App.AdminMethod=SourceRCON App.AdminLoginTransform=None App.RCONConnectDelaySeconds=5 App.RCONConnectRetrySeconds=5 -App.UpdateSources=[{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"739590","UpdateSourceVersion":"public","UpdateSourceConditionSetting":"EnableBeta","UpdateSourceConditionValue":"false"},{"UpdateStageName":"SteamCMD Download","UpdateSourcePlatform":"All","UpdateSource":"SteamCMD","UpdateSourceData":"739590","UpdateSourceVersion":"{{BetaBranch}}","UpdateSourceConditionSetting":"EnableBeta","UpdateSourceConditionValue":"true"},{"UpdateStageName":"Network Config Copy","UpdateSourcePlatform":"All","UpdateSource":"CopyFilePath","UpdateSourceData":"./eco/739590/Configs/Network.eco","UpdateSourceArgs":"./eco/739590/Configs/Network.eco.template","OverwriteExistingFiles":false}] +App.RCONHeartbeatMinutes=0 +App.RCONHeartbeatCommand=ping +App.TelnetLoginFormat={0} +App.UpdateSources=@IncludeJson[ecoupdates.json] App.Compatibility=None App.SteamUpdateAnonymousLogin=True App.SteamForceLoginPrompt=False App.RapidStartup=False +App.MonitorChildProcess=False +App.MonitorChildProcessWaitMs=100 +App.MonitorChildProcessName= App.SupportsUniversalSleep=False -App.UniversalSleepApplicationUDPPort=27015 -App.UniversalSleepSteamQueryPort=27016 App.WakeupMode=Any App.ApplicationReadyMode=RegexMatch App.TemplateMatchRegex={{(\$?[\w]+)}} @@ -62,10 +73,11 @@ Console.FilterMatchRegex= Console.FilterMatchReplacement= Console.ThrowawayMessageRegex= Console.AppReadyRegex=^\[\d\d:\d\d:\d\d\] Server Initialization\s*\.\.\. Finished in [\d.,]*(ms| sec)$ -Console.UserJoinRegex= -Console.UserLeaveRegex= -Console.UserChatRegex= +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={} @@ -74,3 +86,4 @@ Limits.SleepOnStart=False Limits.SleepDelayMinutes=5 Limits.DozeDelay=2 Limits.AutoRetryCount=5 +Limits.SleepStartThresholdSeconds=25 \ No newline at end of file diff --git a/ecoconfig.json b/ecoconfig.json index 354a19255..08751101f 100644 --- a/ecoconfig.json +++ b/ecoconfig.json @@ -1,7 +1,7 @@ [ { "DisplayName":"Game Server Port", - "Category":"Server Settings", + "Category":"Eco - Server Settings", "Description":"", "Keywords":"", "FieldName":"$ApplicationPort1", @@ -14,7 +14,7 @@ }, { "DisplayName":"Web Server Port", - "Category":"Server Settings", + "Category":"Eco - Server Settings", "Description":"", "Keywords":"", "FieldName":"$ApplicationPort2", @@ -27,7 +27,7 @@ }, { "DisplayName":"RCON Server Port", - "Category":"Server Settings", + "Category":"Eco - Server Settings", "Description":"", "Keywords":"", "FieldName":"$RemoteAdminPort", @@ -53,8 +53,8 @@ }, { "DisplayName":"Server Name", - "Category":"Server Settings", - "Description":"Name of the server as it appears in the client server browser", + "Category":"Eco - Server Settings", + "Description":"Name of the server as it appears in the client server browser.", "Keywords":"name", "FieldName":"Description", "InputType":"text", @@ -66,8 +66,8 @@ }, { "DisplayName":"Server Description", - "Category":"Server Settings", - "Description":"Long form description of the server when clicked on in the client server browser", + "Category":"Eco - Server Settings", + "Description":"Long form description of the server when clicked on in the client server browser.", "Keywords":"description", "FieldName":"DetailedDescription", "InputType":"text", @@ -79,8 +79,8 @@ }, { "DisplayName":"Make Server Public", - "Category":"Server Settings", - "Description":"If enabled, server will appear in the client server browser", + "Category":"Eco - Server Settings", + "Description":"If enabled, the server will appear in the client server browser.", "Keywords":"public", "FieldName":"PublicServer", "InputType":"checkbox", @@ -95,8 +95,8 @@ }, { "DisplayName":"Server Password", - "Category":"Server Settings", - "Description":"Password required to connect to the server (except for whitelisted players). Default is no password", + "Category":"Eco - Server Settings", + "Description":"Password required to connect to the server (except for whitelisted players). Default is no password.", "Keywords":"password", "FieldName":"Password", "InputType":"password", @@ -108,41 +108,43 @@ }, { "DisplayName":"Server Category", - "Category":"Server Settings", - "Description":"Category of the server shown when clients first select a new game", + "Category":"Eco - Server Settings", + "Description":"Category of the server shown when clients first select a new game.", "Keywords":"category", "FieldName":"ServerCategory", "InputType":"enum", "IsFlagArgument":false, "ParamFieldName":"ServerCategory", "IncludeInCommandLine":false, - "DefaultValue":"None", + "DefaultValue":"Beginner", "EnumValues":{ "None":"None", - "Beginner":"Beginner", + "Beginner":"Beginner (default)", "Established":"Established", "BeginnerHard":"Beginner Hard", "Strange":"Strange" } }, { - "DisplayName":"Player Limit", - "Category":"Server Settings", - "Description":"Maximum number of players that may connect to the server. Default is no limit (-1)", - "Keywords":"players,limit", + "DisplayName":"Max Connections", + "Category":"Eco - Server Settings", + "Description":"Maximum number of connections allowed at one time. -1 = infinite.", + "Keywords":"max,connections", "FieldName":"$MaxUsers", "InputType":"number", + "MinValue":"-1", "IsFlagArgument":false, "ParamFieldName":"MaxConnections", "IncludeInCommandLine":false, "DefaultValue":"-1", + "Placeholder":"-1", "Suffix":"players", "EnumValues":{} }, { "DisplayName":"Server IP Binding", - "Category":"Server Settings", - "Description":"Internal server IP-address the server should bind to. Default is Any (all IPs on the host)", + "Description":"Internal server IP address that the server should bind to. Default is Any (all IPs on the host).", + "Category":"Eco - Server Settings", "Keywords":"ip,binding", "FieldName":"IPAddress", "InputType":"text", @@ -150,25 +152,40 @@ "ParamFieldName":"IPAddress", "IncludeInCommandLine":false, "DefaultValue":"Any", + "Placeholder":"Any", "EnumValues":{} }, { "DisplayName":"RCON IP Binding", - "Category":"Server Settings", - "Description":"Internal server IP-address the RCON server should bind to. Default is Any (all IPs on the host)", + "Category":"Eco - Server Settings", + "Description":"Internal server IP address tha the RCON server should bind to. Default is Any (all IPs on the host).", "Keywords":"rcon,ip,binding", "FieldName":"RconIPAddress", "InputType":"text", - "IsFlagArgument":false, "ParamFieldName":"RconIPAddress", - "IncludeInCommandLine":false, "DefaultValue":"Any", + "Placeholder":"Any", + "EnumValues":{} + }, + { + "DisplayName":"Max Active Players", + "Category":"Eco - Server Settings", + "Description":"Maximum active players, 0 = Unrestricted. Setting this gives your match score a boost in the server browser when you have fewer players than needed, and an extra boost if players have recently abandoned. Affects your server score only and not the total users that can connect.", + "Keywords":"max,connections", + "FieldName":"MaxActivePlayers", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"MaxActivePlayers", + "IncludeInCommandLine":false, + "DefaultValue":"0", + "Placeholder":"0", + "Suffix":"players", "EnumValues":{} }, { "DisplayName":"Discord Address", - "Category":"Server Settings", - "Description":"ID for a Discord server (the ID after \"discord.gg/\") to provide a link to", + "Category":"Eco - Server Settings", + "Description":"The address of a Discord server used for players on the server.", "Keywords":"discord", "FieldName":"DiscordAddress", "InputType":"text", @@ -176,13 +193,14 @@ "ParamFieldName":"DiscordAddress", "IncludeInCommandLine":false, "DefaultValue":"", - "Placeholder":"78xKTd", + "Suffix":"url", + "Placeholder":"https://discord.gg/myownserver", "EnumValues":{} }, { "DisplayName":"Enable UPnP", - "Category":"Server Settings", - "Description":"If enabled, UPnP will be enabled on the server. Requires a UPnP-enabled router to work", + "Category":"Eco - Server Settings", + "Description":"When enabled, UPnP will be enabled on the server. Requires a UPnP-enabled router to work.", "Keywords":"upnp", "FieldName":"UPnPEnabled", "InputType":"checkbox", @@ -195,10 +213,166 @@ "True":"true" } }, + { + "DisplayName":"Save Name", + "Category":"Eco - Server Settings", + "Description":"Name of the save to load at startup.", + "Keywords":"save,name", + "FieldName":"SaveName", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"SaveName", + "IncludeInCommandLine":false, + "DefaultValue":"Game", + "Placeholder":"Game", + "EnumValues":{} + }, + { + "DisplayName":"Save Frequency", + "Category":"Eco - Server Settings", + "Description":"How often to write changed data to disk.", + "Keywords":"save,frequency", + "FieldName":"SaveFrequency", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"SaveFrequency", + "IncludeInCommandLine":false, + "DefaultValue":"61", + "Placeholder":"61", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Cleanup Files On Exceptions", + "Category":"Eco - Server Settings", + "Description":"When enabled, removes failed to load objects upon loading.", + "Keywords":"cleanup,files,exceptions", + "FieldName":"CleanupFilesOnExceptions", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"CleanupFilesOnExceptions", + "IncludeInCommandLine":false, + "DefaultValue":"false", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Storage Directory", + "Category":"Eco - Server Settings", + "Description":"Path for storage (leave as \"Storage\" for default settings).", + "Keywords":"storage,directory", + "FieldName":"StorageDirectory", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"StorageDirectory", + "IncludeInCommandLine":false, + "DefaultValue":"Storage", + "Placeholder":"Storage", + "EnumValues":{} + }, + { + "DisplayName":"New Game Template", + "Category":"Eco - Server Settings", + "Description":"Path to file to start game from for a new world, if blank (null) then the world will be generated.", + "Keywords":"new,game,template", + "FieldName":"NewGameTemplate", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"NewGameTemplate", + "IncludeInCommandLine":false, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Auto Shutdown Hour", + "Category":"Eco - Server Settings", + "Description":"Defines the announcement countdown intervalss. The second countdown is handled by the Countdown Start setting. -1 = disabled)", + "Keywords":"auto,shutdown,hour", + "FieldName":"AutoShutdownHour", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"AutoShutdownHour", + "IncludeInCommandLine":false, + "DefaultValue":"-1", + "Placeholder":"-1", + "Suffix":"minutes", + "EnumValues":{} + }, + { + "DisplayName":"Auto Shutdown Reason", + "Category":"Eco - Server Settings", + "Description":"Specifies the message to be sent when the automatic restart auto shutdown occurs.", + "Keywords":"auto,shutdown,reason", + "FieldName":"AutoShutdownReason", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"AutoShutdownReason", + "IncludeInCommandLine":false, + "DefaultValue":"Automatic Restart", + "Placeholder":"Automatic Restart", + "EnumValues":{} + }, + { + "DisplayName":"Countdown Start", + "Category":"Eco - Server Settings", + "Description":"Specifies how many seconds until the shutdown counter starts.", + "Keywords":"countdown,start", + "FieldName":"CountdownStart", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"CountdownStart", + "IncludeInCommandLine":false, + "DefaultValue":"30", + "Suffix":"seconds", + "Placeholder":"30", + "EnumValues":{} + }, + { + "DisplayName":"Web Server URL", + "Category":"Eco - Server Settings", + "Description":"Web server URL. If not specified then remote IP address will be used. Usually should be ignored, but may be desired to use SSL or a friendly name. Uses default http/https port if not explicit port specified. Format: http(s)://myserver.com:[port]", + "Keywords":"web,server,url", + "FieldName":"WebServerUrl", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"WebServerUrl", + "IncludeInCommandLine":false, + "DefaultValue":"", + "Placeholder":"http(s)://myserver.com:[port]", + "EnumValues":{} + }, + { + "DisplayName":"SLG Account Name", + "Category":"Eco - Server Settings", + "Description":"The user account associated with the server. This will be shared with clients and will allow achievements earned by players on this server to be visible in other servers (as well as future features to come). Visit [play.eco](https://play.eco/) to link your steam account or create a new account.", + "Keywords":"slg,account,name", + "FieldName":"SLGAccountName", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"SLGAccountName", + "IncludeInCommandLine":false, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"SLG Account Password", + "Category":"Eco - Server Settings", + "Description":"Password for the SLG Account.", + "Keywords":"slg,account,password", + "FieldName":"SLGAccountPassword", + "InputType":"password", + "IsFlagArgument":false, + "ParamFieldName":"SLGAccountPassword", + "IncludeInCommandLine":false, + "DefaultValue":"", + "EnumValues":{} + }, { "DisplayName":"Enable Beta Branch", "Category":"SteamCMD and Updates", - "Description":"If enabled, allows beta branches (branches other than \"public\") to be installed. Specify the branch under \"Selected Beta Branch\". NOTE: Update the server after switching branches!", + "Description":"When enabled, allows beta branches (branches other than \"public\") to be installed. Specify the branch under \"Selected Beta Branch\". NOTE: Update the server after switching branches!", "Keywords":"enable,beta", "FieldName":"EnableBeta", "InputType":"checkbox", @@ -224,5 +398,955 @@ "DefaultValue":"", "Placeholder":"", "EnumValues":{} + }, + { + "DisplayName":"Time of Day Scale", + "Category":"Eco - Gameplay", + "Description":"Scales how much time of day matches real time. Higher numbers result in shorter day/night cycles (as a value of X seconds per real-world second), but will not affect simulation speed.", + "Keywords":"time,day,scale", + "FieldName":"TimeOfDayScale", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"TimeOfDayScale", + "IncludeInCommandLine":false, + "DefaultValue":"48", + "Suffix":"seconds", + "Placeholder":"48", + "EnumValues":{} + }, + { + "DisplayName":"Time Multiplier", + "Category":"Eco - Gameplay", + "Description":"Game progress time advances at this rate.", + "Keywords":"time,multiplier", + "FieldName":"TimeMult", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"TimeMult", + "IncludeInCommandLine":false, + "DefaultValue":"1", + "Placeholder":"1", + "EnumValues":{} + }, + { + "DisplayName":"Specialty Cost Multiplier", + "Category":"Eco - Gameplay", + "Description":"Multiplier applied to the cost of learning a specialty. Values below 1 decrease specialty cost, above 1 increase specialty cost.", + "Keywords":"specialty,cost,multiplier", + "FieldName":"SpecialtyCostMultiplier", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"DifficultyModifiers.SpecialtyCostMultiplier", + "IncludeInCommandLine":false, + "DefaultValue":"1.0", + "Placeholder":"1.0", + "EnumValues":{} + }, + { + "DisplayName":"Base Skill Gain Rate", + "Category":"Eco - Gameplay", + "Description":"The default experience gain for all players, regardless of their other sources of experience points and difficulty settings.", + "Keywords":"base,skill,gain,rate", + "FieldName":"BaseSkillGainRate", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"BaseSkillGainRate", + "IncludeInCommandLine":false, + "DefaultValue":"12.0", + "Placeholder":"12.0", + "EnumValues":{} + }, + { + "DisplayName":"Skill Gain Multiplier", + "Category":"Eco - Gameplay", + "Description":"Multiplier applied to the rate of skill points gained over time. Values below 1 decrease the rate, above 1 increase the rate.", + "Keywords":"skill,gain,multiplier", + "FieldName":"SkillGainMultiplier", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"DifficultyModifiers.SkillGainMultiplier", + "IncludeInCommandLine":false, + "DefaultValue":"1.0", + "Placeholder":"1.0", + "EnumValues":{} + }, + { + "DisplayName":"Skill Damage Multiplier", + "Category":"Eco - Gameplay", + "Description":"Scales skill penalty to suffocation. 0 to disable.", + "Keywords":"skill,damage,multiplier", + "FieldName":"SkillDamageMultiplier", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"SkillDamageMultiplier", + "IncludeInCommandLine":false, + "DefaultValue":"0", + "Placeholder":"0", + "EnumValues":{} + }, + { + "DisplayName":"Specialty Experience Per Level", + "Category":"Eco - Gameplay", + "Description":"Factors into experience per level specialties. Default is 25, higher values increase experience requirement, lower values reduce it.", + "Keywords":"specialty,experience", + "FieldName":"SpecialtyExperiencePerLevel", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"DifficultyModifiers.SpecialtyExperiencePerLevel", + "IncludeInCommandLine":false, + "DefaultValue":"25.0", + "Placeholder":"25.0", + "EnumValues":{} + }, + { + "DisplayName":"Craft Resource Multiplier", + "Category":"Eco - Gameplay", + "Description":"Multiplier applied to crafting resource cost. Values below 1 decrease crafting resource cost, above 1 increase resource cost.", + "Keywords":"craft,resource,multiplier", + "FieldName":"CraftResourceModifier", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"DifficultyModifiers.CraftResourceModifier", + "IncludeInCommandLine":false, + "DefaultValue":"1.0", + "Placeholder":"1.0", + "EnumValues":{} + }, + { + "DisplayName":"Craft Time Multiplier", + "Category":"Eco - Gameplay", + "Description":"Multiplier applied to crafting time. Values below 1 decrease crafting time, above 1 increase crafting time.", + "Keywords":"craft,time,multiplier", + "FieldName":"CraftTimeModifier", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"DifficultyModifiers.CraftTimeModifier", + "IncludeInCommandLine":false, + "DefaultValue":"1.0", + "Placeholder":"1.0", + "EnumValues":{} + }, + { + "DisplayName":"Specialty Refund Percentage", + "Category":"Eco - Gameplay", + "Description":"Percentage to refund a player when they remove a specialty.", + "Keywords":"speciality,refund,percentage", + "FieldName":"SpecialtyRefundPercentage", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"DifficultyModifiers.SpecialtyRefundPercentage", + "IncludeInCommandLine":false, + "DefaultValue":"0.5", + "Placeholder":"0.5", + "Suffix":"%", + "EnumValues":{} + }, + { + "DisplayName":"Player Experience Per Specialty", + "Category":"Eco - Gameplay", + "Description":"Percentage of specialty experience that is also gained as level experience. Not recommended for public servers. Default is 0.0", + "Keywords":"player,experience,speciality", + "FieldName":"PlayerExperiencePerSpecialtyExperience", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"DifficultyModifiers.PlayerExperiencePerSpecialtyExperience", + "IncludeInCommandLine":false, + "DefaultValue":"0.0", + "Placeholder":"0.0", + "EnumValues":{} + }, + { + "DisplayName":"Item Stack Size Multiplier", + "Category":"Eco - Gameplay", + "Description":"Multiplier applied to item maximum stack size. Values below 1 decrease maximum size, above 1 increases maximum size. A server restart is required for correct calculation.", + "Keywords":"item,stack,size,multiplier", + "FieldName":"StackSizeModifier", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"DifficultyModifiers.StackSizeModifier", + "IncludeInCommandLine":false, + "DefaultValue":"1.0", + "Placeholder":"1.0", + "EnumValues":{} + }, + { + "DisplayName":"Item Weight Multiplier", + "Category":"Eco - Gameplay", + "Description":"Multiplier applied to item weight. Values below 1 decrease item weight, above 1 increase item weight. A server restart is required for correct calculation.", + "Keywords":"item,weight,multiplier", + "FieldName":"WeightModifier", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"DifficultyModifiers.WeightModifier", + "IncludeInCommandLine":false, + "DefaultValue":"1.0", + "Placeholder":"1.0", + "EnumValues":{} + }, + { + "DisplayName":"Fuel Amount Multiplier", + "Category":"Eco - Gameplay", + "Description":"Multiplier applied to fuel yield per unit. Values below 1 decrease yield, above 1 increase yield. A server restart is required for correct calculation.", + "Keywords":"fuel,amount,multiplier", + "FieldName":"FuelModifier", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"DifficultyModifiers.FuelModifier", + "IncludeInCommandLine":false, + "DefaultValue":"1.0", + "Placeholder":"1.0", + "EnumValues":{} + }, + { + "DisplayName":"Growth Rate Multiplier", + "Category":"Eco - Gameplay", + "Description":"Global scale for how quickly plants mature.", + "Keywords":"growth,rate,multiplier", + "FieldName":"GrowthRateModifier", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"DifficultyModifiers.GrowthRateModifier", + "IncludeInCommandLine":false, + "DefaultValue":"1.0", + "Placeholder":"1.0", + "EnumValues":{} + }, + { + "DisplayName":"Storage Range Multiplier", + "Category":"Eco - Gameplay", + "Description":"Multiplier applied to storage connection range. Values below 1 decrease range, above 1 increases range. A server restart is required for correct calculation.", + "Keywords":"storage,range,multiplier", + "FieldName":"ConnectionRangeModifier", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"DifficultyModifiers.ConnectionRangeModifier", + "IncludeInCommandLine":false, + "DefaultValue":"1.0", + "Placeholder":"1.0", + "EnumValues":{} + }, + { + "DisplayName":"Endgame Craft Cost", + "Category":"Eco - Gameplay", + "Description":"Endgame crafting cost presets for Laser and Computer Lab. Does not affect work orders in progress.", + "Keywords":"endgame,craft,cost", + "FieldName":"EndgameCraftCost", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"EndgameCraftCost", + "IncludeInCommandLine":false, + "DefaultValue":"Normal", + "EnumValues":{ + "Normal":"Normal (default)", + "Expensive":"Expensive" + } + }, + { + "DisplayName":"Shelf Life Multiplier", + "Category":"Eco - Gameplay", + "Description":"Adjusts the default shelf life of all foods, with higher values causing food to last longer. For example, setting to 2 doubles the shelf life while setting to 0.5 halves the shelf life.", + "Keywords":"shelf,life,multiplier", + "FieldName":"ShelfLifeMultiplier", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"ShelfLifeMultiplier", + "IncludeInCommandLine":false, + "DefaultValue":"1.0", + "Placeholder":"1.0", + "EnumValues":{} + }, + { + "DisplayName":"Exhaustion After Hours", + "Category":"Eco - Gameplay", + "Description":"Maximum hours a user can play per day. After their allotted time, they can still play but not expand calories with work. 0 means no limit.", + "Keywords":"exhaustion,after,hours", + "FieldName":"ExhaustionAfterHours", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"ExhaustionAfterHours", + "IncludeInCommandLine":false, + "DefaultValue":"0", + "Placeholder":"0", + "Suffix":"hours", + "EnumValues":{} + }, + { + "DisplayName":"Rollover Daily Playtime", + "Category":"Eco - Gameplay", + "Description":"When enabled, remaining playtime can be added to the next day.", + "Keywords":"rollover,daily,playtime", + "FieldName":"RolloverDailyPlaytime", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"RolloverDailyPlaytime", + "IncludeInCommandLine":false, + "DefaultValue":"true", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Maximum Playtime Before Exhausted", + "Category":"Eco - Gameplay", + "Description":"If Rollover Daily Playtime is enabled, this sets the maximum hours playtime in a day. This limits how much playtime a player can save up by not playing.", + "Keywords":"playtime,before,exhausted", + "FieldName":"MaximumPlaytimeBeforeExhausted", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"MaximumPlaytimeBeforeExhausted", + "IncludeInCommandLine":false, + "DefaultValue":"15.0", + "Placeholder":"15.0", + "Suffix":"hours", + "EnumValues":{} + }, + { + "DisplayName":"Create Meteor", + "Category":"Eco - Disasters", + "Description":"When enabled, a meteor will exist in the world.", + "Keywords":"create,meteor", + "FieldName":"CreateMeteor", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"CreateMeteor", + "IncludeInCommandLine":false, + "DefaultValue":"true", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Meteor Impact Days", + "Category":"Eco - Disasters", + "Description":"Time in days when the meteor will impact. Changing this value will override impact time for the current active meteor.", + "Keywords":"meteor,impact", + "FieldName":"MeteorImpactDays", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"MeteorImpactDays", + "IncludeInCommandLine":false, + "DefaultValue":"30.0", + "Placeholder":"30.0", + "Suffix":"days", + "EnumValues":{} + }, + { + "DisplayName":"Rent Enabled", + "Category":"Eco - Features", + "Description":"When enabled, allows players to rent access to a given deed from another.", + "Keywords":"rent", + "FieldName":"RentEnabled", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"RentEnabled", + "IncludeInCommandLine":false, + "DefaultValue":"true", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Voice Chat Enabled", + "Category":"Eco - Features", + "Description":"When enabled, players will be able to use voice chat.", + "Keywords":"voice,chat", + "FieldName":"VoiceChatEnabled", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"VoiceChatEnabled", + "IncludeInCommandLine":false, + "DefaultValue":"true", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Food Variety Multiplier Enabled", + "Category":"Eco - Features", + "Description":"When enabled, the variety of food a player eats will provide a bonus.", + "Keywords":"food,variety,multiplier", + "FieldName":"FoodVarietyMultiplierEnabled", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"FoodVarietyMultiplierEnabled", + "IncludeInCommandLine":false, + "DefaultValue":"true", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Food Tastiness Multiplier Enabled", + "Category":"Eco - Features", + "Description":"When enabled, each player has unique preferences for each type of food that yields a bonus, and periodic \"cravings\" will emerge for an additional bonus.", + "Keywords":"food,tastiness,multiplier", + "FieldName":"FoodTastinessMultiplierEnabled", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"FoodTastinessMultiplierEnabled", + "IncludeInCommandLine":false, + "DefaultValue":"true", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Paused", + "Category":"Eco - Features", + "Description":"When enabled, the world will be on pause.", + "Keywords":"paused", + "FieldName":"Paused", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"Paused", + "IncludeInCommandLine":false, + "DefaultValue":"false", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Unpause At First Login", + "Category":"Eco - Features", + "Description":"When enabled, the world will resume as soon as the first player logs in.", + "Keywords":"unpause,login", + "FieldName":"UnpauseAtFirstLogin", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"UnpauseAtFirstLogin", + "IncludeInCommandLine":false, + "DefaultValue":"true", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Empty Blocks Count As Windows", + "Category":"Eco - Features", + "Description":"When enabled, rooms can have empty blocks serve as windows and still count as rooms.", + "Keywords":"empty,blocks,count,windows", + "FieldName":"EmptyBlocksCountAsWindows", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"EmptyBlocksCountAsWindows", + "IncludeInCommandLine":false, + "DefaultValue":"true", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Room Category Diminishing Return Rate", + "Category":"Eco - Features", + "Description":"Repeated rooms earn this multiple value of the previous ones. This makes duplicate rooms less valuable in a house.", + "Keywords":"room,category,diminishing,return,rate", + "FieldName":"RoomCategoryDiminishingReturnRate", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"RoomCategoryDiminishingReturnRate", + "IncludeInCommandLine":false, + "DefaultValue":"0.5", + "Placeholder":"0.5", + "EnumValues":{} + }, + { + "DisplayName":"Wall Blocks Per Window", + "Category":"Eco - Features", + "Description":"Specifies how many wall blocks are required to make one empty window or door block without penalty. It counts all wall blocks in the room, including window blocks.", + "Keywords":"wall,blocks,window", + "FieldName":"WallBlocksPerWindow", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"WallBlocksPerWindow", + "IncludeInCommandLine":false, + "DefaultValue":"10", + "Placeholder":"10", + "EnumValues":{} + }, + { + "DisplayName":"Allow Fast Forward", + "Category":"Eco - Features", + "Description":"When enabled, time will accelerate if all online players sleep in a bed. This shouldn't be enabled for public servers!", + "Keywords":"allow,fast,forward", + "FieldName":"AllowFastForward", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"AllowFastForward", + "IncludeInCommandLine":false, + "DefaultValue":"false", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Sleep Time Pass Multiplier", + "Category":"Eco - Features", + "Description":"The maximum time multiplier that will pass while sleeping. Lower this to make the simulation fast-forward more reliably.", + "Keywords":"sleep,time,pass,multiplier", + "FieldName":"SleepTimePassMultiplier", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"SleepTimePassMultiplier", + "IncludeInCommandLine":false, + "DefaultValue":"500.0", + "Placeholder":"500.0", + "EnumValues":{} + }, + { + "DisplayName":"Time To Reach Maximum Time Rate", + "Category":"Eco - Features", + "Description":"How long it takes to reach the maximum sleep time. Makes for a smooth transition into sleeping.", + "Keywords":"maximum,time,rate", + "FieldName":"TimeToReachMaximumTimeRate", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"TimeToReachMaximumTimeRate", + "IncludeInCommandLine":false, + "DefaultValue":"20.0", + "Placeholder":"20.0", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Allow Overthrow", + "Category":"Eco - Civics", + "Description":"When enabled, overthrowing a government will be allowed and a constitution with higher house value than the current can be ratified. It will also be impossible to make laws about placing or crafting a constitution.", + "Keywords":"overthrow", + "FieldName":"AllowOverthrow", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"AllowOverthrow", + "IncludeInCommandLine":false, + "DefaultValue":"true", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Value Addition To Overthrow", + "Category":"Eco - Civics", + "Description":"To overthrow an existing government, a constitution must be placed in a building that exceeds the previous constitution's value by this percentage. 100 = 100%.", + "Keywords":"overthrow", + "FieldName":"ValueAdditionToOverthrow", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"ValueAdditionToOverthrow", + "IncludeInCommandLine":false, + "DefaultValue":"50.0", + "Placeholder":"50.0", + "Suffix":"%", + "EnumValues":{} + }, + { + "DisplayName":"Day Range For Active Demographic", + "Category":"Eco - Civics", + "Description":"The \"Active Players\" demographic will check this many of the past days to determine the hours played by a user.", + "Keywords":"day,range,active,demographic", + "FieldName":"DayRangeForActiveDemographic", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"DayRangeForActiveDemographic", + "IncludeInCommandLine":false, + "DefaultValue":"1.5", + "Placeholder":"1.5", + "Suffix":"days", + "EnumValues":{} + }, + { + "DisplayName":"Hours Played To Be Active Demographic", + "Category":"Eco - Civics", + "Description":"The \"Active Players\" demographic will apply to any users who played this many hours within the specified Day Range.", + "Keywords":"active,demographic", + "FieldName":"HoursPlayedToBeActiveDemographic", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"HoursPlayedToBeActiveDemographic", + "IncludeInCommandLine":false, + "DefaultValue":"0.5", + "Placeholder":"0.5", + "Suffix":"hours", + "EnumValues":{} + }, + { + "DisplayName":"Day Range For Abandoned Demographic", + "Category":"Eco - Civics", + "Description":"The \"Abandoned Players\" demographic will check this many past days for hours played by the user.", + "Keywords":"range,abandoned,demographic", + "FieldName":"DayRangeForAbandonedDemographic", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"DayRangeForAbandonedDemographic", + "IncludeInCommandLine":false, + "DefaultValue":"7.0", + "Placeholder":"7.0", + "Suffix":"days", + "EnumValues":{} + }, + { + "DisplayName":"Hours Played To Be Abandoned Demographic", + "Category":"Eco - Civics", + "Description":"The \"Abandoned Players\" demographic will apply to any users who have not played more than this many hours within the past number of days specified in the Day Range setting.", + "Keywords":"hours,played,abandoned,demographic", + "FieldName":"HoursPlayedToBeAbandonedDemographic", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"HoursPlayedToBeAbandonedDemographic", + "IncludeInCommandLine":false, + "DefaultValue":"0.0", + "Placeholder":"0.0", + "Suffix":"hours", + "EnumValues":{} + }, + { + "DisplayName":"Citizen Age For Abandoned Demographic", + "Category":"Eco - Civics", + "Description":"The \"Abandoned Players\" demographic will only apply to users who have a citizen age greater than this many hours.", + "Keywords":"citizen,age,abandoned,demographic", + "FieldName":"CitizenAgeForAbandonedDemographic", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"CitizenAgeForAbandonedDemographic", + "IncludeInCommandLine":false, + "DefaultValue":"24.0", + "Placeholder":"24.0", + "Suffix":"hours", + "EnumValues":{} + }, + { + "DisplayName":"Minutes Between Civics Updates", + "Category":"Eco - Civics", + "Description":"Demographics are updated after this much time has passed.", + "Keywords":"minutes,civics,updates", + "FieldName":"MinutesBetweenCivicsUpdates", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"MinutesBetweenCivicsUpdates", + "IncludeInCommandLine":false, + "DefaultValue":"5.0", + "Placeholder":"5.0", + "Suffix":"minutes", + "EnumValues":{} + }, + { + "DisplayName":"Allow Invalid Civic Container Time In Minutes", + "Category":"Eco - Civics", + "Description":"Sets how much time can a civics object have an invalid or missing host object before it goes invalid", + "Keywords":"invalid,civic,container", + "FieldName":"AllowInvalidCivicContainerTimeInMinutes", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"AllowInvalidCivicContainerTimeInMinutes", + "IncludeInCommandLine":false, + "DefaultValue":"20.0", + "Placeholder":"20.0", + "Suffix":"minutes", + "EnumValues":{} + }, + { + "DisplayName":"Recurring Transfer Frequency In Minutes", + "Category":"Eco - Civics", + "Description":"Recurring transfers like rent and wages are paid after this many minutes.", + "Keywords":"recurring,transfer,frequency", + "FieldName":"RecurringTransferFrequencyInMinutes", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"RecurringTransferFrequencyInMinutes", + "IncludeInCommandLine":false, + "DefaultValue":"30.0", + "Placeholder":"30.0", + "Suffix":"minutes", + "EnumValues":{} + }, + { + "DisplayName":"Allow Laws To Prevent Login Or Play", + "Category":"Eco - Civics", + "Description":"When enabled, laws can prevent someone from logging in or playing. Enable with caution: users can create a law that blocks everyone from logging.", + "Keywords":"laws,prevent,login,play", + "FieldName":"AllowLawsToPreventLoginOrPlay", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"AllowLawsToPreventLoginOrPlay", + "IncludeInCommandLine":false, + "DefaultValue":"false", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Maximum Election Hours", + "Category":"Eco - Civics", + "Description":"After this many hours, an election will end with or without a winner.", + "Keywords":"election,hours", + "FieldName":"MaximumElectionHours", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"BasicElectionSettings.MaximumElectionHours", + "IncludeInCommandLine":false, + "DefaultValue":"24.0", + "Placeholder":"24.0", + "Suffix":"hours", + "EnumValues":{} + }, + { + "DisplayName":"Minimum Required Eligible Voters", + "Category":"Eco - Civics", + "Description":"An election will not produce a winner unless this percentage of eligible voters have cast their vote.", + "Keywords":"eligible,voters", + "FieldName":"MinimumPercentOfEligibleVotersRequired", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"BasicElectionSettings.MinimumPercentOfEligibleVotersRequired", + "IncludeInCommandLine":false, + "DefaultValue":"10.0", + "Placeholder":"10.0", + "Suffix":"%", + "EnumValues":{} + }, + { + "DisplayName":"Minimum Days Between Election Types", + "Category":"Eco - Civics", + "Description":"Once an election of a certain type completes, another of the same type cannot be started for this many days.", + "Keywords":"elections", + "FieldName":"MinimumDaysBetweenElectionsOfThisType", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"BasicElectionSettings.MinimumDaysBetweenElectionsOfThisType", + "IncludeInCommandLine":false, + "DefaultValue":"0.0", + "Placeholder":"0.0", + "Suffix":"days", + "EnumValues":{} + }, + { + "DisplayName":"End Election Early When This Percent Have Voted", + "Category":"Eco - Civics", + "Description":"If this percentage of voters have cast their vote, then the election will end early (but not sooner than the Minimum Election Time).", + "Keywords":"election,voted", + "FieldName":"EndElectionEarlyWhenThisPercentHaveVoted", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"BasicElectionSettings.EndElectionEarlyWhenThisPercentHaveVoted", + "IncludeInCommandLine":false, + "DefaultValue":"95.0", + "Placeholder":"95.0", + "Suffix":"%", + "EnumValues":{} + }, + { + "DisplayName":"Percent Of All Voters To Instant Win", + "Category":"Eco - Civics", + "Description":"If this percent of all possible voters votes yes, the election will finish instantly.", + "Keywords":"voters,instant,win", + "FieldName":"PercentOfAllVotersToInstantWin", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"BasicElectionSettings.PercentOfAllVotersToInstantWin", + "IncludeInCommandLine":false, + "DefaultValue":"51.0", + "Placeholder":"51.0", + "Suffix":"%", + "EnumValues":{} + }, + { + "DisplayName":"Percent Of All Voters To Instant Lose", + "Category":"Eco - Civics", + "Description":"If this percent of all possible voters votes no, the election will fail instantly.", + "Keywords":"voters,instant,lose", + "FieldName":"PercentOfAllVotersToInstantLose", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"BasicElectionSettings.PercentOfAllVotersToInstantLose", + "IncludeInCommandLine":false, + "DefaultValue":"51.0", + "Placeholder":"51.0", + "Suffix":"%", + "EnumValues":{} + }, + { + "DisplayName":"Anonymous Voting", + "Category":"Eco - Civics", + "Description":"When enabled, the way a citizen votes will be hidden", + "Keywords":"anonymous,voting", + "FieldName":"AnonymousVoting", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"BasicElectionSettings.AnonymousVoting", + "IncludeInCommandLine":false, + "DefaultValue":"false", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Twitch Vote Weight", + "Category":"Eco - Civics", + "Description":"The percentage value a vote from a Twitch viewer counts relative to vote from a player.", + "Keywords":"twitch,vote,weight", + "FieldName":"TwitchVoteWeight", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"BasicElectionSettings.TwitchVoteWeight", + "IncludeInCommandLine":false, + "DefaultValue":"0.1", + "Placeholder":"0.1", + "EnumValues":{} + }, + { + "DisplayName":"Max Percent Twitch Votes", + "Category":"Eco - Civics", + "Description":"The maximum percentage contribution all combined Twitch voters can have in an election.", + "Keywords":"twitch,votes", + "FieldName":"MaxPercentTwitchVotes", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"BasicElectionSettings.MaxPercentTwitchVotes", + "IncludeInCommandLine":false, + "DefaultValue":"0.5", + "Placeholder":"0.5", + "Suffix":"%", + "EnumValues":{} + }, + { + "DisplayName":"In Game Language", + "Category":"Eco - Gameplay", + "Description":"The currently selected language. If you change languages, you'll need to restart the server for the changes to fully take effect.", + "Keywords":"language,game", + "FieldName":"Language", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"Language", + "IncludeInCommandLine":false, + "DefaultValue":"English", + "EnumValues":{ + "English":"English", + "Français":"Français", + "Español":"Español", + "Deutsch":"Deutsch", + "한국어":"한국어", + "Português (Brasil)":"Português (Brasil)", + "汉语":"汉语", + "Русский":"Русский", + "Italiano":"Italiano", + "Português":"Português", + "日本語":"日本語", + "Polski":"Polski", + "Українська":"Українська", + "Türk":"Türk" + } + }, + { + "DisplayName":"World Tick CPU Max", + "Category":"Eco - Performance and Limits", + "Description":"Determines how much of any CPU core can be used by the server. Defaults to 25%, and should supposedly not be set higher than 75%.", + "Keywords":"world,tick,cpu,max", + "FieldName":"WorldTickCPUMax", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"WorldTickCPUMax", + "IncludeInCommandLine":false, + "DefaultValue":"0.25", + "EnumValues":{ + "0.05":"5%", + "0.10":"10%", + "0.15":"15%", + "0.20":"20%", + "0.25":"25% (default)", + "0.30":"30%", + "0.35":"35%", + "0.40":"40%", + "0.45":"45%", + "0.50":"50%", + "0.55":"55%", + "0.60":"60%", + "0.65":"65%", + "0.70":"70%", + "0.75":"75%", + "0.80":"80%", + "0.85":"85%", + "0.90":"90%", + "0.95":"95%", + "1.00":"100%" + } + }, + { + "DisplayName":"Parallel World Object Ticks", + "Category":"Eco - Performance and Limits", + "Description":"An experimental feature that allows parallel (as opposed to sequential) world object ticks. May increase performance at the cost of stability.", + "Keywords":"parallel,world,object,ticks", + "FieldName":"ParallelWorldObjectTicks", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"ParallelWorldObjectTicks", + "IncludeInCommandLine":false, + "DefaultValue":"false", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Minimum Tree Spawn Distance", + "Category":"Eco - Performance and Limits", + "Description":"Minimum distance between trees. Lower values can impact performance negatively.", + "Keywords":"minimum,tree,spawn,distance", + "FieldName":"MinTreeSpawnDistance", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"MinTreeSpawnDistance", + "IncludeInCommandLine":false, + "DefaultValue":"5", + "Placeholder":"5", + "EnumValues":{} + }, + { + "DisplayName":"Max Tooltip Cache Size", + "Category":"Eco - Performance and Limits", + "Description":"Maximum number of tooltip parts stored in server's cache. Lowering this number can reduce RAM usage, but may impact response time for user's tooltip request. Changing this setting will take effect after server restart.", + "Keywords":"max,tooltip,cache,size", + "FieldName":"MaxTooltipCacheSize", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"MaxTooltipCacheSize", + "IncludeInCommandLine":false, + "DefaultValue":"1000", + "Placeholder":"1000", + "EnumValues":{} + }, + { + "DisplayName":"Client Update Rate", + "Category":"Eco - Performance and Limits", + "Description":"Rate at which the server updates to clients, per second.", + "Keywords":"rate,server,update,client", + "FieldName":"Rate", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"Rate", + "IncludeInCommandLine":false, + "DefaultValue":"20", + "EnumValues":{ + "10":"10 seconds", + "20":"20 seconds (default)", + "30":"30 seconds", + "40":"40 seconds", + "50":"50 seconds", + "60":"60 seconds", + "70":"70 seconds", + "80":"80 seconds", + "90":"90 seconds", + "100":"100 seconds" + } } ] \ No newline at end of file diff --git a/ecometaconfig.json b/ecometaconfig.json index 23481c39d..41cbb56b7 100755 --- a/ecometaconfig.json +++ b/ecometaconfig.json @@ -3,5 +3,80 @@ "ConfigFile": "Configs/Network.eco", "AutoMap": true, "ConfigType": "json" + }, + { + "ConfigFile": "Configs/Difficulty.eco", + "AutoMap": true, + "ConfigType": "json" + }, + { + "ConfigFile": "Configs/Balance.eco", + "AutoMap": true, + "ConfigType": "json" + }, + { + "ConfigFile": "Configs/Disasters.eco", + "AutoMap": true, + "ConfigType": "json" + }, + { + "ConfigFile": "Configs/Features.eco", + "AutoMap": true, + "ConfigType": "json" + }, + { + "ConfigFile": "Configs/Pause.eco", + "AutoMap": true, + "ConfigType": "json" + }, + { + "ConfigFile": "Configs/Rooms.eco", + "AutoMap": true, + "ConfigType": "json" + }, + { + "ConfigFile": "Configs/Sleep.eco", + "AutoMap": true, + "ConfigType": "json" + }, + { + "ConfigFile": "Configs/Civics.eco", + "AutoMap": true, + "ConfigType": "json" + }, + { + "ConfigFile": "Configs/Storage.eco", + "AutoMap": true, + "ConfigType": "json" + }, + { + "ConfigFile": "Configs/Maintenance.eco", + "AutoMap": true, + "ConfigType": "json" + }, + { + "ConfigFile": "Configs/Localization.eco", + "AutoMap": true, + "ConfigType": "json" + }, + { + "ConfigFile": "Configs/Users.eco", + "AutoMap": true, + "ConfigType": "json" + }, + { + "ConfigFile": "Configs/World.eco", + "AutoMap": true, + "ConfigType": "json" + }, + { + "ConfigFile": "Configs/WorldObjects.eco", + "AutoMap": true, + "ConfigType": "json" + }, + { + "ConfigFile": "Configs/EcoSim.eco", + "AutoMap": true, + "ConfigType": "json" } ] diff --git a/ecoupdates.json b/ecoupdates.json new file mode 100644 index 000000000..839c53573 --- /dev/null +++ b/ecoupdates.json @@ -0,0 +1,188 @@ +[ + { + "UpdateStageName":"SteamCMD Download", + "UpdateSourcePlatform":"All", + "UpdateSource":"SteamCMD", + "UpdateSourceData":"739590", + "UpdateSourceVersion":"public", + "UpdateSourceConditionSetting":"EnableBeta", + "UpdateSourceConditionValue":"false" + }, + { + "UpdateStageName":"SteamCMD Download", + "UpdateSourcePlatform":"All", + "UpdateSource":"SteamCMD", + "UpdateSourceData":"739590", + "UpdateSourceVersion":"{{BetaBranch}}", + "UpdateSourceConditionSetting":"EnableBeta", + "UpdateSourceConditionValue":"true" + }, + { + "UpdateStageName":"Backup Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/Backup.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/Backup.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"Balance Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/Balance.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/Balance.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"Civics Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/Civics.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/Civics.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"Difficulty Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/Difficulty.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/Difficulty.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"Disasters Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/Disasters.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/Disasters.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"EcoSim Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/EcoSim.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/EcoSim.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"Features Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/Features.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/Features.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"Localization Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/Localization.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/Localization.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"Maintenance Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/Maintenance.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/Maintenance.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"ModKit Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/ModKit.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/ModKit.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"Network Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/Network.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/Network.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"Pause Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/Pause.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/Pause.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"Profanity Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/Profanity.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/Profanity.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"Rooms Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/Rooms.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/Rooms.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"Sleep Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/Sleep.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/Sleep.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"Stats Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/Stats.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/Stats.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"Storage Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/Storage.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/Storage.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"Users Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/Users.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/Users.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"World Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/World.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/World.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"WorldGenerator Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/WorldGenerator.eco.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/WorldGenerator.eco.template", + "OverwriteExistingFiles":false + }, + { + "UpdateStageName":"WorldObjects Config Copy", + "UpdateSourcePlatform":"All", + "UpdateSource":"CopyFilePath", + "UpdateSourceData":"{{$FullBaseDir}}Configs/WorldObjects.eco", + "UpdateSourceArgs":"{{$FullBaseDir}}Configs/WorldObjects.eco.template", + "OverwriteExistingFiles":false + } +] \ No newline at end of file