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).
Apr 27, 2023
Stationeers - Not Simon
Our IC system somewhat loosely models MIPS "instructions". So its like a small virtual processor and you define instructions that you want to run. This update includes some new instructions, a breaking change to one set of instructions, and some feature improvements to the IC editing system. In addition or as part of these updates number bugfixes and optimizations have been added to the IC system itself as well as the editor.

Predictive Instruction Help in IC Editor
If what you have typed matches an instruction, the editor will include helpful information in the background to assist you in formatting the instruction correctly.


Variable and Constant changes
New IC Constants
A variety of new constants can now be added to your code. These will resolve as numbers, but can remain in your script for ease of use. Think of these as "special" numbers the processor has that you can always address without having the define them on a register. This should reduce the number of instructions you need in code.
  • nan; A constant representing 'not a number'. This constant technically provides a 'quiet' NaN, a signal NaN from some instructions will result in an exception and halt execution
  • pinf; A constant representing a positive infinite value
  • ninf; A constant representing a negative infinite value
  • pi; A constant representing ratio of the circumference of a circle to its diameter, provided in double precision
  • deg2rad; Degrees to radians conversion constant
  • rad2deg; Radians to degrees conversion constant
  • epsilon; A constant representing the smallest value representable in double precision
Improved Naming of resolving types
In addition to the above how you reference slots and gas types by constant has changed. These are detailed in the "Variables" help. You can reference a gas "type" using "GasType.Oxygen" or similar. All available mode types that can be used in scripts are now listed in the Functions help in the IC editor. You may need to change your scripts for this.

Network Read/Write
The ability to reference devices networks via a special syntax. This allows cable networks to be the store of temporary data (Channel0 to Channel7), and IC's to be able to reference a devices network connection, and then load/set data on that connections network.

This is potentially very powerful, with the primary use case of this is where you want to share data between multiple networks. An IC will be able to read/write to any cable network connected to any device referenced on it.
Network Referencing Examples
If we take a normal load instruction:
l r0 d0 Setting
This will load "Setting" off device 0 into register 0

Now we read something of that devices network connections:
l r0 d0:0 Channel0
This will load "Channel0" off device 0's connection "0". If you check stationpedia, you can see a list of connections a device has. Every "opening" of all types is a connection, so pipes, cables, chutes - they all count as a connection.

In my example above, this IC is polling for data on that channel. However, there might be no data here, so we created some "NaN" handling instructions to detect and manage this. There are NaN based branch and select instructions.

To save to a cable network, you can reference in the same way:
s d0:0 Channel0 r0
That will write to Channel 0, on device 0's first connection.
Cable Network Volatility
Cable networks are volatile. If you look at their ID's, you can see they change almost every time you make a cable change. This is because cable networks are just a construct to hold a concept of a "group of cables". Therefore, they should not be considered a good store of information. Each time they make a destructive change, their data will be gone. If you ask them for this information, it will not exist. You will receive a "not a number" value (technically, on the IC, its a special kind of NaN called a QNaN, as a SNaN will generate an exception on the IC).
New and changed IC Instructions
Load Reagent Instruction Syntax Change
This is a BREAKING change. Old instruction syntax will no longer work. This is regretable, but it was the only way to fix the bug associated with the values being localized for clients and not working on servers.

Referencing Hashes using Preprocessors
Hashing is a process of converting the value from a string (meaning text) space to integer (meaning numbers) space or an index value or a string, that has a length of fixed size. Previously with IC chips this meant that you had to look up a devices "PrefabHash" when you wanted to check device types. This was difficult, confusing, and not easy to read.

This HASH preprocesssor can also be used with the sbn and lbn instructions to reference only specific devices named something. These additions might take a bit of getting used to but they are performant and quite powerful.

Now you can use a "Preprocessor Macro" command, HASH(..), to keep the text in your script but have it "Hashed" before being run by the processor. This means you can keep the text of the prefab type in your script, but still have it run correctly in instructions.

In this example, we move into register 0, the hash for Coal Ore. You can find the prefab name of any object using the Stationpedia (F1) in game:
move r0 HASH("ItemCoalOre")
Load batch Named
Instruction allows more precise control over which devices are affected by the load instruction based on their name hash.
lbn <registerToLoadInto> <deviceHash> <nameHash> <batchMode>
Store batch Named
Instruction allows more precise control over which devices are affected by the store instruction based on their name hash.
sbn <deviceHash> <nameHash> <variableToStore> <registerToLoadFrom>
Load Batch Slot
Instruction enables batch operations involving slots, streamlining the process of working with multiple devices.
lbs <registerToLoadInto> <deviceHash> <slotIndex> <variableToLoad> <batchMode>
Select NaN (Not a Number)
Instruction provides a way to check for NaN values in IC operations.
snan <registerToLoadInto> <valueToCheck>
Select NaN Inverse
Instruction is the inverse of the snan instruction, selecting non-NaN values.
snanz <registerToLoadInto> <valueToCheck>
Branch NaN
Instruction allows for branching operations based on whether a value is NaN or not.
bnan <valueToCheck> <lineNumberToBranchTo>
Relative Branch NaN
Instruction is similar to the bnan instruction, but it branches relative to the current line number.
brnan <valueToCheck> <relativeLineNumberToBranch>
These new instructions expand the capabilities of the IC system and provide greater flexibility and control for players when working with Integrated Circuits.
Improved Search Features
The function help menu now has a search to be able to quickly find the instructions you're looking for.


Trader Improvements

Trader Navigation and Collision Fixes
We've addressed issues with traders colliding with objects and not being correctly centered on the landing pad when loading the world. These fixes ensure a smoother experience for players interacting with traders and provide more accurate positioning for shuttles on the pad.

Economy Changes
We've made several adjustments to the trader volumes, prices, and item availability to improve the balance and encourage player interaction with the trade system. These changes aim to enhance the in-game economy and provide a more engaging experience for players trading resources and items.

Performance Improvements
We're gradually making optimizations to devices that share like components, this time it's devices that have the animated import/export slots. This will help increase performance where there are a lot of these devices present. We've done this for a number of things, such as on/off switches, and we'll continue to work through them.

Localization Improvements
We've added new German translations and fixed some issues with slot names in non-English languages to provide a more consistent experience for all players. We're also working on adding more language support in the near future. To make this process smoother and more efficient, we're developing a new pipeline to allow the community to contribute to translations in an easy and organized way. This will ensure that updates and improvements to the game's localization can be integrated quickly and accurately, providing a better experience for players around the world.

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/

