Server Configuration: Difference between revisions

From Eco - English Wiki
[checked revision][checked revision]
→‎Network.eco: Added missing options.
Tag: 2017 source edit
→‎Network.eco: Local and Internal confusion. What is this anyway?
Tag: 2017 source edit
Line 314: Line 314:
*<code>Description</code> Defines the name of the server.
*<code>Description</code> Defines the name of the server.
*<code>ServerCategory</code> See [[#Set_server_category]].
*<code>ServerCategory</code> See [[#Set_server_category]].
*<code>IPAddress</code> (default : Any) Local server IP-address the server should bind to.
*<code>IPAddress</code> (default : Any) Internal server IP-address the server should bind to.
*<code>RemoteAddress</code> (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 <code>"10.1.1.1:3000/"</code>, <code>"gs2.play.eco:3000/"</code>.
*<code>RemoteAddress</code> (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 <code>"10.1.1.1:3000/"</code>, <code>"gs2.play.eco:3000/"</code>.
*<code>GameServerPort</code> (default : 3000) Port to join server.
*<code>GameServerPort</code> (default : 3000) Port to join server.

Revision as of 22:51, 20 November 2020

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

Setting a server's public status to "True" and adding a server description, both done in the Config tab of the Network plugin.

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 crash the server on startup.
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

  • CollaborationPreset — Change collaboration settings to adjust how quickly players gain skill points. Sticking with the collaboration presets is recommended.
  • Unlearn Refund Rate — Obsolete as of Beta 8.0. Has no effect.
  • Specialty Cost Multiplier — Obsolete as of Beta 8.0. Has no effect.
  • SpecialtyExperienceDivisor — Reduces experience rate based on number of specialties learned. Effect of this is unclear. May have no effect as of Beta 8.0.1.
  • SpecialtyExperiencePerLevel — Experience required to level up each specialty tier.
  • ExperiencePerAction — Grants player XP based on any player action. Experimental and not recommended for public servers. Modify this setting at your own risk.

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/Return between each ID.
  • Black List — Blacklist selected players. Enter each individual player ID. Press Enter/Return between each ID.
  • Admins — Give selected players full admin rights. Enter each individual player ID. Press Enter/Return 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) — 0.52km2 — This is the default size for when first launching the Eco server.
  • (100,100) — 1km2 — Maximum size for EcoServer32.exe
  • (140,140) — 1.96km2
  • (172,172) — 2.96km2
  • (200,200) — 4km2

The following worlds have been tested for 50 hours and are likely to be stable. They are, however, only suitable for powerful servers.

  • (224,224) — 5.02km2
  • (240,240) — 5.76km2
  • (248,248) — 6.15km2
  • (272,272) — 7.4km2
  • (296,296) — 8.76km2
  • (300,300) — 9km2
  • (360,360) — 12.6km2
  • (400,400) — 16km2

Worlds over 400x400 may be possible to generate, but are very likely to be unstable.

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 not 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, but remain in the config files. See also Server Configuration#EcoSim.eco for the base skill gain rate.

  • Player Experience Per Specialty Experience Sets how many character experience points are also gained whenever specialty experience is gained.
  • Skill Gain Multiplier A multiplier to the rate of skillpoints gained over time.
  • Specialty Cost Multiplier No longer in use.
  • Specialty Experience Divisor No longer in use.
  • Specialty Experience Per Level Factors into experience per level for specialties.
  • Unlearn Refund Rate No longer in use.


The following presets are available by default:

No Collaboration (0-3 players)
Player Experience Per Specialty Experience 0
Skill Gain Multiplier 5
Specialty Cost Multiplier 0.1
Specialty Experience Divisor 20
Specialty Experience Per Level 25
Unlearn Refund Rate 0.5
Low Collaboration (3-10 players)
Player Experience Per Specialty Experience 0
Skill Gain Multiplier 2
Specialty Cost Multiplier 0.5
Specialty Experience Divisor 20
Specialty Experience Per Level 25
Unlearn Refund Rate 0.5
Medium Collaboration (10-30 players)
Player Experience Per Specialty Experience 0
Skill Gain Multiplier 1
Specialty Cost Multiplier 1
Specialty Experience Divisor 20
Specialty Experience Per Level 25
Unlearn Refund Rate 0.5
High Collaboration (30+ players)
Player Experience Per Specialty Experience 0
Skill Gain Multiplier 1
Specialty Cost Multiplier 2
Specialty Experience Divisor 20
Specialty Experience Per Level 25
Unlearn Refund Rate 0.5

Disasters.eco

File use to configure the meteor.

  • CreateMeteor (default : true) Defines if there is a meteore or not.
  • MeteorImpactDays (default : 30.0) Number of days before meteore. 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 English
    • French 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.
  • Description Defines the name of the server.
  • 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.
  • 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 world
  • SaveFrequency (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.

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 0.52 km2. 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.
  • SpawnLocation Where new players will be placed in the world.
  • 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.

WorldGenerator.eco