Dec 13, 2023
Stationeers - Not Simon
This hotfix addresses two main issues: the new world artifacts sometimes being present in the skybox, and a checksum error related to traders, but also includes a number of other small fixes.

  • Updated text on rocket info panels to be right aligned to make it consistent with other ui text in the game
  • Reverted Changes to combining stacks of reagent-mixes as this was causing floating point errors in some cases that could cause furnace recipes to stop working.
  • Changed moved reagent-mix Stacking changes to SpaceOre.cs. These still need to implement the new system as their contents add up to less than 1.
  • Changed DirtyOre mined from space that is processed in the recycler will waste half of its contents.
  • Changed the names of the space maps root nodes to be the 'planet orbit'
  • Added Back button on NewWorldMenu now clears all preview scenes
  • Fixed (dev) null reference when attempting to load first world selection as world data might not be loaded yet.
  • Fixed default world selection would be the first world preset, even if it was a hidden world. Credit: Freeze.
  • Fixed giant space person in sky when loading into a game. The main menu scene was not being cleared when loading into a game. Now forcing the main menu preview scenes to be cleared before entering a world.
  • Fixed liquid to liquid passthrough heat exchanger has one input incorrectly configured to be a gas input
  • Fixed MoveToWorld for dynamic things was setting the rotation to the local rotation rather than the world rotation causing things to collide with their old parent and fly off at high speed.
  • Fixed Plant state Visualizer throws error when destroyed by fire.
  • Fixed Error on client when furnace flame material was set from thread.
  • Changed trader checksum string to use Invariant culture.
  • Fixed occasional temperature low warnings when playing on Europa, due to status update occasionally assessing temperature in between radiation and suit AC step.
  • Temporarily disabled suntime command as it is causing the game to crash
  • Removed DepositMaterial SaveData classes.
  • Fixed Asteroid Minable deposit composition static data was being needlessly saved preventing fixes to data propagating into save games.
  • Added Additional data validation to MinableDepositDaata in SpaceMapData
  • Fixed spelling error in Deposit Composition of OrbitingAsteroidFragments05 caused game to fail to save when that asteroid had been generated
Dec 12, 2023
Stationeers - Not Simon
This updated contains changes to data and prefabs that will break some saves. Old rockets have also been removed and will no longer be present in your saves. We have created a branch that will be frozen pre this rocket update: prerocket
Rockets

Rockets are often considered a final goal in Stationeers. However, instead of designing them as an end game necessity, we’ve instead treated them as another system that weaves itself into all the other systems of the game. Rockets support building stations, and stations support building rockets.

Previously, the rockets were simple yet unforgiving. It was hard to tell what was happening, unless you already knew everything about rockets. You functionally had to build the best rocket system from the start, else your rocket was likely to be lost. Lastly, the old rockets flying were simplified down to a single number increasing and decreasing on the wall, which was ‘a bit’ of an oversimplification of space flight.

Rockets have become a new system for you to engineer. They are built from structural fuselages which house many internal parts. Fuel tanks must be manually positioned and plumbed. Similarly, placing batteries, cargo storage, pipes, wires, chute and many more devices is now a challenge for you to make decisions on. Will you choose an engine that slowly pulls its own fuel, or one that chugs more and more fuel as you pressurize your pipes toward bursting?

This is a massive update for the studio and our team, adding a ground-up rework of Rockets into the game. This not only provides fantastic new content for you to experience - but sets the stage for us to expand the game in a whole host of directions.

Times have been tough for many game studios lately and Stationeers is a very niche project. You - our players - are a very important part of our development, so please consider buying our supporter content DLC, leaving reviews, and helping spread the word about the game to people who might like it.

Despite all the challenges in the gaming industry, our studio hopes to continue to grow closer to our players, serve interesting niches and regularly update our games. While not a profitable project (our typical daily revenue including DLCs is around USD 800 gross, roughly 400 of which makes it to us), Stationeers is important to all of us in the studio. We hope that shows in the hard work we do with our updates, and we feel this one is no exception.

Not only does this update contain an entire new game around Rockets, it also contains a massive array of performance, usability, and general fixes. Our change log is so big that we can’t fit all of it in this post.


- CEO Dean Hall
International Uniforms Pack

This pack adds cosmetic uniforms featuring fifteen different international markings for wearing on characters in Stationeers.

Our DLC was made to provide a way for those who enjoy the project and want to further support it, and in return receive some simple new content. This content is not essential for the game. Consider purchasing this if you want to further provide support to its ongoing development.

https://store.steampowered.com/app/2542990/Stationeers_International_Uniforms_Pack


Rocket Details
Rocket Control Motherboard
Devices on the rocket can be remotely accessed through the Rocket Control Motherboard. Specifically, the motherboard gets to traverse through the new datalinks. When an uplink/downlink pair is setup, the motherboard can access devices on the rockets and the rocket devices are made available on the uplink's network. This allows planetside logic devices to see rocketside devices on the networks, so traditional logic systems can still interact with rocket devices.

The Rocket Motherboard provides a visual representation of destinations to which rockets can travel. Each world has a uniquely authored map providing different locations and resources for rockets to obtain. When a destination is set, and the rocket engine is fired, rockets progress towards their destination. Scanners can be used to unlock new static destinations through the Chart action, instance new asteroids to visit by the Discovery action, or gather more information about a mining site via the Survey action. All these UI based actions and commands can also be activated via logic on the rocket avionics device.

Rockets act as a way for players to obtain resources and gasses. But Rockets now provide a framework for us to modify other aspects of the game. While not making the first cut of features for this release, we intend to add satellite deployments which can increase the number of traders who visit, contact bespoke traders, or even microwave remote power from space. We also want to ensure that traveling to other planets get enough attention, and isn't a side note. Traveling back and forth between worlds will be possible, but will require some significant changes to our save system.

Engines

Engine selection is important, as it dictates how efficiently you use fuel and how much thrust you can produce. The Pumped Gas Engine and Pumped Liquid Engine are the two simplest engines, pulling fuel directly from pipes and tanks. The Pressure Fed Gas Engine operates on gaseous fuel, and can produce the most thrust, but the fuel must be delivered to the engine at high pressures to be better than pumped engines. The Pressure Fed Liquid Engine can be the most fuel efficient, but managing liquid fuel flow via pressure can be incredibly challenging in such a dynamic environment.

Payloads

Miners and Scanners do the bulk of the work in space gameplay. Miners gather ore, and output it into chute networks for transport to Cargo Storage. Scanners are used in three ways to explore space, unlock new destinations, and gather information. Miners and Scanners have a head slot that must be occupied by a mining/scanning head, else the device will not function.

Infrastructure

Interfacing with the rocket on the launch mount is predominantly done through umbilicals. These consist of a main umbilical device placed inside of a launch tower. The umbilical can then connect onto an umbilical socket placed in the rocket. Variants exist for power, gas, liquids, and items. To allow better accessibility to the rocket during construction we’ve added several new stairwell variants, along with extendable access bridges.

Fuselages

We’ve added several cosmetic variants for the rocket fuselages, so that not all rockets have to look and feel the same. We took inspiration from the Mercury Redstone and Saturn V.

Rocket Control UI

We wanted to improve the accessibility of rockets, so that players who can't manually assemble a little-endian address in logic can still use rockets. The Rocket Motherboard has 3 main pages. The “Rocket” tab allows you to see and control devices, in a much more graphical way, which is important since when in space, you can't use your tablet to debug issues. The “Map” tab lets you see all of the locations you’ve explored, and see rockets moving around in space. The "Location" tab lets you see specific information about a location, if it has links to other locations, if it can spawn minable asteroids, or if it has resources to mine. It's also where you will start rocket actions, such as mining and scanning, which interact with the location.
[expand type=Click to reveal a wallpaper version of this weeks wonderful patch artwork][/expand]



Traders


As well as rockets we've also given traders a little love, including adding lights and other visual improvements and cleaning up the assets to make them more performant. There has been a specific focus on improving tooltips on the traders, and they should now provide much better information about what you are buying and selling. There are also a lot of bug fixes focused on traders.

New Traders
The new traders consist of three types: a Consumable Trader, similar to a convenience store, selling items like duct tape, cereal bars, and other useful goods, a Liquid Trader, specializing in bulk quantities of liquids such as liquid nitrogen, liquid volatiles, and water, and an Appliance Trader, who sells appliances and purchases materials required for creating them.

New Data Structure
To support new functionality, we have revised the data structure for traders. There is now much more functionality for us to make unique traders. It’s also easier than ever to make new trader mods. This does means existing trader mods will need to be rewritten.

Care Packages


Traders will sometimes want to buy care packages that contain a specific set of items. These care packages can be created by filling a cardboard box with the required items. Sometimes traders will pay handsomely for these key supplies and allow for a good profit to be made.

Tool-tips


We've placed a significant emphasis on enhancing tooltips across all aspects of the game. Our goal is to display more comprehensive and accurate information, ensuring players have a better understanding of game-play and mechanics


Orbital Simulation


Our old skybox was based on what was effectively a "geocentric" world. The sun of the world would follow a predictable path in the sky, with only the angle of its rotation being configurable. Additionally objects in our skyboxes, such as the Earth in our Moon world, or Jupiter in our Europa world, were static objects in the sky.

As part of other prototypes and ongoing work at the studio, we developed an excellent way to model orbital mechanics using Kepler's laws of planetary motion. All skybox objects are now configured to be based on a real simulation, with planetary movement in the sky. Currently, this is mostly cosmetic but offers massive potential in the future for us to expand on our Rocketry update. For now though, the main impact will be on the apparent movement of the world sun. Your world now has its own orbit, so your suns' apparent motion will change throughout the orbit - giving you seasons which will affect solar irradiance.

Visually the results are stunning. Europa now shows a revised Jupiter with animated clouds and all the major Jovian moons. Saturn has also had a face lift.

World Data Changes

In line with the orbital simulation changes we have refactored how world data is stored. Previously, it could be defined as a 'template' and then used to initialize a world save. This was handy in that it allowed you to tweak a lot of settings in a save. but it also baked any bugs into your save and made synchronization and serialization in multiplayer very problematic. This was a source of a number of nasty desync bugs. So we have rationalized this together and firmed up how this works. To make a custom world you will need to make a mod. And this world data is loaded each time, not from your save but from the game data. These changes will break saves on old custom worlds.

World Difficulty Information

As part of the first steps of our future work to cleanup survival and game information in general, some substantial changes have been made to how we store and display difficulty settings. As before, these are fully moddable but we have also extended what can be included and changed in a difficulty setting. When starting a new world, the screen will show you information about that world, such as the atmospherics, storms, and any other important information.

When you select a difficulty, the new world screen will clearly show you the impact of that change. You can change the difficulty after loading with the 'difficulty' console command, followed by the name of the difficulty you want to select (case sensitive).

Performance Improvements
Occlusion
We've simplified our approach to occlusion to make it more constant and provide a significant performance improvement. Previously, the render distance was set individually for each object, leading to inconsistencies in how objects were displayed and shadowed across the game. To address this, we've shifted to a type-based system for determining render distances for both meshes and shadows. This means that objects of similar types now follow a uniform standard for visibility and shadow casting.

This refinement has substantially improved game performance, particularly in areas with complex structures. During our tests, we noticed a marked improvement in frame rates. For instance, a test map that previously achieved 30-35 fps on medium settings now smoothly runs at a full 60 fps on high settings without any noticeable frame drops, regardless of the viewing direction. This update is a game-changer for players with extensive stations, offering a smoother and more visually consistent experience.