Changelog v
  • Fixed Inventory events were incorrect for some items. This could have caused inconsistent results for some inventory reliant functions. This bug will have existed for quite some time, so there is a chance this causes issues being fixed. Maybe however help with some obscure inventory related bugs.
  • Added extra non-shadow casting light effects to jetpack.
  • Fixed belts and other items causing weird shadow artifacts while a portable light was in the inventory.
  • Removed animators from Sound Cartridges, Research capsules and MKII toolbelt.
  • Replaced Animator on GasMixer with new anim components.
  • Changed OmniPowerTransmitter to use new animatorComponents.
  • Removed Animators from cooked food (added in error): CookedCondensedMilk, CookedCorn, CookedMushroom, CookedPowderedEggs, CookedPumpkin, CookedRice, CookedSoybean, CookedTomato.
  • Removed Animators added in error to some canned food.
  • Removed Animators from dynamic liquid tanks.
  • Deleted DynamicLightNetworkTest debug prefab.
  • Removed Animators from mining backpacks that were added in error.
  • Changed dynamicCrates to use new animation components.
  • Refactored script help search. Now correctly uses type hashes so that text can be matched in search. Also change formatting for colors in search to improve readability.
  • Added automation for setting up activate button prefab.
  • Removed animators from access cards.
  • Removed animators from music machines and replaced with animator components.
  • Removed Debug error print when pooled audio sources destroyed in editor.
  • Fixed TraderShuttles permanently removing AudioSources from the audio pool.
  • Changed Increased size of audio pool and audio collision pool.
  • Added IAudioParent Interface.
  • Refactored audio pool to use IAudioParent for sound positioning.
  • Added Transform Property to thing and removed it from child classes.
  • Changed StopAllAudio function on Thing returns any parented pooledAudioSources to the pool.
  • Implemented IAudioParent interface on trader shuttle.
  • Changed Trader shuttle sounds now send less signal to the reverb channel.
  • Fixed script help for variables was not sorted.
  • Changed Slot variable references for scripts begin with SlotType to be consistent with GasType.
  • Fixed a number of pipe devices not animating their lights correctly: PressureRegulator, BackPressureRegulator, PressureRegulatorLiquid, BackPressureRegulatorLiquid, LiquidVolumePump, Digital valve, LiquidDigitalValve, PipeAnalyser
  • Fixed Animations broken on some devices.
  • Added improved search handling to the variables page for script help.
  • Added enum references to variables page in script help. Now all constants, variables, and enum types that can be used are shown in the variables page. Entering the name directly, or its category directly (eg. "LogicType" or "LogicSlotType") will bring up the item or the category, respectively.
  • Increased number of Virtual and Real voices in the scene, helping to fix audio issues in large bases. This may mean for large bases there could be some performance impact. If so, optimization will follow. Currently the audio was being silently ignored.
  • Removed many coroutines across the project that were generating memory garbage.
  • Refactored GameAudioSource to remove all Coroutines and replaced with UniTasks. This reduces the memory garbage generated with fading and playing audio effects. This is a pretty significant change so any sound exceptions please report. Additional code pass to cleanup and making the process of fading audio cleaner and simpler.
  • Fixed some game sounds stop playing after playing for a while. Pooled audio sources were not being protected from deletion. This means if an object was playing sounds while it was destroyed it would delete the audio source, and it was no longer available in the pool. Eventually when this pool was empty, no more sounds could be played for that pool type. Took the pooling system from Art of the Rail and applied it to Stationeers. This is an efficient and protected generic system that we can use for pooling any objects in the game, not just audio.
  • Changed chute outlet to use new animation component.
  • Fixed some items using animation component not having their state synced when first built.
  • Fixed portable lights and road flares would cast weird shadows when on a local player. Now when on a local player, their local player shadows will be turned off. This means that they will still cast shadows, but not on the first person player (and their helmet) themselves.
  • Changed SBD Silo to use new animation component system.
  • Moved stationpedia page and other classes out of stationpedia
  • Changed ChuteBin to use new AnimComponents.
  • Fixed volume text not showing on stationpedia
  • Changed Sorter to use new animation components.
  • Fixed config cartridge showing wrong logic types
  • Swapped out unity animator of custom components on unloader.
  • Fixed HASH(..) IC preprocessor was occurring on the IC, not before being handed to the IC. This was causing inconsistent results when spaces were in the hash, as the IC has no ability to understand a space is not part of syntax. There were multiple other bad things about the previous implementation. Now the HASH(..) is executed before being handed to the IC, meaning as far as the IC concerned it just receives an integer. This is consistent with the IC architecture, as well as avoiding a serious of other bugs and issues.
  • Added `lbn` IC instruction, `load batch named`. This instruction runs the same as the `lb` load batch command, with the additional step of testing against a hash of the name of the devices. The load instruction will only be applied to devices that have a name hash that equals the one provided.
  • Added `sbn` IC instruction, `store batch named`. This instruction runs the same as the `sb` store batch command, with the additional step of testing against a hash of the name of the devices. The store instruction will only be applied to devices that have a name hash that equals the one provided.
  • Fixed HASH(..) failed to mask where the encapsulated string contained spaces. Now an entire string up until a quotation mark will be hashed. You cannot hash a quotation mark, even if it is escaped. Doing so will at best halt execution.
  • Added IC instruction 'lbs' which load slot variables as a batch. This means you can pass in a device hash, a slot index, and the variable, and depending on the batch mode, you can conduct a math operation and get a value of a batch of things.
  • Cleaned up how instructions are displayed in the Script Help. Now there is a standardized system for displaying the instruction parameters with better information to make it clearer what you need to input.
  • Added depreciated instructions and variables are displayed in the editor. Now they are shown with 'strikethrough' to indicated they are depreciated and should not be used. They are also not shown in the help files.
  • Added ChuteImport Export bin prefabs.
  • Added Lever Animation component
  • Removed unity animator from stacker and replaced with animator components.
  • Added Automation for setting up animator components
  • Updated thumbnails for high volume has canister and extra large wireless battery
  • Added Abstract class InteractableAnimComponent.cs
  • Refactored ExportAnimationComponent to use InteractableAnimComponent class.
  • Added ImportAnimationComponent.
  • Added ImportBin and ImportBinHazardStripes prefabs.
  • Changed Solid fuel Generator to use new import component and removed unity animator.
  • Fixed Error spam when trying to merge insulated pipe with normal pipe.
  • Added Type Name and Type Hash to Reagent entries in stationpedia. Click on their values to automatically copy them to clipboard.
  • Removed Reagent Referencing in IC instruction 'lr' using localized string for lookup. This is a BREAKING change. If you previously wanted to reference a reagent in IC as part of the 'lr' instruction, you had to enter the localized word for that reagent in your language. However, this would break in multiplayer if the players were running different languages, or if the localized text changed even slightly at a later date. See addition in changelog below for how to use the new syntax that replaces this.
  • Added hashed value for 'lr' command. Now to reference a reagent in the 'lr' command you must pass in a register. This brings the instruction in line with others. The syntax is now 'lr <registerToLoadInto> <deviceToLoadFrom> <reagentMode> <reagentHash>'. You can generate the hash using the new HASH(..) preprocessor, such as 'HASH("Iron")' or lookup the hash on the Stationpedia.
  • Added special tradeable items (first pass)
  • infinite filter, extra large gas canister and extra large wireless battery.
  • Fixed Error spam when trying to place a structure somewhere that was blocked by an existing frame.
  • Fixed Could place walls and floor pieces on the internal faces of the Stairwell piece, it was designed to only allow placement of wall pieces on exterior faces (like a frame).
  • Fixed Comms motherboard contact resolve bars behave incorrectly when dish is rotating.
  • Adding comments to help in the creation of world log event types
  • Made world log sync to clients
  • Cleaned SmallGrid Connection Validation function and removed debugging logs.
  • Added LineNumber Logic Variable. Allows the logic system to query the current line number of a integrated circuit executing on a circuit housing. Useful to query the current state of an executing system. You can also write this value using the logic system, but use with caution as change of this value is not expected by the processor architecture, and it will attempt to honor the changes you make and may cause unexpected results. The processor housing will make best efforts to clamp your values to acceptable ranges but you may be able to halt execution when doing this incorrectly.
  • Added `snan` instruction for select 1 to register when provided value is 'not a number', 0 when false.
  • Added `snanz` instruction for select 0 to register when provided value is 'not a number', 1 when false.
  • Added connections section to Stationpedia pages. This will list all connection information for any device that supports connections. This means any chute, pipe, or cable openings on the device. This include includes a number that is the connection "index", which is used for referencing that connection with the new device network syntax on Integrated Circuits.
  • Added a preprocessor macro to IC processor to allow the generation of hashes at compile time. Using this you can automatically generate PrefabHashes using human readable text, that will be compiled into a hash before execution. To use this, surround the prefab name in the words, and in quote marks for example: HASH("PrefabNameHere"). Note that the HASH and the contents of the string are case sensitive. Using a different case inside the string will generate a different hash.
  • Refactored MIPS processor constants. Now have 'nan', 'pinf', 'ninf', 'pi', 'deg2rad', 'rad2deg', and 'epsilon'. These can be used anywhere you can use a number.
  • Added processor constants to be included in script help function area. Autogenerating their descriptions and values, and searchable.
  • Remove old prefab file for GasTankAir that had been unused for many years and was causing errors.
  • Fixed Slots not having the correct name in non English languages
  • Added new German Translations
  • Added Structures and devices now show helpful error tooltips when they can't be built. Previously the tooltip system would fall back to the "requires support" message which was often incorrect and misleading.
  • Added Second pass of the Device Network Referencing for MIPS instructions. Now correctly able to load and store from the 'Channel0' to 'Channel7' variables. 'Setting' variable is no longer supported as it was from first pass.
  • Added entering a command or variable name exactly as it is spelled and pressing enter on script reference screens will now bring up that entry. So entering 'l' and pressing enter, will show the 'l' instruction.
  • Added 'bnan' MIPS instruction that branches when provided value is 'not a number'.
  • Added 'brnan' MIPS instruction that relative branches when provided value is 'not a number'.
  • Added log panel to comms motherboard
  • Missing file from prior commit
  • Added Export Animation component. Removes need for unity animator on new devices with export slot.
  • Added ExportGate prefab.
  • Changed Deep Miner swapped out unity animator Export handling with new component as test case for new system.
  • Refactored help for Slot Variables, Variables, and Functions within the IC Editor. Now uses a threaded text search system and updated the UI to match the stationpedia UI. Uses the same search options as stationpedia (separate blocks to search using comma, etc...).
  • Added First pass of Device Connection Referencing for Integrated Circuits. Currently load and set support use of <device>:<conn> where conn is the connection index for the device. This then attempts to set or load on that network. Cable Networks now implement ILogicable, meaning they can have data stored or read from them. They are, however, volatile. They should not be considered to exist always and should be used for data transmission rather than a reliable data store. By default their data will be NaN. Future functionality will make it easier to check NaN inside IC code.
  • Optimized Device connection registration to cache their connection data for cheaper checking for open ends. May provide minor performance improvements when editing very large cable, pipe, or chute networks,
  • Fixed Text parsing bugs with IC editor related to device and register referencing. Additional optimizations for text parsing IC scripts were also applied, but unlikely to be significant enough to notice in the brief time parsing occurs.
  • Added logging system to keep track of trader events
  • Decreased T1 traders to have 75% volume, down from 100%, on bulk tradables
  • Increased T3 Traders to have 150% volume, up from 120%, on bulk tradables
  • Fixed ship fuel purchase text not mentioning that it is x100 mole.
  • Increased Chance a ship wishes to buy fuel to 1/2, from 1/5
  • Increased volatile ice sale price from .5 to .75 on the ore trader
  • Decreased oxite, and volatile ice trader volume by 75% on the ore trader
  • Decreased volatile gas sale price from 10 to 7.5, and increased trader volume from 1000 mole to 2000 mole from the gas trader.
  • Decreased volatile ice buy price from the gas trader from 1 to .8.
  • Decreased all max ice purchase volumes from 1000 to 600 on the gas trader.
  • Fixed shuttle position not being correctly centered on the pad when loading world if the pad is evenly sized
  • Tweaked large shuttle size and collider size so they no longer collide with walls in a 6x6 hangar
  • Fixed logic transmitters getting added to the transmitters list twice making cycling though active transmitters get stuck
  • Fixed logic transmitters list not being cleared between loading worlds
  • Fixed bug where trader contacts would get stuck on the comms terminal after departing mid approach or being destroyed
  • Fixed gas trader will buy used filters
  • Fixed missing thumbnail on 'ship fuel' trade item
  • Added missing fertiliser slot name to localisation
  • Made hydroponics tray and tray device fertiliser slots use the same scaling
  • Fixed a few null ref exceptions that could occur with comms motherboard when disconnecting landing pad
  • Fixed bug where item counts in vending machines could be higher than expected if more than one device is connected to the landing pad.
Apr 5, 2023
Stationeers - Not Simon
Performance

In this update, we've focused on performance, specifically for players with large automated bases experiencing lower frame rates. Key improvements include optimizing physics and chutes, reducing physics update tick time by 50% through better caching for dynamic objects in slots, and improving server tick for bases with many chutes and chute devices.

Additional enhancements encompass streamlining the decay tick, Trading Motherboard Computer screen interface, Satellite Dish scanning logic, and the Computer screen render optimization. These performance updates aim to provide a smoother, more responsive gaming experience, particularly for players with complex bases.




Hem Droid Quality of Life Improvements

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

We've added some quality of life improvements for those who own the Hem Droid DLC. Although these have been designed for the Hem Droid the Disposable Battery Charger can be used by other species as well, to recharge their suit battery.




Hem Droid Sleeper

While regular sleepers have catered to the other species, Hem Droids have been missing a dedicated option. The Hem Droid Sleeper is specially designed for Hem Droids. As long as it has the required power it will keep Hem Droids batteries charged.

Disposable Battery Charger

