Stationeers - Not Simon
Storm System Changes
For a few years storms have been an important part of Stationeers, creating challenges for players to plan and build around. In this update we’ve overhauled their visuals and resolved a number of long-standing issues. A lot of the aspects of Stationeer's storms were hardcoded to be a certain way, and we needed to do some refactoring work to increase their performance, and create a system we could start using for multiple storms. This is only the start of storm related content we can now do, so in the future expect to see more storms roll in.



New Storm Visualizations



The old storm effects relied on thousands of particles, which was expensive, visually inconsistent, and often leaked through walls. We’ve replaced this with a new volumetric system that’s cheaper to render and produces a better result. Storms now integrate more naturally with the terrain, and we’ve fixed problems where storm effects would incorrectly appear in areas like the interior of your base. Overall, storms are now more consistent, better looking, and less costly to simulate.



Solar Storm
We’ve added a new type of weather event to the Moon: the Solar Storm. During a solar storm, the sun becomes significantly brighter and the world heats up rapidly. Solar heating inside bases and EVA suits increases substantially, and Stationeers outside will burn through oxygen faster as their suit’s emergency cooling system works overtime.



Hiding in shadow or wearing the new HARM suit are your best options if you need to leave the base during a solar storm. Plants and solar panels benefit from the increased solar output, but keep an eye out for blown cables.



HARM Suit
The HARM suit is a heavy, water-cooled protective suit designed for harsh environments. Normal movement speed is reduced to 60%, but while wearing it you’ll experience no movement penalties during storms. It’s also tougher than other suits, taking less damage from impacts and significantly less damage from lava.



The HARM suit introduces new suit mechanics: it uses water cooling for superior thermal performance and provides strong protection during both storms and solar storms. However, it comes with trade-offs. You can’t wear a jetpack, and the reduced movement speed makes it restrictive. Even so, the protection it provides makes it a valuable option in challenging conditions.



Solar Panel Re-balance
Solar panel outputs are now uncapped. Panels will over-produce on worlds with higher solar irradiance. This provides a small power increase on the Moon and a much larger one on Venus. Vulcan’s highly elliptical orbit means solar panels will now generate significantly more power as the planet approaches its orbital perigee.





Suit Storage
We’ve added two new suit storage options. They’re functionally identical to the existing storage but provide more visual variety for your bases and airlocks. A great way to store and organize your new HARM suit.





Portuguese Localization
A massive thanks to Marcelo for submitting updated Brazilian Portuguese localization files!




Recent Community Standouts
We wanted to highlight some of the excellent videos being created for Stationeers. Internally we’ve been enjoying a lot of it, and here are a couple of creators we regularly follow:

https://www.youtube.com/watch?v=qa8mdiuOsqg
https://www.youtube.com/watch?v=GvS-QGaFd0Q

Go check them out and support your favourite Stationeers content creators. Thanks to everyone who streams and makes videos about the game.



Update Wallpaper




Your support makes these updates possible
https://store.steampowered.com/bundle/2624/Stationeers_Complete_the_Set/



