Server Configuration: Difference between revisions
[checked revision] | [checked revision] |
m →User Settings: Use Key template. |
Updated warning for playtime config |
||
Line 19: | Line 19: | ||
** <code>"Playtime": "110000011111111122222222 110000011111111122222222 110000011111111122222222 110000011111111122222222 111110011111111122222222 221110012222222222222222 221110012222222222222222",</code> | ** <code>"Playtime": "110000011111111122222222 110000011111111122222222 110000011111111122222222 110000011111111122222222 111110011111111122222222 221110012222222222222222 221110012222222222222222",</code> | ||
** 1=Sometimes, 2= Regular, 0=Rarely. | ** 1=Sometimes, 2= Regular, 0=Rarely. | ||
** Each line here represents a day. Remove all spaces and linebreaks when adding it to the config. If it contains and spaces or linebreaks it will | ** '''Each line here represents a day. Remove all spaces and linebreaks when adding it to the config. If it contains and spaces or linebreaks it will cause issues with the display of the server in the server list.''' | ||
===== Set server Discord ===== | ===== Set server Discord ===== | ||
* Discord Address — Adding the unique ID of a Discord server (after the “discord.gg/”) will provide a link to the Discord server from the tutorial. | * Discord Address — Adding the unique ID of a Discord server (after the “discord.gg/”) will provide a link to the Discord server from the tutorial. | ||
Line 83: | Line 83: | ||
** <code>LogFileAndNotifyEveryone</code> — Log to file and notifies the all users connected to the server. | ** <code>LogFileAndNotifyEveryone</code> — Log to file and notifies the all users connected to the server. | ||
* <code>UseExactSpawnLocation</code> — Toggles rather exact spawn location should be used for new players, or if the spawn location should be automatically changed dynamically to where there is wild food to gather. Default set to false. | * <code>UseExactSpawnLocation</code> — Toggles rather exact spawn location should be used for new players, or if the spawn location should be automatically changed dynamically to where there is wild food to gather. Default set to false. | ||
==== World Generation Settings ==== | ==== World Generation Settings ==== | ||
WorldGenerator > Config | WorldGenerator > Config | ||
Line 293: | Line 292: | ||
|- | |- | ||
|} | |} | ||
==== Disasters.eco ==== | ==== Disasters.eco ==== | ||
File use to configure the meteor. | File use to configure the meteor. |
Revision as of 08:31, 1 June 2022
Server Configuration can be done either through the server GUI or by directly editing configuration files. The latter option is only recommended for advanced users. Many aspects of the world, items, and player settings can be changed in this way.
This configuration guide is based on player tests and crowd-sourcing. No information in this guide has been confirmed by SLG.
Basic server configuration
The most common and important server configurations can be made through the server GUI. Each tab in the server window will have at least 1 sub-tab. Usually, there will be at least 2 sub-tabs: Display and Config. The Display tab shows relevant information and stats about that plugin (each tab represents a server plugin).
Opening the Config tab in each plugin will present a list of options that can be changed through drop-down menus or collections (look for the arrow or breadcrumbs on the right) or direct data entry.
Common configurations
Below is a guide to the most commonly configured settings that can be changed through the server GUI.
Server Listing Settings
Network > Config
Make server public/private
- Public Server — Set to True to have the server listed in the Eco client server browser.
Set playtime table
- Playtime — This is automatically filled in if you created the server in the Eco client and made a Timetable (schedule of preferred playtimes). If this is blank, the best way to fill it in is to “Set Playtime” through the Game Menu (
Esc
), and copy and paste the data from playtime.eco.- On Windows 10, this file will be found at Users > [username] > AppData > LocalLow > StrangeLoopGames > Eco. Adding a timetable helps the server show up more prominently in the server browser.
- Playtime (Version 0.8.3.x) - You declare the playtime in the network.eco file. Here is an example:
-
"Playtime": "110000011111111122222222 110000011111111122222222 110000011111111122222222 110000011111111122222222 111110011111111122222222 221110012222222222222222 221110012222222222222222",
- 1=Sometimes, 2= Regular, 0=Rarely.
- Each line here represents a day. Remove all spaces and linebreaks when adding it to the config. If it contains and spaces or linebreaks it will cause issues with the display of the server in the server list.
-
Set server Discord
- Discord Address — Adding the unique ID of a Discord server (after the “discord.gg/”) will provide a link to the Discord server from the tutorial.
Set server password
- Password — Set a password for the server, or leave this blank to not require a password. Players on the whitelist will not have to enter a password.
Set server name
- Description — Sets the name of your server in the client server browser. Text markup can be used to add color or modify the appearance of the text.
Set server description
- DetailedDescription — Sets the long-form description of your server when people click on it in the server browser. Adding this description helps the server show up more prominently in the browser.
Set server category
- ServerCategory — Choose from 1 of 4 categories that will show up when players first click on “New Game” in the Eco client. Selecting a category makes it much more likely new players will join your server. Strings available for this option are:
- None
- Beginner
- Established
- BeginnerHard
- Strange
For more information, see the Server Browser page.
Sleep Settings
Sleep > Config
- Allow Fast Forward — Enable or disable sleep. This defaults to “False” on public servers and “True” on local servers. Enabling sleep is not recommended on larger servers or public servers. Players can use this to accelerate voting for laws, and some things are not 100% simulated during sleep. Use it at your own risk.
- Sleep Time Pass Multiplier — Maximum multiplier applied to time while sleeping
- Time to Reach Maximum Time Rate — Time it takes to reach Sleep Time Pass Multiplier
XP/Specialty Progression Speed
Difficulty Settings > Config
- Collaboration Preset — Change collaboration settings to adjust how quickly players gain skill points. Sticking with the collaboration presets is recommended.
- Specialty Cost Multiplier — Adjusts the required amount of XP required to reach the next star using a multiplier based on the following baseline values 0, 20, 50, 100, 200, 400, 800, 1600 after the 8th each stars baseline is 1600).
- Skill Gain Multiplier — Adjusts the rate of skill points gained over time from food and housing.
- Specialty Experience Divisor — Reduces experience rate based on number of specialties learned. Has no effect as of Beta 8.0.1.
- Specialty Experience PerLevel — Experience required to level up each specialty tier.
- Craft Resource Multiplier — Adjusts the amount of materials required to craft a recipe. Note: Effective maximum of 4.5 in vanilla game. Values higher than 4.5 cannot produce workstations from a single tent stockpile.
- Craft Time Multiplier — Adjusts the amount of time that a recipe takes to craft.
- Player Experience per Specialty — Gives player XP for improving at your chosen field. Note: This is not recommended for public servers because it essentially means that those in front will generally get further in front.
- Unlearn Refund Rate — Obsolete as of Beta 8.0. Has no effect.
- End Game Craft Cost — Includes two options, "Normal and "Expensive" which will alter the crafting costs for the Laser and Computer Lab. Does not affect work orders in process.
Meteor Settings
Disasters > Config
- Create Meteor — Enable or disable meteor. Changing from True to False while world is running will destroy the meteor. Changing from False to True while world is running will have disastrous consequences. If you wish to enable the meteor, regenerate the world first.
- Meteor Impact Days — Number of real-life days until meteor makes impact, counting from the date/time the server was first started. To time the meteor impact precisely decimal points seem to be allowed (thus allowing you to align the meteor impact to a desired hour/minute). Editing this setting may require server restart or regeneration to take effect.
User Settings
Users > Config
- Require Authentication — True/False. Validates users with Eco servers. Set to True by default. False has unknown effects and is not recommended.
- Allow Debug Calls — True/False. Allows debug calls to be made to the webserver. Unknown effect.
- White List — Whitelist selected players. Enter each individual player ID. Press
Enter
between each ID. - Black List — Blacklist selected players. Enter each individual player ID. Press
Enter
between each ID. - Admins — Give selected players full admin rights. Enter each individual player ID. Press
Enter
between each ID. Having an admin online helps the server show up more prominently in the server browser.
Note: Whitelist, Blacklist, and Admins all use player IDs. Use the /whois
command to see their ID. You will need to enter the proper ID when editing these lists manually.
Use the SLG ID unless the user is a Steam-only user.
SLG only account | use SLG ID |
Steam only account | use STEAMID64 |
SLG + Steam linked account | use SLG ID |
You are able to use the player's name when running the corresponding commands from inside the game.
- Reputations — Manage reputation tiers and change their titles (this can be fun on a themed server!).
- Unstuck Disable Time — Sets (in seconds) the
/unstuck
cooldown to prevent exploits. AdminCommandsLoggingLevel
— Sets the level of logging that happens when an admin invokes admin commands. There are four different levels:None
— No logging and no notification is given.LogFile
— Log to file.LogFileAndNotifyAdmins
— Log to file and notifies the all admins connected to the server.LogFileAndNotifyEveryone
— Log to file and notifies the all users connected to the server.
UseExactSpawnLocation
— Toggles rather exact spawn location should be used for new players, or if the spawn location should be automatically changed dynamically to where there is wild food to gather. Default set to false.
World Generation Settings
WorldGenerator > Config
Note: Settings that affect world size, shape, and contents will not take effect until the world is re-generated)
Change World Seed
- Seed — Change the randomly generated seed that the world generation is based off.
Note: If you want to duplicate a world off of a seed, you need to match the WorldGenerator.eco settings for that world. This is easy if you just replace your WorldGenerator.eco with a copy of the file from the generated server (the file must have been unchanged since the server was generated). All the random values are generated off the seed, but within ranges defined by the config, so you need both if you want the same end result.
Change World Size
- Dimensions — Changes the size of the world. The X and Y values must be the same and divisible by 4. However, not all worlds with dimensions that follow these rules will be stable.
NOTE: The server (EcoServer32.exe) that is bundled with the Eco game client can only run worlds up to 100x100. To run larger worlds, the server must be downloaded separately, through Steam or the SLG website.
Below are the current recommendations for world sizes. Worlds built outside these recommendations may experience playability, performance, and stability issues that are outside the capabilities of SLG support staff:
- (72,72) — Template:Unit — This is the default size, recommended for singleplayer and coop games.
- (100,100) — Template:Unit — This is the maximum size the 32-bit Server (executed by Singleplayer) can handle and the recommended size for small public servers. (Used by official servers to create a challenge-focused experience, despite them being medium to large sized)
- (140,140) — Template:Unit — This is the recommended size for medium to large public servers.
- (160,160) — Template:Unit — The biggest size supported by Strange Loop Games, recommended for the biggest public servers out there. (Used by official server White-Tiger)
The following world sizes are known to be stable on servers with an above average performance, but are not recommended to be used, given they will not allow any meaningful impact on Ecology. Strange Loop Games does not guarantee to provide support for worlds of this size.
- (172,172) — Template:Unit
- (200,200) — Template:Unit
The following world sizes can be stable on servers and for clients that are both having strong to extremely strong performance, but are not recommended to be used, given they will not allow any meaningful impact on Ecology and are not suitable for the vast majority of use cases. Strange Loop Games does not provide support for worlds of these sizes and does not guarantee to take bug reports that involve worlds of these sizes.
- (224,224) — Template:Unit
- (240,240) — Template:Unit
- (248,248) — Template:Unit
- (272,272) — Template:Unit
- (296,296) — Template:Unit
- (300,300) — Template:Unit
- (360,360) — Template:Unit
- (400,400) — Template:Unit
Worlds over 400x400 may be possible to generate without the server crashing, but are extremely likely to be unstable, even with the most performant hardware available on clients and the server. Strange Loop Games does generally not provide any support nor take bug reports for worlds with such sizes.
Change World Shape
- WaterLevel — Sea level height.
- Height — Maximum height of terrain.
Player Spawn Location
- Spawn Location — Set new player spawn location coordinates.
- Use Exact Spawn Location — Set to True to spawn players at exactly the same coordinates. Defaults to False, which spawns players in a flat area nearby.
Editing config files (advanced)
Editing config files can allow for more detailed changes. You can alter world generation, potentially drastically, in many ways. Player starting items can be added or removed. Objects can be edited and have their storage space changed.
Before you begin editing
Before making any changes, make sure you create backups for each configuration file. You should save copies of your edited config files as well, because patches can overwrite your changes.
To make changing the files easier, consider using an editor like Notepad++.
When updating a server, you will want to manually edit the new config files with all your edits, so make sure you document every config change. You can use a text comparison tool to find differences in configs if you are unsure about changes.
Some changes require additional steps to take effect as intended:
- Changes in the area of world generation require a complete restart of the world.
- Changes in EcoSim.eco are accepted when the server is restarted. However, the new values will only occur in newly planted / grown plants and trees.
- Changes in the full range of mods require the deletion of "Eco.Mods.dll" to take effect.
Note: This configuration guide is based on player tests and crowd-sourcing. No information in this guide has been confirmed by SLG.
List of configuration files
The standard configuration files are located in Eco\Eco_Data\Server\configs
Many of the settings found within these files can also be edited through the server GUI. Generally, each configuration file has a tab in the server GUI that corresponds to it. Clicking on each particular setting in the GUI will explain what the setting does at the bottom of the window.
Backup.eco
Controls whether to keep backup save files, and how often to create them.
Difficulty.eco
Many of these settings were made obsolete with version 0.8.0.0, but may remain in the config files. See also EcoSim.eco for the base skill gain rate.
Setting | Default | Options | Description |
---|---|---|---|
CollaborationPreset
|
MediumCollaboration
|
|
Change collaboration settings to adjust how quickly players gain skill points. |
SpecialtyCostMultiplier
|
1.0
|
Lower = faster star progression. | |
SkillGainMultiplier
|
1.0
|
Higher = quicker XP. | |
SpecialtyExperiencePerLevel
|
25.0
|
Higher = longer. | |
CraftResourceModifier
|
1.0
|
Modifies how many resources players need for crafting | |
CraftTimeMultiplier
|
1.0
|
Modifies the crafting time | |
PlayerExperiencePerSpecialtyExperience
|
0.0
|
||
EndgameCraftCost
|
Normal
|
|
The following presets are available by default:
No Collaboration (0-3 players) | |
---|---|
Specialty Cost Multiplier | 0.1 |
Skill Gain Multiplier | 5 |
Specialty Experience Divisor | 20 |
Specialty Experience Per Level | 25 |
Unlearn Refund Rate | 0.5 |
Craft Resource Modifier | 0.5 |
Craft Time Multiplier | 0.5 |
Player Experience Per Specialty | 0 |
End Game Craft Cost | Normal |
Low Collaboration (3-10 players) | |
---|---|
Specialty Cost Multiplier | 0.5 |
Skill Gain Multiplier | 2 |
Specialty Experience Divisor | 20 |
Specialty Experience Per Level | 25 |
Unlearn Refund Rate | 0.5 |
Craft Resource Modifier | 1 |
Craft Time Multiplier | 1 |
Player Experience Per Specialty | 0 |
End Game Craft Cost | Normal |
Medium Collaboration (10-30 players) | |
---|---|
Specialty Cost Multiplier | 1 |
Skill Gain Multiplier | 1 |
Specialty Experience Divisor | 20 |
Specialty Experience Per Level | 25 |
Unlearn Refund Rate | 0.5 |
Craft Resource Modifier | 1 |
Craft Time Multiplier | 1 |
Player Experience Per Specialty | 0 |
End Game Craft Cost | Normal |
High Collaboration (30+ players) | |
---|---|
Specialty Cost Multiplier | 2 |
Skill Gain Multiplier | 1 |
Specialty Experience Divisor | 20 |
Specialty Experience Per Level | 25 |
Unlearn Refund Rate | 0.5 |
Craft Resource Modifier | 1 |
Craft Time Multiplier | 1 |
Player Experience Per Specialty | 0 |
End Game Craft Cost | Expensive |
Disasters.eco
File use to configure the meteor.
Setting | Default | Options | Description |
---|---|---|---|
CreateMeteor
|
true
|
|
Defines if there is a meteor or not. |
MeteorImpactDays
|
30.0
|
Number of days before meteor. Real time defined. |
EcoSim.eco
Contains settings for atmosphere, pollution rates (e.g. from tailings) and sea level rise, as well as biome definitions and simulation interactions like rainfall.
Also sets configurations for the time multiplier, day & night length and the base skill gain rate.
TimeMult
An optional multiplier to make game time (including crafting, simulations, etc.) run faster or slower.TimeOfDayScale
Adjusts the speed at which the day/night cycle runs, as a value of X seconds per real-world second. Does not affect simulation speed.BaseSkillGainRate
The default experience gain for all players, regardless of their other sources of experience points and difficulty settings.
Localization.eco
File use to configure language.
Language
(default : "English") Defines the language.English
EnglishFrench
Français
ModKit.eco
Controls mod loading.
WhitelistEnabled
Whether to use a whitelist to select mods to load. If disabled, all listed mods will be loaded.Whitelist
Which mods to load when whitelist is enabled.LiveUpdateUnityFiles
Whether to check for unity file updates continuously, e.g. when switching mods around for testing.PreserveGeneratedModsAssembly
Controls if the Eco.Mods.dll assembly is saved on server start.
Network.eco
File use to configure networking.
PublicServer
(default : false) Defines if other players can see server.Playtime
See #Set_playtime_table.DiscordAddress
Invite link ID for a Discord server (the ID after the “discord.gg/”).Password
Defines if a server's password.Description
Defines the name of the server.DetailedDescription
Defines the server's description.ServerCategory
See #Set_server_category.IPAddress
(default : Any) Internal server IP-address the server should bind to.RemoteAddress
(default : ) Public/external IP-address and port number needed to reach the server. Can be a domain name, but still has to have the external game server port. Examples"10.1.1.1:3000/"
,"gs2.play.eco:3000/"
.GameServerPort
(default : 3000) Port to join server.WebServerPort
(default : 3001) Web application port.WebServerUrl
(default : ) Public/external web sever URL. Examples"http://10.1.1.1:3001"
,"http://gs2.play.eco:3001"
Rate
The network rate used to communicate between server and client.- A low rate will cause slow updates in the world.
- A high rate will risk lost packets and thus desync, as the network protocol uses UDP connections which does not retransmit lost packets.
- Actual meaning of this value is unknown.
MaxConnections
(default : -1) Maximum number of concurrent players (-1 no limits).UPnPEnabled
(default : true)
Pause.eco
Paused
Pauses the game world when true.UnpauseAtFirstLogin
Allows newly created worlds to be paused until someone joins them for the first time.
Profanity.eco
Contains a list of offensive words (including such offenders as 'commie' and 'shinola'), presumably for chat protection.
Rooms.eco
EmptyBlocksCountAsWindows
Disable to require window blocks for windows.WallBlocksPerWindow
Defines how many wall blocks are needed for each empty window or door block.
Sleep.eco
This file is used to configure the Sleep feature. It is default disabled for dedicated servers, and enabled for local servers.
AllowFastForward
(default depends on server type) will allow players to use beds to fast-forward time.SleepTimePassMultiplier
(defaulted to "500") defines the maximum fast-forward speed.TimeToReachMaximumTimeRate
(defaulted "10") defines how long the windup time is to reach that maximum fast-forward speed.
Stats.eco
Controls reading and writing statistics information to the stats database. Disabling these will cause issues with the web interface.
Storage.eco
File use to configure world's saves.
SaveName
The name of the worldSaveFrequency
(default : "60") Time between saves.CleanupFilesOnExceptions
(default : false) Defines if we clean files when exceptions occured.StorageDirectory
(default : "Storage") Defines the name of the directory where saves files is stored.
Users.eco
Contains user controls like whitelisted and blacklisted players, who has admin privileges and the various titles players get through reputation. Also contains settings for how food plants are spawned around new players when they first join.
MaxRepFromOnePerson
The most positive reputation a player can receive from one other player.MinRepFromOnePerson
The most negative reputation a player can receive from one other player.WhiteList
Users who can enter the server without inputting a password.BlackList
Users who are denied entry to the server.Admins
Users with admin privileges, able to use admin commands.Reputations
A list of titles given to users with corresponding reputation levels, and the color of those titles in hexcode.UnStuckDisableTime
A cooldown for using the unstuck command, to prevent abuse.AdminCommandsLoggingLevel
— Sets the level of logging that happens when an admin invokes admin commands. There are four different levels:None
— No logging and no notification is given.LogFile
— Log to file.LogFileAndNotifyAdmins
— Log to file and notifies the all admins connected to the server.LogFileAndNotifyEveryone
— Log to file and notifies the all users connected to the server.
UseExactSpawnLocation
See User Settings.SpawnLocation
Where new players will be placed in the world. Written in X, Y and Z coordinates.
IgnoreVersionMismatch
Controls if clients with a different version to the server should be allowed to connect. Defaults to false, and is used for Debug purposes only as it will likely result in strange behaviour if changed.
World.eco
WorldTickCPUMax
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%.
WorldGenerator.eco
File use to configure world's generator. Settings here will only take effect when generating a new world.
Seed
Determines the randomizer seed used for world generation. Two identical config files with the same seed will generate identical worlds. Identical config files with different seeds will generate similar (i.e. based on the same parameters) but different worlds.Dimensions
Both values must be equal, and must be multiples of 4 (or the server won't launch). Larger world will be more resistant to pollution and have more natural resources. These values correspond to tens of meters (not blocks), so the default 72x72 world is 720 meters in each direction, or Template:Unit. See also Server Configuration#Change World Size.WaterLevel
At which height level the water's surface is. Defaults to a multiple of 4. Other values (e.g. 62 instead of the default 60) will cause water to reach only partially up the side of blocks. If that is a problem is unknown.Height
The maximum world terrain elevation, probably.
LandPercentageRange
an upper and lower bound for how much of the world can be made into landmass during world generation. Anything that isn't land will be made into ocean. Keep in mind that more land will mean more vegetation and animals, which may shift the difficulty of the game as these affect pollution outcomes and available resources.CoastlineSize
Size of land coast (beach)ShallowOceanSize
Unknown, may be related to how much shallow water surrounds landmasses.BiomePercent
How much of the landmass will be of a certain biome type, adjustable for each kind of biome (e.g. WarmForestPercent). Uses a decimal value rather than percentages in the config file. The sum of these values must add up to less than a hundred percent so that the remainder can be made into grasslands.NumContinentsRange
Determines how many continents may be created. Set max and min values to the same (e.g. 2) to ensure exactly that many continents are generated.ContinentAvoidRange
How far apart continents will be. Unknown what the values actually mean.IslandPercent
How much of the world (or remaining ocean, maybe) will be dotted with islands.NumSmallIslandsRange
Determines the number of islands. Combined with IslandPercent, determines the size and number of islands present.IslandAvoidRange
Determines how far from other landmasses islands will be generated. Unknown what the values actually mean.NumBiome
One setting for each type (e.g. NumRainforests, etc.), determining how many will be generated. Combine with BiomePercent to make, for example, many small or fewer large such biomes.LakeSizeRange
Range of how many blocks the lakes will take up.NumLakesRange
Range of how many lakes canspawn.NumRiversRange
Range of how many rivers can spawn.RiverAvoidance
Distance between the spawned rivers.RiverWidth
Width of the River in blocks.MaxElevationOceanDistance
Unknown.ElevationPower
Unknown.AutoScale
Unknown.AutoScaleExponent
Unknown.SaveTerrainImage
Creates a biomes.png image in the server folder after worldgen if set to true.
WorldObjects.eco
Controls world object tick (update) behavior. This may be connected to when world object check to see if their stats have changed, and thus update their appearance.
For example, as of 0.8, fertilizing crops requires waiting for (or forcing) a tick update for the new soil statistics to show up when using a soil sampler.
TargetTickDeltaTimeMS
Time between world object ticks, in milliseconds. Defaults to 0, which makes it variable. Appears to target a 10 minute interval when variable.ParallelWorldObjectTicks
An experimental feature that allows parallel (as opposed to sequential) world object ticks. May increase performance at the cost of stability.