For emergency situations we've introduced the Disposable Battery Charger that can partially recharge your battery immediately. When used it is consumed but will recharge the battery of your suit, or if you’re a hem droid, the battery in your suit.

HEM-Droid Repair Kit

The HEM-Droid Repair Kit has been added to the game for players using Hem Droid characters and functions as the heal pill does for the other species.


Self Contained Stairwell

We've included a 3x1 stairwell to offer a more compact option for moving up and down your base. This new stairwell design aims to optimize space and improve navigation within your Stationeers base.



Localization and Voice Packs

We're actively working on improving our localization from multiple angles: Ensuring more of the game is localizeable, having the game localized for some languages, as well as improving the pipeline, both for us as well as for community translations.

We are paying for languages to receive a full new pass of translation, and then will accept community suggestions for better localization. This should help provide cleanup on the current messy state where some English strings were changed, but not retranslated.

Chinese Voice Pack added

The voice pack we're adding this week is Chinese! You can also select the voice pack independent of the localized text. This means you can have your suit voice pack warnings in German, Russian, or Chinese, while still having the text in English. More voice pack languages will be added in the future as well.



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/


Change Log v0.2.3920.18842
  • Added vertical sleeper variant for robots. Will regenerate robot battery or suit battery if present. Will damage non robotic entities.
  • Added HEM-Droid Repair Kit. Fully repairs HEM-Droid character. Created at Tier 2 electronics printer.
  • Added 1x HEMDroid Repair Kit to Starting load-out for HEM-Droid characters.
  • Added DisposableBatteryCharger. Disposable single use chemical battery that will partially recharge a HEMDroid battery or Stationeer suit battery.
  • Added stairwell variants to stairs kit
  • Added Chinese voice language pack
  • Added countanimator command.
  • Added debounce to server search
  • Fixed incorrect slot names for sleepers and cryo tubes
  • Update description for stairwells and droid sleeper
  • Fixed bug where you could call down the same trader to multiple landing pads. Now, when trader begins approach, the land button will be disabled. Also added a safety check so stop this behaviour if called by other means.
  • Changed sleeper and cryo tube behaviour with regards to robot batteries. Now, robot batteries will continue to drain inside regular sleepers and cryo tubes. To maintain robot batteries when offline, use the 'droid' variant of the sleeper.
  • Updated droid sleeper to use more power when charging
  • Fixed bug where you could call down the same trader to multiple landing pads. Now, when trader begins approach, the land button will be disabled. Also added a safety check so stop this behaviour if called by other means.
  • Changed sleeper and cryo tube behaviour with regards to robot batteries. Now, robot batteries will continue to drain inside regular sleepers and cryo tubes. To maintain robot batteries when offline, use the 'droid' variant of the sleeper.
  • Updated droid sleeper to use more power when charging
  • Fixed GrowLights that are turned off when game saved stop working on reload.
  • Changed GrowLight light radius to more closely match area of effect on plants.
  • Fixed DisposableBatteryCharger sounds not playing sounds when charging another player.
  • Fixed Emissive material on DisposableBatteryCharger, now show blue emissive when charged and red when discharged.
  • Fixed Can use DisposableBatteryCharger when it has been discharged.
  • Fixed Some issues around grow light plant lighting.
  • Made trader shuttle collision box a little smaller. Tweaked how often collisions can occur by adding a debounce time.
  • Fixed Laptop positioned incorrectly in right hand.
  • Refactored set hand position function to make it more flexible.
  • Changed data and power cable lists on device from fields to properties
  • Fixed fertilizer not affecting plant yield
  • Re added changes from rev. 18797 and fixed a few bugs where batteries and apcs weren't supplying power correctly
  • Fixed bug where devices connected through power port only would be accessible by logic. Now, devices will only be accessible by logic when their data port is connected.
  • Fixed Clients see airlock control as disabled when joining.
  • Fixed AdvancedAirlock doesn't update PressureExternal and PressureInternal values on clients.
  • Fixed Settings would get saved when game was paused. Possible cause of access violation error when saving game bug.
  • Changed moved sound mixer channel volume management out of the Settings.OnValueChanged Function to AudioManager.
  • Fixed Changing music volume setting would reinitialise main menu scene.
  • Fixed Chinese Suit Voice assets too loud.
  • Fixed Voice assets to use Compressed in Memory LoadType.
  • Fixed A number of sounds not playing (regression rev. 18757).
  • Fixed server list search
  • Fixed bug where all tablets in the world would receive scroll events regardless of whether they were in your hand
  • Fixed no server password icon displaying on the server List
  • Fixed none of the filters on the server list working
  • Optimised ServerTick. Bases with lots of chutes and chute devices should see a small fps gain.
  • Optimized Decay tick. Now runs on threaded game tick rather than blocking main thread.
  • Fixed dead bodies still being able to be moved around in some instances
  • Optimised Trading Motherboard Computer screen interface. Reduced time to refresh the screen from 5ms to 0.2ms.
  • Made some visual tweaks to the plant analyser cartridge to make it more consistent with the other cartridges
  • Fixed incorrect capitalisation of kPa in some instances
  • Fixed IC motherboard dropdown not matching the correct chip holder
  • Fixed IC motherboard connected devices displaying wrong code
  • Fixed spelling mistake in plant analyser cartridge
  • First pass on tidying up tablets/cartridges
  • Made scrolling better (still have yet to find the cause of scrolling not working sometimes)
  • Removed paging from network analyser as regular scrolling is now more usable
  • Replaced much of the plant analyser cartridge object with prefabs
  • Changed font for plant analyser and config cartridge
  • Moved Satellite Dish scanning logic onto the power tick.
  • Fixed Computer screen render optimisation was turning on when any player was in view screen is now only rendered when local player is in view.
  • Optimized Physics caching for dynamic objects in slots. Result: 50% reduction in physics update tick time. Players with lots of physics items in slots should notice a small fps improvement.
  • Fixed a few issues around dropping suits and uniforms which could cause bodies to disappear for clients
  • Fixed Using screwdriver on power-tool to remove battery be would actioned even when interaction was aborted.
  • Fixed bug where starting/ending a game quickly would leave the screen faded to black
  • Fixed TransformerMedium Reversed not registering its lower half on the small grid.
  • Fixed Laptop rotates 90degrees when dropped.
  • Tweaked wording in one particular hydroponics tutorial stage
  • Fixed battery/motherboard drop position when removed from laptop.
  • Cleaned up chat canvas code
  • Potential fix for chat bubbles not billboarding
  • Removed ping column until we can provide that information
  • Removed GetIntegerSafe Function as it was causing a lot of GC allocation and general slow down.
  • reverted some changes to chat causing a potential build error
Mar 23, 2023
Stationeers - Not Simon
This hotfix is for the programmable chip motherboard matching the incorrect devices to the displayed items
Mar 22, 2023
Stationeers - Not Simon
We will be getting back to the larger themed updates soon but for now, we’ve been focusing on two main things: Improving multiplayer through the addition of Steam P2P, and bug fixing and improvements.

Steam P2P



Why was it removed in the first place?
When we prioritized the low-level changes during the multiplayer refactor, we had to temporarily remove the existing implementation of Steam P2P. Now that we've completed that work, Steam P2P has been re-enabled.

What does this mean for you?
Previously, hosting a game required enabling upnp on your router or manually port forwarding, which could be difficult or impossible on some networks. However, with Steam P2P, all the tunneling is handled automatically, so you can connect to the host using your Steam ID.

If Steam P2P is not available for some reason, the game will fall back to direct connect, or you can manually enter the IP and Port.



What's next?
This now puts multiplayer Stationeers in the best state that it's ever been. Earlier today we had a 10-player play test that went very smoothly. If you've been holding off playing due to connection issues preventing you playing with your friends then perhaps now is a good time to try again.

Of course we'll continue to harden and polish multiplayer but we are very happy with the progress over the last 12 months.

Plants and Hydroponics
This patch we’ve been focused on finding and fixing a number of bugs and UX issues associated with growing plants. We’ve improved the UX of the plant analyser cartridge to clearly show when a plant is deficient in either light or darkness. Time spent in a light or dark deficient state will cause the plant to accumulate illumination stress which will slow down growth speed.




Bug Fixes and Improvements
We’ve done a lot of bug fixing to address some issues that have come up from the last updates, as well as a few older bugs. Next update will contain more of this kind of work as we take a step back to harden before we start work on the next big packet of work.

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/


