1. Eco
  2. News

Eco News

Update 9.7 released! Performance Improvements and Housing Upgrade

Hey Citizens,
we're releasing our first of at least two main releases for our 9.7.x Performance Update series. Please note that this update is only the start, laying groundwork for future updates that will contain a lot more optimization than this one. Next to a bunch of optimizations for both client and server we also have a bunch of gameplay changes and bug fixes. Let's jump right into it:

[h2]Client Performance[/h2]


To improve client performance we made several different optimizations:

  • We optimized the recycling of unused views. Views are used for data synchronization between client and server, but when specific data is no longer needed on the client these views should be recycled to save memory and avoid useless synchronization. Until now it was possible to have lag spikes during that recycling process, which have now been removed with an improved algorithm.
  • We fixed a world object views leak. Views for world objects (like work tables and stockpiles) weren't recycled on the client and kept in memory forever, receiving updates even when out of range or destroyed.
  • We simplified tree objects to remove unnecessary elements. When loading chunks, trees contribute significantly to the time it takes to spawn in objects. This change improves the time needed for spawning in trees. This is still work in progress and further optimization on it will follow in the next updates.
  • We removed Global Illumination. Global Illumination, which was on by default, led to a very significiant performance decrease due to the implementation used being outdated and by now unmaintained. We can now focus on purely improving our default settings without the impact Global Illumination had while investigating how we can bring back the feature better later on.

Please note that there are many other optimizations currently being worked on and being released later.

[h2]Updated Housing System[/h2]



In preparation to another new system in Eco we are currently working on - Culture - we have reworked the way our housing system works. We'll reveal more about the culture feature once it's time for that, so here we'll only talk about the changes to housing.

The calculation of housing points now got a bit more complex: As before, you still have the diminishing returns feature when stuffing too many of the same objects into a room, but now we have additionally sorted furniture into further categories:

- Primary Furniture, that is bound to a specific room type and designates the room type.
- Support Furniture, split into the categories "Seating", "Decoration" and "Lighting" that can be used in any room.

The amount of housing points Support Furniture can provide is now capped to a specific percentage of the effective amount of housing points you currently get in that room from the primary furniture you placed into it after diminishing returns were taken into account. For Seating and Decoration that is 50% of that value, for Lighting it's 30%.

The idea behind this is to allow players to be more creative without taking a hit on their housing points if they don't cram everything we have into rooms, forfeiting the decorative aspect of decoration. It also allows us to balance the maximum amount of housing points that are achievable much easier, as we only need to focus on the Primary Furniture for that in the future.

[h2]Server Performance[/h2]


For improving server performance we made several improvements for memory allocations which leads to a decrease in lag spikes that could happen at garbage collection:

  • Animal Pathfinding was optimized by avoiding repeated calculations, resulting in a 50% decrease of CPU time spent on animals and less memory allocations.
  • World Layers were optimized by implementation of a cache for plants based on cells, resulting in a 70% decrease of CPU time spent on world layer calculations and avoidance of memory allocations.
  • Localization was optimized by removing the lock that prevented reading localization strings from two different threads, resulting in faster sent client updates.
  • Storage (as in Game Saving) was optimized by avoiding the generation of a lot of garbage during the zipping process for the savefile by forking the library we use to do that and making it use ArrayPools, resulting in 50% less garbage created by the process.
  • Startup was optimized by improving support of multithreading, resulting in 50% less time needed to start the server for small servers.

Additionally we fixed a commonly observed issue that led to a lag spike whenever a player joined a server, with interactions on the server halted for up to several seconds that was caused by network communication being blocked until the joining player received all initital data.

[h2]Minor Features[/h2]
[h3]Bounding Boxes[/h3]


[h3]Glassworks Table[/h3]


[h3]Vases[/h3]


[h2]Icons[/h2]



We know that many of you like to use icons to decorate and totally love seeing that - from cool shop offering signs to such mimicking paintings! In this update we made some changes to how that works. To display an icon on a sign or elsewhere you need to use the tag. There are two options you can use that we'll explain with an example:

  1. To show an icon with the gradient background (if it has one), you need to specifiy the item ID with the correct capitalization: will hence create an icon of an iron plate with its background.
  2. To show an icon without the background you need to specifiy the item ID in all lowercase: will hence create a icon of an iron plate without its background.

The important thing to note is that you can no longer omit the "Item" part - just using IronPlate will not work anymore.

[h2]Balance Changes[/h2]