Change Log 0.2.5954.26176
  • Fixed Error spam from Solar Storm due to weather fade in effect not accounting for solar storm data.
  • Fixed Solar Storm visual effect not always being applied correctly.
  • Updated Portuguese Brazilian localization (Thank you Marcelo!)
  • Added Localised Font components to DeepMiner and GPS Cartridge text fields.
  • Fixed Storm effect fadeIn/fadeout throws errors on Clients
  • Fixed Interior storm sound not playing.
  • Fixed Solar Storm light was being applied twice.
  • Fixed Storm sounds were playing during Solar Storm.
  • Fixed compile error from reference to removed weather settings method.
  • Updated HARM suit interior mesh and prefab for new visor opening animation.
  • Added two new Suit Storage variants: Suit Storage Frame and Suit Storage Locker
  • Missing meta file change for storm audio.
  • Tweaked mars dust storm colors to be a little lighter.
  • Removed some duplicated lighting code for the storm effect.
  • Made storm effect fade in and out rather than suddenly appearing.
  • Updated Storm sheltered audio clip.
  • Moved shared storm effect material setting code into helper class.
  • Updated Stationpedia page for HarmSuit.
  • Added a number of un-localized GameStrings to english.xml
  • Fixed HARMSuit had worse thermal Radiation performance than HardSuit.
  • Reverted the changes to tooltip opacity as they were causing issues with empty tooltips
  • Fixed storm distance thickening effect not starting from actual start point of the march.
  • Updated storm effect parameters for mars.
  • Updated how storm effects are colored. Added a distance falloff so we can thicken the storm up over distance as desired. Added the ability to use the noise as a mask for a secondary color such as ember particles on vulcan. Moved a lot of common functionality into the helper cginc file. Updated colors for vulcan and europa.
  • Re-enabled storm audio it is now hooked into the new storm rendering system.
  • Added Storm direction can come from any direction and is not limited to cardinal directions.
  • Moved shared marching code into helper for storm shaders. Removed old storm shaders that were using generated noise.
  • Fixed Minable ores were not being generated around aimee. This meant that when the aimee was not able to explore for ores and aimees near un-modified ore viens after loading a save would not see them.
  • Removed unused normal calulation from storm card mesh shader.
  • Fixed. When storm stopped when player was outside the wind audio would continue playing (beta).
  • Removed half res storm rendering on screen space effect as the new approach is performant enough to render at native resolution.
  • Clean-up of storm shader code, which appears to have solved several visual issues.
  • Moved ReconstuctWorldRay function into the storm helper cginc.
  • Fixed default value for storm card normal offset being too high making storm cards clip into the room.
  • Removed some unused code from the old storm effect shader.
  • Fixed outline effects showing up on the storm camera. Added camera check to OnRenderObject to skip if the current camera is the storm card camera.
  • Improved blending between noise sample slices in weather effect shader;
  • Added Higher res noise 3dtexture
  • Moved storm card normal offset into the vert shader so we can have differnt offests for the depth only cards and the actual storm cards shown on the main camera. This removes some gaps around the edges of cards when the storm is being clipped to a room.
  • Added emissive sparks effect to Vulcan Ash storm.
  • Fixed outdoor storms going appearing inside rooms. Added back in the secondary camera for storm cards and are now clipping the storm marching to the back faces of the storm cards.
  • Reauthored Storm effect 3d texture to leave the blue channel free to do a third type of noise.
  • Fixed Storm Effect mesh in incorrect place in render queue (move to transparent-1)
  • Optimised Storm effect. It now uses a 3D noise texture instead of calculating the noise procedurally on the GPU. Different levels are baked into the red green and blue channels, which allows for a single texture lookup to handle several different layers. This reduces the time taken to render the effect from 8ms to 0.5ms.
  • Changed Storm screen-space shader to run at half resolution.
  • Tweaked Mars storm values to look Ok with 12 raymarch steps.
  • Thickened up mars storm effect.
  • Fixed the StructureComputerUpright prefab so that inserted datadisks no longer have the wrong orientation.
  • Fixed a small typo in the ScriptHelpWindow where the word "charactwers" has been changed to "characters".
  • Fixed storm cards not being created for some doors and shutters.
  • Removed item basic suit shoulder pad
  • Fixed Tooltip so that it now respects the Tooltip opacity setting. previously it would only respect it if the setting was changed while the player was hovering over something, then would revert back to an opacity of 1 when the player looked away and then looked back at the object.
  • Slightly reduced the storm card offset distance to minimize gaps as much as possible.
  • Fixed partially built frames showing storms inside them. Now partially built frames will exclude storms.
  • Added Storm lighting now uses 8 closest lights.
  • Added Shader settings for Venus, Mars and Vulcan storms.
  • Reduced Number of sample steps in storm shader to improve performance.
  • Removed All references to old storm effect system and removed StormLocal script from Brain prefab.
  • Added XML data classes for new storm effect.
  • Added New storm effect material settings are now authorable inside weather.xml.
  • Added Switching between screen-space and world space variants of storm effect when inside room and outside room.
  • Fixed Items would sometimes get blown in the wrong direction during a storm.
  • Removed storm audio. It will need to be replaced with a new system.
  • Fixed storm cards showing over windows on outer grids. Pushed the storm cards out slightly. This can leave a small gap on some corners which will be addressed in a future fix.
  • Tweaked spotlight lighting anisotropy on storm effect mesh to match headlamp lighting cone size.
  • Fixed brutal spawn data so that the minimum supplies crate would be closer to the lander and easier to find when you spawn on Mars, Lunar, Europa, MimasHerschel and Venus on Brutal difficulty.
  • Added variant of storm shader to be applied directly to storm card mesh. This removes the need for another camera. Have removed the storm card camera for now but left the screen space shader in incase we want to use it later.
  • Polish Pass on Storm Screen space lighting.
  • Added Support for spotlights in storm shader
  • Fixed nullref when setting material property on storm effect (beta only).
  • Updated indoor storm effect to use a different noise function with significantly less artifacting. Set some default material values for a good staring point for a europa storm.
  • Added Rudimentary lighting effect to screen-space weather shader. The 8 lights closest to the camera are sampled to light the storm effect.
  • Fixed a bug with indoor storm effect where artefacts could appear on nearby geometry. Removed a few unnecessary parameters. Marching radius is smaller now but effect looks much better and thicker.
  • Updated indoor storm effect to take ambient light into consideration. Also allowed for more dense clouds.
  • Fixed a rounding issue that could happen when wearing the HARM suit and standing on a frame. The Harm suit would try to sample the atmosphere below the player causing a divide/0 error in the suit convection code and creating run-away heating.
  • Further balance work on HARM suit atmospheric values for liquid cooling function.
  • Added a few tweaks to the indoor storm effect for better control of light absorbtion.
  • Turned off the indoor storm effect by default.
  • Fixed DevicePipeMounted from having unusual rotations under certain circumstances when mounting on vertical pipes. This was caused by the forward axis vector in the transform being treated differently to the up and right axis vectors, and the resulting rotation being incorrect.
  • Refactored lava damage to move the damage behaviour into virtual functions in individual classes. this allows more more clearly defined edge case behaviour.
  • Changed HARMSuit and helmet to be much more resistant to Lava damage.
  • Fixed when player is in a suit & helmet. Internal items and glasses etc will take no damage from lava until suit is destroyed.
  • Fixed Solar Storm Localisation error in new world screen.
  • Fixed storm card mesh gameobject position was offset incorectly.
  • Added first pass on indoor storm effects. Storm card meshes will be generated around exterior walls/windows from which a screenspace storm effect will start.
  • Updated the cost for the ItemKitVendingMachine: All costs are halved. Large vending machine requires two kits while the small vending machine requires one. Kits now stack to five.
  • Fixed harmSuit helmet not spawnable.
  • Removed duplicate harm-suit helmet prefab
  • Fixed Blocking area of medium radiators. All variants now only occupy the space defined by the object itself. (previously they would occupy all adjacent small grids as well.
  • Removed Hard-Cap on SolarPanel panel output. Solar Panels will now over-produce power on worlds with higher solar irradiance. This change effects the maximum solar output of panels on the following worlds: Moon 750W, Venus 1.15KW, Vulcan 500W-to-1.2KW (Vulcan's highly elliptical orbit means solar irradiance fluctuates greatly throughout the year). Output of solar panels on other worlds are un-changed.
  • Changed Solar Storm now increases output of solar panels by roughly 4x.
  • Added new Stationpedia values for HARMSuit. The harm suit uses a new system for determining heating/cooling. Expressed are the operational range and the safe range. Inside the Operational range of external temperatures the suit is able to hold a steady temperature with minimal cooling. Inside the safe range the suit will be able to maintain temperature via the inbuilt AC. The suit is not guaranteed to operate correctly outside the safe temperature range.
  • Fixed Canisters hidden in slots could still receive heating from the world atmosphere in some cases.
  • Added Solar Heating Factor to Stationpedia (this expresses how quickly the sun will heat up the internal atmosphere of an object.
  • Fixed HARMSuit page not displaying in Stationpedia.
  • Tweaked HARMSuit Thermal balance values.
  • Added HARM Suit. New super heavy suit with a much greater damage resistance and higher thermal performance. The HARMSuit is cooled via a liquid canister. It is effectively immune from the increased solar heating of solar storms. Due to its weight a jetpack cannot be used while wearing a HARMSuit, however a Hard backpack or mining backpack are still able to be worn.
  • Improved Liquid canister tool-tip to show a little more precision in its fullness tool-tip.
  • Added recipe for HARMSuit and HARMSuit Helmet to Tier2 tool printer.
  • Fixed build error.
  • Added back several accidentally removed poi's from europa that were present on the map view but could not be discovered.
  • Fixed missing scene commit from rev26073
  • Fixed bug where waypoints would get registered twice from their OnRegistered function.
  • Fixed bug where building a single waypoint and trying to set the next waypoint could crash the game. Have set max iterations when looping over waypoints.
  • Fixed spelling error on save list items days 'past' should be 'passed'.
  • Added Prototype Solar Storm weather event. It can be triggered using the command "Storm Start SolarStorm". Atmosphere cells and atmospheric containers exposed to the solar storm will experience greatly increased solar heating, solar panels will experience increased power output.
  • Fixed suits were not being effected by solar heating due to them being technically hidden in their slot.
  • Fixed console screens turning off when they are on the floor and the player is nearby. Have moved the player-in-range bounds slightly further back behind the console.
  • Fixed issue where having non .save files in your autosave or quicksave folder would cause saving to get stuck. Non .save files will now be ignored, however it is recommended to keep these folders for .save files only.
  • Fixed loading game with bad save data could get stuck on black screen. Some deserialization failures would return instead of throwing an error to be caught in the outer loadgame task. Have changed these returns to throw. Now, if load fails in this way, user should be returned to the title screen.
  • Fixed error in Russian language localization with wrong number of arguments
Stationeers - Not Simon
Thank You!
First of all, thank you all for the support. The terrain update was a massive undertaking for us and the response from the existing community, as well as all the new players, has been absolutely amazing.

We immediately broke our all time concurrent player record and then repeated that for several more days in a row.

Recent reviews rocketed up to overwhelmingly positive which is heartwarming to see.(if you haven't already, consider going and leaving a review, it helps a lot!)

Thank you!
 


Small Vending Machine
At a fraction of the capacity, with 12 slots, the small vending machine serves as some useful compact storage for anything from food to ingots. It's just one by three small grids in size, so much smaller than the large version. This repeatedly came up as something we wanted during a play session, and now here it is.





Terrain Optimizations and Settings
We’ve heard from many of you that you’re experiencing lower than expected fps with the new update, especially on Vulcan. We’ve done some optimisations under the hood to help improve terrain performance as well as exposed some new settings to give you better control when tweaking your performance.

Terrain Tessellation
Tessellation is a process performed on the GPU. We use it to define small details in the terrain like rocks and cracks. The Terrain Tessellation setting controls how finely the mesh is subdivided, these small subdivisions are then pushed inwards or outwards using a heightmap texture that matches the terrain color texture.



Terrain Detail
In order to render terrain out to 1.5KM, as we get further from the camera we sample voxel data at increasing steps to form terrain LODS (levels of detail). The Terrain Detail setting controls the thresholds at which we switch to lower detail LODS. Lower detail LODS bias downwards and tend to be smoother; distant features appear “flattened” at the lower quality settings.



Minable Render Distance
The Minable Render Distance setting controls the distance at which mineable ores are drawn.
NOTE: if this is set higher than the “Terrain Detail” setting distant ores will appear to “float” over the terrain.



Shadows
The Shadows setting affects the number of Cascades (Shadow LODS) and the distance that shadows are drawn. At lower quality levels we only allow large objects to cast shadows.






Community Localization
A big thank you to the community members who have provided us with comprehensive translations for Chinese(MRhythm), French(CedricDx and Gosti_FR), and Russian(AlexusYT) languages.

They created a git repository that's maintained and allows us to easily pull their updates directly into the game.

A big thank you to everyone involved!



Game Serialization Improvements
On some large bases people were experiencing game lag during saving. This was due to saving locking some processes for the entirety of the save process, including zipping the save. Saves now only lock game threads while necessary and release them before compressing the serialized data.



Steep Terrain Glitch
There was a visual glitch with the terrain data on Vulcan causing extremely weird normals on steep mountains. This means that we have regenerated the terrain data for Vulcan but we have kept the old map in the game but hidden so that those with a current save on Vulcan will not have to update their terrain data, this will mean that they will still see the weird normals on existing saves.





Indirect Addressing Fix
There was an issue with causing indirect addressing that was fixed by community member on Discord provided the fix for. Send your thanks to Elmotrix!



Your support makes these updates possible

https://store.steampowered.com/bundle/2624/Stationeers_Complete_the_Set/




Change Log 0.2.5919.26060
  • Fixed Jetpack sometimes not working when very close to ground. This could happen if the sphere cast started inside the terrain collider, added a sphere overlap to check for this case.
  • Added Deprecated flag to Vulcan WorldSetting.
  • Changed updated Dedicated Server help tip for valid worlds to hide tutorials and flag deprecated worlds.
  • Updated icarus suit helmet animation to fix visor poking through mesh when open.
  • Updated icarus suit helmet mesh with new mesh, fixing a few minor uv and vert issues.
  • Added function to format all commands as a markdown table for the dedicated server guide. Commented out for now but leaving there in case we want to regenerate it.
  • Reduced High minable render distance range a small amount.
  • Added Small y offset to distant minables to help prevent "floating" effect.
  • Changed scale in range of minables shader to be a fraction of the total render distance.
  • Fixed Jetpack would loose thrust when flying over lava. It now also evaluates the lava height when determining thrust efficiency.
  • Fixed un-localised slot tooltip for lander mkII.
  • Fixed a typo for one of Jupiter's moons. name has been corrected from "Hamilia" to "Himalia"
  • Added savetype 'manual' to possible types for loadlatest command.
  • Fixed Deep Miner destroyed state was invisible, caused destroyed Deep Miners to block constructions.
  • Fixed deep mining regions not showing up on the map motherboard for lunar, mars and mimas.
  • Added StructureVendingMachineSmall to the vending machine kit
  • Fixed Some Issues with the voxel data on Vulcan. This fix will only apply to new games created on Vulcan after this patch.
  • Fixed Some cases where regions and start locations were being direct referenced when interacting with a WorldSettingData.
  • Changed increased the distance of emissive terrain effects.
  • Fixed Grammatical errors in Moon and Mimas descriptions
  • Fixed Grammatical errors in Vulcan world description.
  • Fixed saving on very large bases was pausing the game thread for a very long time. Have moved unpausing the game tick to immediately after the snapshot of the world data has been acquired. After this the serialization and zipping will continue in the background. This should get the game tick pause time down to sub one second.
  • Added more logging to each save step.
  • Removed unused replaysaveload class.
  • Added a few more restricted characters to save names which where causing saves to fail.
  • Fixed an issue with indirect addressing for IC10 scripts. Thanks @Elmotrix for the fix.
  • Added missing blueprint for flaregun.
  • Removed some related assets, blueprints, animators and audio from already deleted weapon prefabs.
  • Fixed advanced composter not connecting to chutes correctly.
  • Terrain settings pass. Reworked and added some settings to help performance scale better on low-mid range hardware.
  • Reworked Terrain Tessellation Settings to more performant values. Added Extreme Setting and an off Setting.
  • Added Minable Render Distance Setting. This effects the render range of minable ores.
  • Added Terrain Detail Setting. This effects the Lod radius of the terrain meshes (at lower settings the near-to-mid distance terrain meshes will be less accurately rendered)
  • Added missing isKinematic checks to a few places where rigidbody velocity is set.
  • Removed references to missing scripts on a few cosmetic items.
  • Added Hidden Setting "MaxConcurrentWorkers". By default this is set to processorCount-1. Some users are reporting crashes or errors on load due to the 100% all-core-work-load terrain initialisation. This setting can be used to help mitigate application CPU usage for those users effected.
  • Fixed save folder names were being incorrectly trimmed if they contained dots.
  • Updated French, Russian, and Simplified Chinese localization files. (Credit: CedricDx(FR), Gosti_FR(FR), AlexusYT(RU), and MRhythm(CN))
Stationeers - Not Simon
This hotfix resolves three issues:
  • Error spam on death
  • An error when starting dedicated server
  • Aimee causing error in multiplayer
  • Fixed exploding canisters not destroying terrain

Change List
  • Fixed Clients would get interaction locked when picking up an Aimee.
  • Fixed Aimee Animation update was not getting formed correctly causing any Aimee on a server to break the bite-array de-serialise function and de-sync clients.
  • Added check to major update popup to not appear on dedicated server
  • Fixed error spam on respawn due to missing null check (thank you tom_is_unlucky)
  • Fixed Explosions from Canisters, Furnaces, Rocket and Trader collisions not digging out terrain.
Stationeers - Not Simon

This fixes the missing map motherboard recipe.

Stationeers - Not Simon
We believe this major overhaul of Stationeers was a necessary investment to help the project reach the wider audience it deserves. However, bringing this update to you meant taking a huge risk: pausing our regular 2-3 week updates. This has a direct financial cost, as player numbers and revenue taper off immediately without them. This project has always been more than just a job; it's taught us so much about development and, most importantly, how to build a meaningful relationship with you, our community. We've always strived to be transparent, and you've repaid us by being incredibly active and supportive. We believe this update can bring in many new players and this is where you can make a huge difference:

Spread the word: Make some noise on socials like Reddit and recommend Stationeers to everyone you think might enjoy it.

Welcome new players: Continue being the engaging and welcoming community that you are.

Leave a review: If you haven't already, please consider leaving a review for the game!

Support us directly: If you want to support us in the most impactful way, please consider purchasing our DLC.

Simon Brown - Project Lead
Your support makes these updates possible

https://store.steampowered.com/bundle/2624/Stationeers_Complete_the_Set/


The Terrain
We had to rewrite the terrain system to resolve some extremely buggy behavior as well as performance issues caused by even small amounts of exploration within the game. We did this by moving a lot of the terrain tasks to make better utilization of your GPU and have frontloaded a lot of the ram usage.
There are a number of new or changed settings. Two of the major ones that have an impact on performance are Tessellation, Shadows, and Distance Shadows.

This Stationeers update completely redefines the how terrain looks, how the game performs, and how connected you feel to the world while playing. Pictures below will do the speaking, but the new terrain looks amazing, and blows the previous worlds away. The maps are now hand authored with meaningful thought put into kilometers of expanses to explore. Yet at the same time, with this new approach performance has increased, terrain hitching has disappeared, and save files are a tiny fraction of what they used to be.




A New Look
The terrain is rendered with a completely new material that supports a range of features. The largest improvement is the ability for multiple sets of textures, representing multiple voxel types, to dynamically blend together. This is leveraged in many different ways and is a powerful tool for creating new and interesting planets. For example, on Vulcan there’s glowing rocks around the lava, while on Europa there’s a thick layer of ice and snow contrasting the black rock that lays beneath.



Regions
The maps are layered with regions that are used for different things, including names to help you become familiar with the maps and navigating. Additionally, points of interest add flavor, and more functional things such as deep mining regions and playarea bounds.





View Distance
The new terrain system can render kilometers of voxel landscape. Multiple voxel types can create mountain vistas with contrasting rocky peaks and snow layers. The voxel system also allows us to create several layers of perfectly integrated LoDs of decreasing resolution. With the old system the view distance was limited by the culling system and terrain loading requirements. This previously resulted in a short terrain rendering distance which was stitched together with a very low resolution distant terrain mesh.


Looking about 1.5km along the mars canyon



Underlying Data Structure
At the core of this update is the shift from a 8x8x8 voxel chunks to a voxel 'octree'. While the old system required data for every single voxel, data in the octree is only present where it needs to be. Large solid underground or open-air areas result in very little data needing to be stored. Only where there is actually complex topology does the data storage get more dense.

Multiple data structures are used to achieve the final terrain while avoiding performance problems. The world voxel data, which is a fixed size in memory and never changes allows for quick access due to its static nature. This is combined with another ‘delta’ octree, which starts empty and records the changes in the terrain. When the terrain is modified, we only dirty the delta octree. When we render or interact with the terrain we read first from the delta octree, and if nothing is there, we read from the read-only world data. Additionally, ore veins are now defined in their own tree-like data structure to not dirty the voxel structure unnecessarily. This provides us with definitions and controls to make them generate in continuous structures that subtly make mining different ores feel unique.


A visualization of how an octree segments the data



Moddability
A foundational goal for this overhaul was to make the entire world-creation process moddable and data-driven. We built a toolchain that allows anyone to create a world without ever needing to open the Unity game engine editor. We used this same process for our official maps; assets were generated in external tools and then imported directly into the built game. This opens the door for the community to use free tools to create and share entirely new worlds. However, be aware that generating a world is a memory and CPU-intensive process, so powerful hardware is recommended for it to complete quickly.





Worlds With Meaning
We’ve always wanted Stationeers to invoke a sense of exploration. Landing on a hostile planet and needing to construct systems to stay alive makes the planet the core antagonist. However, the previous terrain system just wasn’t up to task, as we discovered with our attempts to make Loulan an interesting place. Greater stress placed on the terrain and exploration would functionally remove performance that was needed for the base game. But with the new approach to world creation, we had the ability to make each map much more its own character.

Instead of the map being generated from random noise, each mountain can now feel unique. When you travel, you get a sense of position, and recognize far away features as points of reference. There are now vast frozen lakebeds, map dividing canyons, or towering ridges for the player to see and traverse. Additionally, we’ve used the opportunity to create biome like regions, named points of interest, and unique areas with ore distribution changes. This all contributes to you feeling much more connected to the map, and actually feeling like you are going somewhere else when you travel.



The Maps
We needed to redesign each of the planets in this new paradigm, but we didn't want to lose what made the old worlds unique. Rather than trying to replicate any specific elements of the old terrain properties, we used the mood that the old planets invoked to define the baseline for the new planets. Instead of trying to cram too much into one map, we made each world’s terrain interesting, believably consistent. The choices of terrain features didn't have to be the definition of the planet, since there are so many intriguing map ideas for us to make. This decision allows us in the future to create even more maps for planets without having to completely change what already exists.

Mars: The Canyon
We identified early on that one of the things that made the worlds feel different was the silhouette of the horizon. For Mars we wanted to maintain its characteristic rolling small hills that build into larger ones. With the new voxel types we were able to give it rockfaces and cliffs that gives it an open epic vibe. On of the test maps we used initially was a height scan of the Grand Canyon which we really liked and we decided to integrate a massive canyon into the Mars map as well.



Moon: Great Mare
The Lunar map was the first map we tackled and felt like it was an easy choice as there was not a lot of unknowns. We knew we wanted it to be a relatively flat surface cluttered with craters. To make it more interesting the map is set on the edge of a mare with some dramatic height elevation that cuts across the map.



Mimas: Impact
We considered the old Mimas felt a bit like a ‘Moon 2' but were not going to just replicate the moon for the new one. At its core it’s still a crater-ridden terrain but Mimas's point of difference is dramatic craters that rise much further up, and it features a crater so large that you barely know you’re in it if you’re standing near the center.



Europa: Colosseum
This is an example of us taking a dramatically different route. Europa is completely covered in snow with rocky, exposed mountainous ranges. Initially we wanted to create some areas that were representative of the original Europa with massive ice spikes, but it did not feel right and was hard to make work technically. This was a good example of us working to the limitations of what we built and playing and iterating with the world building team until we were satisfied. We had an awesome time playing on Europa for over two weeks and we only saw a fraction of the map.



Venus: Miasma
When looking at the old version of Venus the core feeling was best described as oppressive. We leaned into that with steep, towering, hostile ridged mountains permeating the map. The only respite from these mountains are the occasional shallow basins with toxic looking terrain colors, as well as dried up sulfur flats.



Vulcan: Foundry
The old Vulcan map was probably the most unique of the old planets and invoked a feeling that we wanted to fully capture in the new map. Everyone on the team felt that it was important to get this one right, so we slowed down and decided to expand our world building feature set to allow for more interesting lava and the ability to add fractures. The map itself went through many iterations until we landed on a craggy landscape covered in fractures and giant volcanoes. The lava means you can’t dig down too far, while the hostile landscape and environment make it hard to traverse on mining missions.



Out with the Old
Our previous terrain system had a critical flaw: it never unloaded parts of the world from memory. The more you explored, the more RAM the game would permanently consume, leading to unavoidable performance degradation. This functionally limited how far you could travel before the game became unstable. This core inefficiency led to other problems, such as bloated save files with long load times and noticeable in-game 'hitching' when actions like mining or explosions occurred.

Creatively, the system was a dead end; while the worlds were procedurally-generated, they were also homogeneous, with almost no meaningful variance. Traveling in any direction presented more of the same landscape, which limited the feeling of true exploration and prevented us from creating the unique, authored experiences we envisioned.






New Save System
The old save system was often described as unintuitive. It had confusing components, such as the backup system, which didn't always behave how people expected. A single save file misunderstanding could ruin hours of work and sour a day-long play session. So, there are two main new concepts to understand about the new save system - save files are now compressed into a single .save file and the save file structure has been changed to be a lot clearer.

The different kinds of saves we have are:



The save menu has been significantly updated, and each of these save types are displayed visually differently in the expanded save menu, to help you better understand your saves. In normal practice when restarting the game, you don't need to even expand this advanced save information, and just pressing the load button will continue your game.





Save Transformer
With all the changes to the terrain and save systems all previous saves are broken. The community has already created various tools for porting your old saves. Here's a link to JacksonTheMaster's(Discord Handle) tool. There's also a workshop mod that you can find from this website.

Stationeers Save Transformer by JacksonTheMaster





Multiplayer
We highly recommend not connecting using Steam P2P for multiplayer as it can cause desyncs and is not nearly as reliable. If the game tries to connect via Steam P2P you will be warned in game.
A major cause of client-side hitching was fixed: a bug that caused unnecessary waiting for atmospheric network updates. In our tests on large bases, this eliminated a 20-30ms frame spike that was occurring twice a second.


You may have caught EJ playing Stationeers with up to 20 players recently. Check out his Twitch here.

Beyond this, we made dozens of small changes and fixes that massively improve the multiplayer experience. Connecting to and disconnecting from servers is now much smoother and more reliable. During our internal playthroughs, once we had made these improvements, we regularly had up to 10 players online at once without any issues.



Community Walkthroughs
Three excellent walkthroughs using our tutorial system (Airlock, Smelting, and Manufacturing) made by community member, BigFootMSR(with his approval), have been officially integrated into the base game. Give him a big thanks for helping explain some of the more advanced parts of the game to new players.



Project Clinic Improvements
At RocketWerkz one of the most important things we do is play our games. Once we had our first new terrain complete enough to play, Europa, we stopped our regular development for over two weeks to simply play. Playing the game the same way as customers allows us to see where the game actually needs work. This is the core foundation for what we call project clinics. So, besides the Terrain work we have done a massive amount of bug fixing, adding content, as well as hardening and improving systems.

Beyond bigger stuff like the save and multiplayer improvements bellow you can quick fire list of all the things we’ve added or changed:



Move All Inventory Actions
You can now hold Left Control while dragging to move all items in a container, or hold Left Shift to move all items of the same type.





DensePool
A common cause of stuttering in complex bases is the process of adding and removing objects from large lists. To solve this, we implemented a new high performance data structure we call a DensePool. This system uses a "swap and pop" method, ensuring that our lists of objects are always kept tightly packed and efficient. We've refactored nearly every major system in the game to use these DensePools, resulting in a significant reduction in stuttering and memory usage, especially for large bases and busy multiplayer servers.



Multi-block Pipes and Chutes
Something that has been long requested, and during the construction of a big and spread-out base we once again saw a need for long pipe segments. While this is handy from a station construction point of view, it significantly helps reduce the number of things in the world which has a non-trivial performance impact. We then expanded this to also include chutes, which have a higher performance cost than pipes.



Logic System Upgrades
For our dedicated IC10 architects, this update delivers one of the most significant expansions to the logic system yet. We've focused on making your code simpler to write, more powerful, and far more intelligent, allowing you to create robust scripts that can dynamically adapt to their environment without throwing errors.

Streamlined Code with Direct Addressing
We've fundamentally streamlined how you reference devices. Previously, to read a variable from a specific device, you often had to load that device's ID into a register and then use a dedicated instruction like ld.

Now, core instructions like l (load), s (store), and all device branching instructions have been upgraded to support Direct Addressing. This means the instruction itself is smart enough to know if you're giving it a register, a device screw (like d0), or a raw Device ID. In short, you can skip the middleman, which makes your code cleaner and more intuitive.

Here's a practical example:
# THE OLD WAY # You had to use 'ld' after moving the ID into a register. move r0 123456789 # Move the Reference ID of a switch into r0 ld r1 r0 Open # Load the 'Open' state # THE NEW, SIMPLER WAY # The 'l' instruction now does it all. # You can use the ID directly, or an alias. alias myswitch 123456789 l r1 myswitch Open # Load the 'Open' state directly

Smarter Scripts with Dynamic Device Checking
We're also introducing powerful new branching instructions that allow your script to ask a device a question before trying to interact with it: "Can this variable even be read?" or "Is this variable writable?". This prevents your script from throwing an error and halting, allowing you to create universal scripts that can intelligently check what a device is capable of.
bdnvl <device> <logicType> <lineNumber>
Branch if Device Not Valid to Load: Jumps to the specified line if the logicType on the device is not readable.

bdnvs <device> <logicType> <lineNumber>
Branch if Device Not Valid to Store: Jumps to the specified line if the logicType on the device is not writable.

New Tools and Helpers
We've also expanded your creative toolkit with several new instructions. You can now create smooth value transitions using LERP (Linear Interpolation), and perform highly efficient data packing with EXT (Extract Bit Field) and INS (Insert Bit Field).

To assist with complex calculations, the Universal Gas Constant (rgas) and Tau (tau) are now available as built-in constants. In the IC Editor, these constants and all your variables will now display their live numerical values in yellow text, making debugging much easier.



A New Lander
A lander replacement has been implemented that replaces the old one and bring it in line with the drop pod you spawn in.





Planetary Mapping System



A new gameplay loop has been added that allows you to scan and view the entire map. By building a Map Motherboard and connecting it to deep scanners, you can launch a rocket into orbit to slowly reveal the planetary surface on screen. This also allows you to toggle the deep ore region overlay, so you can find new regions with different deep ore mixes.



New Computers
To better display your new planetary discoveries, two new computer variants have been added: a standing and a wall mounted version. These provide an excellent canvas for the new Map Motherboard, which connects to your rocket's deep scanning head to reveal the planetary surface as it orbits.





Rocket Gas Filtration Kit
This new machine is designed for harvesting resources directly from the atmospheric gas clouds of planets like Jupiter. To support this, you'll find new cloud mining nodes appearing on the space map.





Large Rocket Tanks
Two new large landing pad tanks have been added: a Gas and a Liquid variant. Each is 3x2x4, and holds 3000L.





Wide Airlock
A new, fully functional double-width (2x1) airlock, constructible from the Airlock kit.





Logic PID Controller
A PID (Proportional-Integral-Derivative) controller is a powerful tool for automation. It constantly works to minimize the error between a desired setpoint and a measured variable, making it perfect for tasks like precisely regulating temperature or pressure.





Compact IC Housing
A new, smaller IC housing variant with combined power and data connections for tighter placements.





Hard Hat
A new helmet that contains a built-in light.





Ice Crusher Rework
The Ice Crusher has been significantly reworked to be more intuitive, especially for new players who found the old version's lack of feedback confusing. It now features a new status panel that clearly displays what the machine is doing and any error states, a color-changing heating indicator light for at-a-glance feedback, and a physical temperature dial for direct and easy control over the heating process.





Cryotube & Sleeper Rework
The Sleeper now features a status panel that clearly shows how it works and if it's functioning correctly. The Cryotube has received a more significant overhaul and now requires a piped supply of cooled Liquid Nitrogen to operate. To make this new requirement clear, it includes an improved info panel that not only educates you on what's needed for it to function, but also displays critical medical data, including the organ damage values of any occupant.





Tracker Cartridge Upgrade
The functionality of the GPS Cartridge has been merged into the Tracker Cartridge. The old GPS Cartridge is now deprecated.





LED Display Upgrades
LED displays can now be set to show units (Kelvin, Celsius, Pa, etc.) and can display short strings of text sent from an IC.



High-Speed Mining Drill Buffs
The mineral drill's speed boost has been increased from 120% to 150%, and the ice drill's boost has been increased from 20% to 50% to better justify their high energy costs.



Improved Computer Interaction
You can now use Alt + click on computer screens, which makes UI interaction much smoother. This also allows you to open the IC editor while holding the laptop in your hand.



Emote Commands
You can now express yourself in-game with a range of new facial expressions, controlled via the emote console command. This system also includes automatic expressions for 'Death' and 'Unconscious' states for added immersion. The available commands are:







Known Issues
  • Some explosions, such as canisters, do not destroying terrain
  • The use of dr in IC10 scripts is not fully supported yet
  • Some rich ore deposits are not working correctly on the moon map



Pre-Terrain Branch
We've locked of a branch on steam called 'preterrain'. You'll always be able to go back to this if you choose.
Change Log 0.2.5903.26007
This post is too long to display the change logs so we have create a pastebin containing all the changes:
Stationeers - Not Simon
This update features some updates to the logic system, especially around traders, as well as some fundamental changes to the modding system, localization, and some nice new features, including being able to melt ice with your welder, as well as a lot of bug fixes.

It's been a while since the last update, and the reason for this is that we've been working hard on the new terrain system. While it is not included in this update, it will be available on the beta branch shortly after this update goes live.

Preview: Massive Terrain Upgrades (Beta Branch Coming Soon!)

The main goals of the new terrain system are to allow us to have more interesting play areas in hand crafted worlds, a better-looking terrain by reworking how it is being rendered as well as better voxel data for a much smoother terrain.

For now, here are some images and photos. These are test 4km x 4km maps, the final ones will be different and will be 8km x 8km. Keep in mind that these are all work in progress and things will be changing fast.


Walking across 1.5km across moon like crater. One of about 5 similar craters on this test map

The terrain system has been rewritten from the ground up

New level of detail system for distant terrain



Looking across kilometres of terrain on a test map



An alien world

Melt Ice Instantly with Welding Tools



You can now melt ice directly using the welding torch or arc welder. Simply aim at a stack of ice to start the melting process. This feature should make handling ice significantly easier, especially in early-game resource management.




Enhanced Automation: Trader Logic & Circuit Improvements



We've expanded the capabilities of the logic system, especially around trader automation and data display. The Medium Satellite Dish now includes an internal stack allowing integrated circuits to read detailed information about traders, their available goods, and even gas trades. Additionally, the Hash Display Circuitboard has a new Mode setting, enabling easy switching between Prefab and Gas/Liquid data, all controllable through your integrated circuits. These changes significantly boost the potential for automating complex trading setups.




New Achievements



Several new achievements have been added, offering unique challenges. Here are a few highlights:

  • The Spice Must Flow - Mine 10,000 units of Cobalt Ore.
  • And Yet It Moves - Track celestial bodies using a ground telescope at full alignment for 10 cumulative minutes.
  • Some Assembly Required - Write your first integrated circuit script.
  • Stack Overflow - Write data to the internal stack of another device via integrated circuits.
  • Soot Happens - Survive an Ash Storm on Vulcan (outside creative mode).
  • Why Is It Still Mark Watney? - Survive for 30 days consuming only potatoes or baked potatoes.
  • Syolnet Green is... Plants! - Harvest plants 1,000 times.
  • Khajiit has wares if you have coin - Generate over ten thousand revenue from trading.

We've also hidden a few secret achievements for you to try and uncover!




Localization Improvements & Multiplayer Connection Fix



We've made significant improvements to localization, addressing numerous translation and display issues - especially in Simplified and Traditional Chinese. Additionally, we've resolved a serious multiplayer issue that previously prevented connections for players with extended or special characters in hostnames. This should drastically improve connectivity for our international player community.

After this going live on the beta branch the community jumped into action and translated almost everything available meaning that ~99% of the XML data has now been translated for Simplified Chinese. We want to build a pipeline that will automatically include community localization but in this case they have been manually added to the build. A big thank you MRhythm for coordinating this!




Expanded Modding Flexibility

We've enhanced our modding framework, allowing mods to easily overwrite existing worlds, difficulty settings, and start conditions without causing conflicts. Additionally, modded content will now be clearly indicated in-game, making managing your mod library much simpler.

These changes will break a lot of mods. However, it fixes a lot of long-standing issues, some that have been there since launch.




Your support makes these updates possible

https://store.steampowered.com/bundle/2624/Stationeers_Complete_the_Set/




Change Log 0.2.5499.24517
  • Fixed missing recipe for gas mask
  • Fixed a few nullrefs which were stopping the main menu from showing up after failing to join a game.
  • Fixed a few terraforming exceptions on joining a game.
  • Fixed clients can't connect after engine upgrade.
  • Commented out some terraforming code (temporarily) which was throwing exceptions.
  • Fixed error spam when looking at drinking fountain when it has no pipe connected to it.
  • Added very basic saving and loading for new terrain (currently not async).
  • Fixed minables not generating deterministically in new terrain.
  • Added some more debugging for tracking terrain voxel densities.
  • Tweaked voxel debug position for new terrain.
  • Made terrain generate around point function generate in a cube instead of a sphere.
  • Fixed some chunks not generating if they are on the very edge of the world resulting in some holes in the terrain.
  • Removed mineable type from octree data. This will be stored elsewhere.
  • Fixed new terrain not saving in backups or autosaves.
  • Changed new terrain flag to be a symbol definition and added it 'Stationeers > Symbol Definition' menu
  • Fixed nullref when exiting tutorials.
  • Added Models and scripts for future content.
  • Added gameplay scripts and data classes for deploy action.
  • Added prototype deploy action to Rocket Space Map. This is in preparation for rocket deploy missions.
  • Allowed new terrain chunks to be different resolution.
  • Fixed possible nullref when mining on new terrain.
  • Fixed switchgrass had two mature stages.
  • Added the ability to melt ice using the welding torch or arc welder. This will call smelt on the stack of ice once every 0.5 seconds.
  • Fixed locker kit having the wrong default option selected. LastSelectedIndex was being serialized into the prefabs so it may have been affecting other kits as well. This field has now been marked as nonserializable so all kits will use their 0th constructable as the default.
  • Added Pneumatic Mining Drill to the Mining Supplies Package
  • Fixed low quality, pixelated lens-flare for the road flares
  • Fixed station batteries, small and large, not requiring frame support
  • Removed a couple of storm sounds that were too tonal.
  • Added more aggressive distance cut off for wind turbine audio.
  • Changed Reduced audio voice limit as a possible fix for audio stuttering and volume issues noted in larger bases.
  • Fixed SensorLenses would get burned by fire when worn while helmet was closed.
  • Fixed Glasses would get burnt when helmet slot was closed.
  • Fixed the broken build state of the Area Power controller being visible in the blueprint when placing it.
  • Changed audio voices back to 64.
  • Lowered large transformer reverb send.
  • Changed Some ambience audio clips to load into memory compressed instead of streaming from disk as the streaming thread was getting overwhelmed in larger bases.
  • Changed Rocket Avionics, Rocket downlink and rocket batteries to be single build-state devices. Build-states on these single grid devices was inconsistent with other devices in the game.
  • Tweaked priority of rocket engine sounds.
  • Fixed issue with filter degradation in the FilterMask when not being worn
  • Added work in progress chunk pool class and wrapper class. The intention of this pool is to be a normal object pool except allowing for if a chunk at a specific position is requested, and one already exists that has been used for that location and level of detail, it will be returned instead so that it does not need to be recalculated
  • Fixed Pressure Regulator and volume Regulator setting tooltip not showing input setting for back regulators.
  • Added chutes to meson scanner rendering
  • Fixed Meson Scanner not showing burnt cables and burst pipes
  • Changed some rocket manufactory recipes to used steel instead of iron
  • Deprecated old heat-exchanger devices.
  • Changed OreScanner, MesonScanner & Celestial Scanner recipes to: 5 silicon, 5 Electrum, 5 Waspaloy.
  • Fixed Rocket Uplink buildState used cable coil heavy instead of standard cable coil.
  • Fixed storms not moving items on dedicated server.
  • Added Every 4 mine actions undertaken at an asteroid deposit will add 1 scan point to the location.
  • Fixed Rocket umbilicals revert to closed state on load.
  • Fixed Inworld liquid could be hidden under floors & liquid visualiser would sometimes clip through ceilings.
  • Added Confirmation panel step to delete node button on spacemap.
  • Fixed small typo in english.xml
  • Fixed thumbnails for pickaxe and emergency pickaxe
  • Fixed thumbnails for composite wall 1 and iron wall 1 being incorrect in Stationpedia
  • Changed Stationeer Difficulty now has a 1.5x distance Multiplier between spaceMap locations.
  • Added SpaceMapDistanceMultiplier value to DifficultySetting. This Setting does not apply to the Distance to orbit.
  • Added the ability to close the large fridge from the inside of the door. The trigger collider used on the outside now extends through to the inside.
  • Added beds suspending life functions for humans. The ILifeSuspender interface now requires the class to implement IsSuspendingLife, instead of IsPowered, and leaves it to the implementing to decide what the requirements for this are.
  • Added automatically changing name from Recruit to the players steam name if it is found when loading the player cookie
  • Added new 4x4km grand canyon map for internal testing the new terrain system. It is currently not accessible in the game and will be enabled at a later time.
  • Added first pass on terrain chunks loading near dynamic things.
  • Made mineables generate correctly around player as chunks are created.
  • Added first pass on lod for distant terrain chunks.
  • Changed the display name of Insulated Liquid Tank Big to Liquid Tank Big (insulated) and Insulated Liquid Tank Small to Liquid Tank Small (Insulated) to bring the naming convention more in line with the Insulated Tanks.
  • Removed Duplicate ItemKitRocketBattery prefab.
  • Fixed mining was doing unnecessary work on zero density chunks.
  • Fixed some terrain chunks leaving small bits of unmineable terrain.
  • Fixed mining performance issue on large terrain sizes
  • Fixed nodes not collapsing correctly when mining on new terrain.
  • Made various improvements to chunk dirtying logic to remove allocations and unnecessary lookups.
  • Fixed mining new terrain doing unnecessary work subdividing nodes when sampling density.
  • Potential fix for T-Ray scanner throwing exceptions
  • Updated wrong texture file for Sugarcane plant.
  • Fixed Fragment Handler exception when de-serialising atmospheric data on joining a server with a very large base.
  • Changed reduced reverb on loud distant objects.
  • Fixed Meson Scanner throw exception trying to render an invalid batch.
  • Changed Gas Generator Audio Reverb setting.
  • Fixed "Setting linear velocity of a kinematic body is not supported" spamming in dedicated server console.
  • Fixed string Format error spam that could occur when looking at a pipe atmosphere or any other atmospherics device when the pressure inside was greater than 1GPa.
  • Updated Build a basic power setup helper hint to match Europa power supplies start conditions.
  • Fixed apc still works when destroyed
  • Fixed APC reversed blueprint
  • Fixed incorrect build-state tools on composite window shutter connector
  • First pass on improved lod system for new terrain.
  • Disallowed mining below bedrock level on new terrain.
  • Fixed can't close manual hatch when on a ladder
  • Made mining work again on new lod meshes.
  • Changed lod prefab so only lod0 meshes will have a mesh collider. This should speed up generation for distant lod meshes.
  • Fixed Some atmosphere grids get stuck with high winds on clients.
  • Fixed medium shelf blocking grid extending too far out from the front of the shelf
  • Removed old chunk object and replaced it with a non monobehaviour chunk.
  • Made mining work with lod meshes for new terrain.
  • Changed lod lookup to be an array of lookups, one for each lod level. This allows lod objects of different levels to exist at the same point which fixes a bunch of problems when multiple dynamic things are requesting lods of different sizes.
  • Improved performance of checking loaded/unload lod areas.
  • Added a min and max terrain height to trim out unnecessary lod objects far above and below the terrain bounds.
  • Fixed editor script being included in the build causing it to fail
  • Enabled smooth normals for angles under 30 degrees on new terrain
  • removed smooth normals for new terrain
  • Changed all power tools to consume a standardized amount of power (1000 joules) on use. A property was added (BasePowerUsage) that can be overridden on subclasses as necessary.
  • Added first pass of stack on MediumSatelliteDish. Added a small stack to the dish along with template for some instructions. These will allow the dish to read and write extended data associated with the current communicated trader. This will be able to be used to more easily automate trader contacting using the internal stack system on the dish itself.
  • Optimised collider setup on large Wind turbines. Colliders on the rotating blades was causing the physics tree recalculations every fixed up-date. Fixed update is now 1ms faster on large Europa playtest base.
  • Separated occlusion testing and rendering for mineables for new terrain system and made it allocation free. Occlusion testing is now done once per second but this is a first pass and will be made much smarter
  • Fixed Ice will now melt when put into DynamicGasCanister slot when the canister is empty.
  • Added a cached vector3 position to chunk objects alongside the Vector3Int to reduce the large cost of casting these every time we submit the mineables to the renderer
  • Updated the new mineables code to not use dictionaries as this was costing a lot to look up.
  • Added checking for mineable occlusion to the player moves event so that we are only updating the mineables when required while the player is moving around
  • Added an event that will run when the current player moves a about a chunks worth of distance
  • Added an AllTick that runs alongside ServerTick or ClientTick
  • Fixed AllTick being run every millisecond
  • Added first pass on pooling system for lod meshes.
  • Changed Ambient light mode from trilight to skybox when in game (it will remain as trilight mode in main menu scene and new world scene).
  • Changed added easing to transition in and out of eclipse so the change is less sudden.
  • Changed skybox settings during eclipse. Europa skybox will now experience a dawn moment, the sky will lighten, although some stars will still be faintly visible.
  • Changed Ambient Lighting settings during eclipse. Eclipse on Europa will still be dark, but terrain, mine-ables and structures will still be faintly visible.
  • Changed reduced the default ambient light max intensity value from 0.36 to 0.3
  • Fixed Default value for ambient light not being set on planets with no atmospheric scattering. This resulted in it retaining the default unity value of 800% an the terrain being very over exposed.
  • Stopped DynamicGasCanisters returning the relevant kit when being deconstructed after they have been broken. Created a new property inside the DynamicGasCanister script for getting the _hasBlown state.
  • Added TraderInstruction enum parsing to logic system.
  • Added second pass on internal stack memory for MediumSatelliteDish. Working implemenetation for TraderInstruction.WriteTraderData. This is written with the index to start writing at. Three instructions will then attempt to be written to memory, being the traders Id hash (its type), some trader meta data, and then some signal data. Third pass will feature implementations for filtering actual trade buy and sell data into the stack, not just meta data.
  • Removed temporary property from DynamicGasCanister left over from previous commit.
  • Made lod requesters remove themselves from lods correctly when destroyed.
  • Fixed RocketMotherboard required a connected rocket in order to open the map. The panel will now open with no valid rockets connected, but certain rocket specific fields will be blank/un-interactable
  • Changed layout launch mount nodes with relation to home planet nodes on the space-map. Launch mount symbol now appears laid over the plant and rockets travel "up" into orbit.
  • Moved some helper functions into a dedicated LodHelper class.
  • Fixed several issues where lod objects were being queued up for generation multiple times.
  • Fixed two dynamic location panels created for starting node when loading game with existing launch mounts.
  • Added Third pass of internal stack for MediumSatelliteDish. WriteTraderData will write three meta data memory to stack. WriteTraderBuyData will populate the stack at a index to a max count with buy data, WriteTraderSellData will do sales. This will populate the stack with their respective packed memory. Only working for trades that are items, currently, but this will change. Currently you can use filtering, but the filters are applied to everything. Intention is to change this to only use that since the last Write command, but that will come in third pass. Non valid (i.e. old) WriteTraderBuyData or WriteTraderSellData will be cleared when next tick is processed.
  • Removed apply queue for terrain mesh jobs as it is not needed.
  • Added ability to pre-populate lod pools.
  • Removed unused Obi Solver plugin as it was causing builds to fail.
  • Experimental fix for multiple concurrent clients joining causing multiplayer desync issues.
  • Prevented DynamicThings from taking damage while inside a parent slot that hides them. They still take damage if not hidden.
  • Added Gas Type trading to the MediumSatelliteDish Internal Stack. Now basic gas trades both buy and sell will be added to the internal stack. Their gas types will be condensed into a single bitflag that can be interrogated for gas types.
  • Added overlay text option for ImGuiDebugHelper.
  • Removed unused test lod requester class.
  • Added Fourth pass of internal stack for MediumSatelliteDish. Now have Buy and Sell Child prefab data loaded into the stack. Additionally Gas data is loaded into the stack as well. Filters are applied to child items as well. Now fully functional at interrogating trader inventory. Next change will ensure the filtering is local to that "block" of write instructions, allowing the internal stack to be segmented for multiple requests.
  • Added Fuel Mix and Air Mix GasType enums, as these are just a flag combination. They now have recognized sprite images as well. This means that the Hash Display circuitboard will recognize Air (Oxygen and Nitrogen) and Fuel (Volatiles and Oxygen) and display an image for that. Useful with traders.
  • Added Hash Display Circuitboard now has Mode, that is used with the new HashType enum, with both HashType.Prefab (default) and HashType.GasLiquid. Consoles now accept setting their circuitboard mode via the logic slot set/load instructions (ss or ls). This allows you to set a console circuitboards mode from IC.
  • Fixed Harvester contained coroutines. Moved to Unitask reducing potential for memory churn when TryPlantSeed or TryHarvestPlant was called via any IC scripts, which could be often.
  • Fixed DEFINE instruction would produce NaN as it was configured to not check Enums or other defines.
  • Cleaned up some of the achievement code a little, with some minor optimizations.
  • Added "The Spice Must Flow" Achievement for mining 10,000 Colbalt Ore.
  • Added "And Yet It Moves" Achievement for tracking celestial bodies using a ground telescope at full alignment for ten minutes cumulative.
  • Added support for stat based achievements
  • Added "Some Assembly Required" Achievement for writing a script to an integrated circuit.
  • Added "Stack Overflow" Achievement for writing to the internal stack of another device using an integrated circuit.
  • Added "Soot Happens" Achievement for surviving an Ash Storm on Vulcan when not in creative.
  • Added "Why Is It Still Mark Watney?" Achievement for surviving for 30 days eating only potatoes or baked potatoes.
  • Added "Syolnet Green is... Plants!" Achievement for harvesting 1000 times from plants.
  • Added an Achievements command for debugging achievements.
  • Optimized the Update100MS and Update1000MS method caching as well as made their assessment automatic, meaning that those using the methods in future won't have to also remember to update the "Is" method.
  • Added "Khajiit has wares if you have coin" achievement for over ten thousand revenue from trading.
  • Added a hidden achievement.
  • Removed steam check before awarding achievements. This check was redundant. It also generated a lot of memory garbage, as it was looking through all steam achievements each time. Additionally more minor cleanup to achievement code, including auto generating more of the backing dictionaries. This makes it much easier to add new achievements.
  • Added three more hidden achievements.
  • Fixed use of Allocating Physics commands that have been replaced with non allocating version. Note: this will limit explosions to interacting with a maximum of 1000 colliders. This is quite a lot. Previously explosions were causing a lot of memory garbage to be cleaned up. Now it will not cause this, but there is a hard cap of 1000 things being interacted with. This might need some refining further.
  • Removed Old terrain lod when new terrain flag is active.
  • Changed LOD settings to increase render distance of new terrain from (4,4,4,4,4) to (8,8,8,8,16). This pushes rendered terrain out past the far clip plain distance.
  • Reverted change to terrain job processing to ensure we wait to finish jobs before the next frame.
  • Added difficulty setting for calm weather period multiplier. This will, if set, multiply the initial calm weather grace period at the start of a game.
  • Added difficulty setting for Achievements. Modders can set or use this with any modded difficulty settings. All difficulty settings work for achievements except for the "creative" difficulty setting, which by default is "disabled".
  • Removed duplicate IThreadedWorker class.
  • Changed LodObjects that have requesters to have a 10x load value.
  • Fixed thread profiler not working with terrain threads. use profiler enable command to profile terrain threads.
  • Added "spherising" to new terrain shader
  • Added ability to have voxel type in octree. Not fully implemented yet or used for anything but the option is there and can be used for multiple things
  • Added calculating normals from voxel data to achieve smooth normals
  • Made ProcessJobs wait for executing lod object jobs as soon as ExecuteAll is called. This may be less performant but does fix error spam and a few strange issues where the dirty indices array would not be emptied after all jobs were finished leading to some lods not being able to be dirtied again. More improvements to come on this.
  • Added various different data classes now receive what mod they are being loaded from as part of their initialization, allowing them to remember what mod they are from for later display.
  • Fixed the spawn item data in the new world process was very large text, using headers for the whole lot. Now they are sized the same as the rest of the text. Additionally there was a whole bunch of background image gore with how the UI elements were rendered, this has been cleaned up with icons to indicate better what can be clicked on and what cannot be.
  • Fixed the mod load order was being done in reverse. This needs to be checked, but it was very unintuitive. The mods were being loaded in the reverse order from what was displayed visually - probably confusing a lot of people.
  • Added image that shows over top of modded Worlds, Start Conditions, and Difficulty Settings. This means that you can see what content is modded or has been overwritten easier.
  • Added Difficulty Settings can now be overwritten with mods. If a mod is loaded, and the difficulty already exists, the mod will overwrite that difficulty setting instead of throwing an error and stopping as it currently does.
  • Fixed incorrect spherical effect variables on terrain2 material
  • Cleaned up the starting equipment list to make it more readable.
  • Added SortOrder attribute option to world settings, so that modders and others can sort the order their worlds will appear in the world settings list.
  • Added a yellow mod icon to the starting screens so you know if data is being overwritten or loaded from mods.
  • Fixed mods could not replace various things, such as worlds or difficulty settings. Confirmed that mods can now replace worlds, difficulty settings, and start conditions. You don't need these to be different file names either, the XML is very permissive. This should allow, now, the replacement of pretty much anything data wise in the game that in the past would throw errors (such as star maps).
  • Fixed modconfig.xml was being generated inside the executable folder, or trying to at least. This caused critical issues and wiped the mod order constantly, breaking mod loading for GeForce now users and lots of other people. But even if that had worked, the mod loading was broken anyway. Now the mod loading is done in the order displayed in the load order list, loading the "core" mod at the spot indicated. There may be issues with this that still need to be resolved. The modconfig file will now be generated in wherever save and settings files are generated.
  • Removed sever expensive memory allocations for new collections in the Lod requester logic. These collections are now cached and reused.
  • Changed LodManagers work loop to be state-based. The manager now goes through one step each frame. certain steps like applying the meshes or waiting for the jobs to complete will run over multiple frames to ease frame-time spikes.
  • Added caching of marching cubes object as well as the mesh object to the lod object to reduce allocations
  • Added back face rendering to terrain terrain. This helps a lot with terrain seams and should help us hide them in a naive way without the need to perfectly fix them in an expensive way
  • Moved consolidation of queued up lod changes to where job are assigned. This helps to fix missing lods in some instances.
  • Fixed Upright wind turbine data can't be read as the port is power only. Changed the port to be power and data. (Credit: Tsoleht)
  • Fixed Sun flare not showing through the glass of the StructureCompositeWindowShutter prefab.
  • Rewrote new terrain shader to fully support the required features and removed a lot of the unused features
  • Fixed rare null reference occurring when autosave is attempted during a specific phase of character death.
  • Lods will now overlap at lod boundaries to hide seams (wip).
  • Fixed Tablet not working until hands are swapped if it was in the left hand when the player loads a world.
  • Fixed VoxelTerrain.cs generating 50kb GC per frame due to multiple new array creations in the Minable batch rendering code. Refactored to use pre-allocated array and removed all GC allocations.
  • Fixed if statement formatting for previous commit
  • Changed OnNextDay to be specific function calls rather than a subscription delegate event list. This is much more readable and debuggable in the code, and reduces memory churn. Added the IOnEachDay interface that is checked against to make it easy to add classes to this. Entity was already using this kind of functionality so it has been migrated to this, reducing memory churn when instantiating new entities such as chickens and players.
  • Added a timeout on the capsule lander light. It will now stop working at the end of the first day.
  • Changed IAnimComponent to use a serializable base class and then cache it only when generating the base prefab. This means each time it is instantiated a GetComponentOnChildren does not need to be run, as this was always being run for everything thing when they were instantiated.
  • Fixed a serious potential issue that prevents joining or hosting multiplayer games with hostnames that may contain non-ansi characters. This potentially affected a number of users who are using different languages and their computers or the destination hosts were using an extended characterset. A new and more advanced system is used to get the current host ip, however this requires extensive testing. It may also fix some other hostname issues that players are experiencing.
  • Changed reduced the amount of the most distant terrain Lods as they were over the horizon.
  • Changed Mineables are now only rendered on LOD0 Meshes and on chunks that have a rendered mesh (i.e only mineables that are close to the surface are rendered)
  • Changed some VoxelTerrain functions and fields to be static.
  • Added Some profiling tags
  • Fixed LodMesh prefab not on terrain layer.
  • Changed tooltip when hovering over the handles of the CrateMkII from saying "Button1" to "Drag" to bring it in line with the DynamicCrate.
  • Fixed some text boxes contained illegal string keys and would cause exceptions if they were localized.
  • Added additional localization commands to assist with debugging and fixing localization issues.
  • Fixed a number of text renderers had no font switching occurring and did not have localized strings. More of this to follow.
  • Fixed a variety of font and localization issues with Simplified and Traditional Chinese (credit: MRhythm)
  • Fixed a massive quantity of localization issues due to missing calls for Localized font. This includes the Hash Display, trading screens, spawn screens, and others. (credit: MRhythm)
  • Changed LodObject helper class to be pooled. This reduced the amount of GC allocation when requesting and un-requesting terrain lods.
  • Changed increased the size of the LodMeshRenderer pools (the lower level lod pools now have a much larger starting count)
  • Fixed a performance issue with Objectpool class where returning an object to the pool could be very expensive for large pool sizes.
  • Cleaned up lod classes a little, made pooled mesh object use naming convention for pooled objects.
  • Moved the lod object pool to a new LodObjectCache class which will also hold and manage the lookup for currently active lod objects. This is because these two things are tightly coupled - getting/returning from the pool will add/remove from the active lookup.
  • Added additional checking for prefabs to the localization checkkeys command.
  • Fixed 42 missing strings for prefabs. (credit: NoName)
  • Fixed dedicated server build failure due to missing server specific imgui helper function definition
  • Fixed could spawn under terrain when terrain height at starting point was higher than 40m.
  • Increased distance of GetSafePoint for spawn raycast.
  • Removed unused debug draw on lodmeshpool
  • Fixed missing RW_Server check in localization.cs
  • Changed ImguiHelper class to be active when RW_Server defines is enabled. This should help prevent some dedicated server builds failing.
  • Refactored access to the terrain octree to be accessed only through the voxel terrain manager instead of directly accessing it
  • Fixed error spam when reloading into a world caused by pools not being correctly reset.
  • Changed lod object pools to have one pool per lod level.
  • Added back missing code to remove rendered mineables from a chunk when returning lods to pool.
  • Fixed a few instances where lods would render around dynamic things when they shouldn't
  • Reverted Imgui changes from rev24361 to test if they were the cause of steam build to failing to run.
  • Fix for Dedicated Server build issue.
  • Reinstated Imgui Change from rev24361 as it was not the source of build issue.
  • Changed LodManager now only moves off idle state when it has pending work to do.
  • Fixed Black seems at lod overlaps. Overlap meshes shadow casting is now disabled.
  • Made dynamic things request new lods after they have moved a set distance rather than when their chunk has changed.
  • Fixed rendered mineables not being cleared when leaving a game.
  • Removed unused TerrainManager class.
  • Added desired depth parameter for getting octree density. This fixes marching on higher lods not sampling corresponding higher octree levels resulting in very large seams.
  • Changed lod bounds to extend out into the next lod by one rather than back into the previous lod by one. Turning off shadows on the boundary is less reliable now as the next lod up will not always be higher so have removed setting of boundary indices for now. Will revisit this.
  • Removed the remainder shadow boundary culling code as it was no longer required.
  • Changed Liquid Particle solvers to have their game objects deactivated when idle. The particles had quite a high physics overhead when sitting idle in the scene. This will mean higher cost to physics system when water is spreading as the activation and deactivation of particles causes some physics tree re-calculations.
  • Fixed null ref when closing and then creating a new game.
  • Fixed an issue where Sounds triggered by interactables were calling play logic multiple times.
  • Fixed an issue where Looping sounds that were paused for concurrency were getting stopped.
  • Added Concurrency setting for wall light sounds. (on-going work to reduce number of virtual voices in large bases).
  • Fixed OnOff sound reversed for wall light.
  • Added Audio Concurrency Setting for Atmospherics Devices and Volume pumps to reduce number of virtual looping sounds on large bases.
  • Added AudioUpdate for things that need to change audio values on a regular tick. (this logic currently runs in UpdateEachFrame but can be moved over as an on-going effort to reduce update churn)
  • Changed Things that run updateEachFrame now have this cached on the prefab on prefab load (in the same way as 100ms and 1sec update is handled).
  • Removed some unused shadow changing code on the lod object.
  • Added TerrainSettings to world settings data for loading individual octree terrains with their respective settings and textures.
  • Changed Furnace audio to be distance culled. Added audio concurrency setting for furnace and arc furnace audio.
  • Changed Moved Furnace and character audio logic into audioUpdate.
  • Changed Audio Update does not run in batch mode.
  • Fixed a tooltip issue where it incorrectly indicated that the stack in hand was full when hovering over another item in a locker. The tooltip now correctly appears when the player has a full stack in their active hand and is hovering over another stack of the same type inside the locker.
  • Changed Move Audio Behaviour for CombustionCentrifuge from UpdateEachFrame to AudioUpdate.
  • Added Audio Concurrency Settings for Deep Miners and Centrifuges.
  • Added SuitStorage to PoweredDevices AudioConcurrency.
  • Added Audio Concurrency Setting for Batteries & Transformers.
  • Changed Moved WindTurbine audio logic onto AudioUpdate and added separate audio concurrency setting for large wind turbine.
  • Fixed prefab audio issue with on windturbines on previous commit.
  • Fixed a few issues where lod meshes were not being returned correctly to their cache.
  • Smoothed suit foley audio to suit slower audio tick rate.
  • Fixed Recursive call in PooledAudioSource.ReturnToPool(). It was calling Stop(), which would recursively call ReturnToPool.
  • Added warning for possible issue when already returned lod meshes are returned to the pool again.
  • Fixed HighPassFilters not being disabled when audio-sources were disabled.
  • Further smoothed character foley audio.
  • Removed HPF Filters from wind-turbines audio to reduce their DSP load.
  • Changed moved some more classes over to using AudioUpdate.
  • Changed reduced ambient light during eclipse on Europa.
  • Changed Ambient audio loadType back to streaming.
  • Changed Temporarily disabled out of bounds check and Made Terrain not block atmospheres until issues are resolved with these functions.
  • Added TerrainSpawnRequest class for spawning initial terrain colliders around player spawn location.
  • Fixed bug where if the player is a client and has the IC editor window open and a storm happens, setting the pause toggle button to true would cause the player to get pushed around by the storm while their screen does not update. Setting the pause button to false after that would push the player back to their initial position. The player no longer moves when the pause toggle is true under those conditions. Caused by clients being able to pause the game when they should not have been able to.
  • Refactored LodMeshCache to more clearly define the difference between deactivated and uninitialized objects.
  • Renamed LodMesh to LodMeshRenderer
  • Fixed Client being able to pause their game from using the pause button inside Stationpedia in multiplayer. The pause button now has no effect in multiplayer.
  • Changed moved request Lod logic into LodManager Update loop.
  • Fixed lumps around mine-ables with new terrain.
  • Added rolling lookup for lodobject state to track empty lod objects that do not require mesh recalulation.
  • Changed recursive RunJobState method into a while loop.
  • Reverted spawnpoint changes for now as the terrainspawnrequest was causing some missing lods. Will try using the octree data to determine spawnpoint instead.
  • Fixed player spawning under the terrain. Will now look at the octree to determine where to spawn.
  • Added check to stop moved things requesting lods multiple times in the same frame.
  • Cleaned up creating of new lod objects.
  • Added total count to lod object cache.
  • Changed the lod object pool over to a more simple pool system which incorporates the active lookup concept rather than using the object pool alongside another active lookup. This saves having the active lod objects in two active collections. This also fixes several issues with missing lods due to a long-standing bug with the old pool system.
  • Added another hidden test map into temporary folder in streaming assets. Folder/file structure is still wip.
  • Changed max terrain height in VoxelTerrain from 64 to 256. Terrain height information will eventually be moved into xml data.
  • Added check so lod deletion queue can ignore already deleted lods.
  • Added New Minable Generation algorithm and data classes. Weights are equally assigned for now to leave an even distribution of generation shapes for easier review.
  • Changed sizes of lod object pools based on lod level. Will tweak these as we establish reasonable upper bounds.
  • Changed normalised Minable density setting. 1 is now standard density.
  • Optimised minable vein placement algorithm.
  • Fixed World-size not being applied to voxel terrain on loading map.
  • Fixed issue where putting a ProgrammableChip into an advanced tablet would cause it to clip through the screen. This was happening because the OnEnterInventory method for the ProgrammableChip was overridden without calling base.OnEnterInventory.
  • Changed exception to a console window error when reactivating a lodmesh that is already active.
  • Upped the pre-populate size of the level 4 lod mesh cache.
  • Fixed Valve flow direction arrows being applied incorrectly to the digital valves. The digital valves can mix fluids in both directions but the direction arrows present when trying to construct either of them implied that the flow was one-way.
  • Moved Minable RenderBatch Generation onto OcclusionManager threaded work.
  • Increased Minable render distance to 96m.
  • Added Minables can now be mined.
  • Fixed ThreadWorker.Workers and ThreadWorker.NextWorker were incorrectly set to static.
  • Added VeinGenerationWorker class.
  • Refactored Minable Vein Generation to be multithreaded.
  • Fixed issue where SuitStorage would not remove gas from stored suit's waste tank if the suit had no internal pressure. This meant that it would work normally if moved from the player's suit slot directly into the SuitStorage, but not if dropped on the ground first.
  • Fixed respawning not cleaning up lods for old player body. Now on respawn, lods will be cleared and regenerated. Still more work to be done on this.
  • Added remove requesters step to lod manager processing.
  • Added restriction for generating lods so it won't generate at values less than zero. This may be updated to use map specific sizes.
  • Added back in lod object debugging and removed some unused chunk debugging code.
  • Made dynamic things stop/start requesting lods when they enter/exit a slot
  • Fixed OutOfBounds terrain being rendered.
  • Removed 4k test map.
  • Added 64m and 128m test maps with offset correctly authored.
  • Fixed Offset not being correctly applied to terrain resulting in spawning in a corner of the map. This issue was compounded by our test maps being incorrectly authored.
  • Added new 4K test map with correct offset values.
  • Changed Some VoxelTerrain functions to be static.
  • Moved Minable Textures out of resources folder.
  • Simplified DrawMeshInstancedIndirect.cs and cleaned up to be allocation free and removed a number of unused methods.
  • Added Spherization to Minables shader.
  • Optimised Minable rendering to use DrawMeshInstancedIndirect.
  • Fixed issue where social media buttons would not work when clicked inside the GameMenuPanel but would work when clicked inside the MainMenuPanel. This occurred because the method for the buttons in the GameMenuPanel was not set.
  • Fixed bug where multiple requesters could not find existing active lod meshes.
  • Moved stale lods list into lod manager.
  • Moved remove lods into its own step in run job state.
  • Fixed lod mesh cache getting into a bad state when lod object meshes are cleared before re-processing. Lod object meshes will now be retained if they are still active.
  • Fixed hitching when executing terrain jobs due to too many worker threads being initialized. Will now use processor count - 4.
  • Changed 64x63 test map to use only full voxels (the other test maps have a layer of half voxels several layers deep that make mining feel weird)
  • Hooked up old mining behaviour to new terrain system.
  • Fixed Build Error
  • updated 4096x4096 text world to use correct ore weights and mine amounts/times.
  • Changed Moved ore goggle meshes to XML data.
  • Fixed Ore Goggles now work with new terrain.
  • Increased render distance of explosives.
  • Added Staggered explosion behaviour to remote detonator.
  • Fixed Explosions now work with new terrain
  • Fixed Missing Shader form previous commit.
  • Changed 64x64m test world to have maximum ore density.
  • Moved vein registration into oct-tree space (to ensure consistent behaviour when doing integer division for registration).
  • Added vein de-duplication step for new vein generation algorithm (prevents minables of multiple types from generating at the same location).
  • Fixed Dirt Canister not showing DirtCanisterState if it was in the world and did not have a parent Voxel Tool
  • Added first pass on separating terrain deltas from map terrain data. This is to lay ground work for serializing terrain delta state.
  • Changed Delta Node now calculate their partner node on the readonly octree as needed rather than caching a reference to it.
  • Refactored some functions in VoxelOctree that had unclear arguments.
  • Fixed Items fall through the world when loading a save with new terrain. Added InitialiseLodsOnLoad() to LodManager which generates all requested lods in a single frame before unpausing game on Load.
  • Added NewTerrain now only serializes delta changes rather than full terrain file.
  • Fixed an issue where new terrain would not deform when explosion happened.
  • Added flood fill method for filling voxels inside the terrain mesh.
  • Added a few helper methods for getting neighbour nodes from any given octree Node.
  • Added Clients now receive New Terrain deltas on join.
  • Fixed Issue with Dirt Canister not showing the correct DirtCanisterState in the world or on the client. This was caused by the SetDirtCanisterState method not being called at the appropriate times.
  • Added Clients now receive terrain change updates from server.
  • Added horizontal size to floodfill to stop the progression if the edges of the map are reached. This should just be a precaution as the map will usually fill the entire octree horizontally.
  • Added new method for generating terrain from a heightmap that only generates a "crust" and then floodfills under it which is much faster than before. This also fixes the "spongy" terrain that we were experiencing before
  • Added missing horizontal size to floodfill
  • Changed UV coordinates for charging bars color.
  • Fixed Visualizers on the DirtCanister prefab. Incorrect visualizer meshes and UVs were being used.
  • Fixed a small issue where Client joining a session threw a null reference exception and prevented the host from continuing to play. This was to do with the new terrain trying to be loaded while the terrain settings were null.
  • Removed some unused debug functions from VoxelTerrain.
  • Fixed Voxel tool now works with new terrain.
  • Cleaned up some places where vector3s were being handle ambiguously in terrain and minable functions.
  • Fixed new Terrain and minables did not align with the large grid. When the terrain mesh and minable position is set they are now offset by 1/2 voxel size.
  • Added function on node to get siblings directly below.
  • Added new fill method for octree.
  • Fixed an issue where the Voxel Tool would not use the last bit of dirt inside the equipped Dirt Canister. This was caused by an incorrect comparison in CanRemoveDirt that checked if the CurrentCollectedDirtValue was greater than UsageEachVoxelPlacement, instead of greater than or equal to.
  • Fixed Desired depth not being evaluated correctly in getDensity function. This fixed the last of the terrain seam issue and improved fidelity of distant terrain.
  • Fixed a number of places were a depth argument was taking in a size for octree calculations (and updated those functions to work correctly with the correct input).
  • Changed baked terrain data is now stored in a ReadOnlyVoxelOctree, changes made by the player are stored in the object based tree VoxelOctree. This results in a 90% reduction in terrain ram usage 6GB to 600MB and a 70% reduction in terrain load times 13s to 4s (tested on 4k map).
  • Added ReadonlyVoxelOctree class this is a highly optimised octree that is backed by a byte array and is readOnly.
  • Added some additional debugging info for terrain performance testing,
  • Fixed a performance issue with ReadOnly octree which was causing get density function to take too long to run.
  • Added HelpText for TestOctreeCommand.
  • Removed un-needed locks on some lod Manager functions (all calls were coming from main unity thread).
  • Changed Terrain Lods will now refresh faster when there is less work scheduled (i.e during mining).
  • Fixed Bug where having sequential ladders on opposite sides of a wall would cause the player to teleport to the other side of the wall.
  • Added changes to New terrain ore veins are now saved and synced to clients.
  • Added wip octree fill method which is significantly faster.
  • Cleaned up relationship between readOnly octree and delta octree.
  • Added IOctTree and INode interfaces.
  • Fixed VoxelTerrain.MaxDepth pointing to Octree when ReadonlyOctree was initialised.
  • Changed Octree Constructor to require a pointer to a masterOctree it can be null if the constructed octree is the master Octree.
Dec 11, 2024
Stationeers - Not Simon
This hotfix resolves the critical multiplayer bug preventing joining any server. It also contains some other minor fixes such as not going back to the main menu after failing to connect to a server.
Dec 11, 2024
Stationeers - Not Simon
This hotfix adds the missing recipe for the gas mask.

Additionally, we are aware that there is a blocking issue with multiplayer and will deploy a fix as soon as possible.

In the meantime, the 'previous' branch has been updated so you can safely play multiplayer using that branch.
Stationeers - Not Simon
Engine Upgrade
We've updated Unity to align with our other projects and leverage recent editor improvements. While most changes will be invisible in the final product, some saves may see minor performance gains.

The update spent extra time in Beta since upgrading engine versions often introduces risks. For example, this update caused significant UI issues, which should now be resolved. However, please report any lingering problems. As noted in a recent post, our beta userbase has decreased due to more frequent updates, which has also reduced issue reporting.
 


Gas Mask
The new Gas Mask accommodates two filters, filtering specific gases while blending with the ambient atmosphere. This feature is particularly useful for managing contamination in bases or isolating sections with abnormal atmospheres.



Bespoke Storage Options

We've introduced bespoke storage options: single-slot shelves designed for specific items. The initial implementations are for the Gas Mask and Fire Extinguisher, both emergency items that benefit from being easily accessible.





Future Content

In the change log you will see a lot of work is being done on the terrain update as well as some other features that will be released at a later time. You won't find any of this enabled, but we will post some screenshots soon with our progress.
   


Your support makes these updates possible

https://store.steampowered.com/bundle/2624/Stationeers_Complete_the_Set/




Change Log 0.2.5366.24104
  • Added first pass of global vegetation visualiser. It currently shows the global count of gorse, flax and grass and uses the clutter system to draw them.
  • Fixed soybeans not inhaling Nitrogen. Added life requirements data for soybean and updated plant.xml for soybean to point to the new life requirements data.
  • Added Grow-able plant versions of the Global Vegetation plants: Grass, Flax and Gorse.
  • Fixed null ref when looking at certain plants with the plant analyser tablet.
  • Fixed ImGui related build issue.
  • Added first pass on new terrain generation and put it behind a feature flag.
  • Removed some references to deleted objects in the worldmanager.
  • Removed some unused classes.
  • Committed removed metafile for terraforming script.
  • Fixed editor script being included in the build
  • Fixed Global Vegetation was using incorrect model for gorse and flax.
  • Fixed NRE when deconstructing iExtendable Structures.
  • Changed clutter chance calculation to use System.random as simplex-noise algorithm was not returning an even spread of results.
  • Added Models and scripts for future content.
  • Added easier to use debug helpers for imgui
  • Added first pass on mining new terrain.
  • Fixed error in WorldManager prefab instance in Scene.
  • Updated unity version to 2022.3.7f1
  • Added default colors for imgui debug methods.
  • Fixed an issue loading old saves with active weather event whether a partial weather event could trigger. (i.e items would get damaged and force applied but no weather effects)
  • Added scripts and prefabs for future content
  • Fixed Error spam when using vegetation debug command.
  • Changed Power Generated by wind turbines during storms is now effected by the storms wind strength, it will vary over time during the storm rather than be a fixed value.
  • Fixed mining new terrain was not subdividing octree in certain instances.
  • Fixed terrain generated from heightmap was offset from origin.
  • Improved performance of mining on new terrain (more improvements to come).
  • Fixed Performance regression in UI Update loop caused by creative spawn panel. There are still a number of issues with the panel so plan is to replace it with a new system as it is very old and poorly optimised.
  • Updated rider unity integration module
  • Updated unity linux toolchain modules
  • Fixed a performance issue with OreScanner cartridge. Players with one or more OreScanner cartridges in their saves will see increased fps.
  • Changed Global Vegetation can now use any plant type. Global vegetation plants now have a GeneCollection that represents the global average genetic make-up.
  • Added Dynamic Atmospherics Scattering driven off GlobalAtmosphere composition. (Only enabled when mixing to GlobalAtmosphere is enabled)
  • Added white GGHost logo to PreferredServerProviders folder and a commented reference in ServerProviders.xml
  • Added LayoutElement component to the ServerProviderButton.prefab
  • Moved serverProviderPanel from join game menu to create world menu
  • Refactored a few parts of terrain generation for better clarity.
  • Added Gas Mask. The gas mask just mixes with the external atmosphere while filtering any gas based on the filters inserted into it's two slots.
  • Added very basic first pass on minables showing up in new terrain. Not yet threaded.
  • Made mineables in new terrain drop ore when mined.
  • Added new Creative spawn panel. The old panel was rendered un-usable by the engine upgrade. The new panel uses Imgui and is much more resilient. Items are now listed by their localised prefab name and search functionality has been improved. Clicking on an icon or text will select the prefab and close the panel. Clicking on a plus symbol next to an item will spawn it while leaving the panel open. The window is now resizable and the previous search will be remembered upon re-opening the panel.
  • Fixed Server Build error.
  • Fixed Custom plants not showing in new spawn menu
  • Removed ability to click on text to select spawn prefab in creative spawn menu as the method to calculate it did not always work.
  • Tweaked terrain shader for new terrain.
  • Added the ability to specify a prefab hash for a slot during asset creation that restricts the slot to only accept the specific item.
  • Added gasmask storage that can only store the gasmask storage
  • Fixed gas mask slot types not being the correct type
  • Fixed missing thumbnails and blueprints
  • Added stationpedia entries for the new storage and the gas mask
  • Added fire extinguisher storage
  • Fixed authoring tool copy function being broken (hold F and attack to copy a target structure)
  • Fixed issue with server list not displaying
  • Made new terrain block air in most cases (wip - some edge cases still remain).
  • Added verbose logging in MoveToParent to help debugging corrupted saves
  • Fixed Stationpedia being moved offscreen when attempting to drag on while on the main menu. The window is still draggable while the game is running but will be fixed in place when in the main menu.
  • Fixed 'Mark Watney' and 'Still Mark Watney' achievement no longer working after plant update.
  • Removed unused plant prefabs (which are no longer in world manager).
  • Removed unused scripts inheriting from plant.
  • Slowed down mining slightly on new terrain.
  • Removed kit, recipe and related assets for stellar anchor which was partially removed from the game some time ago.
Stationeers - Not Simon
We have found and fixed the issue that caused us to roll back the last update.
https://store.steampowered.com/news/app/544550/view/4482864232593883517

The Issue
The last update introduced a critical issue related to plants. The new method for importing these assets made them susceptible to system language settings. While we have global settings in place to prevent such issues, they didn’t work as expected in this case.

The issue didn’t surface during testing, and we later discovered it only occurred on Windows 11. Since all our development machines run Windows 10, we were unable to reproduce it initially.

Another factor was the lower number of players on the beta branch. Over the past year, our update cadence has increased to roughly one update every two weeks. While this has encouraged more players to stay on the default branch, it also means fewer bug reports are coming from the beta branch. Overall, this is a positive trend, but it does reduce the chance of catching certain issues early.

Rolling Back
After spending an entire evening trying to resolve the issue, we decided the best course of action was to roll back the update. This allowed us to fix the problem without the pressure of the update being live.

Rolling back an update is always a tough decision, as it can disrupt players who have already loaded the new content. Fortunately, this update didn’t contain a lot of new content, so the impact on saves was minimal.

Thank You!
A huge thank you to the community members on Discord who helped us diagnose and retest the issue. Your assistance was invaluable, especially with such a difficult problem to reproduce.

We deeply appreciate your patience and support during this process!
...