Change Log 0.2.3888.18748
  • Fixed missing 'seeding' logic slot description in stationpedia
  • Fixed missing emissive material on centrifuge info panel
  • Fixed incorrectly coloured thumbnails for turbo pumps
  • Fixed erroneous EndConnection method call in Client.Disconnect
  • Added delay after disconnect handshake
  • Changed Extracted P2PSession request processing into its own function.
  • Changed Ordering of Disconnect handshake message.
  • Removing incorrect log saying the steam lobby was instantiated incorrectly, but it wasn't
  • Removed some unnecessary steam p2p debugging logs
  • Fixed Clients pass in host steamId 0 when calling P2P disconnect.
  • Added Separate Client/Server logic for p2p Disconnect.
  • Added ClientDisconnected Callback to on Client.cs when client Disconnects from steam p2p.
  • Cleaned up logging for DeleteOutOfBoundsObjects.
  • Fixed floor grating kit collider size
  • Fixed drain switch collider size
  • Fixed dynamic gas canister tooltips not appearing when the canister is wrenched to a connector
  • Fixed Broken Build State Prefab errors on centrifuge devices.
  • Improved Error handling when loading devices with build-state errors.
  • Fixed advanced composter not restarting processing when loading save
  • Added "DeleteOutOfBounds" Command. Removes everything that is more than 8km from world origin.
  • Added When Loading a game everything further than 8km from world origin will be deleted.
  • Fixed Index out of range exception on Atmospherics thread caused by atmospheres outside of playable area.
  • Adding steam lobby setup - waiting for invite acceptance to be fixed before enabling this
  • Fixing steam p2p disconnections
  • Fixed race condition breaking steam lobbies occasionally
  • Removed unused logs
  • Added Setting UseSteamP2P.
  • Removed Setting P2PHostEnabled.
  • Added Client side connection logic for using SteamP2P to connect via server browser. Client will attempt to connect using SteamId and if fail will fall back to using RocketNet direct connect. Note: currently disabled until Master Server is updated to serve SteamId in session data.
  • Added "SteamWorks" scripting defines to ProjectSettings.
  • Fixed an issue where wearing and removing a suit could cause your body to not be rendered when far away from the removed suit
  • Fixed Access Cartridge doesn't work on large fridge.
  • Added green/red colouring on plant analyser text for when required/toxic gases are in/out of range.
  • Fixed PlantAnalyser reads growth data from dead plants.
  • Fixed If GrowthEfficiency for plants became greater than 255% it would wrap around back to 0.
  • Fixed Wall heater incorrect colour when turned off.
  • Removed 'create character' popup when joining game
  • Fixed issue where after character is destroyed (e.g. via cleanup) you can't respawn and have to exit and rejoin
  • Fixed Logic memory and logic Dial tooltip showing setting as 32Bit floating point number.
  • Fixed Logic tooltips now show numeric values using correct culture.
  • Fixed build error from light blueprints.
  • Fixed light blueprints show broken models
  • Fixed Newly built lights have a lens flare effect even though they are turned off.
  • Fixed Blueprints showing flare on wall lights.
  • Fixed several places where values were not syncing on clients correctly
  • Fixed Tablet could only show Illumination stress up to 255%. (Illumination stress has no cap but will decrease faster the higher the value once the plant is no longer deficient).
  • Fixed Illumination stress value not serialized.
  • Fixed CarbonDioxide requirement percent display was show HydrationEfficiency value on plant analyser tablet.
  • Added HydrationEfficiency to Plant analyser tablet.
  • Changed Plants that are light or darkness deficient will recover x2 faster once put into the correct state.
  • Added Light/Darkness Deficient text now shown in red on plant analyser.
  • Fixed suit pressure and temperature setting not syncing for clients
  • Fixed missing tool names for some tooltips
  • Fixed Small colliders on Pipe Heaters.
  • Fixed Error when opening pipe heater placement blueprint.
  • Fixed Sometimes proximity sensor and occupancy sensor data-port would not connect to cable.
  • Fixed Sleeper "get In" collider size such that it doesn't block interaction with items in the sleeper.
  • Changed "get in" interaction time to 0.5s.
  • Fixed Labeller now accepts correct symbols for the users current Language Culture. (i.e German language users can now use the correct decimal point symbol "," for their region.)
  • Fixed ic motherboard arbitrarily ordering connected devices in its dropdown. Will now order alphabetically.
  • Fixed LogToClipboard command
  • Fixed spelling error in comms terminal.
  • Rounded wattage values in comms terminal
  • Fixed Hay not processable by recycler. Putting 1 hay in recycler now adds 1 Biomass to the recyclers internal reagent mix
  • Fixed some ic error tooltips not being cleared after errors are resolved
  • Adding Steam Peer-to-peer - currently disabled until steam's "Join Game" option from friends list is working
  • Fixed small collider on small battery charger.
  • Fixed Plant analyser works when unpowered.
  • Fixed Some genetics value ranges were returning incorrect data for seeds when analysed with plant analyser.
  • Added missing tooltips to ic chips in laptop and aimee slots
  • Fixed a few IC issues. Previously chips would hold a single error state for both compilation errors and runtime errors. Have split this into two separate errors. Devices holding ic chips will now flash error if the chip has a compile error or run time error.
  • IC chips with compilation errors will now no longer execute
  • IC chips with errors should now show the correct tooltip when adding/removing them from slots
  • improved logging around upnp
  • Fixed inconsistent arrow key and return key behaviour in ic script editor when paused
  • Removed all functionality from deprecated landing pad.
  • Added More robust handling of spawning and de-spawning of trader pilot.
  • Fixed Trader Pilot could get left behind when ordering shuttle to depart before landing completed.
  • Fixed manufacturing devices showing the incorrect next item on the tooltip
  • Fixed misspelled prefab name in recipes
  • Moved prefabs from resources to assets/things attempt two
  • Reverted asset move
  • Moved all things in resources folder to assets/things
  • Fixed Client joining while in IC editing window puts input into an invalid state. Now when a client connects, if the player is using a UI window it will be saved (if applicable) closed.
  • Fixed Null Reference exceptions when shuttles crash into each other.
  • Consolidated some duplicate clean up code in shuttle movement Unitasks into a clean-up function.
  • Fixed Unable to connect to a server after a failed connection attempt has occurred.
  • Added RemoveMoles AtmosphericEventInstance function.
  • Fixed Watering plants with water canister added water at 0degrees kelvin.
  • Added Correct plant tooltip for when plant is dead.
  • Fixed instance where gas in a pipe network would not get saved during autosave, causing the pipe to be empty upon loading the saved game.
  • Added Autosave now schedules the Game Simulation Tick to pause at the end of the current execution and then awaits gameTick pause state before proceeding to copy the world data.
  • Added AutoSave will cancel if it detects atmospherics data modified during the save process.
  • Added If an AutoSave is cancelled due to invalid data it will reattempt to save again after a 2second cooldown.
  • Fixed LFO-Volume waveforms were not timed correctly on clients.
  • Fixed LFO-Volume settings not updating in multiplayer.
  • Fixed Light Round, Light Round Angled and Light Round Small not casting shadows.
  • Changed Several Plant Analyser Cartridge values to better inform the player of the plants light needs: Illumination Stress, Light Deficiency, Darkness Deficiency.
  • Light Deficiency and Darkness Deficiency will show "No Deficiency" if the plant has received enough light and darkness. Illumination stress will accumulate if the plant is deficient in light or darkness. When these deficiencies are resolved the stress will begin to reduce slowly over time. Illumination stress will reduce Light efficiency which is a multiplier to growth efficiency.
  • Fixed Light and Darkness accumulated values not being serialised for plants.
  • Fixed When a planter is lit by multiple grow lights turning off one grow light causes the plant to be unlit.
  • Fixed Plants could grow when they had no water.
  • Fixed dynamic hydroponics getting lit at 180% light intensity by grow light.
  • Fixed Plant analyser cartridge does not clear state when looking away from Plant.
  • Optimized Performance for grow-lights.
  • Changed Grow light emitter to point source, reduced radius of grow light emitter to match the current effective radius of grow light. Removed shadow casting from grow light.
  • Updated incorrect blueprint on refrigerated vending machine kit
  • Removed old Unity NetworkTransport networking method
  • Removed ROCKETNET and ROCKETNET_LOGGING defines since they are no longer needed
  • Fixed comms motherboard not correctly sorting landing pads in the same manner as Satellite Dishes.
  • Fixed saved landing-pads that did not have a centre or Gas storage would print an error on load.
  • Made custom project view fetch even faster
  • Fixed jetpack thrust settings not updating for clients
  • Fixed bug with overflow chute not overflowing when output end is blocked
  • Fixed landed shuttles not loading in at the correct rotation
  • Made custom project view fetch faster
Mar 5, 2023
Stationeers - Not Simon
New Traders

Shuttles
Shuttles come in 6 types, including small, medium, and large variants, each with normal and gas options. Shuttles can use a runway or make a vertical descent and require a landing pad of different sizes: 3x3 for small, 5x5 for medium, and 6x6 for large. Supporting the requirements of different shuttle types means you’ll get to trade with more of the visiting Traders.



Space Planes
There are two types of space planes, medium and large. Unlike shuttles, space planes cannot land vertically, require a runway, and only appear on planets with an atmosphere. Due to being designed to operate in diverse atmospheres, they are able to still land during storms, unlike shuttles. Space planes also need a larger landing pad size: 7x7 for medium and 9x9 for large. A minimum runway length of 15 and 20 is required for medium and large space planes, respectively.

Trader requirements are visually displayed when using the comms motherboard, and trader sizes can be accessed from logic.
https://sketchfab.com/models/5de5344d3fb74f09805cc269bb17c5a3/embed




Runways and Beacons
Vehicles entering the area from space have a long approach as they slow down from orbit. To better guide traders to the landing pad and avoid them crashing into mountains and buildings, you can use beacons and runway taxi pieces. Beacons can be placed and configured to guide traders through the air to the landing pad, while runway taxi pieces define the entry point of a runway and a path to the center piece.

Planes require a threshold piece and a runway to land. Additionally, Taxi Hold pieces can be used to stop traders on the runway until Activate is called on the landing pad center or via the activate button on the landing pad power data module.



Combining all these pieces allows you to fully customize the descent of the aircraft and may be required to prevent collisions. To make it easier to create a suitable landing area for traders, the landing pad pieces have been split into three new kits: Basic, Runway, and Atmospheric.

Environmental Requirements
Large shuttles and planes have a chance of carrying human traders. However, human traders require a breathable atmosphere before they will exit their craft and trade with you. To accommodate human traders, you'll need to build a hangar that can be pressurized.



Trader Interface
Options have been added to the Comms Motherboard to allow you to choose which landing pad and satellite dish will be used.



Trader Crashes
If you don't have a suitable landing pad and runway, traders will collide, cause damage, and explode. Be sure to create an appropriate landing area to avoid this from happening. Be especially careful of planes, if your runway is not long enough then they will overshoot and potentially crash.



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/