Atmospherics
There were some instances where a very large number of atmospheres could be present in the world. We've made some changes around how world atmospheres equalize back to the global atmosphere meaning that if you ever see many thousands of world atmospheres they should quickly be reduced to a reasonable amount.



We need you!
Stationeers is a small niche project. We know times are tough and our project isn't for everyone. So if you like the work we do, we would love to encourage you to spread the word, grab our supporter DLCs, and watch Stationeers content creators on places like twitch and youtube. We want to keep developing this game for many years, well beyond any early access release and to do this we need your support

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

A special thanks to Freeze for the extensive testing and feedback that they provided. It was more than helpful, it was essential feedback for getting this update out.

Change Log 0.2.4657.21547
We do not filter or redact our patch notes so these patch notes include work we are doing on the rockets that are not yet available in the game.
Change Log
Stationeers - Rocket
Our developer friends at Geometa who make Stormworks just announced a SPACE DLC! Many on our team (including myself, perhaps especially myself even), love Stormworks and play it a lot. They're a great team and they understand the difficulties around working on games of this nature. Considering checking our their page for the DLC and giving them a wishlist! I will absolutely be trying this out when it launches on 13 October.

https://store.steampowered.com/app/2383250/Stormworks_Space/

We don't have any affiliation with Geometa or Stormworks, we just love their game and consider them our close developer friends. If it looks like your kind of game, consider giving them a wishlist.
Aug 22, 2023
Stationeers - Not Simon
This hotfix addresses some issues with the new atmospheric mixing that was causing potential for infinite ices spawning in world atmospheres as well as atmospheres not equalizing correctly in some 2x1 rooms.

  • Fixed bug where clients could accidentally exit sleepers when leaving a game
  • Fixed a few visual issues with new bench cords
  • Fixed unable to attach appliances to some bench variants
  • Fixed Infinite Ice spawning in vacuums that could sometimes happen due to incorrect handling of NaN values when calculating mix ratios in MixInWorld.
  • Fixed PureIce SpawnContents and melt Temperature not being serialized.
  • Added IsValid check to spawngas.
  • Fixed issue where two isolated atmospheres could remain unbalanced.
Aug 20, 2023
Stationeers - Not Simon
Atmospheric Simulation
Today we’re going to go into detail about the atmospheric simulation in Stationeers. We’ll give a short walkthrough about how we identify issues, think of solutions, test and iterate until we’ve solved problems or added new features. Specifically World Atmospheres, and how they move gas throughout the game, and especially how fast vacuums form.

Of the many complex systems Stationeers models, the atmospherics simulation is the most defining. Two times per second; pumps move gas, filters split compositions, pipes check for bursting, and much much more. A lot of the gas the player interacts with comes from the world, or ends being vented there. Unfortunately, the speed to pull a vacuum in world has always been one of the largest bottlenecks for Stationeers.



Table of times of original vacuum times
6 Tile Airlock Test
100kPa to 10kPa*
10kPa to 1kPa
100Pa
10Pa
1Pa
Legacy Code
28s
18s
37s
1m32s
2m05s
Medium Room (5x5x5) Test
100kPa to 10kPa*
10kPa to 1kPa
100Pa
10Pa
1Pa
Legacy Code
10m
3m10s
6m45s
10m15s
13m45s
*The initial 100kPa to 10kPa time is solely driven by the active vent speed, and this is not summed into the proceeding columns.
These tables demonstrate the power of the active vent. 90% of the air can be pulled rather quickly, but as soon as the World Atmosphere hits the vacuum floor, removing the remaining 10% of the air can take 200%-400% more time than the original 90%.

Twice per second, every World Atmosphere in the game mixes with its neighbors. In world atmospheres, are large 2m*2m*2m cubes containing 8000 liters of gas, and do a multistep job of equalizing itself and any of its 6 neighbors every half a second. This has worked well for distributing air around in the game, but has its limitations, when one tile is being vacuumed.

Even if one tile was very low pressure compared to its neighbor, the high pressure tile would still take a tiny part of the low pressure tile for itself. In very low pressure situations, this effect was significant. So what happens if we pick a fixed value, and say tiles cant take from smaller than 80%, and also wont give to tiles bigger than 120%. Not only might this speed up vacuum mixing, but it would also allow high pressure flows, to keep low pressure gasses from mixing upstream, a bonus feature.



Comparison with First Attempt
6 Tile Airlock Test 10kPa
1kPa
100Pa
10Pa
1Pa
Legacy Code
18s
37s
1m32s
2m05s
Attempt 1 (No upstream mixing)
6s
13s
22s
30s
Medium Room (5x5x5) Test 10kPa
1kPa
100Pa
10Pa
1Pa
Legacy Code
3m10s
6m45s
10m15s
13m45s
Attempt 1 (No upstream mixing)
2m10s
4m45s
7m15s
9m45s
In a 6 tile large airlock, the vacuum stage of cycling performance is 300% better, and in our large room its 40%. The large room doesn't see as much of a time decrease, because that amount of air is just able to keep the vent more saturated, but at 4 minutes faster, it's still a huge improvement.

However, with our over simplification of the problem, and first attempt at a solution, we’ve introduced a slight issue. Since the taking, or giving of air, isnt just the comparison of two atmospheres, but instead 6, we can find ourselves in a situation where all the higher pressure atmospheres give us a portion of their air, and we end up being higher pressure than any single one of the atmospheres. Then the next tick, the situation has reversed, and the air exclusively moves away. This mass rebounding would only happen in certain setups/configurations, but created a vortex of death when it did.



So, lets add some math to reduce the mixing amount so no single tick can make an atmosphere overshoot its neighbor’s pressure and see what happens.

Comparison with Second Attempt
6 Tile Airlock Test 10kPa
1kPa
100Pa
10Pa
1Pa
Legacy Code
18s
37s
1m32s
2m05s
Attempt 1 (No upstream mixing)
6s
13s
22s
30s
Attempt 2 (Fixed 14% mixing limit)
15s
31s
47s
1m3s
Medium Room (5x5x5) Test 10kPa
1kPa
100Pa
10Pa
1Pa
Legacy Code
3m10s
6m45s
10m15s
13m45s
Attempt 1 (No upstream mixing)
2m10s
4m45s
7m15s
9m45s
Attempt 2 (Fixed 14% mixing limit)
2m30s
5m25s
8m20s
11m15s

This fix addresses the problem while maintaining no up-pressure mixing, but directly counters our biggest desire to have vacuums pull faster.

Compromising on the first theorized ‘solution’ of eliminating backwards mixing to speed up vacuums. What if we still take large portions, but scale it based on how many neighbors, and change the 20% bigger/smaller take limits, into linear interpolations, where we just start scaling and taking/giving less, instead of taking none/all.

Comparison with Third Attempt
6 Tile Airlock Test 10kPa
100kPa to 10kPa
10kPa to 1kPa
100Pa
10Pa
1Pa
Legacy Code
28s
18s
37s
1m32s
2m05s
Attempt 3 (1/open+1)
27s
7s
15s
24s
31s
Medium Room (5x5x5) Test 10kPa
100kPa to 10kPa
10kPa to 1kPa
100Pa
10Pa
1Pa
Legacy Code
10m
3m10s
6m45s
10m15s
13m45s
Attempt 3 (1/open+1)
9m 30s
2m16s
5m
7m40s
10m10s

This third attempt nearly has the speed of our first attempt, while fixing issues with bouncing pressure waves.

So while our test case mainly focused on pulling vacuums, these changes dictate the general movement speed of gas even when in a sealed hallway. Gas leaks spreading through your base, holes exposing your atmosphere to the outside, or any other period of high pressure differential, should feel more significant, and happen quicker.

While our solution didnt fully prevent ‘up pressure’ mixing, many situations, such as accidentally opening a window on europa, now behave in a much more expected manner. Very little cold air will leak in while your nice base air blows outwards, but as soon as the wind dies down from the dropping pressure, the ice europa air will overtake the room.

Hopefully you’ve enjoyed this peak into just one portion of the many simulations we need to constantly run to keep your stations ticking. Revisiting core functionality can be risky as we could suddenly break everyone’s bases, but when we have clear goals, and reference points to aim for, this is the sort of careful approach we like to take.

And by the way, we recently added two new devices to the game, the powered vent, and large powered vent. These vents are allowed to traverse neighbor atmospheres when pulling a vacuum to do so even quicker. At the low pressures we’ve been talking about in the test data, they pull vacuums in a matter of seconds. But even in a fully pressurized room, they are 2x, and 4x the strength of a standard active vent, and can evacuate large amounts of gas very quickly.

Large Powered Vent Test
6 Tile Airlock Test
100kPa to 0kPa
1 Large powered vent
8s
Medium Room (5x5x5) Test
100kPa to 0kPa
1 Large powered vent
2m40s

Counterflow Heat Exchanger
The counterflow heat exchnager was not ready in time to be released with the other new heat exchangers but is finally ready! By drawing down the pressure of the outputs with a pump or regulator and regulating input pressures, the temperatures of two counter flowing networks can be effectively exchanged. Balancing the throughput of both inputs is key to creating a good exchange of temperatures.


New Powered Bench Variants
Four new powered bench variants have been added to give you more options when building your various rooms in your base and give you more variety.


Artwork Wallpaper

[expand type=Click to reveal a wallpaper version of this weeks wonderful patch artwork][/expand]



We need you!
Stationeers is a small niche project. We know times are tough and our project isn't for everyone. So if you like the work we do, we would love to encourage you to spread the word, grab our supporter DLCs, and watch Stationeers content creators on places like twitch and youtube. We want to keep developing this game for many years, well beyond any early access release and to do this we need your support

https://store.steampowered.com/app/2089290/Stationeers_Human_Cosmetics_Pack/

https://store.steampowered.com/app/1038400/Stationeers_Zrilian_Species_Pack/

https://store.steampowered.com/app/1038500/Stationeers_HEM_Droid_Species_Pack/