[h3]New Items[/h3]
  • Added: Glassworks table, created by a potter in the kiln for use by Glassworking.
  • Added: Vases with a housing point value of 1.
  • Added: Cotton Lint, a new item added into the production chain of cotton thread.
  • Added: Copper Plates, made by Mechanics using the Screw Press, similar to Iron Plates.


[h3]Housing Objects[/h3]
  • Changed: Wooden Fabric Bed housing points increased from 3 to 4.
  • Changed: Hewn Nightstand housing points increased from 1,5 to 2,5.
  • Changed: Hewn Dresser housing points increased from 0,5 to 1.
  • Changed: Lumber Dressers housing points increased from 1,5 to 3.
  • Changed: Diminishing return of all dressers decreased from 0,6 to 0,5. (The value of the diminishing return decreasing means the diminishing returns are effectively higher)
  • Changed: Cast Iron Bed housing points increased from 3 to 4.
  • Changed: Cast Iron Royal Bed housing points increased from 3,5 to 4,5.
  • Changed: Nylon Futon Bed housing points increased from 4 to 5.
  • Changed: Bookshelves are now considered an object for the living room.


[h3]Ingredient Changes[/h3]
  • Changed: Animal Mounts now use Hewn Logs instead of Lumber to craft.
  • Changed: Boilers now require additional copper plates to craft.
  • Changed: Heat Sinks now use copper plates instead of copper bars.
  • Changed: Heat Sinks now require more copper wiring to craft.
  • Changed: Portable Steam Engines now require additional copper pipes to craft.
  • Changed: Excavators, Skid Steers, Steam Tractors, Steam Trucks and Trucks now require additional Light Bulbs as a static ingredient to craft.


[h3]Vehicle Changes[/h3]
  • Changed: Vehicle modules now have durability that is used on tile interactions. The durability for them is 2.500 and they are repaired by using iron. Currently affected modules are: Steam Tractor Sower, Steam Tractor Harvester, Steam Tractor Plow.


[h3]Miscellaneous[/h3]
  • Changed: All items in Glassworking with the exception of Fiber Glass are now crafted at the Glassworks table.
  • Changed: The calorie reduction per level in the specialty was changed as follows:
    • Level 1: Decreased from 20% to 5%.
    • Level 2: Decreased from 25% to 7%.
    • Level 3: Decreased from 30% to 10%.
    • Level 4: Decreased from 35% to 12%.
    • Level 5: Decreased from 40% to 15%.
    • Level 6: Decreased from 45% to 17%.
    • Level 7: Decreased from 50% to 20%.
  • Changed: The maximum yield of rice was decreased by 1.
  • Changed: Rice now requires a sickle or scythe to harvest.
  • Changed: All tools except Hammer, Machete, Drill and Road Tool now use a flat 20 calorie cost per use.


[h2]Bug Fixes & Improvements[/h2]
[h3]Audio[/h3]
  • Fixed: When switching from a fishing pole in your hotbar to a chainsaw in your hotbar the chainsaw would play the fishing sound effect instead of the one for chainsaws.
  • Fixed: Fishing pole sounds were playing for all players regardless of distance to the audio source.
  • Fixed: Players couldn't hear the sound of vehicles of other players until they started to move.
  • Fixed: Player could still hear the sound of vehicles of other players even though the vehicle had no more fuel and was hence not running.
  • Fixed: Logging out underwater and then logging into another world caused ambiance sound effects to no longer function.
  • Fixed: The harvesting sound stopped playing after many chunks were loaded and unloaded.


[h3]Avatar[/h3]
  • Improved: The running animation for avatars that do not hold a tool has been removed due to reports of causing motion sickness.
  • Improved: Avatar animations in third person view now match the movement direction instead of sliding when moving diagonally.


[h3]Civics[/h3]
  • Fixed: When trying to tax a player a negative value through the treasury the UI simply closed without any action taken instead of displaying an error.
  • Fixed: Civic article names do no longer get truncated when they're within the character limit.
  • Fixed: When taking a harvest contract and harvesting a shovelable plant for the contract a crash occured.


[h3]Modkit[/h3]
  • Changed: Vehicle scripts have been moved, which results in any modifications or overrides to them requiring an update.
  • Changed: Due to changing the tooltip system used for Ecopedia all item and object overrides will need to be adjusted, specifically the attribute "display: InPageTooltip.DynamicTooltip" for Ecopedia needs to be removed.