Change Log v0.2.3860.18648
  • Increased medium and large plane runway requirements to 15 and 20 respectively.
  • Shuttles now can have individually overridden speeds.
  • Reduced size of planes and made their required landingpads larger to prevent collision happening when they're rotating to leave
  • decreased deorbit distance of some of the larger vehicles
  • made types for virtual landing pad center waypoint, and for deorbit waypoint.
  • landing pad height will now be used as a shuttle waypoint when coming from/to normal waypoints.
  • Updated chance for medium tier space planes to spawn.
  • Added if waypoints or hold points get destroyed mid transit trader will depart immediately if the can't find new a valid path.
  • Fixed required runway length for planes not being enforced
  • Fixed center piece vertical height setting not being used
  • Added Space-Planes are now able to land during storms. Normal trader shuttles are still unable to land during storms.
  • Updated shuttle audio fall-off to account for new approach profile
  • Fixed incorrect build state mesh on landing pad liquid input connector
  • Updated taxi piece corner prefab name
  • Renamed taxi corner piece and removed duplicate corner piece
  • Fixed issue where logic reads on dishes about best contact signal strength would not get a noise offset properly added, like the computer motherboard display.
  • Fixed trader getting left behind when departing via activate button
  • Fixed Trader shuttles deorbit at the incorrect rotation when landing directly on a landing pad.
  • Added "trader print" command
  • Fixed planes landing, and not going a minimum distance due to accidentally reattaching to their current point.
  • Deorbit distance and glideslope can now be customized on a per shuttle basis.
  • NOTE BETA USERS will need to completely reconstruct all threshold pieces on current saves updating to this revision.
  • Changed Updated threshold piece to have data port and onOff Switch.
  • Added landingPads can now have multiple thresholds but will be error if more than one threshold is turned on. Thresholds that are turned off will not form an approach path.
  • Changed landing pad taxi pieces and hold pieces now only flash if they form a valid path from a valid threshold to the centre piece.
  • Added data port for the threshold piece (first pass)
  • Fixed Immediately departing trader using activate logic variable can cause trader robot to be left behind.
  • reenabled deorbit waypoint
  • Fixed Autolathe Tier2 invisible.
  • Added landing pad taxi corner pieces
  • Fixed bug where shuttles would sometimes face the wrong direction
  • Fixed traders crashing in to ground when departing if there is no runway
  • Fixed bug where waypoints were sometimes not connecting correctly
  • swapped order of next and previous waypoint setting on shuttle approach
  • Fixed connection rotations on Landing pad taxi pieces.
  • disabled deorbit fake waypoint for debugging.
  • Changed Lading Pad Data piece to return Activate state of center when queried via logic.
  • Changed Name of Kit (Landing Pad Waypoint) to Kit (Landing Pad Runway).
  • Changed planes landing behaviour so that if the runway is long enough for the plane to land without going over the center piece then the plane will not need to return to the threshold before making its way to the center piece
  • Changed ActivateButton animation speed.
  • Fixed Code clean-up Atmospherics Controller.
  • Added Activate button to Landing Pad data piece. Pushing the activate button will depart a landed trader or order a trader waiting at a hold piece to progress down the taxi way.
  • Added Activate Button prefab.
  • added virtual waypoint to shuttles first waypoint to represent a deorbit approach.
  • Added Sounds to space-planes.
  • Improved Space-plane land and depart animation.
  • Fixed Incorrect Material on space plane engine plumes.
  • Fixed size landing pad requirements for space-planes. Medium 7x7, Large 7x9.
  • Fixed shuttles for clients not spawning in with the correct rotation
  • Fixed traders clipping in to their shuttles when they hop out
  • Fixed Mode not being set on load for landing pad center.
  • Fixed large plane pad size requirement
  • First pass on planes requiring runway
  • Fixed Incorrect hashed value of Mode Interactable on LandingPadCenter.
  • Fixed Depart uni-task switches to main thread if called from thread.
  • Added Writing Activate to LandingPad Data-Power piece will depart a landed trader.
  • Fixed render distance on small lights.
  • Made shuttle movement more smooth
  • Removed trader ready checks from depart command
  • Added trader depart console command "trader depart <pad id>" or "trader depart" to depart all
  • Committing missing GameStrings from previous commit.
  • Labeler can now be used to set waypoint height.
  • Changed Waypoint height screw to have min of -100, and max of 100.
  • Changed waypoint height screw alt click to decrement by 1.
  • Waypoints now default to a height of 3.
  • Waypoint visualizer holograms only stay active for 15 seconds now.
  • Moved shuttle audio code into its own class
  • Removed some unneeded serialized fields from shuttle classes
  • Added animation events to cargo planes
  • Updated suntime command, no parameters will default to early morning
  • Fixed Can't label LandingPadCenter (code removed in error rev.).
  • Fixed Error when LandingPadCenter deleted mid arrival/departure of trader
  • Fixed shuttle doors not opening/closing when atmosphere requirements are met/not met
  • Updated trader land command to allow for selecting a contact: 'trader land <pad id> <contact index>'
  • Added Kit (Landing Pad Basic). Creates: Centre Piece, Power Piece, Straight Piece, Diagonal Piece, Cross Piece.
  • Added Kit (Landing Pad Atmospherics). Creates: Gas/Liquid Storage, Gas Output, Gas Input, Liquid Output, Liquid Input.
  • Added Kit (Landing Pad Waypoint). Creates: Threshold Piece, Taxi Piece, Taxi Hold Piece, Waypoint.
  • Updated Start conditions to use correct landing pad kit.
  • Fixed StructureTraderWaypoint power/data input collider incorrectly rotated.
  • Fixed Error with StructureTraderWaypoint blueprint.
  • Enabled collision between trader shuttles
  • Fixed multiple explosion code paths not correctly merging.
  • Shuttles now configure various crashing values based on type.
  • Added crashed shuttles result in a gas explosion.
  • SatelliteDishes wont return a Contact's pad requirements until after interrogation.
  • Updated shuttle animations to be slightly lower while taxiing to help with fitting into hangars
  • Fixed Trader Bot having the wrong rotation
  • Updated medium cargo plane animation
  • Added cargo plane traders
  • Fixed Compile error due to merge conflict.
  • Fixed Shuttle Engine sounds not playing on clients.
  • Fixed Traders with an Environment requirement now go back inside shuttle if the requirement is no longer met.
  • Fixed If landing pad centre is destroyed by damage or deconstructed the associated trader will attempt to depart.
  • Fixed Landing pad Cross piece doesn't show destroyed state.
  • Fixed Error when trader shuttle is destroyed by collision during landing or take-off.
  • Updated landing pad threshold model
  • Fixed beacons not being able to switch between center and threshold when modifying landing pad network
  • Updated how trader shuttles find taxi paths. You will no longer need to have a straight line of taxi pieces from threshold to center for taxiing to work.
  • Removed unused field on shuttle animation handler
  • Added Human Trader model for traders that require atmosphere
  • Fixed several instances where rotatables could become stuck, especially at high framerates.
  • Rotatable no longer instantly rotate when occluded.
  • Fixed large SatelliteDish having fast rotation speed set.
  • Fixed trader shuttles not disappearing when destroyed for clients
  • Fixed null reference exception if a trader shuttle explodes while leaving
  • Cleaned up TraderShuttle.cs
  • changed shuttle explosion to used previously cached center instead of calculating it
  • fixed the explosion position to be the center of the ship instead of the pivot position
  • Fixed exception on comms motherboard from contact items not being cleared properly
  • Refactored how client shuttles are synced
  • Fixed Error on server when landing pad center deleted.
  • Added Sounds to large trader shuttles.
  • Added trader shuttle collision with terrain
  • Added mesh collider and rigid body to all trader shuttles for collision detection
  • Fixed Broken shuttle prefabs
  • reverted threshhold piece directionality requirement
  • First pass on ship collision (WARNING: trading shuttles will now collide and destroy structures. After 20 collisions the trader will explode causing a lot of damage)
  • Added missing field to shuttle animator
  • Fixed missing ref on shuttle prefabs
  • Added new explosion algorithm option which can more controllably scale damage, and define spreading/blocking behaviour.
  • Changed explosion class to use unitasks vs coroutine.
  • fixed issue preventing uneven sized landingpads with one even dimension from atempting to find a valid offset.
  • Added Engine sounds for large trader shuttles.
  • improved even sized landing pad offsetting.
  • Updated threshold pieces to only connect one way. This is to stop approaches direct to the threshold piece entering in the opposite direction to the runway
  • Fixed shifting logic for even sized landing pads.
  • Stopped shifting logic from running on odd sized landing pad dimensions.
  • Trader character now uses pad offset
  • WIP work on shifting rotation of pad offset
  • Added sounds for medium shuttles.
  • Fixed trader shuttle movement not syncing for clients
  • Fixed waypoint visualiser not updating for clients
  • Added virtual waypoint above landing pad center for use when landing directly on pad. Can adjust the height using the 'Vertical' logic setting. Useful for landing on underground landing pads.
  • Fixed Dead player characters sometimes still receive partial key input after respawn.
  • Fixed Input and output network logic vars of devices that accept IC chips not showing up in stationpedia.
  • Fixed thruster material on small shuttle
  • Fixed Logic variables for input and Output network atmospheres only show as able to be read on Atmospherics devices when pipes are connected.
  • Added hold functionality for trader shuttle. Shuttle will now wait at hold pieces until the landing pad data connection piece receives an activate signal.
  • Added swapping trader models based on trader type
  • Fixed trader shuttle engine effect material
  • Fixed NRE in trader regenerate/land commands
  • Added sounds for Small Shuttle.
  • fixed error when trader species type is not specified
  • Added support for different species of traders(no new species added yet)
  • Added interactables and logic handling to the landing pad data connection piece
  • Added ability for landing pad to attempt to shift center landing point virtually half a square, to support even size pads.
  • Removed safety checks, preventing shuttle depart, and land from being called if pad is obstructed.
  • Fixed issue with landing pads not converting pad net iteration correctly into world space.
  • Integrated IsObstructed function as an optional param on the pad check functions.
  • Added Sounds for small Gas shuttle animations.
  • Added other shuttle types and animations
  • Fixed trader shuttles not entering at correct angle when landing directly on landing pad
  • Tweaked trader waypoint so that you can not point to landing pad taxi pieces, you can only point to the center piece or other waypoints
  • Fixed long standing bug, where room generation was inappropriately checking CanAirPass instead of the internal concept of CanGravityPass. Rooms again can be generated when frames are at their 2nd build state.
  • Added build and broken states to landing pad taxi pieces
  • Fixed waypoint beacon grid position
  • Added waypoint type to waypoint interface
  • Updated shuttle land animation speed to be 1
  • Fixed Player unable to pick up small items next to landing-pad structures. LandingPad connection colliders are now om ignore Ray cast layer.
  • Added basic lerping to shuttle landing/leaving
  • Changed The selected LandingPad and Satellite dish are now highlighted in green on Comms-Motherboard UI.
  • Added LandingPad center piece can now be re-named with labeller.
  • Fixed Comms motherboard screen not refreshing when traders regenerate
  • Updated trader pool prefab to use new shuttle
  • Added new trader shuttle animations to work with new waypoint system
  • Fixed Clients not being able to interrogate trader on comms motherboard.
  • Fixed A number of items not syncing to clients on comms motherboard screen.
  • Fixed Satellite-dish scanned contacts not synced to clients.
  • Fixed Interrogation and contacted status of trader contacts not synced to clients.
  • Added separate voice notification setting so that they are no longer tied to the text language
  • Added Comms motherboard can now select which dish to scan with and which landing pad to call the trader to. A Comms motherboard can support a maximum of 8 dishes and 8 landing pads.
  • Added Required pad size to Trader contact UI.
  • Added Runway requirement to trader contact UI.
  • Added Oxygen requirement to trader contact UI.
  • Added Function to return trader size based on shuttleType.
  • Added toggle helper UI classes.
  • Fixed incorrect structure bounds on trader waypoint beacon
  • Updated blueprints and thumbnails for the landing pad taxi pieces
  • Refactored how trader waypoints are iterated over.
  • Pointing a waypoint beacon to the landing pad will now auto link it to the landing pads connected threshold piece. If no threshold is present the trader will land directly at the pad center
  • Added landing pad taxi pieces
  • Tweaked shuttle approach to follow taxi pieces after waypoints
  • Added localization wordcount command
  • Fixed reference to removed animator on small satellite dish
  • Added Logic variables to satellite dishes to assist with automating interrogation and landing of traders via logic.
  • Added Setting Activate to 1 on satellite dish now attempts to interrogate the closest contact. If the contact has been fully interrogated it will call the trader to land.
  • Added TargetPadIndex logic variable: select the landingPad on the dishes data network to call the trader to.
  • Added InterrogationProgress logic variable. progress this dish has made on interrogating the closest contact.
  • Added SizeX, Y & Z logic variables. Size of object in meters.
  • Added MinimumWattsToContact logic variable. Minimum number of effective watts of signal power hitting the contact to begin interrogation. (It will read -1 if contact is not resolved)
  • Added WattsReachingContact logic variable. The actual number of effective watts of signal power hitting the contact from this dish. (It will read -1 if contact is not resolved)
  • Changed Moved Satellite scanning logic to Server Tick.
  • Refactored Server tick to parse through deltaTime since last tick.
  • Refactored ScannedContactDataCollection to allow for removal of a number of locks.
  • Fixed waypoint visualiser sometimes pointing the wrong way
  • fixed typo in tier 3 trader slot definition
  • Fixed Can't read internal atmosphere of combustion centrifuge via logic.
  • Fixed incorrect uv on trader waypoint beacon
  • Decreased trader downtimes.
  • Increased tier 3 trader lifetime.
  • Increased tier 1 trader contact time, and decreased max required wattage.
  • Decreased tier 2 trader max contact time, and max required wattage.
  • Decreased tier 3 trader max required wattage.
  • Fixed trader beacon lights not being affected by powered state
  • Added definitions to trader to mark some goods as bulk, which will let larger trader ships exchange larger quantities.
  • Fixed Europa gas trade exchanging far too much gas.
  • Added Contacts now have minimum wattage to see. Generally, if wattage was so low that resolve would take several minutes, then the dish wont be able to detect the contact at all.
  • Fixed tier 3 trader contact slot incorrectly setting its resolve wattage.
  • Added visualiser to waypoint. Can now toggle on arrows which point to the waypoints target.
  • Fixed null exception caused by all waypoints list not being initialized
  • Removed References to CommsMotherBoard from TradeDataHelper.
  • Refactored Helper functions for trading items moved from comms-motherboard to land-pad-network class
  • removed erroneous Clear command.
  • Added error state to waypoint beacon. Will now flash error when its next target is already linked to something else.
  • Fixed bad uvs on waypoint beacon light
  • Fixed trader shuttles not clearing correctly when exiting world
  • Fixed prefab error with landingpad crosspiece
  • Fixed LandingPad Blueprint turns yellow when it will connect to another landingPad.
  • Added trader waypoint beacon system (first pass). You can now build beacons for the trader to follow when landing/departing.
  • Added bulk definition to stock values for tradableItem.
  • Added tire texture for trader airplane (Art update)
  • Added Some tier3 Traders now require a pressurized hanger. Trader will land but not exit the shuttle until the atmosphere is breathable for humans.
  • Added ContactGeneration Data to Tradables Xml. generation rules for contacts are now defined in xml data.
  • Added Backend support for traders requiring runway and or pressurized landing-pad.
  • Added Logic to select the most appropriate ship model from the trader data instance.
  • Added Downtime between trader re-generation.
  • Removed 2x2 landing pad centre piece from kit
  • Changed landing pad pieces to not duel register and allow construction to intersect so that airlocks can be constructed through runways