Change Log v0.2.4294.19984
We do not filter or redact our patch notes so these patch notes include work we are doing on the rockets that are not yet available in the game.
  • Updated suit and helmet for main menu scene and character customization scene
  • Fixed spelling errors in new heat exchanger descriptions
  • Updated uvs and textures for hardsuit
  • Fixed spelling mistake in character customization menu
  • Fixed spelling mistake for heat exchanger kit
  • Fixed fan blade direction not representing the flow of gas for the Powered Vent
  • Fixed wall heater color not changing when turned on
  • Added input blocker to pause menu to stop in-world screens from being interactable while paused
  • Fixed inconsistent naming for pipes and pipe kits
  • Fixed incorrectly sized collider on low volume pipe kits
  • Improved behaviour of PassthroughHeatExchanger. Now implements a crossflow behaviour where-by it is possible to have the two inputs come close to swapping temperatures.
  • Added RemoveToEqualize to AtmosphereHelper.cs This calculates the amount of gas required to Equalize input pressure with output pressure, removes it from the input and returns it for further calculations.
  • Refactored MoveToEqualize to call RemoveToEqualise.
  • Renamed AtmosphericsManager.TickSpeedMs to AtmosphericsManager.TickSpeedSeconds as this was what it was actually returning.
  • Changed Heat Exchangers to show energy exchanged each tick in kJ.
  • Fixed AtmosAnalyser only runs analysis code when held in hand of local player.
  • Changed Moved AtmosAnalyser value generation to main thread to prevent flickering values, it now reads the cached values.
  • Improved tooltips around spray gun fail states
  • Added new models for small tanks. This is purely an aesthetic change. No change to functionality.
  • Fixed wind turbines being functional inside frames
  • Fixed issue with re-connecting after a client disconnects. The disconnected client no longer needs to restart the game before reconnecting
  • Optimised PassthroughHeatExchanger simulation function.
  • Fixed Gas Mixer tooltip rounds Setting wheel to whole number, now shows decimal places.
  • Tweaked mesh for basic suit helmet
  • Fixed insulated tanks being offset incorrectly after model update.
  • Added bobble heads for future content
  • Restructured Gasses Mixing in world, to allow better flow control. Gasses in world now will move towards lower pressure areas faster, with speeds to pull vacuums with normal active vents increased by 300% in best cases, and 150% in more typical large rooms. The amount of gas which 'moves' up pressure gradients has been reduced, reducing the amount of 'reverse gas spread' happening between large pressure differential world grids. Gas spreading in narrow tunnels will also see an increase in movement.
  • reverting wind(Direction vector) calculations to previous state, to address downwards wind on pressureized planets. Atmospheres will still mix according to new mixing rules.
  • Added prototype assets and behaviour for rocket datalink logic devices.
  • Changed separated Data and power device dirty process for cable networks.
  • Removed un-needed process in RecalculateDeviceListSorted Function.
  • Removed un-necessary step in GetNextValidThing function.
  • Fixed Null-collider in broken build-state of arc furnace.
  • Fixed mix in world wind calculations not using a cached pressure value, causing wind coming from global atmospheres to be incorrectly strong.
  • Fixed unusually strong wind when mining on Venus, as wind strength should now scale with volume extracted.
  • Fixed small insulated tank blueprints
  • changed datastructure for atmospheric mixing data caching to reduce garbage creation.
  • Fixed face mounted structure placement placing on the wrong side of the supporting structure if the player was standing on it.
  • Added 1st pass of rocket location data authoring system.
  • Tweaked overalls mesh rig
  • Added WIP placeholder launch pad pieces
  • Refactored landing pad networks to allow for a generic modular structure and added the launchpad structure using it
  • Improvements to Rocket Location data authoring.
  • Added Concept of space map to rocket location data.
  • Added Data validation and error logging to rocket data location parsing.
  • Added Instanced classes for rocket locations.
  • fixed issue where close to global atmospheres could flicker their neighbours into existence every other tick,due to not caching atmos state prior to attempting to mix in world, causing memory issues.
  • A mixing atmosphere will spark its neighbours if it is ignited, which should cause more flash fires, instead of slow isolated flames in one tile.
  • Fixed a number of devices instancing new materials every-time their anim state changed.
  • Zrillian lungs now have a wider safe temperature range, and dont take damage between -20c to 80c, up from -10c to 50c of humans. Warnings remain unaffected, as the zrillians dont necessarily like these temperatures.
  • Added first pass on rocket control motherboard and ui
  • Added missing message factory changes
  • Renamed ReferencableHelper.cs to Referencable.cs
  • Added SpaceMap and SpaceMapNode data synchronisation to clients.
  • Added WIP code for Rocket travel between SpaceMap nodes.
  • Added IRocketPath and IRocketDestination Interfaces to handle leaving and returning to launch pad.
  • Disabled prototype launch animation.
  • Changed Mass to be a property. And implemented placeHolder mass values on rocket fuselage, pipes and inline tanks.
  • Added Method to get starting map to SpaceMap.cs
  • Added LaunchPadNetwork now caches its centre piece in the same way as LandingPadNetwork.
  • Updated rocket location icon
  • Fixed NRE from rocket.
  • Fixed Prototype LaunchPad prefabs
  • Added CounterFlow heat exchanger to tier two pipe bender. The counter-flow heat exchanger passes gas and liquids from the input to the corresponding output passively based on pressure differential (or volume ratio differential in the case of liquids). Matching the flow rate of both inputs will allow for around 70% efficiency of heat reclamation (this allow for the swapping of temperatures between to pipe networks. Multiple exchangers can be daisy chained together to increase the heat reclamation efficiency.
  • Updated WorldManager source prefabs in scene.
  • Fixed Pumps and other pipe devices changing color on load.
  • Removed Outline effect demo scripts.
  • Added first pass on star map ui for rockets
  • Added rocket can now path to orbit.
  • Changed all pipes can now be built in a fuselage
  • Fixed Stacking PureIce would zero out the spawn contents.
  • Added Logic variables to avionics Device.
  • Changed a number of single-grid atmos devices to be allowed to be built in rockets.
  • Added rocket command to print destination IDs.
  • Added support for dynamically created and destroyed SpaceMap nodes.
  • Changed Launch pads now generate a new node once they have a valid centre piece.
  • Fixed An uncommon crash when running the StateChange fix on a custom world save.
  • Added dynamic locations to map view (wip)
  • Fixed gas being created from spray cans being created with 0 energy
  • Reverted the ability to use a spray can to paint the object in the other hand as this behaviour is confusing and not communicated.
  • Portable generator no longer continues providing power once the canister runs out
  • Fixed the blueprint for the Hydroponics Station kit
  • added missing blueprint for automated hydroponics kit
  • Added Pathfinding algorithm so rocket can path to/from any destination on the space-map.
  • Added Pathfinding testing command for validating authored data.
  • Added Rocket movement logic has collection of Node-connections and can path through multiple nodes to reach target destination.
  • Fixed Some nodes being registered twice to the space-map.
  • Fixed some merge errors with map view
  • Fixed modular structure networks not registering devices correctly
  • Updated new rocket kits to be not spawnable
  • Fixed launchpads being registered as landing pad networks
  • Changed star map to use grid based panel for dynamic locations rather than a radial layout. The position of these can be authored in the xml to achieve a nice map layout
  • Fixed Some devices would allow interaction even when in a locked state or when the player didn't have the correct access card.
  • Fixed Some cases where things could be interacted with when destroyed or incomplete.
  • Added temporary method for rocket to link to a landing pad node
  • Fixed launch pad networks not being cleared when unloading
  • Fixed Device Locking fix prevented airlock cycling using door interaction panel.
  • Fixed Null reference exception on server when writing DynamicPanelData.
  • Fixed Can't interact with slots when device locked (beta only)
  • Fixed Settable Atmospheric devices show incorrect tooltip on setting wheel when locked.
  • Fixed launch pads not deregistering correctly on destroy
  • Fixed space map nodes not removing all their connections when deregistering
  • Added 4 new bench variants
  • Removed some temp images from rocket info canvas
  • Fixed incorrect calling placement of base.OnDestroy in LandingPadModular.
  • Fixed Pipe mounted LiquidDrain throws error when pipe removed.
  • Small Clean up of DevicePipeMounted code
  • Removed Prototype launchpad pieces from kit (LandingPadBasic)
  • Fixed A save with a Pad Network with no saved networkId would not load.
  • Changed UpdateThings on GameStart to run once gameState is set to running (this was the behaviour on clients, should also be behaviour on server)
  • Moved some classes into an appropriate namespace
  • Added temporary method to refresh rocket internals when you modify the rocket network
  • Added rocket refresh command to help with debugging rocket behaviour
  • Fixed rocket engines being registered multiple times in rocket network
  • Fixed TurbineGenerator Animation and sound not synced to clients.
  • Added Some WIP electrolysis code.
  • Fixed Unable to turn on/off light or flush locked helmet using interactable buttons (beta only).
  • Fixed MAX_ENERGY Constant being too low causing large tanks with too much liquid in them to have their contents deleted on load.
  • Fixed Incorrect serialisation type for network messages for Setting and Quantity of digital chute devices.
  • Added PlaceHolder Rocket Mining device.
  • Added OnFishedLoad call to StructureNetwork.
  • Fixed Rocket doesn't find launchpad on load.
  • Added hashing of Id to spaceMap node.
  • Implemented IRocketInternals on Chutes.
  • Removed prototype launchpad tower base from incorrect kit
Stationeers - Not Simon
We had a couple of things that didn't make it in to the last update that we wanted to get finished off before moving. These mainly centered around pain points to do with slow process cycling larger airlocks, and a few oddities of the heat exchanger.

Powered Vents
We’re introducing Powered Vents as a way to get around some of the limitations of speed in our atmospheric system. These powered vents can move a lot of gas by drawing from atmospheres beyond the grid that the device is actually in, and they can output a very large amount of gas as well. This can help with pulling a vacuum or filling a room fast.

These vents have a flow rate indicator to let you easily tell if the vent is being provided with enough gas to be working at full capacity. This feature has also been added to the active vent.



Direct Heat Exchangers
The direct heat exchangers have two inputs and act directly on the two input networks' atmosphere allowing you to equalize the energy between two networks in a straightforward manner. There is a large and a small version, each coming in three variants: gas + gas, gas + liquid, liquid + liquid.


Updated Suits
We’ve revamped all the suits! The basic suit and hard suit have kept the same look but have been updated with much higher fidelity! The emergency suit has been given a complete rework to make it obviously different from the basic suit.


Key Bug Fixes
  • Fixed safety limits being ignored on active vent.
  • Addressed error spam from plant cartridge when trying to display the value "1000".

Artwork Wallpaper

[expand type=Click to reveal a wallpaper version of this weeks wonderful patch artwork][/expand]



We need you!
Stationeers is a small niche project. We know times are tough and our project isn't for everyone. So if you like the work we do, we would love to encourage you to spread the word, grab our supporter DLCs, and watch Stationeers content creators on places like twitch and youtube. We want to keep developing this game for many years, well beyond any early access release and to do this we need your support

https://store.steampowered.com/app/2089290/Stationeers_Human_Cosmetics_Pack/

https://store.steampowered.com/app/1038400/Stationeers_Zrilian_Species_Pack/

https://store.steampowered.com/app/1038500/Stationeers_HEM_Droid_Species_Pack/

Change Log v0.2.4258.19848
  • Fixed Error spam from plant cartridge when trying to display the value "1000".
  • Fixed Index out of range exception thrown by StringManager.
  • Fixed Re-sizing stationpedia window displays phase-change diagram on pages where it should be hidden.
  • Updated helmet visor materials
  • Reenabled active vents being able to burst pipes. The concept of internal pressure limiting has been removed. Active vent was overloaded with functionality. The problems it solved can be overcome using other systems.
  • removed internal pressure logic type as a read/write for active vent
  • Reverted active vent changes
  • Added a few assets to the game
  • Fixed safety limits being ignored on active vent
  • Moved some assets into their correct folders
  • Renamed HeatExchanger.cs to HeatExchangerDeprecated.cs
  • Fixed new suit shader to correctly use specular and smoothness
  • Fixed mask texture and made specular map muted for hard suit.
  • Fixed Mask texture on basic suit and helmet.
  • Fixed compile error caused by a script name change
  • Fixed duct tape stops working after repairing solar panel
  • Reverted accidentally commented out code
  • Added three variants(gas+gas, gas+liquid, liquid+liquid) small direct heat exchanger. Tooltip needs to be added to info panel.
  • Refactored content management in preparation for new content
  • Fixed Direct Heat Exchanger input connection orientation causing the pipes to be connecting from the wrong end.
  • Added energy exchanged to tooltip to physical input panel
  • Updated incorrectly set smoothness values for some materials
  • Matched dark rubber parts to waist rubber part.
  • Added passthrough heat exchanger (3 variants)
  • Added Powered Vent. New 2x2 vent designed for larger airlocks, it is able to efficiently vacuum out small-medium sized rooms.
  • Added FlowRate indicator to PoweredVent. will glow Orange/red when flowrate is limited by output pipe pressure or capacity.
  • Added Kit (PoweredVent).
  • Added IPoweredVent interface for hooking up powered-vents to Circuit boards that interact with active-vents.
  • Moved DataDisk to using correct class.
  • Updated Airlock, AirControl and Logic motherboards use IPoweredVent for vent device connections.
  • Cleaned up ResetVent function calls for active vent. Was not being called from correct function.
  • Fixed CondensationChamber had pipe tooltips flipped.
  • Added large direct heat exchanger
  • Fixed backpacks invisible in suit storage
  • Removed redundant set wearable visibility call
  • Moved some hardcoded tag strings to appropriate constants class
  • Updated basic suit helmet material on head lamp
  • Updated basic suit helmet material on head lamp for FPV view
  • Fixed tooltip not syncing for clients on direct heat exchanger
  • Removed ItemKitRoverMKI recipe from the electronics printer
  • Added PoweredVent Large. A 3x3 variant of the PoweredVent for pulling vacuums on Large airlocks and hangers.
  • Added Kit (PoweredVent) recipe to tier2 PipeBender.
  • Added missing large direct heat exchangers to world manager
  • Added missing broken states to large direct heat exchanger
  • Fixed invisible build states on large direct heat exchanger
  • Tweaked balance for direct and passthrough heat exchangers
  • Tweaked heat exchanger balance
  • Improved PoweredVent MultiGrid venting algorithm. Medium and Large PoweredVents will now draw gas from their surrounding grids in a more predictable fashion.
  • Added Sounds to Powered Vents.
  • Changed How powered vents move gas into the world such that they may temporarily exceed their target external pressure.
  • Changed Medium and Large Powered vents now only pull from neighbouring grids when its local grid is close to vacuum.
  • Fixed inputs and outputs on large and passthrough heat exchangers
  • Updated Heat exchanger values to be in line with radiator values.
  • Fixed large direct and passthrough heat exchanger not requiring frame support
  • Fixed Condensation Valve Blueprint.
  • Fixed powered vent mode switch in incorrect colour state when 1st placed.
  • Fixed Passthrough heat exchanger construction consumes welder instead of steel sheets.
  • Removed Old heat exchanger from kit.
  • Changed Kit (heat exchanger) back to original values.
  • Added Kit (SmallDirectHeatExchanger) and added recipe to pipe bender
  • Added Kit (LargeDirectHeatExchanger) and added recipe to Tier 2 pipe bender.
  • Changed recipe of existing Kit heat exchanger to require Invar and moved to Tier 2 pipe bender.
  • Changed existing heat exchanger internal area to be the same as Large Direct heat exchanger.
  • Updated UVs for basic suit mesh
  • Fixed incorrectly named heat exchanger kit that was causing an error when populating the Stationpedia
  • Added missing description to the heat exchangers
  • Removed unused heat exchanger kit prefab
  • Fixed thumbnails for large direct heat exchanger kit
  • Removed Split Interactables from Large Direct Heat Exchanger Kit.
  • Fixed Mixer would not throughput gas when set to 100 and other input pipe was empty.
  • Added flow rate indicator to Active vent and added flow-rate tooltip to Active vent.
  • Updated smoothness for new suit materials
  • Fixed incorrect position on the powered vent blueprint
  • Fixed PoweredVents build and broken states using incorrect material.
Jul 21, 2023
Stationeers - Not Simon
  • Fixed Water filters don't filter steam.
  • Fixed Tooltips on EvaporationChamber and CondensationChamber pipe connections.
  • Fixed Pipe damaged/destroyed by freezing tooltip.
  • Fixed Atmos-Analyser sometimes doesn't show the correct StateChange symbols.
  • Changed CondensationChamber and EvaporationChamber will continue to exchange heat with the heat exchange connection when turned off.
  • Fixed HeatExchangers not correctly applying save migration functionality.
  • Changed Limited evaporation when Temperature of liquids has dropped below its freezing Temperature.
  • Changed Increased the amount of damage freezing gasses and liquids cause to pipes.
  • Fixed broken states of station batteries not rendering.
Stationeers - Not Simon
Stationeers has the bold aim of modelling many very complex systems, and trying to do so in a way that will run acceptably on most computers. For a long time we have wanted to better model phase change (movement of state between gases, liquids, and solids). This will allow us to make more interesting mechanics such as rocket fuels in future updates. The task has come with significant challenges, trying to maintain support for existing worlds and not make the game even more complex for new players than it already is. This is the first step in making our overhaul of Rockets, as it was necessary to do this work before continuing with the work on Rockets.

Description

Gasses now can phase change, when under different pressures/temperatures. Normal Atmospheric pipes break from the stress/weight of condensing liquids, so use a condenser valve to ensure liquids can drop safely into liquid pipes. You can reference a phase diagram in the Stationpedia to figure out what a gas or liquid wants to be at a given temperature and pressure. Liquids are all incompressible, and don't generate pressure themselves, so any isolated liquid will boil off, and create a vapor pressure to stay stable even in liquid pipes.

Boiling a liquid takes energy, so things get colder (condensing gas, releases the same energy). If you were to use a purge valve to constantly remove the boiling off gasses from a liquid pipe, you'd notice that the liquid will keep boiling until it's cold enough to reach its freezing point. Freezing liquids in pipes will burst the pipe and create ices in world. Conversely, Pressurizing a gas can Condense it into a liquid, which will release energy, causing it to heat up, and the liquid can be tapped away with a condensation valve. Moving the liquid around, and controlling where it condenses and evaporates will let you control what should be hot, and what should be cold.

There are two structures built from the Phase Change Kit, the Evaporation Chamber and the Condensation Chamber, that can assist in helping you control phase change. They act like tanks with an input pump, pressure regulator, and heat exchanger, so that you can control the temperature of a fluid (taking the energy, or giving more energy) while trying to make it phase change. These do the same thing as building a system of pipes, pumps and heat exchangers yourself, but the cost of this more stable environment, comes at a hit to throughput, and scalability.



A specific example (with ball-parked numbers) is on Mars, where pollutants exist outside around 0c as gas. Collect Pollutants from outside, filter, and pressurize them and they will become liquid around 2000Kpa. You can then move the liquids to a place you want cold, then vent off the gas off. The pollutants will start around 0c and boiling half of them by creating a vacuum, will drop the temperature to around -20c. You now have made a basic cooler.

It starts to get more interesting when you then use the waste vented gas, to cool off the incoming liquid, and that now becomes -20c, and when it vents, the new gas is closer to -40c. There are many decisions to make, and problems to solve with phase change and there are countless systems to build, that we haven't even dreamed of.

Despite this sounding, and being, very complex, most starting out gameplay remains the same, with condensation and evaporation really only showing themselves as problems AND solutions in larger builds and on extreme worlds. On Europa, the Co2 you've been breathing out can freeze out of the air and fly around during a small accident. Gasses on Vulcan might be fine to slowly pump around, but over collect and pressurize them too much, and the liquidized fluids will burst through your stressed pipes.
Liquids in world

Currently liquids can exist in the world and behave and mix like any other gas. They are visualized by a vapor particle effect. In the future we may explore a more liquid-like behavior in the atmospheric system and a more traditional way of visualizing them. Liquids can often end up in world after a pipe has burst. Gas pipes have a max pressure of 60Mpa, but get stress from liquids existing in them, and have had their volume reduced to 1/10th of their former value. Liquid pipes however have larger volumes, and don't take stress damage from liquids, but only support up to 6Mpa of pressure. Both pipes will rupture very quickly if liquids start to freeze in them.



We have some ideas about how to truly represent liquids in world, but we don't want to rush out solutions for this without carefully thinking them through. This is a lot of work, and we need to make sure it's performant. We will update on possible steps in future updates.

Gas Pumping

With the changes to pipe volumes, gas movement speed on pressure regulators, mixers, and filtration machines has been changed to no longer increase with pipe network volume. Instead pressure differentials increase the speed, meaning if you actively pump, or pre pressurize the inputs, these machines will let large amounts of gas through. Conversely, if you let their outputs build up to pressures higher than their inputs, they will slow down, and forced pumping will be needed to clear their output. This also means back pressure regulators now function very well as safety release valves.

New Devices

A range of new, but familiar, devices have been added to help deal with the new liquid behaviors. These are mostly different types of pumps, valves, and vents to help control the flow of gasses and liquids.

Condensation and Evaporation Chambers
The Evaporation Chamber and Condensation Chamber are integral devices for safe phase transitions between liquids and gasses. Together, these chambers can be utilized to construct a DIY air conditioner, capitalizing on the phase change properties of gasses.



Inline Tanks
Inline Tanks are basically just oversized pipes with a large volume. With the reduction of normal pipe volumes these can be used in the specific places where you may have just used a number of pipes by themselves.

Passive Liquid Inlet
The Passive Liquid Inlet will quickly remove liquids from the world into the connected pipe network while equalizing gasses between the world atmosphere and the pipe network.

Expansion Valve
The Expansion Valve allows for a one way movement of liquids from a liquid pipe into a gas pipe. This can be used to allow liquid into a gas pipe to evaporate.

Condensation Valve
Allows for the one way movement of any liquids from a gas pipe into a liquid pipe.


Pressurant Valve
Pumps gas into a liquid pipe in order to raise the pressure.

Purge Valve
Allows for the removal of gas from a liquid pipe, and behaves similarly to the back pressure regulator.

Gas States
Each gas now has a solid, liquid, and gas form. Each gas has different temperatures, in relation to pressure, that define which state it will be in. You can see the relationship between temperature and pressure in the Stationpedia using the phase change diagram on the gas pages.





Save Migration

With so many changes around atmospherics, including changing the properties of gas mixes as well as some volume changes of devices and pipes, it was necessary to provide a tool to modify saves when they are opened. This tool will do its best effort to put everything in a stable state allowing you to safely load your games. The old default version has been shifted to “previous” so that if you need to load the game to make modifications to your saves you can do so there before loading it on the current version.

Artwork Wallpaper

[expand type=Click to reveal a wallpaper version of this weeks wonderful patch artwork][/expand]
We need you!
Stationeers is a small niche project. We know times are tough and our project isn't for everyone. So if you like the work we do, we would love to encourage you to spread the word, grab our supporter DLCs, and watch Stationeers content creators on places like twitch and youtube. We want to keep developing this game for many years, well beyond any early access release and to do this we need your support

https://store.steampowered.com/app/2089290/Stationeers_Human_Cosmetics_Pack/

https://store.steampowered.com/app/1038400/Stationeers_Zrilian_Species_Pack/

https://store.steampowered.com/app/1038500/Stationeers_HEM_Droid_Species_Pack/



Change Log In Comments
Stationeers - Not Simon
We have been working hard at our reworking of Rockets, but we have removed those changes from this build as they aren't ready, but we wanted to get out changes to the character controller and particularly fixes to the Linux Dedicated server. There is really a lot of different things in this updates so even some really good changes are glossed over outside of a brief mention in the changelog.

Camera and Character Movement
For a long time players have requested fixes for the dreaded "getting stuck on corners". This update features a complete rework of the colliders and rigidbodies for controlling the character. In the test scene the character easily got stuck on things before the changes, and after the update there was zero getting stuck on things. We anticipate those frustrated with this in the past will find this much better.

We've enhanced the player's camera movement once again in an effort to further minimize stuttering. Additionally, we've made a series of refinements to the player movement mechanism. These cumulative changes aim to ensure a smoother in-game experience, reducing instances of getting snagged on corners or minor ground protrusions. The end result is a more fluid and seamless navigation throughout the game environment.

The reason this has been so challenging is the many layers that involve controlling a stationeers character. The user input, the winds in the cells as the player moves, the different frictions of the environment, complex player made colliders, and differing gravity - all combine to make it very complex for us to move a character compared to your average game. Additionally we have to do all kinds of "fudgery" to make the character feel right when moving. We have for example a "grounding" system which, when close to ground, holds you there more. Without this system on lower gravity environments like the moon, running over a small rise would invariably launch you into the air for some time which was very frustrating.

Integrated Circuit Additions
Binary Notation
We've added a Binary notation preprocessor macro that allows binary numbers to be represented with a leading '%'. Binary numbers such as %1011011 will be precompiled to 91. To improve readability, binary values can be separated with underscores; however, they will still concatenate together, so %10_11_011 will similarly precompile to 91. These underscores hold no functional use and are purely for readability. This feature is applicable wherever a number is used, such as in defines, move, or instructions that permit numbers.

Hexadecimal Notation
For hexadecimal numbers, a similar notation preprocessor macro is in place. It utilizes a leading '$' to indicate that the following valid hexadecimal characters are to be parsed together as a hexadecimal value. For example, $F will be precompiled as 15. Just like binary notation, underscores can be used for readability but hold no functional value, so $A_B can be used to represent 171.

Bitshifting
Furthermore, we've incorporated 'Shift Left/Right Logical' (SLL/SRL) and 'Shift Left/Right Arithmetic' (SLA/SRA) instructions. The SLL and SRL operations perform a logical shift on the binary representation of a value, shifting bits to the left or right and filling the leftmost vacancies with zeros. On the other hand, the SLA and SRA operations execute an arithmetic shift, also moving bits left or right, but filling the vacated bits with a copy of the sign bit. These enhancements are designed to offer you more control and flexibility over your IC code operations.

We need you!

Stationeers is a small niche project. We know times are tough and our project isn't for everyone. So if you like the work we do, we would love to encourage you to spread the word, grab our supporter DLCs, and watch Stationeers content creators on places like twitch and youtube. We want to keep developing this game for many years, well beyond any early access release and to do this we need your support
https://store.steampowered.com/app/2089290/Stationeers_Human_Cosmetics_Pack/

https://store.steampowered.com/app/1038400/Stationeers_Zrilian_Species_Pack/

https://store.steampowered.com/app/1038500/Stationeers_HEM_Droid_Species_Pack/

Spray Gun



The Spray Gun allows for faster and more efficient painting. Simply load a spray can into the spray gun and get more out of each can.

Manual Hatch Welding



We've introduced the capability to both weld and un-weld the Manual Hatch using a Welder. While this operation will consume some time and fuel or power, it allows you to secure the hatch either in an open or closed position. This new feature proves especially handy if you wish to establish a hatch for maintenance purposes but deter its routine usage.

Tooltips



We've enhanced the tooltips associated with building actions. Now, when a structure placement is hindered, a specific tooltip will reveal what is obstructing the construction, replacing the previous generic 'Structure' message.

Additionally, we've incorporated a wealth of additional details into our extended tooltips. For instance, you'll now find settings related to Active Vent for both Internal and External safeties.

Build States



Some of the older devices were added to the game without build states. We’re slowly going to be adding build states to these. In this update we’ve added build states to the Station Batteries. When loading a game your Station Batteries should still be in their completed state, but the building of future ones will require you to complete the build state steps.

Stationpedia
We’ve updated how build-states are displayed to provide tier information and the benefits, such as build time and energy cost.

We also corrected the description of the deep miner, and corrected the name of ‘Infinite’ filters to ‘Catalytic’.

Linux Dedicated Server
Our Linux dedicated server recently encountered a significant issue that necessitated a substantial investment of time and resources to resolve. Over the course of the past month, this problem not only imposed a severe strain on our project timeline, but it also imposed roadblocks that halted the progress of other tasks.

Initially, the idea of supporting Linux dedicated servers seemed feasible and manageable. As such, we moved forward with its implementation. However, as time went on, the practical and monetary resources required to maintain this service became considerably more significant than we had anticipated.

We found ourselves on the verge of suspending our support for Linux dedicated servers when, fortuitously, we were able to identify and implement a solution. However, this experience has given us pause, causing us to reconsider the feasibility and value of continuing this service.

Our stance on this matter is candid: the costs and complications associated with supporting Linux dedicated servers are increasingly becoming prohibitive.

Should we encounter another scenario like this, it's probable that we would temporarily suspend our Linux support until we can confidently proceed without it detrimentally impacting the project's trajectory. We sincerely hope that this step will not be necessary, but we are committed to making the best decisions for the project's overall success and sustainability.

Coming Soon
First stages of Phase Change in next update
As part of our complete rework of Rockets we have been working on for our next updates we have been working on phase change for gases and liquids. The next update will be the first step in what will be a long series of gradual changes to bring an implementation of phase change into the game. We have been testing out early changes on the beta branch, but remember that this will be subject to change and even what is outlined here may change.
The next update is going to have profound impacts on how gases interact at extreme temperatures and pressures. We will explain more in that update, but you can expect us to provide migration assistance with the save. But if you are working with extremely cold or hot gases, or those under a lot of little pressure you will need to be especially careful with the next update.
Coming Soon: Liquids for Rocket Fuels
Our broad goal with Rockets is to have you "build" the rockets using the mechanics players are familiar with in their bases. You will need to craft complex systems to make rocket fuel(s), and then pump and activate those fuels to produce the thrust you need, and even control them for the various things Rockets may be used for.

In the update expect to see a whole host of new liquids such as liquid oxygen and nitrogen, and even liquids for fuels. We may also make some changes to gases as well.
Coming Soon: Changes to Pipes likely
In terms of phase change, we have been considering a lot of options. We have considered having generic pipes and a number of options. Currently we are leaning towards you have to give some indication as to your use of the pipe, and you will likely suffer big problems if phase change happens in a gas pipe and you don't have something like a purge valve. We are also likely changing the pipe volumes and introducing more pipe variations with different volumes. We may have ducts which are more similar to existing gas pipe volumes, but will not want to carry liquid and will have much lower pressure limits.

Remember though that we have to deal with an approximation. It's very challenging for us to go down this route, but we feel it is important for Rockets and additionally for our future plans like things for nuclear power. We are also investigating how we might go back to representing liquids in the world as well - but nothing concrete on that yet.

Hotfix Deployed v0.2.4120.19431
  • This hotfix addresses a problem with the player cookie that was preventing players from starting new games.

Hotfix Deployed v0.2.4117.19426
  • This hotfix removed some WIP changes around liquids and related atmospheric devices that should not yet be present.

Changelog v0.2.4089.19416
  • Fixing munmap_chunk() error on Linux dedicated servers
  • Removing debugging logs and commands used for this error
  • Added number of arguments check to all commands
  • Removed unwanted error messages when user enters wrong number of commands
  • Added liquid volatiles icon.
  • Added liquid nitrogen and oxygen icons.
  • Adding logs for linux to help debug munmap_chunk() error
  • Fixed PlayerCookie with saved ClientId=0 not generating a new client id causing a new character to spawn every time
  • Added missing editor tags for rocket fuselage
  • Added per-world-instance UI state to Player Cookie to allow clients to have their window layout saved on servers
  • Added rocket networks and first pass on registering internal grids that can be filled with components
  • Reverted window layout changes
  • Added per-save player UI preferences to player cookie so that clients retain window layouts when connecting to hosts
  • Added LogicType and LogicSlotType as a constant, in addition to being a variable class on some instructions. This means you can reference them outside of specific instructions so long as you preface them with their type in front, such as LogicType.Pressure. Credit: Risu (discord).
  • Fixed switch collider size on gas turbo volume pump
  • Disabled fuselage and nose cone
  • Fixed Atmospherics thread error spam caused by new gas addition deleting some serialised data on plant prefabs.
  • Fixed BNAZ instruction could not run because it was asking for the incorrect number of parameters. It has been like this for four years.
  • Added Liquid Nitrogen Gas Type. Currently only spawn-able using debug commands.
  • Added HASH(..), Binary, and Hex syntax descriptions to script help.
  • Added a few rocket pieces for testing. These are subject to change.
  • Added Binary and Hex notation for IC instructions. Adding a % in front of the number will specify the number is to be treated as a binary representation. So if '15' is the real number, '%1111' would be parsed as 15. The hex value of '$F' would also be parsed as 15. This is useful for ease of writing scripts to make use of various bitshift functions and changes. Additionally, you can add '_' underscores between digits to help with readability. Note they are not functional, and are stripped. So in the example above '%11_11' will also resolve to 15.
  • Added LogicSlotType.FilterType. This allows you to return the current filter type of a filter that is in a GasFilter slot. It will be returned as an integer, which can be checked against the GasType constants.
  • Adding Unity's .meta file for my last commit
  • Adding separate Linux .so for our RakNet fork in case this is causing BindSharedIPV4 to fail. I don't think this is the problem but will revert if it doesn't help the dedicated server situation
  • Updating RocketNet plugin to latest version
  • Hopefully fixes munmap_chunk() error but need to wait to test on Linux dedicated server to be sure
  • Fixed leading whitespace for jump labels not correctly being parsed. Now leading whitespace will not break jump label assignments.
  • Fixed bug in stationpedia where gas thumbnails were off by one
  • Tweaked splitting stacks into hand to make the interaction more intuitive. Splitting from non-hand slots will now split into the active hand or, if the active hand is unavailable, the other hand. If both are unavailable, will split onto the ground. Splitting from a hand slot will split to the other hand, or if the other hand is unavailable, the ground.
  • Changed Gas Particle collision layers to only be Default and Terrain. This should reduce the physics cost of gas particles, which could be high in some instances.
  • Added NOT bitwise operation. Performs a bitwise logical NOT operation flipping each bit of the input value, resulting in a binary complement. If a bit is 1, it becomes 0, and if a bit is 0, it becomes 1.
  • Changed AND to be a bitwise and not a boolen operation. In most circumstances, this will not cause any issues with scripts. Performs a bitwise logical AND operation on the binary representation of two values. Each bit of the result is determined by evaluating the corresponding bits of the input values. If both bits are 1, the resulting bit is set to 1. Otherwise the resulting bit is set to 0.
  • Changed OR to be a bitwise and not a boolen operation. In most circumstances, this will not cause any issues with scripts. Performs a bitwise logical OR operation on the binary representation of two values. Each bit of the result is determined by evaluating the corresponding bits of the input values. If either bit is 1, the resulting bit is set to 1. If both bits are 0, the resulting bit is set to 0.
  • Changed XOR to be a bitwise and not boolen operation. In most circumstances, this will not cause any issues with scripts. Performs a bitwise logical XOR (exclusive OR) operation on the binary representation of two values. Each bit of the result is determined by evaluating the corresponding bits of the input values. If the bits are different (one bit is 0 and the other is 1), the resulting bit is set to 1. If the bits are the same (both 0 or both 1), the resulting bit is set to 0.
  • Changed NOR to be a bitwise and not boolen operation. In most circumstances, this will not cause any issues with scripts. Performs a bitwise logical NOR (NOT OR) operation on the binary representation of two values. Each bit of the result is determined by evaluating the corresponding bits of the input values. If both bits are 0, the resulting bit is set to 1. Otherwise, if at least one bit is 1, the resulting bit is set to 0.
  • Fixed AdvancedSuit was not resetting stack when IC chip inserted.
  • Optimized IC Chip network serialization, reducing network message size for updates.
  • Fixed rescanning of JUMP, DEFINE, and ALIAS validation. Now when a line of text in script editor is changed, the database is correctly recalculated and applied to all the rest of the code. This will give instant feedback as to whether a jump label, or alias etc..., still exists or exists again. This makes it much easier to write IC code in the IC editor.
  • Fixed IC editor would say some alias and defines were not valid, even though they were, particularly when using the HASH macro or others.
  • Added Binary notation preprocessor macro for IC code. binary numbers can be wrapped and will be converted precompile.
  • Added SRL and SLL 'Shift Left/Right Logical' instructions. Performs a logical left/right shift operation on the binary representation of a value. It shifts the bits to the left/right and fills the vacated leftmost bits with zeros
  • Added SRA and SLA 'Shift Left/Right Arithmetic instructions. Performs an arithmetic left/right shift operation on the binary representation of a value. It shifts the bits to the left/right and fills the vacated bits with a copy of the sign bit (the most significant bit).
  • Reverted FlashPoint and AutoIgnition changes for Ingots (rev19265).
  • Replaced Animator with animationComponents on Advanced composter.
  • Fixed some error state checking logic on advanced composter.
  • Fixed Error on Client when Compost created by advanced composter.
  • Removed processing coroutines from AdvancedComposter. Moved processing logic onto ServerTick.
  • Changed removed cooked foods and canned foods from being valid composter inputs.
  • Added ICompostable interface. TODO: implement ICompostable on dynamic composter.
  • Added Import hopper to advanced Composter.
  • Fixed NRE error on client if trying to Destroy a null thing.
  • Updated generator for merging all localization files into one resx file
  • Fixed Some Animation states out of sync on client on join.
  • Removed Auto-ignition behaviour from ingots, Manual hatch and heat exchanger.
  • Added new color swatches
  • Fixed servers not correctly requesting a new session ID if there was an exception of any kind during a ping to the server list
  • Fixed illegal characters can cause loading of saves to break. Now any illegal characters will be stripped and loading continue.
  • Added SyncList from AotR. This is a generic method that allows easily serializing lists for events and new things using the highly efficient FragmentHandler instead of network messages. Implemented for AudioEvent off the SprayGun as a demonstration.
  • Refactored display of Build State Manufacture Data (manufacturing tier, and statistics).
  • Refactored recipe string generation to use StringBuilder, reducing memory garbage and fixing various bugs with extra carriage returns being present in some recipes.
  • Removed MAX_FRAGMENTS_PER_FRAME that was limiting the message fragment creation per frame. This was a legacy restriction. RocketNet interop works directly with the OS, so maximum fragment is effectively unlimited. The fragments can be queued up until OS memory limits, with the router itself controlling the delivery.
  • Added SprayGun. This takes Spray Cans and allows you to paint faster and more efficiently than using the cans directly.
  • Added ability to scroll console window with page up and page down
  • Added the ability to use secondary action on spray cans to paint the item in your other hand
  • Added Build States to Station Battery and Station Battery (Large). All older saves will automatically load with the full build states, but new batteries will require their build to be progressed. See Stationpedia for more information.
  • Fixed wrong state material setting on emergency suit prefab causing an index out of range error when picking up or dropping emergency suit.
  • Pushing new version of RocketNet for linux to fix munmap_chunck error STAT-1794
  • Added wip localization generation command
  • Added first pass of sprites avialable for use with Signs. You can reference these in your HTML tags. Sizing issues may exist though currently.
  • Added cutout for some structures such as Lockers, Stackers, Unpackers, ChuteBins, and the Furnaces. These will now show above walls and frames, so you will be able to see inside them as if they had cut a hole in the mesh. This means you can mount a locker on a wall, but still see inside the locker.
  • Refactor of tooltips. Introduced a variety of new information to extended tooltips, such as settings on Active vent for Internal and external safetys. Optimized the compilation of strings for tooltips.
  • Fixed Items were reporting incorrect values for decay. Simplified how they are calculated and optimized how the strings are generated.
  • Fixed StructureShelf slot rotations were incorrect. Now they are correctly rotated like other storage units in the game.
  • Fixed Chat could not be initiated using the "Return" key (or whatever is set). Now pressing the Chat action will automatically open the chat window and then send the result to clients. This is effectively the same as the chat key but much easier to do.
  • Fixed Multiline text input would show '...' instead of overflow, making it very hard to read text you have written with it.
  • Fixed Multiline text would submit on pressing enter, making it annoying to add additional lines.
  • Added HTML tag support for Signs and Pipe Labels.
  • Added Sign rename uses MultiLine text to allow more room. HTML result is not shown, so you can see the HTML tags. They will be parsed after.
  • Refactored SetPower to use UniTask and not Coroutine scheduler when device power state change queued from thread.
  • Removed PlayerList property that was generating memory garbage. Replaced with Clients.Find.
  • Added extended tooltips to Slots. Now will show the slot type, if anything other than none. Certain items will also show their current state in the tooltip as well, such as batteries and consumables, as well as stacks.
  • Improved tooltips for state handling for Human states.
  • Refactored Ragdoll handling and Dragging of characters. Removed an unused rigidbody which was causing character dragging to not be correctly rotated. Refactored dragging ragdoll handling to parent a dragged or ragdoll character parts to the correct rigidbody. Fixed a number of glitches associated with dragging or ragdolling characters, including desyncs and various physics issues. Balanced and tweaked ragdoll part constraints and dampening.
  • Added MAX_DEPENETRATION_VELOCITY to restrict how fast overlapping colliders are resolved. This will fix numerous situations where a kiss of death collision occurs when colliders are suddenly overlapping. It is still quite high, so it may be tweaked further. This may help with some situations where players are suddenly colliding with terrain during atmospheric changes.
  • Fixed several errors being thrown when spawning chickens
  • Fixed Music devices could not connect to passive speaker and existing connected devices printed errors. This was caused by accidental removal of IAudioInput interface from passive speaker when implementing AudioAlert system.
  • Fixed (Beta only) Welding tooltip was correct for Manual Hatches, but action still prevented advancement.
  • Fixed incorrect hydration calculation. Water was being consumed too slowly. Have returned this to expected behaviour.
  • Refactored character ragdoll, rigidbody, and collider handling to change how ragdoll and carrying characters are handled and character materials as they move around. This is a major change. A number of issues were causing unused colliders to 'stick' on terrain. All these colliders were audited and the problem ones diagnosed and removed from the code. Ragdoll was almost completely broken as it was being layered on top of existing rigidbody. The old system was repurposed and cleaned up, and reapplied. Currently while characters are being carried, they will be out of ragdoll, to reduce physics clipping issues.
  • Removed interactions as dragging method, now a general interaction on an unconscious or dead character will allow you to drag them, anywhere on the character.
  • Removed physics breaking constrains for dragging joints. While these are a good idea in general, they are a terrible idea if not handled. We are allowing joints to break, and then not handling the result when broken. This leaves people stuck carrying something, until they drop it at least. For now the breaking strength is infinity, until handling is implemented.
  • Added new physics materials to ease character across different structure colliders, reducing the chances characters will get "stuck" on terrain. In test environment was able to get stuck with 100% reproduction prior to change. After, unable to get character stuck.
  • Removed interactionId serialization for DragToSlot. it was completely unused and served no purpose, and prevented the use of AttackWith as a generic method to handle dragging, which is more appropriate than InteractWith for dragging of humans, given no interactable really exists to allow an interaction to take place.
  • Updated render distance for some clothing items to make them more consistent
  • Removed ifdefs around setting skinned meshes to always enabled
  • Fixed repairing a damaged partially completed structure will also advance its construction if the tools were the same. Now you can only advance construction of fully repaired structures.
  • Fixed server list player count; should now accurately report active players instead of 0
  • Fixed Composite Floor Grating Kit prefab selection starts on item 4.
  • Implemented ITransmittable on Advanced tablet. You can now read/write values to AdvancedTablet using logic transmitter.
  • Fixed LadderPlatform now uses crowbar to deconstruct.
  • Fixed Ordering of prefabs on Composite Floor Grating kit.
  • Added ability to weld and unweld a Manual Hatch. This is done using a Welder. Welding a hatch will take some time and fuel/power, but will lock the door in place (open or closed). This is useful if you want an access hatch for maintenance access, but want to prevent regular use. Tooltips (localizable) have been added as well as the description changed for the hatch to indicate this functionality.
  • Fixed clients had jerky movement. Clients were not having physics interpolation enabled for their main character. Without this, the FixedUpdate physics step was not in sync with the rendering, resulting in jerky movement. Interpolation will result in smoother movement of characters. Singleplayer has interpolation turned on anyway.
  • Added extended tooltips for building, now will always report what structure is preventing placement rather than just a generic message saying "structure". This will make it much easier for players to diagnose why they cannot place a structure. Was doing this for small grid structure, but not large grid ones.
Stationeers - Rocket
While we do regularly do playtests, it can be easy in the hustle and bustle of chasing down bugs or working on big features for the team to miss the full experience of playing the game. So we initiated a "project clinic". Think of this like taking the project to the Doctors, and then treating as much as possible right then and there, and scheduling followups with specialists for anything you can't. So the project has had all it's shots, and a whole heap of a lot of little things fixed and tidied up.

The rise of our "Interop" Layer
Our "interoperability" layer is used for the first time to deploy a new version of "RocketNet", our internal multiplayer technology
For our playtest we played extensively with both SteamP2P and dedicated servers, with up to eight of us playing at any one time. As part of this we identified a number of issues that we needed to fix. Some time ago we made the decision to cut our own path and do as much as possible ourselves, particularly on the network and simulation front. We have our own internal "enterprise" team who worked on taking "RocketNet" as a concept and implementing it, first in our unreleased project "Art of the Rail" and then in Stationeers.

After releases of our games, including Stationeers, we have always felt that where we had the agency to be able to solve issues - we could. So we have been bringing as much as possible under the control of the studio, which involved removing steam functionality and replacing it over time with our own. The goal being that anyone can play with anyone (including pirated copies of the game), and that the game will be able to outlast those who work on it, the studio, and even steam.

This week not only have we improved our technology for "RocketNet" and "RocketImgui", but it has been done so using a newly developed Interop Architecture. This allows us to introduce new data architectures and streamline how the C++ plugins we develop (think, extremely high performing code but very complex to write and maintain), and the C# code at the game level (simpler, but not as performant code). Not only were the enterprise team able to quickly iterate to fix the issues we identified, but this new interop architecture worked flawlessly. This opens the way for us to move more and more of the game outside of game engines the studio uses, and develop specialist and highly performant code for areas we need for simulation and more.

Recently you may have seen layoffs at Unity, the maker of the Engine we use to build Stationeers, and also controversy around games made with Unreal Engine such as Redfall. We feel the decisions the studio made over the past few years to ensure we could build survival games that can truly scale, are now proving to be the right calls.

Clinic Highlights

Enhanced Networking and Multiplayer Stability
In this update, we have focused on improving networking and multiplayer stability. Players will now be able to reconnect to a lobby/game after leaving, and we've fixed various issues with server connection and Steam P2P clients. Additionally, we have updated the RocketNet plugin to fix issues with max player limit, ensuring smoother gameplay.

Enhanced Repair System and New Repair Options
Players can now repair walls and frames using the tools and materials of their current build state. Damaged items like Solar panels, Suits, and Robots will display required materials in their tooltip for repair, enhancing usability. Additionally, the repair speed for glass on solar panels has been increased, and Duct Tape Mk2 repair speed is now faster, making maintenance more efficient.

New Logic System Additions and Updates
The latest update brings new functionality to the logic system, including the addition of color and vent enum constants to assist with referencing in scripts. We've also introduced:
  • 'Load Batch Named Slot (LBNS)' instruction, which enables loading into a register matching device and name hashes using the provided batch method.
  • 'Set Slot (SS)' instruction, which enables you to write to slot contents for the first time. Note that the slot itself must support it. Documentation on which slot types support what LogicSlotType is limited, this will come with future updates. A good example is in Suit Storage, you can open and close a helmet.
  • 'Set Batched Slot (SBS)' instruction, which is the same as the above instruction, but allows you to do it to batches of devices.
These enhancements provide players with more options and versatility when working with logic systems. A big thank you to content creators such as "CowsAreEvil" and others who have been doing great deep-dives into all the possibilities that come from our new systems.

Solar Irradiance and Lighting Improvements
We've addressed an issue with Solar Irradiance for Air, which was using the default SolarScale and not adjusting for different worlds. This led to heating discrepancies due to solar radiation. Now, the heating of air will be more accurate across various worlds. Moreover, we've made significant improvements to the First Person Helmet, reducing clipping issues by adjusting the near clipping plane. Additionally we have done a full pass of materials, shadows, and lighting settings to unify and clean them up. This has resulted in performance improvements and dramatically better shadows in many circumstances.

Sleeper, Cryo, and Unconsciousness Improvements

The sleepers now actually put you to sleep and we have iterated on the sleepers to ensure that, so long as they have power and their atmosphere is maintained, they will keep players alive. Survival, and mechanics around this, will play a huge part in a massive series of updates we have planned dedicated specifically to dramatically expanding the role, function, and focus of survival in the game. All the updates we have done so far, and before, lead heavily into those updates.

Pipe Cowl and Wall Vents

Wall vents mix two atmospheres, say on each side of a wall or floor, without requiring any pipes. The Pipe Cowl is useful when you want to exit gases, but you don't want to have to place a passive vent on on a frame.

Advanced Tablet upgraded
The advanced tablet now contains an IC slot and a speaker. So you can play sounds on it using the SoundAlert LogicType. Additionally, it can access any humans suit slots (including toolbelt, if advanced), via the "device" notation. This can be combined with the new set slot and set batched slot instructions.

Playing Sounds on Items
Any items supporting SoundAlert allow you to play sounds on them via logic. Want to have your suit warn you? Advanced tablet (see above)? Now you can! Look for the sound definitions in the ingame variable listing, such as Sound.Alarm1, and so forth.

Solid Fuel (Hydrocarbon)
The smelting system has been extended to allow recipes to define atmospheric requirements to create something. Our first example of this is taking Hydrocarbon, commonly from Coal, and putting it under immense pressure and temperature with only Volatiles in the atmosphere. This will allow you to produce Solid Fuel, which stacks much higher and burns for far longer in the Solid Fuel Generator.
Modders note: if you don't want the RequiredMix to have to be pure, remove the "Pure" requirement, as this forces only the listed Gas Moles to be in the atmosphere to be valid
Quality of Life Updates and Bug Fixes

We've made several quality of life updates and bug fixes in this update, such as adding a direct connect button to the join server window, improving Stationpedia's search functionality, and optimizing the WeatherManager to use UniTask instead of Coroutine for item damage. Furthermore, we've fixed numerous bugs, including issues with deep miner save data, laptop interactions, and audio playback. We've added a whole host of tooltip improvements to help with accessibility, and even fixed some long standing annoying stuff like some cans being rotated differently than others.

Your support makes this possible
Over the last year, we’ve completely refactored the net code making multiplayer more stable, we’re continuing to improve the connectivity, and we’ve improved some big systems to allow us to bring you better content and new game loops. All this while transitioning to a weekly update cycle.

All the community support, feedback, and involvement have made this possible. So thank you!

If you like the progress we have made, please consider taking a moment to leave a positive review. This makes a huge difference to the project. We've been working hard for the last five years, and feel confident the game has substantially improved over this time. Many projects steer clear of the hard tasks, and we are proud to have taken them on.

Additionally, you can support us by purchasing DLC that we've made to allow those who enjoy the game to support us, and in return get something a little fun to use in-game.

https://store.steampowered.com/app/2089290/Stationeers_Human_Cosmetics_Pack/

https://store.steampowered.com/app/1038400/Stationeers_Zrilian_Species_Pack/

https://store.steampowered.com/app/1038500/Stationeers_HEM_Droid_Species_Pack/

Hotfix deployed v0.2.4039.19189
  • Fixed tooltips for repair not showing up.
  • Fixing linux dedicated server missing dll issues STAT-1794
  • Fixed hydration increasing when your suit is empty. This should also fix the issue of hydration decreasing dramatically slower when breathing very cold gas.
  • Fixed Logic Dial knob rotated incorrectly by 90degrees.
Hotfix v0.2.4036.19180
  • Fixed mining belt Mk2 not working with Mining Drill correctly.
  • Fixed Arc Furnace new collision was preventing accessing the entry slot by hand.
Changelog v0.2.4035.19177
  • Fixed Storm Visual and Audio Effects would play in rooms that where not really storm accessible if an unfinished frame was located in the square. This occurred because if a cell grid object existed, wall checks would not be undertaken. Now wall checks will be undertaken if a found grid structure CanPassAir is true, and if so, don't allow.
  • Optimized CanAirPass state checking for structures and doors, reducing memory GC churn and unnecessary list generation and iteration.
  • Updated all things with glass to use new glass materials
  • Updated all glass materials to use new transparency shader
  • Fixed possible the characters in multiplayer spawning and being invisible for their body mesh.
  • Added custom transparent shader that does not cast any shadows
  • Changed Increased print times for Battery and Large Battery 5s to 50sec, and 10s to 100s respectively.
  • Fixed build errors due to editor methods not being wrapped correctly
  • Fixed rotation of some cans, spray cans, filters, and seed bags were facing so their front was obscured when in lockers and crates. Now they face forward so they are easy to read what they are.
  • Fixed deconstruction an Advanced Furnace full of reagents would cause them to be created automatically as ingots. Now correctly spawned as Reagent Mixes.
  • Removed sleeper fog effect, will do this with a shader in future instead
  • Fixed Can't read LandingPad atmosphere with logic.
  • Fixed error when loading game with old sleeper variant.
  • Fixed Arc furance prefab throwing error when saving game
  • Added fog effects to Sleepers.
  • Tweaked lighting shadow values and added some optimized shadow meshes for some of the lights.
  • Fixed some keyboard actions could be undertaken while unconscious or asleep. Restricted input actions available to player while asleep and additionally cleaned up some Human code, added caching of key components.
  • Fixed deadlock when attempting to apply leak effects to a suit when a player entity is expected by could not be found.
  • Code Clean-up for Sound Alert code. Cached hash values for audio clips and moved duplicate code into static function.
  • Added ISoundAlert interface.
  • Fixed Sleeper and Cryo DisplayName was being changed when actually it should show up in the tooltip itself. Added a message on both that is localizable to the tooltip, not changing the DisplayName of the object itself as this would cause issues when renaming.
  • Fixed incorrect parameter definition LOKAL to LOCAL in german translation files. Specifically effecting stacker.
  • Added sleeper occupant name to DisplayName so that tooltips show the name of the occupant in the sleeper.
  • The sleeper and cryo tube tooltip will now show the occupant name when they are occupied by a player
  • Added caching of KitItem SkinnedMeshRenderer. Should reduce the cost of applying skinned meshes when players change clothing.
  • Fixed a varienty of rendering issues associated with changing clothes during logging in on multiplayer or moving in and out of rendering range. Character uniform or suit would be invisible as the character was occluded at the time the change took place.
  • Changed Moved Head Lamp recipe to Tool Printer.
  • Fixed bug where you could not interact with sleepers while wearing a suit
  • Removed un-used OnEnitityDeath Event.
  • Fixed when clicking GiveUp when unconscious player would revert pack to being alive instead of respawning new character.
  • Fixed Null Error when another client character was occluded.
  • Fixed Volume doesn't update on playing alert sounds on HardSuit, Helmet, PassiveSpeaker, AdvancedTablet.
  • Added color state indicators to sleepers. Will show White when closed but no occupant. Green when occupant and is alive. Red when occupant is dead.
  • Fixed MultiConstructor kits could cause exceptions if the LastSelectedIndex was greater than the contents. Added sanitization checks to remove any nulls.
  • Added proper tooltip to indicate that you can upgrade the manufactory devices rather than just a construction step.
  • Changed the tool use with Printer mods to be the screwdriver, as the welder made no sense and was not intuitive.
  • Fixed some glass casting shadows and causing weird pixel issues.
  • Added automatic network state checking for atmospheric devices when in an error state due to network changes. As we optimized the game it reduced the time between an error on a device due to a network change and the creation of the new networks. This meant that devices could stay 'Error' till they were turned on and off. Now the Atmospherics Tick will check for a new network automatically when needed.
  • Fixed SoundAlert when played on items would continue even if item was off or unpowered.
  • Added IC slot to Advanced Tablet along with a speaker. The Advanced Tablet has access to the root human, and provides access to the slots on any root human via the devices (d0, d1, etc...). This means you can use the Advanced Tablet to play a sound when something happens to the player. Say they walk into an airlock without a suit and helmet on, you will be able to play a warning sound.
  • Replaced some enum casting names to avoid collisions. This may break some scripts! SoundAlert is now Sound, and is not directly cast as part of the processor. It is a constant type. Additionally, SlotType is now SlotClass. Please check the in-game variable help for a complete listing of any changes.
  • Fixed Glass Door shows interaction buttons before door is completed. Now correctly hides the interactables until door is properly completed.
  • Added ability to repair the ChuteBin and Deep Miner.
  • Fixed overhead lockers were disobeying the lack of RequiresFrame, despite not requiring it. Now overhead lockers can be correctly placed without requiring a frame, allowing them to be mounted to walls easily as they were intended to be.
  • Fixed Upgraded Manufacturing devices (such as autolathe, electronics printers, etc...) show their buttons for access while they are booting. Now their screen based buttons won't be accessible until their screens have correctly booted.
  • Added Pure Gas rule option for MoleMixtures. Currently only implemented for Solid Fuel (Hydrocarbon). To make solid fuel, you must have high pressure, temperature, and a mixutre of only Volatiles as well as Hydrocarbon reagents inside the furnace. Displayed in the Stationpedia automatically for recipes.
  • Fixed MoleMixture requirements not scaling with output produced. Now the quantity is correctly scaled for the requirements.
  • Added ItemPipeCowl made on the Pipe Bender for making Pipe Cowls for placement at end of pipes.
  • Added Wall Vent. Available on the new Kit (Passive Vent). This has no pipe connection, but it will allow two atmospheres to be connected and mix them. This is useful if you have made a series of rooms that would otherwise not be mixing atmospheres.
  • Added Pipe Cowl to Kit (Passive Vent). This is similar to the existing passive vent, but useful to place at the end of pipes, rather than having to be mounted on the wall.
  • Replaced ItemPassiveVent with ItemKitPassiveVent, that is a multiconstructor. This kit has a new mesh and has Pipe Cowl in addition to the Passive Vent.
  • Added players cannot enter a Sleeper or CryoTube while wearing items that provide an interior atmosphere. A tooltip will indicate why you cant complete the interaction. This avoids state issues of being inside an atmosphere while wearing something that prevents that atmosphere from keeping you alive. This allows a number of state and UX issues to be solved.
  • Added players will receive stun until they fall asleep inside a Sleeper or Cryotube, and become unconscious. This potentially fixes state issues that were preventing the cryotube from healing properly. There is now a slight difference between being unconscious and being asleep. When inside a sleeper and sleeping the respawn dialogue will not show.
  • Added players inventory windows will be hidden while unconscious.
  • Fixed humans were not correctly closing their eyes when unconscious or dead, and would continue blinking.
  • Added Stun damage will reduce maximum speed. This means you will walk slower the more stun damage you have.
  • Added SortingClass enum lookup for Slots in instructions. All slots for any ILogicicable Device will be able to report the SortingClass of their enclosed item. Useful for manual mode on sorters.
  • Fixed LogicSlotType.Pressure was returning in Pa, not KPa, and doing so inconsistently as tanks were reporting in KPa. This may affect some scripts, but it was inconsistent so needed to be changed.
  • Added SBS 'Set Batch Slot' Instruction for IC10. Same as SS 'Set Slot' Instruction but applied to a batch via the device hash. Current use case for testing was closed all helmet visors in suit storage. Future options to be expanded.
  • Added SS 'Set to Slot' instruction on IC10. This sets a value to the provided variable on the occupant on a slot. Only current use case is really the Suit Storage and Advanced Suit local IC. Future changes to Circuitboards will have more functionality here.
  • Added Open, On, Lock, LogicSlotTypes. Only usabled on some devices, those that have Helmet or other similar slot types. Currently not an easy way to verify what devices allow you to write. This will be developed later.
  • Extended ILogicable to Toolbelt and Miningbelt Mk2s and all Power Tools and batterycells to allow them read/write when referenced in the advanced suit.
  • Added d2 mapping to Toolbelt Slot for the Hardsuit. The toolbelt item will need to be ILogicable, so only the Mk2 toolbelts will currently work here.
  • Revised the SuitStorage LS instruction handling as there were many issues with it. This is a significant change so it may cause some scripts to work differently.
  • Added Wall Flat Panel Open for use with ladders.
  • Changed Platform Gratings to be crafted off the Floor Grating kit, rather than the ladder kit.
  • Fixed collision on sleepers was causing physics issues when exiting sleepers in some circumstances.
  • Added new Ladder Platform mesh that works with the floor grating mesh better.
  • Added variant for Ladder Platform that has the panels rotated.
  • Fixed exiting structures as a client would exit in the slot position, not the exit position. This could results in clients getting stuck. Now clients exit in the correct exit position for the device.
  • Changed construction and deconstruction for sleepers and cryo to be in line with others of similar type. Uses plastic sheets instead of iron sheets and drill instead of screwdriver for first stage deconstruction.
  • Changed Padded walls to take Plastic instead of Steel Sheets
  • Fixed hazard color uses a different yellow than game base yellow
  • Fixed emotes from clients not being sent to other clients
  • Fixed dedicated server attempting to play trader sounds.
  • Fixed inconsistent shadow bias settings for lights could cause artifacting for some shadows. Now a fixed shadow bias is set across all thing lights and the world sun light.
  • Added atmospherics whiteware devices can be repaired by using electronic parts and screwdriver.
  • Added able to repair Airlock Gates using Steel sheets and a welder.
  • Fixed lens flares were hexagonal due to their value being overflow. Tweaked the values to be aligned with the new nearClipPlane.
  • Updating RocketNet plugin to new version to fix issues with max player limit STAT-1794
  • Fixed Solar Irradiance for Air was using default SolarScale, not being adjusted for different worlds. This means the heating of air due to solar radiation was higher than it should be for some worlds. Users relying on heating via solar irradiance on worlds such as Europa may observe a reduction in how it was, as this value was incorrectly high.
  • Fixed clipping issues with First Person Helmet by reducing the near clipping plane.
  • Added Solar Irradiance to the DayLight Sensor. Now the sensor will report the local solar irradiance value to the logic system as well as in the tooltip.
  • Added ability to repair the Liquid Pipe Radiator and passive vent.
  • Improved network console command
  • Removed logging of all prefabs on world manager awake
  • Fixed DynamicGasTankAdvancedOxygen deletes gas when a gas canister is put in the slot.
  • Fixed Suit not updating its current state when not on a human player. Now state is updated whenever inventory changes and any status coloring is updated accordingly.
  • Added Load Batch Named Slot (LBNS) instruction. This will load into a register matching device and name hashes, using the provided batch method.
  • Fixed LBN instruction was missing description help text.
  • Added repair tool options to more devices. These will show up in the tooltips for things when damaged.
  • Fixed suits not showing correctly when moving in and out of render distance.
  • Fixed recycling food gives you back plant reagents. Example: Put in tomato soup, get a tomato. Now INutritional is not recycled.
  • Fixed child items not being correctly sanitized when being recycled.
  • Added repair tool options to many devices and structures such as autolathes, doors, airlocks, and lockers. These will show up in the tooltips for things when damaged.
  • Fixed loading in with suit or armor in your hands, is treated as in slot for rendering purposes causing weird suit state for entities.
  • Fixed toolbelt mesh was being enlarged when holding a suit when it was not in the correct suit slot.
  • Fixed marine armor mesh would stay on character when armor was taken off. Now the Armor will correctly be removed from the players renderer when the armor is dropped or taken off.
  • Fixed some issues associated with suits when players spawn in. There may still be some bugs existing, but this should fix at least some of the instances where suits are incorrectly colored or uniforms not rendered at all.
  • Fixed decay not being paused in cryotubes and also fixed the issue where, when dropping an almost decayed body, they could explode into a skeleton immediately
  • Removed SoundAlert reverts back to 0 after playback finished as was breaking dedicated server.
  • Fixed player count not being sent in pings to server
  • Fixed Marine Helmet behavior was not consistent with other helmets when entering suit storage. Now light will be automatically turned off, like all the other helmets and headlamp.
  • Fixed NRE Error when clearing jetpack emissions.
  • Changed (kit)SDB Silo from electronics printer to Autolathe.
  • Changed (Kit) sorter build time from 1s to 10s.
  • Fixed AdvancedSuit and Helmet not syncing SoundAlert to clients.
  • Changed pipe valves to use new animation component.
  • Added direct connect button to to join server window. It is only interactable when a valid IP address:Port is entered in the IP:Port field.
  • Removed Direct Connect function from Join Server button. It will now only try to join the selected server in the browser.
  • Changed Jon Server button only becomes interactable once a server is selected.
  • Added can add ices directly to dynamic gas tanks. The ice will be exposed to the atmosphere of the tank, and will melt if the melting requirements are met.
  • Fixed Completion ratio on Printers sometimes went over 100%.
  • Fixed another case where Steam P2P clients need to restart the game after failing to connect STAT-1794
  • Fixed Centrifuge and CombustionCentrifuge don't show processing percentage on clients.
  • Fixed ImportingThing and ExportingThing not being set on clients (mainly required for some additional tooltip info client-side).
  • Fixed StructureNetwork Rebuild list was being added to when server was hosting with no clients connected.
  • Fixed StructureNetwork Rebuild list and new Structure Networks list not being cleared on ClearGameAll.
  • Fixed SoundAlert sounds on HardSuit, Helmet and PassiveSpeaker now have the same looping behaviour as the sounds on the klaxon.
  • Added SoundAlert variable on HardSuit, Helmet and PassiveSpeaker will now be reset to 0 once playback of a non-looping sound is complete.
  • Removed logging for when a there is no free audioSource in the audio pool.
  • Fixed Multiplayer de-sync issue on clients when a chute that was connected to two other chutes was deconstructed.
  • Added Debug command for chute networks. "chute network". Similar to the "atmos pipe" command, this will show the the reference ids of chutes,networks and the Occupant if there is one.
  • Refactored ChuteNetwork class to inherit from StructureNetwork.
  • Fixed ReferenceId error on join for the first client when connecting to via p2p to another player hosting the game. New structureNetworks list was being added to when hosting but no player connected.
  • Fixed bug where clients could not interact with inventory buttons such as 'split half' if the item was in a slot with index > 10
  • Fixing bug preventing players from rejoining a lobby/game after leaving STAT-1794
  • Added Ability to play sounds on HardSuit, Helmet, Passive speaker and Klaxon using the "SoundAlert" logic type. See the "SoundAlert" Stationpedia page for available sounds. If setting these values via an IC script the editor will parse the sound names directly e.g. "s db SoundAlert FireFireFire".
  • Added Volume LogicType to HardSuit, Helmet and PassiveSpeaker. Default value is 50, max value is 100.
  • Added Sound channel types can now be overridden in code when playing a pooled audio sound.
  • Fixed Reduced radius of deep miner audio. Reduced the amount of reverb send on deep miner audio.
  • Fixed bug where holding a full stack and clicking a partial stack would not swap the stacks
  • Fixed null ref with tooltip repair state text
  • Fixed Prefab error on load from ItemSolidFuel.
  • Added tooltips for damaged items that can be repaired using ISolarRepairer, ISuitReparier, and IRobotRepairer. Now damage things like Solar panels, Suits, and Robots will display in their tooltip what can be used to repair them, to help with usability.
  • Added Flush variable. This is added to the Helmet as a logic variable, to expose the "flush" functionality to the logic system.
  • Added can repair walls and frames using the tools and materials of their current build state. If they are damaged, will show required materials in the tooltip for repair.
  • Added stacktrace informnation to console as aged text to assist with player bug reporting.
  • Refactored WeatherManager to use UniTask and not Coroutine for item damage.
  • Increased repair speed for glass on solar panels
  • Increased Duct Tape Mk2 repair speed.
  • Fixed a few of english strings had extra "Item" due to batch processing of strings error.
  • Fixed ConditionOperation constants were listed twice.
  • Added color and vent enum constants to assist with referencing in scripts.
  • Added Pixel Light Count slider back to settings and adjust the quality preset values.
  • Fixed laptop was not set as "tool" item type so could not be put in toolbelts. Now correctly added as tool type.
  • Moved Voice Language setting to audio screen and added when the setting is changed, a notification in the new language is played, so the player has an indication of what the new trigger is.
  • Fixed Laptop does not automatically close when in a non-hand slot, causing issues in container slots. Now the laptop will automatically close (turn off) when moved to a non-hand slot.
  • Fixed audio buttons playing sounds multiple times when hovering over
  • Tweaked stationpedia so search bar is always visible
  • Fixed stationpedia bug where navigating back to search results resulted in a blank page
  • Changed Logic dial, Logic Switch, Logic Lever, Logic dial & logic writer switch to use new anim components.
  • Fixed Clients see incorrect values on logic dial when Max setting is set higher the 127.
  • Updated stationpedia description for centrifuge. Added note about de-gassing
  • Fixed bug with deep miner save data duplicating states
  • Fixed Null reference exception on load caused by omni power transmitter change (beta).
...