Update v0.2.5499.24517
From Unofficial Stationeers Wiki
CURRENT STABLE VERSION
| v0.2.5499.24517 | |
|---|---|
| Type | Big Update |
| Release | 17.03.2025 (Mon) UTC |
| Hyperlink | SteamDB |
| Adjacent Updates | |
| Subsequent | NO |
| Previous | Hotfix (v0.2.5370.24111) |
| Back to overview of all updates | |
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.
Contents
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.
The terrain system has been rewritten from the ground up
Melt Ice Instantly with Welding Tools
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
- 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.
Change Log
THE BIGGEST CHANGE LOG YET.
- [Added] Very basic saving and loading for new terrain (currently not async).
- [Added] Some more debugging for tracking terrain voxel densities.
- [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.
- [Added] 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.
- [Added] Pneumatic Mining Drill to the Mining Supplies Package.
- [Added] More aggressive distance cut off for wind turbine audio.
- [Added] Work-in-progress chunk pool class and wrapper class to reuse chunks at specific positions/LODs.
- [Added] Chutes to Meson Scanner rendering.
- [Added] Every 4 mine actions at an asteroid deposit add 1 scan point to the location.
- [Added] Confirmation panel step to delete node button on SpaceMap.
- [Added] SpaceMapDistanceMultiplier value to DifficultySetting (does not apply to distance to orbit).
- [Added] Ability to close the large fridge from the inside of the door (trigger collider extended through to the inside).
- [Added] Beds suspending life functions for humans; ILifeSuspender now uses IsSuspendingLife.
- [Added] Automatically changing name from Recruit to the player's Steam name on loading the player cookie.
- [Added] New 4x4km Grand Canyon map for internal testing of the new terrain system (currently inaccessible).
- [Added] First pass on terrain chunks loading near dynamic things.
- [Added] First pass on LOD for distant terrain chunks.
- [Added] First pass on improved LOD system for new terrain.
- [Added] Min and max terrain height to trim unnecessary LOD objects far above/below terrain bounds.
- [Added] First pass of stack on MediumSatelliteDish with small stack and instruction templates.
- [Added] Cached Vector3 position to chunk objects to avoid repeated casting cost.
- [Added] Checking for mineable occlusion to the player moves event.
- [Added] Event when the current player moves about a chunk's distance.
- [Added] AllTick that runs alongside ServerTick or ClientTick.
- [Added] First pass on pooling system for LOD meshes.
- [Added] TraderInstruction enum parsing to logic system.
- [Added] Second pass on internal stack memory for MediumSatelliteDish; TraderInstruction.WriteTraderData implementation.
- [Added] Third pass of internal stack for MediumSatelliteDish (buy/sell data writing and filtering groundwork).
- [Added] Ability to pre-populate LOD pools.
- [Added] Gas Type trading to the MediumSatelliteDish internal stack (buy/sell, bitflag gas types).
- [Added] Overlay text option for ImGuiDebugHelper.
- [Added] Fourth pass of internal stack for MediumSatelliteDish (buy/sell child prefab data and gas data; filter application).
- [Added] Fuel Mix and Air Mix GasType enums with recognized sprites (Hash Display circuitboard support).
- [Added] Hash Display Circuitboard mode (HashType.Prefab / HashType.GasLiquid) and logic slot set/load support.
- [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] Achievements command for debugging achievements.
- [Added] "Khajiit has wares if you have coin" achievement for over ten thousand revenue from trading.
- [Added] A hidden achievement.
- [Added] Three more hidden achievements.
- [Added] Difficulty setting for calm weather period multiplier.
- [Added] Difficulty setting for achievements; modders can configure (creative disabled by default).
- [Added] "Spherising" to new terrain shader.
- [Added] Ability to have voxel type in octree (option in place for future uses).
- [Added] Calculating normals from voxel data to achieve smooth normals.
- [Added] Data classes now receive which mod they are loaded from during initialization.
- [Added] Image overlay for modded Worlds, Start Conditions, and Difficulty Settings.
- [Added] Difficulty Settings can now be overwritten with mods (XML permissive replacement).
- [Added] SortOrder attribute option to world settings for ordering in the list.
- [Added] Yellow mod icon to the starting screens to show overwritten/loaded data.
- [Added] Caching of marching cubes object and mesh object to LOD object to reduce allocations.
- [Added] Timeout on the capsule lander light (stops at end of day 1).
- [Added] Some profiling tags.
- [Added] Additional localization commands to assist debugging/fixing localization.
- [Added] Additional checking for prefabs to the localization checkkeys command.
- [Added] Back missing code to remove rendered mineables from a chunk when returning LODs to pool.
- [Added] Desired depth parameter for getting octree density to fix high-LOD sampling seams.
- [Added] Concurrency setting for wall light sounds.
- [Added] Audio concurrency setting for Atmospherics Devices and Volume Pumps to reduce virtual looping sounds.
- [Added] AudioUpdate for things that need to change audio values regularly.
- [Added] TerrainSettings to world settings data for loading individual octree terrains with respective settings and textures.
- [Added] Audio concurrency settings for Deep Miners and Centrifuges.
- [Added] SuitStorage to PoweredDevices audio concurrency.
- [Added] Audio concurrency setting for Batteries & Transformers.
- [Added] Warning for possible issue when already returned LOD meshes are returned to the pool again.
- [Added] TerrainSpawnRequest class for spawning initial terrain colliders around player spawn location.
- [Added] Rolling lookup for LOD object state to track empty LOD objects that do not require mesh recalculation.
- [Added] Check to stop moved things requesting LODs multiple times in the same frame.
- [Added] Total count to LOD object cache.
- [Added] Another hidden test map into temporary folder in streaming assets (WIP).
- [Added] Check so LOD deletion queue can ignore already deleted LODs.
- [Added] New Minable Generation algorithm and data classes (equal weights for review).
- [Added] Minables can now be mined.
- [Added] VeinGenerationWorker class.
- [Added] Remove requesters step to LOD manager processing.
- [Added] Restriction for generating LODs so it won't generate at values less than zero.
- [Added] Back in LOD object debugging and removed some unused chunk debugging code.
- [Added] 64m and 128m test maps with correctly authored offset.
- [Added] New 4k test map with correct offset values.
- [Added] Spherization to Minables shader.
- [Added] Staggered explosion behaviour to remote detonator.
- [Added] Vein de-duplication step for new vein generation algorithm (prevents multiple types at same location).
- [Added] First pass on separating terrain deltas from map terrain data to lay groundwork for serializing terrain delta state.
- [Added] NewTerrain now only serializes delta changes rather than full terrain file.
- [Added] Flood fill method for filling voxels inside the terrain mesh.
- [Added] Helper methods for getting neighbour nodes from any given octree node.
- [Added] Clients now receive New Terrain deltas on join.
- [Added] Clients now receive terrain change updates from server.
- [Added] Horizontal size to floodfill to stop at map edges.
- [Added] New method for generating terrain from a heightmap that generates a "crust" then floodfills under it (faster; fixes "spongy" terrain).
- [Added] Missing horizontal size to floodfill.
- [Added] Function on node to get siblings directly below.
- [Added] New fill method for octree.
- [Added] ReadOnlyVoxelOctree class backed by a byte array (read-only).
- [Added] Additional debugging info for terrain performance testing.
- [Added] HelpText for TestOctreeCommand.
- [Added] New terrain ore veins are now saved and synced to clients.
- [Added] WIP octree fill method which is significantly faster.
- [Added] IOctTree and INode interfaces.
- [Added] Option to force octree rebuild on world load for debugging purposes.
- [Added] Debug console command to visualize terrain LOD boundaries in real-time.
- [Added] Support for biome-specific material overrides in new terrain system.
- [Added] Option in settings to adjust maximum visible terrain distance.
- [Changed] Commented out some terraforming code (temporarily) which was throwing exceptions.
- [Changed] Voxel debug position for new terrain.
- [Changed] Terrain generate-around-point function to generate in a cube instead of a sphere.
- [Changed] New terrain flag to be a symbol definition and added it to 'Stationeers > Symbol Definition' menu.
- [Changed] Allowed new terrain chunks to be different resolution.
- [Changed] Reduced audio voice limit as a possible fix for audio stuttering and volume issues noted in larger bases.
- [Changed] Audio voices back to 64.
- [Changed] Lowered large transformer reverb send.
- [Changed] Some ambience audio clips to load into memory compressed instead of streaming from disk to reduce streaming thread overload in larger bases.
- [Changed] Rocket Avionics, Rocket Downlink and Rocket Batteries to be single build-state devices for consistency.
- [Changed] Priority of rocket engine sounds.
- [Changed] Some rocket manufactory recipes to use steel instead of iron.
- [Changed] Deprecated old heat-exchanger devices.
- [Changed] OreScanner, MesonScanner & Celestial Scanner recipes to: 5 Silicon, 5 Electrum, 5 Waspaloy.
- [Changed] Stationeer Difficulty now has a 1.5x distance multiplier between SpaceMap locations.
- [Changed] Display name of Insulated Liquid Tank Big to Liquid Tank Big (Insulated) and Insulated Liquid Tank Small to Liquid Tank Small (Insulated).
- [Changed] Various improvements to chunk dirtying logic to remove allocations and unnecessary lookups.
- [Changed] Reduced reverb on loud distant objects.
- [Changed] Gas Generator audio reverb setting.
- [Changed] Build a basic power setup helper hint to match Europa power supplies start conditions.
- [Changed] Disallowed mining below bedrock level on new terrain.
- [Changed] LOD prefab so only LOD0 meshes have a mesh collider to speed up distant mesh generation.
- [Changed] LOD lookup to be an array of lookups, one per LOD level, allowing different levels at the same point.
- [Changed] Performance of checking loaded/unloaded LOD areas.
- [Changed] Enabled smooth normals for angles under 30 degrees on new terrain.
- [Changed] All power tools to consume a standardized amount of power (1000 J) on use; added BasePowerUsage for overrides.
- [Changed] Optimised collider setup on large wind turbines; fixed update now ~1 ms faster on large Europa base.
- [Changed] Separated occlusion testing and rendering for mineables for new terrain system and made it allocation free.
- [Changed] New mineables code to not use dictionaries to reduce lookup cost.
- [Changed] Ambient light mode from trilight to skybox when in-game (trilight in main menu/new world).
- [Changed] Added easing to transition in and out of eclipse.
- [Changed] Skybox settings during eclipse (Europa dawn moment).
- [Changed] Ambient lighting settings during eclipse for faint visibility.
- [Changed] Reduced default ambient light max intensity from 0.36 to 0.3.
- [Changed] DynamicGasCanisters no longer return the relevant kit when deconstructed after being broken; new _hasBlown state.
- [Changed] Layout of launch mount nodes relative to home planet nodes on the SpaceMap; icon overlay and travel direction.
- [Changed] Moved some helper functions into a dedicated LodHelper class.
- [Changed] Prevented DynamicThings from taking damage while inside a parent slot that hides them.
- [Changed] Cleaned up some achievement code with minor optimizations.
- [Changed] Optimized the Update100MS and Update1000MS method caching and made assessment automatic.
- [Changed] LOD settings to increase render distance of new terrain from (4,4,4,4,4) to (8,8,8,8,16).
- [Changed] Reverted change to terrain job processing to ensure we wait to finish jobs before the next frame.
- [Changed] LodObjects with requesters to have a 10x load value.
- [Changed] ProcessJobs waits for executing LOD object jobs as soon as ExecuteAll is called to fix error spam and dirty indices issues.
- [Changed] Cleaned up starting equipment list for readability.
- [Changed] Removed severe expensive memory allocations in LOD requester logic by caching collections.
- [Changed] LodManager work loop to be state-based to ease frame-time spikes.
- [Changed] Added back-face rendering to terrain to help hide seams.
- [Changed] Consolidation of queued LOD changes moved to where jobs are assigned.
- [Changed] Rewrote new terrain shader to fully support required features; removed unused features.
- [Changed] LODs now overlap at boundaries to hide seams (WIP).
- [Changed] OnNextDay to specific function calls and added IOnEachDay; reduces churn.
- [Changed] IAnimComponent to use a serializable base class and cache on base prefab generation.
- [Changed] Reduced the amount of the most distant terrain LODs as they were over the horizon.
- [Changed] Mineables now only rendered on LOD0 meshes and on chunks with a rendered mesh.
- [Changed] Some VoxelTerrain functions and fields to be static.
- [Changed] Tooltip on CrateMkII handles from "Button1" to "Drag" to match DynamicCrate.
- [Changed] LodObject helper class to be pooled to reduce GC when requesting/un-requesting terrain LODs.
- [Changed] Increased size of LodMeshRenderer pools (larger starting counts at lower levels).
- [Changed] Cleaned up LOD classes; pooled mesh object naming convention for pooled objects.
- [Changed] Moved LOD object pool to new LodObjectCache with active lookup management.
- [Changed] Increased distance of GetSafePoint for spawn raycast.
- [Changed] ImGuiHelper class active when RW_Server define is enabled to prevent dedicated server build failures.
- [Changed] Refactored terrain octree access through VoxelTerrainManager only.
- [Changed] LOD object pools to have one pool per LOD level.
- [Changed] Reverted ImGui changes from rev24361 to test Steam build issue.
- [Changed] Reinstated ImGui change from rev24361 (not source of issue).
- [Changed] LodManager only moves off idle when it has pending work.
- [Changed] Dynamic things request new LODs after moving a set distance rather than on chunk change.
- [Changed] LOD bounds to extend into the next LOD by one rather than back into previous by one; removed boundary indices setting for now.
- [Changed] Liquid Particle solvers deactivate game objects when idle to reduce physics overhead.
- [Changed] Things that run UpdateEachFrame now have this cached on the prefab (similar to 100ms/1s updates).
- [Changed] Furnace audio to be distance culled; added audio concurrency for furnace/arc furnace.
- [Changed] Moved Furnace and character audio logic into AudioUpdate.
- [Changed] AudioUpdate does not run in batch mode.
- [Changed] Move audio behaviour for CombustionCentrifuge from UpdateEachFrame to AudioUpdate.
- [Changed] Moved WindTurbine audio logic onto AudioUpdate and added separate concurrency for large wind turbine.
- [Changed] Smoothed suit foley audio to suit slower audio tick rate.
- [Changed] Further smoothed character foley audio.
- [Changed] Moved 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.
- [Changed] Refactored LodMeshCache to clearly define deactivated vs uninitialized objects.
- [Changed] Renamed LodMesh to LodMeshRenderer.
- [Changed] Moved request LOD logic into LodManager Update loop.
- [Changed] Recursive RunJobState method into a while loop.
- [Changed] Reverted spawnpoint changes due to missing LODs; will try using octree data.
- [Changed] Cleaned up creating of new LOD objects.
- [Changed] LOD object pool simplified and integrated with active lookup; fixes missing LODs.
- [Changed] Max terrain height in VoxelTerrain from 64 to 256 (terrain height will move to XML later).
- [Changed] Sizes of LOD object pools based on LOD level.
- [Changed] Normalised Minable density setting; 1 is now standard density.
- [Changed] Optimised minable vein placement algorithm.
- [Changed] Exception to console window error when reactivating a LOD mesh that is already active.
- [Changed] Upped pre-populate size of level 4 LOD mesh cache.
- [Changed] Moved Minable RenderBatch generation onto OcclusionManager threaded work.
- [Changed] Increased Minable render distance to 96m.
- [Changed] Refactored Minable Vein Generation to be multithreaded.
- [Changed] Dynamic things stop/start requesting LODs when they enter/exit a slot.
- [Changed] Some VoxelTerrain functions to be static.
- [Changed] Moved Minable Textures out of Resources folder.
- [Changed] Simplified DrawMeshInstancedIndirect.cs and made allocation free; removed unused methods.
- [Changed] Optimised Minable rendering to use DrawMeshInstancedIndirect.
- [Changed] Moved stale LODs list into LodManager.
- [Changed] Moved remove LODs into its own step in run job state.
- [Changed] 64x63 test map to use only full voxels (previous half voxels made mining feel weird).
- [Changed] Hooked up old mining behaviour to new terrain system.
- [Changed] Updated 4096x4096 test world to use correct ore weights and mine amounts/times.
- [Changed] Moved ore goggle meshes to XML data.
- [Changed] Increased render distance of explosives.
- [Changed] 64x64m test world to have maximum ore density.
- [Changed] Moved vein registration into oct-tree space for consistent behaviour with integer division.
- [Changed] Delta Node now calculates partner node on the readonly octree as needed rather than caching.
- [Changed] Refactored some functions in VoxelOctree with unclear arguments.
- [Changed] UV coordinates for charging bars color.
- [Changed] Cleaned up ambiguous Vector3 handling in terrain and minable functions.
- [Changed] Baked terrain data now stored in ReadOnlyVoxelOctree; player changes stored in VoxelOctree (90% RAM reduction, 70% load time reduction on 4k map).
- [Changed] Terrain LODs refresh faster when less work is scheduled (e.g., during mining).
- [Changed] Cleaned up relationship between readOnly octree and delta octree.
- [Changed] Octree constructor now requires pointer to a masterOctree (nullable if constructed octree is the master).
- [Changed] Improved internal logging for octree fill and node subdivision processes.
- [Changed] Adjusted default terrain density values for new maps to improve mining feel.
- [Changed] Increased chunk mesh batching threshold to reduce draw calls in large terrain scenes.
- [Changed] Reduced frequency of chunk dirty checks for distant terrain.
- [Changed] Optimized collider generation for high-density voxel areas.
- [Changed] Updated texture blending algorithm for smoother material transitions.
- [Changed] Reduced memory footprint of terrain chunk data structures.
- [Changed] Increased maximum number of active LOD meshes allowed at once.
- [Changed] Improved delta octree serialization to reduce save file size.
- [Changed] Smoothed LOD swap transitions for nearby terrain to reduce popping.
- [Changed] Reduced priority of distant terrain generation threads.
- [Changed] Adjusted terrain vertex welding tolerance to fix micro-seams.
- [Changed] Optimized chunk pooling system for faster reuse of recently unloaded chunks.
- [Changed] Improved terrain culling logic for better framerate in dense areas.
- [Changed] Reduced LOD mesh complexity for far-distance terrain to improve performance.
- [Changed] Increased terrain mesh streaming buffer size.
- [Changed] Reworked terrain shader lighting model for more accurate shadows.
- [Changed] Reduced terrain texture resolution for extremely distant chunks to save VRAM.
- [Changed] Improved parallelization of terrain mesh baking jobs.
- [Changed] Reduced memory allocations in octree flood fill algorithm.
- [Changed] Increased default thread count for terrain generation on high-core CPUs.
- [Changed] Balanced terrain LOD update frequency to prioritize visible areas.
- [Changed] Reduced load times for large maps by batching LOD initialization.
- [Changed] Adjusted lighting falloff for better underground visibility.
- [Changed] Rebalanced ore vein density for testing purposes.
- [Changed] Optimized save system to skip unchanged terrain deltas.
- [Changed] Tweaked LOD level distances for better visual consistency.
- [Changed] Improved synchronization of terrain state between clients and server.
- [Changed] Reduced garbage collection spikes during terrain updates.
- [Changed] Updated debug tools to include terrain mesh complexity metrics.
- [Changed] General performance and stability improvements to new terrain system.*[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.
- [Fixed] Error spam when looking at drinking fountain when it has no pipe connected to it.
- [Fixed] Minables not generating deterministically in new terrain.
- [Fixed] Some chunks not generating if they are on the very edge of the world resulting in some holes in the terrain.
- [Fixed] New terrain not saving in backups or autosaves.
- [Fixed] Nullref when exiting tutorials.
- [Fixed] Possible nullref when mining on new terrain.
- [Fixed] Switchgrass had two mature stages.
- [Fixed] Locker kit having the wrong default option selected; LastSelectedIndex was being serialized into prefabs, affecting other kits. Marked as nonserializable so all kits use their 0th constructable as the default.
- [Fixed] Low quality, pixelated lens-flare for the road flares.
- [Fixed] Station batteries, small and large, not requiring frame support.
- [Fixed] SensorLenses would get burned by fire when worn while helmet was closed.
- [Fixed] Glasses would get burnt when helmet slot was closed.
- [Fixed] Broken build state of the Area Power controller being visible in the blueprint when placing it.
- [Fixed] Issue with filter degradation in the FilterMask when not being worn.
- [Fixed] Pressure Regulator and Volume Regulator setting tooltip not showing input setting for back regulators.
- [Fixed] Meson Scanner not showing burnt cables and burst pipes.
- [Fixed] Rocket Uplink buildState used Cable Coil Heavy instead of standard Cable Coil.
- [Fixed] Storms not moving items on dedicated server.
- [Fixed] Rocket umbilicals revert to closed state on load.
- [Fixed] In-world liquid could be hidden under floors & liquid visualiser would sometimes clip through ceilings.
- [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.
- [Fixed] Mineables generate correctly around player as chunks are created.
- [Fixed] Mining 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.
- [Fixed] Mining new terrain doing unnecessary work subdividing nodes when sampling density.
- [Fixed] Potential fix for T-Ray scanner throwing exceptions.
- [Fixed] Wrong texture file for Sugarcane plant.
- [Fixed] Fragment Handler exception when de-serialising atmospheric data on joining a server with a very large base.
- [Fixed] Meson Scanner throwing exception trying to render an invalid batch.
- [Fixed] "Setting linear velocity of a kinematic body is not supported" spamming in dedicated server console.
- [Fixed] String format error spam when looking at a pipe atmosphere or other atmospherics device with pressure > 1 GPa.
- [Fixed] APC still works when destroyed.
- [Fixed] APC reversed blueprint.
- [Fixed] Incorrect build-state tools on composite window shutter connector.
- [Fixed] Can't close manual hatch when on a ladder.
- [Fixed] Mining works again on new LOD meshes.
- [Fixed] Some atmosphere grids getting stuck with high winds on clients.
- [Fixed] Medium shelf blocking grid extending too far from the front of the shelf.
- [Fixed] Mining works with LOD meshes for new terrain.
- [Fixed] Editor script included in the build causing it to fail.
- [Fixed] Ice will now melt when put into DynamicGasCanister slot when the canister is empty.
- [Fixed] AllTick being run every millisecond.
- [Fixed] Default ambient light not set on planets with no atmospheric scattering (Unity default 800% overexposed terrain).
- [Fixed] LOD requesters remove themselves from LODs correctly when destroyed.
- [Fixed] RocketMotherboard required a connected rocket in order to open the map; panel now opens without a rocket (with limitations).
- [Fixed] Several issues where LOD objects were queued for generation multiple times.
- [Fixed] Two dynamic location panels created for starting node when loading game with existing launch mounts.
- [Fixed] Experimental fix for multiple concurrent clients joining causing multiplayer desync issues.
- [Fixed] Harvester contained coroutines; moved to UniTask to reduce churn when called via IC scripts.
- [Fixed] DEFINE instruction producing NaN due to not checking Enums/defines.
- [Fixed] Use of allocating physics commands; switched to non-alloc versions (explosions now interact with max 1000 colliders).
- [Fixed] Thread profiler not working with terrain threads; use profiler enable to profile terrain threads.
- [Fixed] Spawn item data in the new world process text size and background image issues in UI; improved icons.
- [Fixed] Mod load order being done in reverse; now loads in displayed order.
- [Fixed] Incorrect spherical effect variables on terrain2 material.
- [Fixed] Mods could not replace various things (worlds/difficulty/start conditions) — now allowed.
- [Fixed] modconfig.xml generation path; now saved with other save/settings files and load order respected (fixes GeForce Now issues).
- [Fixed] Upright wind turbine data port changed to power+data (credit: Tsoleht).
- [Fixed] Sun flare not showing through the glass of StructureCompositeWindowShutter prefab.
- [Fixed] Rare null reference when autosave attempted during specific phase of character death.
- [Fixed] Tablet not working until hands are swapped if in left hand on load.
- [Fixed] VoxelTerrain.cs generating ~50kb GC per frame; refactored to pre-allocated arrays.
- [Fixed] If statement formatting for previous commit.
- [Fixed] Serious issue preventing joining/hosting multiplayer with hostnames containing non-ANSI characters.
- [Fixed] LodMesh prefab not on terrain layer.
- [Fixed] Some text boxes contained illegal string keys causing localization exceptions.
- [Fixed] Many text renderers had no font switching and lacked localized strings.
- [Fixed] Massive quantity of localization issues due to missing localized font calls (credit: MRhythm).
- [Fixed] Performance issue with ObjectPool where returning an object was expensive for large pools.
- [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.
- [Fixed] Missing RW_Server check in localization.cs.
- [Fixed] Error spam when reloading into a world caused by pools not being correctly reset.
- [Fixed] Instances where LODs would render around dynamic things when they shouldn't.
- [Fixed] Dedicated Server build issue.
- [Fixed] Black seams at LOD overlaps; disabled shadow casting on overlap meshes.
- [Fixed] Rendered mineables not being cleared when leaving a game.
- [Fixed] Null ref when closing and then creating a new game.
- [Fixed] Sounds triggered by interactables calling play logic multiple times.
- [Fixed] Looping sounds paused for concurrency getting stopped.
- [Fixed] OnOff sound reversed for wall light.
- [Fixed] Tooltip incorrectly indicating the stack in hand was full when hovering over another item in a locker.
- [Fixed] Prefab audio issue on wind turbines from previous commit.
- [Fixed] Issues where LOD meshes were not being returned correctly to their cache.
- [Fixed] Recursive call in PooledAudioSource.ReturnToPool() via Stop().
- [Fixed] HighPassFilters not being disabled when audio sources were disabled.
- [Fixed] Client with IC editor open + storm could pause and desync position; pause button now has no effect in multiplayer.
- [Fixed] Client being able to pause their game via Stationpedia pause button in multiplayer.
- [Fixed] Lumps around mine-ables with new terrain.
- [Fixed] Player spawning under the terrain; now looks at octree to determine spawn.
- [Fixed] World-size not being applied to voxel terrain on loading map.
- [Fixed] ProgrammableChip clipping through advanced tablet screen (missing base.OnEnterInventory call).
- [Fixed] Valve flow direction arrows applied incorrectly to digital valves (they can mix both directions).
- [Fixed] ThreadWorker.Workers and ThreadWorker.NextWorker incorrectly set to static.
- [Fixed] SuitStorage not removing gas from stored suit's waste tank if no internal pressure.
- [Fixed] Respawning not cleaning up LODs for old player body; now cleared and regenerated.
- [Fixed] OutOfBounds terrain being rendered.
- [Fixed] Offset not being correctly applied to terrain resulting in spawning in a corner.
- [Fixed] Social media buttons not working when clicked inside GameMenuPanel.
- [Fixed] Bug where multiple requesters could not find existing active LOD meshes.
- [Fixed] LOD mesh cache state when LOD object meshes cleared before re-processing; retain meshes if still active.
- [Fixed] Hitching when executing terrain jobs due to too many worker threads; now uses processor count - 4.
- [Fixed] Build error.
- [Fixed] Ore Goggles now work with new terrain.
- [Fixed] Explosions now work with new terrain.
- [Fixed] Missing shader from previous commit.
- [Fixed] Dirt Canister not showing DirtCanisterState without parent Voxel Tool.
- [Fixed] Items fall through the world when loading a save with new terrain; generate all requested LODs before unpausing on load.
- [Fixed] New terrain not deforming when explosion happened.
- [Fixed] Issue with Dirt Canister not showing correct DirtCanisterState in world or on client (call SetDirtCanisterState appropriately).
- [Fixed] Visualizers on the DirtCanister prefab (incorrect meshes and UVs).
- [Fixed] Client joining session null reference preventing host from continuing (terrain settings null on new terrain load).
- [Fixed] Voxel tool now works with new terrain.
- [Fixed] New terrain and minables alignment with large grid (offset by 1/2 voxel size).
- [Fixed] Voxel Tool not using the last bit of dirt due to incorrect comparison in CanRemoveDirt.
- [Fixed] Desired depth not evaluated correctly in getDensity; fixed terrain seam and improved distant fidelity.
- [Fixed] Places where a depth argument was taking a size for octree calculations.
- [Fixed] Performance issue with ReadOnly octree causing getDensity to take too long.
- [Fixed] Bug where sequential ladders on opposite sides of a wall teleported the player.
- [Fixed] VoxelTerrain.MaxDepth pointing to Octree when ReadOnlyOctree was initialised.
- [Fixed] Incorrect handling of symbol definitions when loading octree data from saved games.
- [Fixed] Terrain seams appearing when mining at chunk boundaries in certain LOD transitions.
- [Fixed] Incorrect LOD object cleanup when unloading worlds with active dynamic objects.
- [Fixed] Null reference in terrain shader when switching between worlds.
- [Fixed] Terrain texture tiling issues on steep slopes.
- [Fixed] Missing collisions on thin terrain edges after mining.
- [Fixed] Lighting artifacts appearing on certain terrain LOD meshes.
- [Fixed] Audio occlusion not updating when terrain is mined away.
- [Fixed] Incorrect saving of modified terrain deltas when using quicksave.
- [Fixed] Crash when loading worlds with missing delta octree references.
- [Fixed] Incorrect mesh normals on LOD1 and LOD2 terrain chunks.
- [Fixed] LOD generation stalling when multiple dynamic objects request updates simultaneously.
- [Fixed] Terrain not refreshing properly when switching graphics settings mid-game.
- [Fixed] Wrong collision layer applied to certain LOD mesh colliders.
- [Fixed] Error spam when unloading large worlds with active terrain jobs.
- [Fixed] Inconsistent terrain coloring when transitioning between biomes.
- [Fixed] Hole in terrain at chunk borders after mining in multiplayer.
- [Fixed] Rare nullref when unloading terrain jobs during game shutdown.
- [Fixed] Incorrect ambient occlusion data on newly generated terrain chunks.
- [Fixed] Edge cases where mining under structures caused visual gaps.
- [Fixed] Missing collision on thin terrain overhangs.
- [Fixed] Crashes related to invalid LOD object states when rejoining a server.
- [Fixed] Issues with terrain streaming in during fast player movement.
- [Fixed] Certain terrain decals not rendering at long distances.
- [Fixed] Incorrect LOD mesh assignment in rare race conditions.
- [Removed] Mineable type from octree data. This will be stored elsewhere.
- [Removed] A couple of storm sounds that were too tonal.
- [Removed] Duplicate ItemKitRocketBattery prefab.
- [Removed] Old chunk object and replaced it with a non-MonoBehaviour chunk.
- [Removed] Smooth normals for new terrain.
- [Removed] Temporary property from DynamicGasCanister left over from previous commit.
- [Removed] Apply queue for terrain mesh jobs as it is not needed.
- [Removed] Unused Obi Solver plugin as it was causing builds to fail.
- [Removed] Unused test LOD requester class.
- [Removed] Steam check before awarding achievements; cleaned up memory garbage and auto-generated backing dictionaries.
- [Removed] Old terrain LOD when new terrain flag is active.
- [Removed] Duplicate IThreadedWorker class.
- [Removed] Unused debug draw on LodMeshPool.
- [Removed] Unused TerrainManager class.
- [Removed] Shadow boundary culling code remainder as no longer required.
- [Removed] Unused shadow changing code on the LOD object.
- [Removed] HPF filters from wind-turbine audio to reduce DSP load.
- [Removed] 4k test map.
- [Removed] Some unused debug functions from VoxelTerrain.
- [Removed] Unneeded locks on some LodManager functions (all calls from main Unity thread).