[h3]Tools[/h3]
  • Improved: Claiming with the claim stake does no longer play an animation.
  • Fixed: The fishing pole shadow wasn't attached to the avatar.
  • Fixed: Fishing line and lure were not syncing properly for other players.
  • Fixed: Bows and arrows were not syncing properly for other players.
  • Fixed: When you leave a cart after you entered it with a tool animation playing the tool animation will no longer continue.


[h3]Vehicles[/h3]
  • Added: The steam tractor now has working lights.
  • Fixed: In default controls mode, when pushing a cart instead of pulling it the controls got erroneously inverted.


[h3]UI[/h3]
  • Added: The "Authorized Consumers" text in world objects now has a explanatory tooltip.
  • Improved: The creation of generic work orders does no longer create a map marker.
  • Fixed: Some minor issues in the display of title tooltips.
  • Fixed: UI elements that faded in didn't display correctly.


[h3]World Objects[/h3]
  • Fixed: Several causes that could lead to world objects becoming uninteractable. We might not have caught all of them, so please keep reports and logs coming if you still experience this issue.
  • Fixed: World Objects that required solid ground wouldn't stop working immediately after the requirement was no longer fulfilled.


[h3]Miscellaneous[/h3]
  • Added: A new ecopedia page listing all living room furniture was added for easier navigation.
  • Changed: Rice is no longer required to be collected to finish the tutorial task "Find Food" due to it now requiring a sickle to be harvested.
  • Fixed: Players were unable to take fuel out of vehicles when they were authorized but didn't own the vehicle.
  • Fixed: Lumber Stockpiles could cause error spam in the player.log, leading to diminished performance.
  • Fixed: Using the /unstuck command while driving a vehicle caused the player to no longer be able to interact with the vehicle.
  • Fixed: Wolf Whisperer rewards were not available in void storage for eligible players and Alpha rewards had the wrong display icon.


[h2]Server Configs[/h2]
[h3]Users.eco.template[/h3]
  • Added: "SLGAccountName" config variable, used only for QA mode purposes.
  • Added: "SLGAccountPassword" config variable, used only for QA mode purposes.
  • Added: "SpawnSearchRange" config variable, determining the range around a potential player spawn point in which all requirements to finish the tutorial must be available when not using a fixed spawn point - defaulting to 600.


[h3]Storage.eco.template[/h3]
  • Added: "NewGameTemplate" config variable, specifiying a prepared savegame that is to be loaded whenever a new world is generated instead of regular world generation.
  • Removed: "UseCacheForDBQueries" config variable, it is now obsolete due to being enforced at all times.


[h3]Maintenance.eco.template[/h3]
  • Added: "ReasonForAutoShutdown" config variable, acceptable contents are "Restart", "Shutdown" and "Update", determining exit code for the automatic shutdown / reboot feature.


[h3]Network.eco.template[/h3]
  • Added: "ReservedSlots" config variable, determining the amount of slots available to players assigned queue priority permissions beyond what "DefaultSlots" would allow - defaulting to 5.
  • Changed: "MaxConnections" config variable was renamed to "DefaultSlots".


[h3]Voice.eco.template[/h3]
  • Added: "ServerVoiceIdentifier" config variable, for containing an ID for the Vivox voice chat implementation - this is auto generated, should never be changed and never be copied to other servers as otherwise you will hear the same voices on all servers with the same ID.

Update 9.7 - Focus on Performance

Hello Eco Citizens,
today we'd like to give you an update on where we’re taking Eco after our 9.6 release. As an Early Access title, we’re always looking to balance adding features with polishing existing ones, and we’ve decided to have a final Eco 9 update that is focused solely on performance - Update 9.7.

A major part of our team will be focused on both client and server performance, fixing some long standing issues that should make the game a much smoother experience, especially on lower end machines. Our CTO Alex will tell you a bit of the details on how we plan to make it work:



Our strategy is to compare profiling snapshots we collect from QA and players on public test servers after hours of gaming. There are no obvious reasons we can easily fix, but one thing we noticed is greatly increased transform update time (every game object in game has a Transform with its position, rotation and scale) while the amount of game objects is not so different. These updates happen inside of the Unity Engine and we don’t have direct control over it, but fortunately we found a way how we can inject a tracking for all transform changes and identify places which cause most of the updates and potentially fix them.

And you can help us with that by playing on our public playtest server for the first part of Update 9.7 that will start tomorrow at 18:00 CET / 9am PT on our official server Giant Panda - all details and how it works will be published on our discord: https://discord.gg/eco