Feb 1, 2023
Stationeers - Not Simon
Trader Overhaul

The previous trader updates changed the way you contact and summon traders, and this update finally changes who the traders are, and what they trade. We've done a complete overhaul on how the traders and their wares are defined. Previously, traders and their goods and prices were programmatically generated, but this is now all hand authored. These changes were all designed with mod support in mind, and modders can create new unique traders easily.

Traders now, in general, only trade more basic items rather than fully manufactured goods. They also don't buy and sell the same things, but rather they will buy items that make thematic sense. For example, the alloy trader sells alloys but wants to buy ores. Traders will also occasionally want to sell or buy special items.


New Trader Types
There are currently 5 unique traders, each buying and selling their own unique set of goods. Higher Tier versions of the traders will trade a wider variety of items.
They are:
  • Ore Trader: More Ore Less
  • Alloy Trader: All Alloys
  • Hydroponics Trader: Green Futures
  • Gas Trader: Gas For Less
  • Construction Trader: Build INC
Gas Trading

With two new landing pad modules you can now load gas and water into your landing pad storage allowing you to sell it to the traders. Hovering over the gas icon will display a tooltip letting you know the exact conditions of the gas mixture that the trader will accept.

The landing pad has a single storage atmosphere. The capacity of this storage atmosphere is expandable but is not intended as long term storage and you will need to purge it before loading in a new gas mix to sell, otherwise it will mix with the existing one.




New Trader UI

Since the traders are more bespoke and sell a more well defined set of goods a new UI was required to display this information in a better way. The UI is designed to provide a better trading experience. The buy and sell sections are separated into their own tabs, and each trade item is made larger and easier to parse.



How you complete trades has changed as well, previously you would select everything you wish to buy and sell and then submit your trade. Now you simply buy and sell as you go for each item.


What's Next?

We have one more trading update to come. In the next update you'll see us leveraging all the features and improvements we've made in the last four updates to finalize and polish the trading game loop. Traders with different size and environmental requirements will require you to set up your landing pad in different ways and encourage you to have multiple landing pads that meet these different requirements.




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/


