19.9 C
New York
Monday, March 17, 2025

Stationeers Update 0.2.5499.24517 Patch Notes – March 17, 2025

A new Stationeers update 0.2.5499.24517 released on PC. According to the official Stationeers patch notes, the latest update 0.2.5499.24517 addresses some bugs and crashes.

Since the Stationeers, players are experiencing problems with the game. Today’s Stationeers patch 0.2.5499.24517 will fix a few of these issues.

Check out more details below.

Stationeers Patch 0.2.5499.24517 Notes – March 17, 2025

  • 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 64×63 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 4096×4096 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.

Download Stationeers update 0.2.5499.24517 on PC.

Related articles

FireAlpaca SE Version 2.13.10 Patch Notes – March 17, 2025

A new FireAlpaca SE update 2.13.10 released on PC....

UFO 50 Version 1.7.2.1 Patch Notes – March 17, 2025

A new UFO 50 update 1.7.2.1 patch notes are...

Journey to Incrementalia Update 1.28 Patch Notes – March 17, 2025

A new Journey to Incrementalia update 1.28 released on...

Deadlock Update Patch Notes – March 17, 2025

Deadlock update is now available to download on PC....

Skill Legends Royale Update Patch Notes – March 17, 2025

A new Skill Legends Royale update released on PC....