In an average Eco world you have a lot of trees especially with user tree farms. FPS may drop significantly in such areas. There is also time and resources which need to be spent to create a new tree and destroy a tree which impacts the speed of loading objects received from the server.

We are working in two main directions:
  • Simplifying tree models to improve instantiation time, saving memory resources and cost of component updates.
  • Optimize rendering, especially at a distance. Right now a tree is a set of trunk and branches, but on a far distance (LOD1, LOD2) it may be replaced with a single mesh which might be a bit different, but still pretty recognizable and saves a lot of GPU resources - see the video below.

[previewyoutube][/previewyoutube]



There are tons of plants and every plant now has a game object with a few components (including a transform). In previous patches we optimized rendering to be less expensive and now we are ready to make the next step - fully replace these game objects with Unity DOTS lightweight entities. It benefits us in all aspects: memory, maintenance cost, instantiation and destruction speed. Also it lets us use job threads (multi-threading) for plant related updates such as move through detection.



With the power of DOTS (Unity Data Oriented Technology Stack focused on performance and multi-core utilization) we are able to heavily parallelize chunk builds and updates. A chunk is a minimal unit of terrain to be processed by a terrain rendering system and basically is 10x10x10 blocks in Eco. Effectively it reduces the time between chunk data being received from the server and then rendered in the game.

And that's it from Alex. Update 9.7 will be shipped through several 9.7.x updates - we're aiming for at least two, one in mid-late November and one in mid-late December. After that, the next shipment will be Eco 10, which will have two giant additions you've been waiting for: boats and settlements.

We’ll have more updates on this and our long-term plans for Eco soon, so stay tuned. Spoiler alert, they’re big - and some are fluffy.

Version 9.6.6 released!

Hey Eco Citizens,
today we release Update 9.6.6 to fix a major issue with civics. We expect this to be the last update before 9.7.

  • Fixed: Certain conditions in civics were ignored, leading to all types of civics to not work properly in specific circumstances.
  • Improved: Adjusted glass to have a bit more opacity, based on your feedback.

Version 9.6.5 released!

Hey Eco Citizens,
we're releasing 9.6.5 to address the issue with holding the interaction key to pick up materials, thanks for reporting!

  • Fixed: Holding down the interaction key to continue picking up materials until the key is released didn't work.

Version 9.6.4 released!

Hey Citizens,
we have just released Update 9.6.4 with a collection of fixes for issues you've been reporting. At the same time we're working on Update 9.7, for which we'll have news soon as well. Enjoy:

[h3]Audio[/h3]
  • Fixed: Tools could stop creating sounds after using them for a long time.
  • Fixed: Tools could stop creating sounds after eating food.
  • Fixed: Tools could stop creating sounds when switching to it from a torch.


[h3]Avatar[/h3]
  • Fixed: The avatar of the player could duplicate and exist twice.
  • Fixed: When scrolling through empty hotbar slots the avatar animations would reload.
  • Fixed: The held tool would not display on the avatar after login if another tool of the same type is in the hotbar.
  • Fixed: The camera would rotate around the global z axis in third person view.
  • Fixed: When using higher FoV players could not look directly below them.
  • Fixed: When in a tilted vehicle the camera would feel inverted.


[h3]Balance[/h3]
  • Changed: Hoes, Scythes and Sickles now use a flat 20 calorie cost per use.
  • Changed: The experience gain from crafting quicklime was reduced from 1.0 to 0.1.
  • Changed: The icebox now requires only Carpentry level 1 instead of 5 to craft.
  • Fixed: Cotton seeds would degrade into garbage instead of compost.
  • Fixed: Spoiled food would degrade into garbage instead of compost.


[h3]Civics[/h3]
  • Fixed: Elections could sometimes not be started due to the confirmation window not popping up.
  • Fixed: A "Change Settlement Name" civic action without icon was shown in the multi-selector for civic actions.
  • Fixed: Removing oneself as manager from bank accounts and appointed titles without selecting another player to remove first was not possible.
  • Fixed: A player would be assigned a fictious place of residency despite not having taken residence anywhere, yielding wrong results for laws working based on residency.
  • Fixed: Sometimes your vote could count twice in an election.
  • Fixed: Work parties could lead to a server crash when attempting to pay a contributor that has left the work party before payment.
  • Fixed: Choosing an executive action in constitutional articles did not work correctly.
  • Fixed: A client crash would occur when trying to seize a bank account that has no owner via law, if done via executive action instead a server crash would be caused.
  • Fixed: Overriding authentication via law to allow property transfer by players that do not own a property did not work.
  • Fixed: In a law where species were selected, the selected species didn't show in the law editor.
  • Fixed: The search for law triggers did not yield all the results that were expected to be shown.
  • Fixed: The mount action law trigger had no icon.