Change Log v0.2.3809.18408
  • Fixed Re-generating trader data during load could cause a ReferenceId clash. This step has been moved to after load is completed.
  • Changed Moved re-registration step of loaded items that had a ReferenceId clash to after save has fully loaded.
  • Fixed Calling a trader into land will stall and error out the interrogation of another trader. Thanks: Freeze (discord).
  • Removed Debug logging on TraderShuttle.cs
  • Changed TraderData hashing algorithm to be more robust.
  • Added x100 mole to the custom names of all gas trades that deal with a modified quantity of 100
  • Fixed mouse clicks not responding correctly on some objects after departing trader. Mouse state should now be reset correctly when closing trader window.
  • Fixed added missing custom thumbnails for some sell data instances on trader ui
  • Fixed Collision error on trader data Checksum.
  • Fixed Null error on loading Motherboard.
  • Fixed Refrigerated Vending Machine throws error when stacking plants.
  • Fixed Refrigerated Vending machine not handling genetics data correctly when stacking or splitting stacks of plants.
  • Fixed Incorrect material on Large Hanger Door buildstate0.
  • Fixed NRE when getting custom colored thumbnails
  • Fixed bug around selling consumables
  • Changed thermal plants to require T3 trader, and only have a chance to appear
  • Added SunPathTraceWorldAtmos bool in LightManager.
  • Added Support for traders to sell items with Custom Names and Custom Colors.
  • Fixed Gas trader sells bottled water in liquid canister (was previously selling it in gas canister).
  • Added CustomColor and CustomName Implementation for TradableItem.
  • Fixed water bottles not correctly watering plants
  • Added missing item types for some trader data
  • Added Liquid input piece to landingpad kit.
  • Fixed SelectData not initialising on trader buys.
  • Fixed sell quantities of steam for gas trader.
  • Fixed ItemHydroponicTray kit has null entry.
  • Added missing gamestring and fixed some missing icons on trade items
  • Added CustomToolTipKey attribute to override tooltips on trade items when desired
  • Added more generic consumable buys to various traders
  • Added more flavour item requests from various traders
  • Added trader console command for regenerating trader contacts
  • Added mixed gas icon
  • Fixed bug where bought stackables would not spawn with the correct stack size
  • Added TradeResultMessageFromServer to allowed to process list for clients.
  • Changed TradeQuantityAction now only executes on consumables that are not ingots. quantity actions on ingots and stackables will be handled elsewhere.
  • Created random gas icon
  • Added Checksum validation for traderData when generating traders from seed when loading or joining. On validation fail when loading the trader data will be regenerated. On Validation fail on join the client will disconnect.
  • Added thumbnails for gas trades
  • Fixed some trade items not having names
  • Removed some unneeded validation code
  • Made the child item condition tooltip use the prefab display name
  • Added reagent tooltip changes to autogeneration in worldmanager
  • Added GameStrings for TraderCanvas.
  • Added If the base data of a saved trader has changed, that traders inventory will be regenerated. This is required to happen as trader inventory is generated from a seed and presumed to be determinative when loading and joining.
  • Added GameStrings for new trading UI.
  • Allowed for the selling of gas in bulk amounts
  • Tweaking tradeables data to fix reagent selling
  • Added code support for excluding items from a trader inventory based on trader tier.
  • Added Verification step when loading serialized trader data that doesn't match current Trader data.
  • changed remaining gas buys to be 100 mole increments
  • changed ore trader extra purchases
  • changed some xml whitespace issues
  • Disabled buy button when you have insufficient credits
  • Fixed condition tooltips not including child conditions
  • Fixed tooltips not showing for reagents
  • Added Serialization for traderDataInstances. Traders saved prior to this version will be regenerated with new a traderDataInstance on load.
  • Fixed issue where items in a select weren't being initialised properly
  • Added ability to repair AimEE (mining robot). For now using Duct Tape (requested credit: Keramane via steam).
  • Added ability to deconstruct AimEE (mining robot) into its source kit using a drill (requested credit: Keramane via steam).
  • Added Networking Calls for clients buying and selling to trader.
  • Added GetQuantity on GasMixture returns totalMoles.
  • Fixed error in TraderData Write() method.
  • Added hydroponics trader buying produce.
  • Reduced trader name pools to a single entry each
  • standardized seed kit names
  • Fixed trader ui tooltips not taking into account actions/conditions on BuyItem/SellItem
  • Fixed actions on SellItem not being processed on trade completion
  • Made refreshing the trader ui not zero out buy/sell amounts
  • Refreshing trader ui will now not recreate all the items
  • Added Handling for clients to request a buy or sell from a trader.
  • Fixed Tablet showing incorrect energy radiated and convected values for pipe networks. Thanks Freeze, Discord.
  • Made tooltip wording a little nicer on trader ui
  • Added Implemented Ireferencable on TraderDataInstance and TransactionDataInstance.
  • Changed refactored buyItem and SellItem methods to prepare for server-side logic.
  • added construction trader alloy purchases
  • Fixed Error when removing an element from a landingPad network.
  • Changed If a landingPad network is saved without an atmosphere the game will create a new one for it on load and print an Action message in the console.
  • further addition of new trader data, mainly Gas, Hyrdroponics, and construction.
  • Added processing overlay when trade is waiting for atmosphere changes to propagate
  • Added TraderData now syncing to Clients.
  • Added TraderDataInstance generation now deterministic via seed.
  • Fixed Error when creating new custom world (beta only).
  • Fixed Entities not using the internal atmosphere of the new cryotubes when inside them.
  • New trader ui will now appear when talking to trader
  • Stationpedia links now correctly added to trade items
  • Removed deprecated trading systems code.
  • Removed Reference to old trading panel in scene.
  • Added Read and Write methods for TraderDataInstance.
  • Added error popups on trader UI for a few edge case scenarios
  • Added tooltips to trader UI
  • added some ore and alloy trader first pass values
  • Fixed World Conditions now prevent a traderData from adding a buy or sell to a trader instance if the world condition is not met.
  • Changed Syntax of WorldCondition Data.
  • Added Generic Buy and Sell data can now be added at the game data level.
  • Added A buy or sell data can be referenced in the trader data by a unique Id so as to avoid duplicate data across traders.
  • Added Tier requirement of a transactionData can be added as an attribute.
  • Added more functionality to trader UI to support buying and selling of different types of items
  • Added liquid input module for landing pad
  • Added gas input module for landing pad
  • Added error print when TradableItem name is not a valid prefab.
  • Fixed SleeperLeft and SleeperRight not using correct atmosphere for player breathing. They were using the external atmosphere instead of the sleeper internal atmosphere.
  • Added Chance Element to TransactionData.
  • Allow for player to buy gas from trader, gas will now be created correctly in landing pad gas storage
  • Fixed mouse not unlocking when closing trader ui
  • Added Explicit logic for applying a gasMix trade action.
  • Added Todo notes to TradeDataHelper.
  • Updated Reagents.cs
  • Fixed spelling error in tradeables.xml
  • Changed Reagents now authored as xml attributes for ReagentAction.
  • Added behaviour to Execute functions for existing trade actions.
  • Added OnSold() method to SellDataInstance. This should be called for each ITradable that is created when sold by the trader.
  • Updated Reagents.cs generation script and regenerated reagents.cs
  • Added sold out overlay to trader ui
  • Fixed Item TradeCondition did not support multiple nested Items.
  • Added HasChildItem returns a reference to the found item as ITradable.
  • Connecting trader UI to back end plus a few small NRE fixes
  • Fixed Error on game launch.
  • Fixed SellDataInstance still using list of items.
  • Changed IQuantity to Inherit from ITradable.
  • Added methods for checking whether an iTradable meets buy conditions.
  • Changed a traders buy or sell can now only contain one discrete item nested items are still supported.
  • Small clean up trader contact code
  • Implemented ITradable on Item & GasMixture.
  • Added Methods to Evaluate a gasMix and list of items to fulfil a trader buy order.
  • Integrating new trader ui with backend
  • Fixed Error in XmlSaveLoad.
  • Cleaned up trader contact code
  • Added evaluation methods for Trader buying conditions.
  • Changed Trader initialisation method also initialises conditions and actions.
  • Updated traders to use the new data for their names
  • combined station and trader contact in to single class and removed concept of contact type
  • Fixed randomizer not being initialised correctly when loading game
  • Added nullcheck to selldata
  • Added Thumbnail to trading data
  • Added new trader data to existing traders
  • Implemented first pass of processing and storing new trader data
  • Added sold out text to trader ui
  • Added stationpedia button to new trader ui
  • Spelling fix on tab well editor button
  • Added tab well prefab and added it to the trader screen
  • Renamed Trading Class to TradingHandler to prevent class with Trading namespace.
  • Added Revised Trader Data Framework.
  • Added 3 example traders to tradables.xml
  • Added new trader UI first pass
  • Moved ui tooltip and alerts panel to its own canvas
  • Fixed An error in gas trader data.
  • Added Example Trader Data for Ore, Gas and Hydroponics trader to tradables.xml
  • Removed Un-needed files from 1st pass of trader data frame-work.
  • Fixed temperature gamestring being created with the wrong key
  • Fixed invalidcastexception caused when placing landingpads next to some structures
  • Fixed logic motherboard causing error when clients are joining if there is a bad device reference present
  • Added Data Framework for authored traders to support trader economic rebalance.

Jan 12, 2023
Stationeers - Not Simon
2022 was a very busy year for the Stationeers team. We consolidated our Statiioneers team with our ICARUS team at the same location, allowing us to draw together our talent and experiences across both teams.

Multiplayer
Our efforts last year culminated in the release of a major multiplayer refactor that solved a great deal of issues and substantially optimized the code. The game was still heavily reliant on a method of making network connections that was unreliable and not performant - so we developed that further (a variation of RakNet we call "RocketNet"). We released this late last year as well as removing DRM entirely from the game and also any requirement for the game to run on steam.

This has presented an issue for players who have difficulty making multiplayer connections due to Internal Address issuing problems, stemming from port forwarding challenges and IP exhaustion. We are currently working hard to reimplement Steam P2P to work with our new multiplayer, as this will alleviate a lot of those having port forwarding and IP issues.

Working on the "hook"
Many have noticed that after the major multiplayer refactor we have been focusing on redeveloping core areas of the game, trying to do so in a very deliberate and cohesive way. Sometimes this involves some small steps backwards - but our progress can be seen by the reworked hydroponics and our midway work on trading. Expect a lot more updates focused on developing what we would call the "hook" to the game. We have excellent systems but we are trying to make them matter. As always, we love discussing the game and where it should go here in the comments, on the forums, and more directly on the Discord.

Bug Fixes
As we're getting back in to the swing of things and making plans for the upcoming content updates we've been doing some house keeping and fixing a bunch of bugs reported by the community, as well as some additional fixes for the last update.

Bellow are the key fixes in this update

Trader Contact List
The trader contact list was sometimes breaking when you left a game and started or loaded a new game and would persist until you restarted the game.

Stationpedia Issue
We added the ability to pause the game while viewing the Stationpedia but the search was not working correctly while paused.

Atmospheric Network Errors
Changing an atmospheric network was causing devices to enter in to an error state and would only be fixed by turning the device off and back on again, which was not always possible.

Game Hanging While Loading
When starting a game it would hang for an indeterminant amount of time when it had reached about 90% completion. There is now no stall time at all.

Work on the next trader update is underway and you can expect to see it be released next week.

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/


Change Log v0.2.3773.18265
  • Fixed typo in tutorial mission
  • Fixed plant stabilizer arrows being emissive when the appliance is off
  • Added custom project view editor tool for better project searching
  • Fixed new trader contacts not displaying after leaving and loading a game
  • Fixed stationpedia only returning one result when paused
  • Fixed Atmospherics Devices go into an error state when adding pipes to one of their input or output networks.
  • Fixed Pipe Network Atmospheres sometimes not being saved when the pipe network was being modified during the saving process.
  • Fixed Error when trying to modify a mixerGroup property on an audioSource that is in the process of being destroyed.
  • Fixed Heat exchangers stop working when an attached pipe network is modified.
  • Fixed Plant Analyser not being able to scan Hydroponics Device
  • Fixed missing mushroom spore bag thumbnail
  • Fixed satellite power dial not showing correct tooltip text
  • Fixed plants drinking and breathing while dead
  • Fixed game hanging at ~90% while trying to start game while hosting
  • Fixed issue with satellite dish not setting its closest contact correctly, which prevented logic values signal ID and Signal strength from returning expected values, signal strength returns as -1 until contact is resolved, and the degrees offset after resolving(smaller numbers are closer).
  • Fixed SatelliteDish draws power from logic cable as well as power cable.
  • Fixed constructing pieces of landing pad when it is linked to a computer can throw an error.
  • Fixed Trader landing animation plays when loading a game with a trader already landed.
  • Changed trader depart check to use grid system check instead of physics call.
  • Fixed Trader shuttle not being lit by player headlight.
  • Fixed saves failing to load because of null blocking grids array
  • Fixed incorrect message when trading with no available credit card
  • Trader code clean up.
  • Changed Trader landing check from physics check to path trace.
  • Fixed role sometimes being none when hosting
  • Removed an external web request
  • Reverted StartServer from being async
  • Fixed Able to interact with logic chips behind closed roll cover.
  • Fixed Translucent shader not calculating correct shadows.
  • Fixed Ices lit from behind in lockers appear lit.
  • Fixed name missing on medium and large hangar door. Removed unused hangar door kit
  • Fixed Small Satellite dish is constructed with dish at incorrect horizontal rotation.
  • Fixed items incorrectly popping out of chute valve after building a new chute next to a closed and occupied chute valve
  • Fixed Incorrect pin-out n combustion centrifuge. (d0 pin was pointing to d1).
  • Created GameStrings for remaining un-localised strings in combustion centrifuge tool tips.
  • Fixed station contact tier dictionary from being cleared incorrectly

Dec 22, 2022
Stationeers - Not Simon
  • Dishes now release contacts from interrogation if the wattage requirement is no longer met, this addresses a missmatch of information between the contact UI and the interrogation popup.
  • Fixed possible issue where contact manager could potentially crash.
  • Added ability to read and write power setting for small and medium satellite.
  • Fixed mismatched types for power setting when updating clients.
Stationeers - Not Simon
Trading Contact System
When revisiting the trader contact mechanic, we really wanted to create an engaging system that would encourage engineering, automation and problem solving. In addition to finding traders, we’ll leverage this in the future to find destinations for your rockets, answer distress signals, and invite visitors to your station. The process of contacting contacts has been split into a few concepts.

Contacts
Instead of dozens of contacts constantly spread around the sky, we’re moving to a more logic driven approach of having rules dictate when traders are available. As we transition from our older trader system, into the new one, we are providing the old traders as three separate tiers of contacts. These current contacts have increasing difficulties to contact and hang around for about 20 minutes before they leave and another one takes their place, so you’ll have to find the harder contacts if you want to check out many traders.



Detecting and Resolving
Contacts must be resolved by the dish before it can determine how accurately it is pointed at the contact. The time to resolve is determined by the dish's power output multiplied by the dish alignment, over the contact’s expected resolve wattage. If the contact is resolving too slowly, it likely indicates you are not close to the target at all, and you should try a very different angle since effective power levels scale exponentially with accuracy. Alternately, the contact might have a very high expected wattage, and your current dish just isnt big enough to resolve it in a reasonable time. The resolving process only uses 10% of the actual power your dish is set to.



Interrogating
Once you have resolved the contacts position, you’ll be able to press the interrogate button. Similar to resolving, you’ll need to land enough wattage on the contact, but fortunately the interrogation dialog will inform you of the current calculations. Unfortunately, Interrogation does have a hard minimum, and if the dish is not pointed well enough, or the power is too low, you won't be able to start the process. Interrogation also has a time requirement, with harder contacts taking significantly longer, so you’ll want to use high wattages to ensure you finish before the trader moves on. Once interrogation is complete, you can land the trader just as before.

Once we receive feedback we’ll review our plans for contacts in motion, contacts with more strict visibility requirements, resolving contacts while rotating dishes, and manual control of all dish operations.

Satellite Dishes



As part of the new trader contact system you will need to make use of the existing and new satellite dishes. There are two new dishes, small and large, making the existing one the medium dish. They all work in a similar way but each size of dish uses much more power than the previous one, this extra power is needed to effectively contact traders.

The new Small Satellite Dish looks and behaves similar to the existing Medium Dish but is smaller. The Large Satellite Dish is an extremely large fixed dish structure. Visually, instead of the dish rotating and tilting the sensor is on a gantry. Functionally it still works in the same way as the other dishes.

The time to rotate these dishes increases as you go up in size. The small dish is very fast while the large dish will take several minutes to rotate 180 degrees.
Your support makes this possible

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/


Change Log v0.2.3759.18228
  • RocketNet is now enabled
  • RocketNet reads the LocalIpAddress from settings file and tries to host with that, if this fails it will fall back to it's original method where RakNet picks the host device
  • Fixed spelling of Hangar
  • Fixed bug where bodies pulled out of slots don't go to the correct exit position and can sometimes clip into the slots parent object
  • Fixed ragdolls curling up into a ball after you pull them out of a slot
  • Added New concept of "resolving" contacts through the Satellite Dish and Comms Motherboard, where the dish must be pointed at a contact for an amount of time, before full information is provided.
  • Added When contacts "resolve", the comms motherboard shows the degrees off the dish is from the contact.
  • Added To communicate with the traders, satellite dishes must now "interrogate" contacts with energy from the dish for a fixed amount of time.
  • Added "Interrogation"/contact time scales linearly with dish power usage, and poor dish alignment negatively exponentially scales power.
  • Changed Dishes to all have full sky FOVs, with scaling effectiveness when contacts are not centered, resulting in being able to generally know whats in the sky after "resolving" contacts.
  • Added Contacts can now have different energy minimums, and sustainment periods required for "interrogation" to begin.
  • Added Contacts can have an energy minimum to show/start "resolving".
  • Reduced active contacts from 17 to 3.
  • Several changes to comms/trader UI to support new contacting system.
  • Added Large Hangar door a 3x1 modular Door.
  • Added Buildstates and destroyed states to medium hangar Door.
  • Fixed Spelling error with medium hangar door.
  • Fixed A Pipe Atmosphere could have its gas deleted if pipes were removed from the network in quick succession. This could generally happen if using the authoring tool to delete pipes or in large bases when multiple players were working on the same pipe network.
  • Fixed Suit storage could fill Emergency suits which would cause them to explode.
  • Fixed bug around dismount direction on ladders being straight up. Has been returned to original behaviour of dismounting forwards
  • Added Power Dial to Current SatelliteDish.
  • Fixed Ignition values on Medium Hangar door.
  • Refactored SatelliteDish animation system to prepare for new dish variants.
  • Added Trader Contact tier system Close, Medium, Far. More distant traders will require higher power or more precise pointing to resolve and contact. Existing contacts in the save will default to medium.
  • Changed default trader lifetime to 20minutes.
  • Changed For new trader generations, one of each contact will appear at each distance tier.
  • Changed SatelliteDish now consumes power based on its power dial setting when actively contacting or resolving.
  • Removed Paint and microwares traders from new trader generation rolls.
  • Fixed Error thrown by trading motherboard when number of contacts exceeded the expected max contacts.
  • Removed some unused code for motherships
  • Changed made vertical and horizontal properties on satellite dish virtual.
  • Fixed Sometimes source prefabs could be removed from the scene when loading larger saves. These are now regenerated in a final validation step on load.
  • Fixed Error when Centrifuge exports ores.
  • Updated SatelliteDish Prefab to include power knob.
  • Changed screencontacts button to not be active untill contact is resolved.
  • Added more state handling to represent the current contact interrogation state presented in the commsterminal popup.
  • Added small satellite dish
  • Fixed several cases where interrogation would attempt to operate on a null contact
  • General renaming of the contact process to interrogating
  • Fixed trading terminal dialog allowing stale information to be used to try and contact the trader
  • Fixed Root cause issue that caused Centrifuge to throw errors when exporting ores.
  • Fixed Sometimes when mining game would throw errors and get stuck in mining animation.
  • Fixed Game doesn't load due to ironOre source prefab getting destroyed on load.
  • Refactor satellite dish contacts to not use dictionaries
  • Added contacts reset their interrogation timer if they don't have a interrogating dish.
  • Fixed another dish from stomping an in progress interrogation of a contact by a separate dish.
  • Fixed contacts not being able to be interrogated without a landing pad
  • Updated medium and small satellite dish kits
  • Fixed issue where newly created satellite dishes would already have resolved all targets
  • Added Large SatelliteDish. A massive fixed dish with a movable sensor that has a very high max wattage at the expense of very slow movement speed.
  • Added Locks around all usages of DishScannedContacts as this collection is accessed from multiple threads.
  • Added contacts reset their interrogation timer if they don't have a interrogating dish.
  • Fixed another dish from stomping an in progress interrogation of a contact by a separate dish.
  • Moved several trader UI related math operations onto their respective objects
  • Fixed incorrect contact time estimations, and changed some text fields to better represent interrogation process state.
  • Added if a contacts interrogating dish looses power or is turned off, interrogation will halt, and reset.
  • Fixed StationContacts not serializing contacted status and contact wattage variables.
  • Station Contact UI change first pass
  • Updated Comms Motherboard UI
  • added missing files from previous commit
  • added older message based checks preventing trader from being called for various pad/vending machine/power reasons
  • reduced all SatelliteDish rotate speeds
  • fixed issue where resolve timers would process despite dish moving.
  • Added time remaining counter to trader contact item
  • Fixed Landing button being active while contact has not been made
  • reverted unwanted scene changes
  • Fixed build error caused by editor code
  • Fixed missing tier icons
  • Fixed small satellite returning the medium satellite kit on deconstruct
  • Added and update recipes for satellite dishes
  • Updated starting conditions for Vulcan and Venus to include requirements for trading
  • Added the current dish name to the contact pop up
  • Removed "trader requesting to land" prior to being able to call the trader to land
  • Fixed "Satellite Dish" name to "Medium Satellite Dish"
  • Made rotation tolerance smaller for satellite dish to remedy the dish not moving when framerate is very high
  • Added new Satellite Icons
  • Fixed resolving not correctly using the wattage if changed after dish rotation finished.
  • Fixed resolving progressbar having unexpected behavior when changing some resolve parameters.
  • Fixed GetWattageOnContact using maxWattage instead of wattage.
  • Changed InitResolve timers to use unified helper functions for calculations.
  • Changed all current contacts in game to have a minimum watts to resolve value of 0.
  • Added Additional helper functions for common resolve time components.
  • Changed random resolve offset to be generated when the resolving starts.
  • Fixed errors in Dish Stationpedia entries
  • Fixed issue where new contacts would be interpreted as already resolved
  • Added the trading section to the Stationpedia
  • Fixed comms motherboard from using dishes that were inoperable.
  • Reduced power usage of dishes to 1/10th of set power while resolving, so only while interrogating is power fully used. idle dishes still use base draw.
  • Disabled dishes will now loose their contact resolve data.
  • reduced satellitedish idle power draw, as the main power usage occurs with use
  • Added missing structures to trading page
  • Fixed wrong icon for trading page
  • Fixed screen contacts not properly clearing when no dishes are valid on the Motherboards.
  • Changed dish SignalStrength logic type to return -1 when the best contact is currently still resolving.
  • increased general dish strength when within 5 degrees
  • missing file from previous commit
  • Added build states to medium satellite dish
  • Tweaked medium satellite wattage plus added animations back
  • Fixed some contact item UI elements being left on when the parent object is disabled
  • decreased water usage by 25% since food, water, and stress mechanic changes are still a few weeks away.
  • decreased active Nitrolyzer power usage from 20k, to 6k.
  • Added computer and comms motherboard to trading stationpedia page
  • Updated Trading Stationpedia entry
  • changed comms motherboard to use text instead of bar when Interrogating
  • Fixed medium satellite dish's dish collider rotating incorrectly and being unaligned with the visual mesh
  • Fixing problem with port being closed when a client leaves preventing other players from joining
  • RocketNet now disconnects before clients send their disconnect message to host

...