[h3]Graphics[/h3]
  • Improved: Reduced fog in the distance.
  • Fixed: When looking through plants the lighting could sometimes be distorted.
  • Fixed: Several graphical issues in the main menu were fixed.
  • Fixed: Disconnecting from a server while being underwater would lead to the main menu being tinted in a blue tone.
  • Fixed: Sunbeams on clouds did not originate from the sun.
  • Fixed: Harvesting rice did not show the harvest effect.
  • Fixed: Light around objects and trees could flicker when it is raining.
  • Fixed: Harvest effects would stop triggering after loading and unloading many chunks.
  • Fixed: Glass blocks had unnatural tinting depending on the light conditions.


[h3]Stores[/h3]
  • Fixed: Shop carts would use the bank account of the owner of the property it stands on when setting it up.
  • Fixed: Stores that were not placed by the owner of the land it was placed on would revert their bank account to the land owners bank account on server restarts.


[h3]Tooltips[/h3]
  • Fixed: Crafting orders could sometimes show up as complete despite they were not.
  • Fixed: Tooltips in crafting tables would not highlight resources to open their tooltips.
  • Fixed: Prior offers of a store that was removed would still be displayed in the item tooltip for "Sell it at".
  • Fixed: Several minor issues with title tooltips.


[h3]UI[/h3]
  • Fixed: The newsfeed would display too many notification types, leading to it spamming players.
  • Fixed: Unauthorized players can no longer try to edit the text on a shopcart just to notice that they cannot save it.
  • Fixed: When connecting to a hosted server, then cancelling and trying to load a local save the connection info would display that you are trying to connect to the hosted server.
  • Fixed: Trees would be displayed darker than intended in specific zoom levels on the map.
  • Fixed: When chatting while the store UI is opened keys pressed would trigger shortcut actions.
  • Fixed: The interaction area to move the chat was too small.
  • Fixed: Clicking save on the edit tab of a sign placed on your property would pop up a unnecessary message.
  • Fixed: Text padding on reference descriptions in Ecopedia was missing.
  • Fixed: The pie chart for elections on Web UI would display yes votes as no votes and vice versa.
  • Fixed: Vote buttons would be shown on the Web UI even when not logged in.


[h3]World Objects[/h3]
  • Fixed: Picking up a log that lies in the zone of a storage would open the storage.
  • Fixed: When trying to interact with some world objects two times in a row the second time could require the user to click the interaction button two times to function.
  • Fixed: Closing an UI with left mouse button while holding an item that has a left-click interaction could cause that interaction to fire.
  • Fixed: Left and right click interactions for world objects like turning on / off or placing something inside didn't work reliably.
  • Fixed: The highlight for tiny, lumber and large lumber stockpiles was offset to its actual position.
  • Fixed: Players could be disconnected from the game when placing a government object in the world.
  • Fixed: A duplication bug involving removing stockpiles and picking up items from the ground.
  • Fixed: Starter camps could be placed into the boundaries of other starter camps, making them overlap.
  • Fixed: The highlight for buttons inside an elevator didn't work properly.
  • Fixed: Clicking on the buttons inside an elevator could open the authorization menu additionally to the expected result.
  • Fixed: Placing a door was not possible when there is no solid block on ground height in front of it.


[h3]Miscellaneous[/h3]
  • Fixed: When using a hammer to place blocks towards a highlighted block on a property you have no access to or when placing blocks on a property you are only authorized on through a law that ignored authentication the block would be placed as item and not as block.
  • Fixed: Worlds would not render correctly on Linux builds and only display a pink screen.
  • Fixed: When migrating from 0.9.5.4 districts would loose all their contents.
  • Fixed: Migrating worlds directly from 9.4.6 to 9.6.x would lead to a server crash.


[h3]Server Configs[/h3]
  • Added: "PercentOfDaysToBeActiveForLongTermDemographic" to Civics.eco to control the percentage of days that a player needs to be active to be part of the demographic "Long Term".
  • Fixed: The server configuration setting "AllowOverthrow" in Civics.eco did not prevent players from creating laws that prevent placing a capitol.