Stationeers - Heightmare


A Look Back
This time last year we were just coming off the back of Early Access release, so where the last post took a look at where we were going, in this one I'd like to take a look at where we've come from.

Here's a summary of the major additions to the game while we've been in early access in the last 12 months. It's hard to even imagine the game without world atmospheres or the logic chip system now, so I can't wait to see what this list looks like at the end of 2019!

  • Logic System (followed 6 months later by the programmable IC's)
  • World Atmospheres
  • Mars, Europa and systems for planet Variation (day/night temperature curve, solar strength etc)
  • Hunger Mechanics
  • Third-person camera
  • Workshop support for mods and IC code.
  • Stationpedia
  • Scenario System
  • UI Refresh accross the board (menus, server browser, mouse UI, recipe selection, text entry for labeller etc)
  • Content (Plants, cosmetic cladding, wall types, weapons, planets, clothing/gear, structures)
  • Massive performance optimizations for terrain, and stuttering in general (with more to come)
  • And much more...

While many of these were things we had already envisioned, one thing we didn't count on was the massive level of support we've received from the community over the year. Stationeers is a challenging game, and teaching people how to interact with all the various systems will be an ongoing battle. The tutorial is on its 4th major iteration and certainly not the last, with a more fleshed-out tutorial campaign being planned for the new year. Personally, the thing I've found most endearing about the community is their willingness to answer questions on Discord, Reddit or the Steam Community board - but this is supplemented by a massive library of tutorials on Youtube. Add to this the team of dedicated individuals providing translations for the game in 14 different languages and thanks to everyones combined efforts the game is accessible to audiences it otherwise wouldn't be.

Localization
We would like to take a moment to acknowledge the outstanding work of one particular individual - Discord user Dragon, who took it upon themselves to configure a tool for localization tracking and support. This has provided a useful interface to track localization efforts of the game, giving volunteers a one-stop-shop for translating various pieces of Text from Stationeers into one of the 14 languages currently supported. This work would of course be all for naught if it weren't for the assistance of our dedicated translators. This is not a complete list, just those currently signed up to the tool and those responsible for some of the more recent submissions through the old Discord-based system. Apologies to anyone we've missed!

  • Dragon
  • EmreAdv
  • AstralWalker
  • DemonCZ
  • Croco
  • Mekko
  • socramazibi
  • semTex.
  • ShiaNox
  • Dax
  • STD
  • Harpi
  • lill
  • Spiike
  • vikjITA
  • Mustard
  • Daedalusxxx
  • comel11
  • -Ulitka-
  • organiq
  • Bonbon_kocher
  • Von Meister
  • samuelcseto
  • TFlippy
  • YuanYu
  • DinhoBRJ
  • Pip

And while on the subject of foreign-language support - A special shout-out is in order for the community of the Unofficial Stationeers French-Language Discord Server and to Tioris (Psi) who sent us this save showing his base ready for the holiday season.



On that note, the studio will be closed for the next few weeks, so we'll see you back in mid-January re-energized and ready to kick off another year of Stationeers development!

Version 0.2.1846.8518
  • Added logic type support for Pressure, Quantity, Temperature, RatioCarbonDioxide, RatioNitrogen, RationOxygen, RationPollutant, RatioVolatiles, RationWater, and RationNitrousOxide to TankLarge and TankSmall (reporter's credit to SunRazor)
  • Added a field to display your current system speaker mode found in the settings menu, under Audio.
  • Added UI audio feedback when moving an item to a hand slot.
  • Added Voice notifications now play once when enabled in the Audio Settings menu.
  • Updated Localized Text Dictionaries. (Current 10th December)
  • Fixed the MainMenu music still playing quietly even when the volume was set to 0.
  • Fixed command descriptions for the *al commands on the programmable chip.
  • Fixed a bug that prevented clients from selecting backwards on logic chips
  • Fixed Autosave running even on multiplayer clients if autosave settings were changed after you connected.
  • Fixed bug of players getting stuck on LadderEnd when trying to descend
  • Fixed un-localized text field in tutorial on powering your spacesuit stage.
  • Fixed bug that prevented players passing through the gap in the Ladder Platform
  • Fixed plants yielding between 2 and HarvestYield+1 depending on how they were harvested
  • Fixed a bug that allowed the player to have a fully grown plant in their hand
  • Fixed bug in which player getting out of chair would be instantly killed.
  • Fixed bug which allowed players getting off the top of ladders to clip through objects
  • Fixed bug that was causing setting input on logic batch writer to freeze game.
  • Fixed NullReferenceException error on Dedicated servers when trying to play some of the new slot interaction UI audio elements.
  • Fixed some of the IC chip instruction descriptions (reporters credit to EinBerliner)
  • Fixed added Plastic Sheets to first locker you find in the Escape From Mars scenario, as the recent addition of manufacturing machine build states had made it unintentionally challenging to progress without them.
  • Fixed issue with Tutorial caused by a change in how chairs are placed resulting in required suit filter being impossible to pick up.
  • Tweaked the look of the Tutorial panel to match the new look of the IC Editor help windows
Stationeers - Heightmare


Pressing On

Trying something a bit new this week. Normally we structure patches around one-or-two significant new features that have been added to the game. Unfortunately nothing is quite ready to release, but we do have a large number of small improvements, bug fixes and quality of life additions that I think everyone playing on the stable branch will appreciate. So here they are!

Update on Trading

We're going through adding functionality to what you can already do with the Communications Motherboard. This is mostly based around finding storage devices on the same data network and collating their contents. This will determine which items are available to trade. The means to transfer goods between yourself and the trade vessel will be pretty 'magical' to start with, but the shuttle landing process will be added after that.

Major Architectural Work

At this point of development it becomes clear what big packages of existing work needs to be reconsidered, because you get a better idea of what is fun in the game, where your performance problems are, and what is actually realistic to achieve. We've identified four key areas that we need to redevelop and are starting work to finish these off. Once these are done, we will have the broad platform in place for the complete game - and then just need to focus on the stuff around it.

Remember these are only intended plans and we go into them considering if they are possible. Where they're not, we will have to change and adapt, dropping what we can't do or what isn't fun. Don't consider these absolutes!

Zero-point Shifting

Our game engine (Unity), like nearly all others, uses "float" precision for "vectors" - vectors are used to position things in the game world. This means that each "number" in the position (x,y,z) has a fixed number of bits in which it can be stored. For a float that number of bits is 32. Each number in the position is effectively stored as two values: the "significand" and the "exponent". The significand store the significant digits of the number up to a fixed amount, and the exponent stores the order of magnitude of the number, also up to a fixed amount. In a float these fixed amounts are 23 and 8 bits respectively. Because a high value of the exponent results in the gap between numbers that the computer can represent becoming larger, the further the number is from zero the less absolute precision it has. The practical result of this is the as you get further from the origin (0,0,0) the physics objects start "shaking" because you don't have enough precision for smooth movement.

The solution to this is to abstract the "meta" position of the object (i.e. the position of it in the game universe) from the "rendered" position of the object (i.e. the position of the object in the game scene). This means when the player gets a certain distance from the origin we move the character back to the origin and adjust the position of everything else so those things keep the same position relative to the player.

In essence, it's a pretty simply thing to do. In practice, because position is handled nearly everywhere, it's quite laborious and fraught with bugs to implement.

What does this allow us to do? This allows us to offer much, much bigger worlds to the players. Allowing them to explore beyond the current limit before things break, which is 5km³. We need this for vehicles such as rovers, drones, air vessels, etc...

Multiplayer Netcode / Object Virtualization

The game sends a lot of data to clients. We're using the early unity version of UNET for networking, with a mix of high level and low level network messaging. Sometimes we have our own serialization of network messages and sometimes we use Unity's helpers to have it do the heavy lifting. This means we have a lot of memory turnover (garbage) and cleaning this up is what causes game stutter every few seconds. Network messages aren't the only source of this, but they're a major contributor. Even when playing alone the game runs as a server and sends messages to itself, so it still contributes to the problem when playing alone.

Unity is releasing a new network package soon, and we'll be evaluating whether to use that, or to abstract out objects completely. This means that, like the zero point shifting above, we might have game objects existing "virtually" in a universe sense as pure data constructs, and only turn them into "game" objects when we need to render them. This means we can have a "pool" of such objects and when we need to draw one, we simply apply the "virtual" objects details to it and plop it in world. This would give tremendous performance improvements, both in memory and in CPU. The result would be quite remarkable. But it's worth considering this is, in fact, a huge amount of work and quite risky.

We can't 100% commit to which option we choose, but at the very least some level of multiplayer refactoring will occur.

What does this allow us to to? Potentially tremendous performance improvement, not just for multiplayer but also for single player if game objects are virtualized. This means better frame rate and order of magnitude amounts of game objects that could be supported.

Session Abstraction

Big words! What does this mean? Simply put, this means cleaning up our quite messy initialization procedures when you start a game. We need to abstract out elements of this and clean it up. By doing this we really open up the door for what "types" of games we can support. Want to replay the same save again and again as a round like SS13? Can do! Want to make a MP deathmatch arena? Sure can! Want to create a coop-mission challenge? Yep that too!

What does this allow us to do? In addition to cleaning up the game setup and removing many pesky connection bugs, this allows us to restart the game while clients are connected, as well as support advanced gameplay modes such as round-based play.

Game-world Migrations

Off the back of the previous work, we want to be able to migrate one game world to another. We actually already have this work mostly done, and we were actually going to support it via migrating to new sessions. This meant four players could migrate to a new session when they wanted to take a mothership somewhere, but the other players in the world could continue. It "mostly" works. But it's really, really complicated. Complicated is bad. If this wasn't a niche game, we'd probably go down this route. But it's a niche game and we have to embrace that. This means we need to go for safe options, ones that we know we can do without over committing and not delivering.

So we're going to dial back that system a bit. You'll be able to take everyone currently playing, get on a vessel, and go to a new world. Using the session abstraction this means:
  • Save out what is going to the new world (players on ship, stuff on ship)
  • Delete everything except player "brains"
  • Make the new world
  • Create the stuff we saved out
  • Start the game
Sounds pretty simple right? Once we've done session abstraction, yeah!

What does this allow us to do? Away missions, basically. It allows you to continue game sessions over many worlds. Build a ship, fly it somewhere new, fly back to your old place. The main caveat we're likely to make is requiring everyone in the play session to migrate at once, rather than splitting the session into instances.

So while not a complete road-map, this will hopefully give players a good idea of what we're looking at working towards over the next few months. If you have any questions, hop into Discord!

*Hotfix* Version 0.2.1833.8470
  • Fixed bug that prevented second input on chips being set.

Version 0.2.1831.8467
  • Added new uniform models for when they're un-equipped to replace the original flat box models that they've had since release.
  • Added 'Appearance' button to the settings screen. This functions the same as the character creation screen that has always been accessible in-game, but sets a preset character that will be used when you create a new world. This will be extended later to work with joining multiplayer games.
  • Added Localized text (translation) support to the New World screen.
  • Added Atmospherics Tablet Cartridge can now be used to read the internal atmosphere of another Stationeer's suit. Good for diagnosing unconscious players! Thanks to Sim and Neouni for the suggestion.
  • Added dimmed backgrounds to all windows and dialog boxes to better prompt the user on what's currently interactable.
  • Added a define command to the IC that allows programmers to create constant values without using a register.
  • Added more sounds to UI including the character creation menu.
  • Added moustache facial hair variants for November.
  • Added in-game sounds for task, mission and stage completion, adding an object to your hand slot and opening and closing inventory windows.
  • Added some more missing interface sounds in the menus.
  • Added Holding the smart-rotate key as a modifier (default: C) now lets you loop through logic device pin options backwards.
  • Added Green as a new available hair colour.
  • Adjusted Prompt, Alert and Confirm dialog boxes to be more consistent with each other and adjust their size to the content inside better.
  • Adjusted IC Script Editor window layout to be more consistent with other windows in the game.
  • Adjusted Text Input window layout to be more consistent.
  • Adjusted max radius an many looping sounds to reduce sonic clutter. WIP.
  • Adjusted IC help windows to be longer, showing more items.
  • Changed Debug Log file entries to exclude some unnecessary data and replace it with some metrics that are more useful for troubleshooting, like server type and loaded mods. The game log file can be found in %userprofile%\AppData\LocalLow\Rocketwerkz\Stationeers\output_log.txt and is immensely useful if you're reporting a bug - particularly ones where an error was displayed in the lower-left corner of your screen.
  • Improvement IC better supports coding with enum values.
  • Improvement Devices on device pins are now sorted unibetically (= alphabetically, give or take).
  • Updated Localization Files (Current 29th November)

  • Fixed text jumping around when resizing the Stationpedia.
  • Fixed a pretty major issue with a 'default active' sound that was causing it to use up all available sound voices, preventing any other sounds from playing. Complex stations should now sound much better, but there is still WIP on this.
  • Fixed a bug where combining pipe networks wasn't calculating new combined total atmosphere properly.
  • Fixed a bug where removing a pipe from the end of a network would clear the atmosphere contents.
  • Fixed a bug where removal of a pipe from a network wouldn't divide up atmosphere properly.
  • Fixed the documentation for lr on the IC.
  • Fixed Dynamic Hydroponics attached to a Tank Connector not being removable, due to not having an animation controller.
  • Fixed Prompt dialog boxes jumping in size occasionally.
  • Fixed bug in which battery wall light would drain power even when off.
  • Fixed bug in which battery wall light would remain on even after battery discharged.
  • Fixed Digital Valves are no longer forced into an error state by being fully enclosed in a frame.
  • Fixed Issue starting new worlds due to previous WorldSettings change and dependency on worlds names not being changed.
  • Fixed sound clashes in the main menu.
  • Fixed inventory sounds playing at once when you start a new game.
  • Fixed issue with new moustache variant for third face style.
  • Fixed error whenever destroying the Portable Solar, as it was trying to start generating power, despite it being in the process of being destroyed.
  • Fixed the majority of misaligned and overflowing text within menus and on buttons. Text should now autosize and stay within their bounds. Especially noticeable when using a localized language.
  • Fixed Error when trying to recycle the Portable Solar, as it was trying to run solar-charging code like whenever you drop it, despite it being in the process of being destroyed.
  • Fixed instances where duplicate sounds were playing when navigating menus.
  • Fixed Issue with the full beard on one of the face variants not displaying properly.
  • Fixed issue on loading characters where organ creation could fail, resulting in immediate death.
  • Fixed NullReferenceException error that could occur if the UI Audio Manager attempted to play audio before it had properly initialized.
  • Fixed a bug in which the GasDisplay could show incorrect units if cycled through temperature (finders credit to EinBerliner).
  • Fixed incorrect close tag in ChangeSettingToFor value.
  • Fixed bug on IC where defines weren't storing hashes correctly.



Stationeers - Heightmare

Mostly odds-and-ends this week, with a few new quality-of-life features and fixes but mostly just building on the foundation of the game. Things like the military gear may not obviously fit into most of the game as it stands, but the less obvious things like the new character rig will greatly improve our workflow for working with characters down the line. Audio work continues, with the newest member of our team taking the opportunity to familiarise themselves with the basics of the UI and Audio system in game before moving onto some of the more challenging development areas.

Additionally, we're rapidly approaching the end of our first year in Early Access. We'll be putting together a brief video looking at what has been achieved throughout the year and what the future will bring for Stationeers. You can expect to see this in the next few weeks.

New Character Rig & Marine Gear

Later in development we're going to want to add more variance to characters with gear options and role-based outfits. In order to prepare for that, we've fixed a long-standing issue with the character rig, which should resolve several outstanding animation/appearance bugs, mostly affecting female characters.

Audio Improvements Cont.
We're continuing to fill the void that some players may have noticed, with the addition of interface audio to the settings screen. This work will continue over the following weeks with the mission/task UI and inventory receving some long overdue audio feedback. After that's out of the way we'll move onto some of the more technically challenging sound implementations to round out this so-far neglected aspect of Stationeers.

Hotfix Version 0.2.1814.8357
  • Fixed Null Errors that could be encountered on load due to issues getting an invalid game install path from Steam.

Version 0.2.1812.8352
  • Added Wall Light Battery variant. This has only a data port, but takes a battery as a power source so is useful as an emergency or temporary source of power.
  • Added Suit Storage will now recharge batteries that are put in it, including batteries inside head torches and marine helmets.
  • Added new character rig and models. This is a visual improvement to provide a better and more consistent visual result for characters, while still using the same rig for both male and female.
  • Added Marine Helmet, Armor, and Uniform. Constructed on the Tool Manufactory. Helmet has a battery slot, and a lamp. Armor has four internal slots for storage. Currently does nothing special this is the first pass and will be extended later.
  • Added first pass of controller support. Currently no defaults, so you have to set your own axis definitions. Added button images for Xbox One Controller (other controller image support to come later).
  • Added Major refresh of Localized text files. Untranslated keys are no longer included in every XML file, as missing keys now default back to english. See the #localization channel in Discord for more details.
  • Added branches and ternary operators to the IC to complete the missing ones.
  • Added interface audio to the settings menu.

  • Improvement JumpTags can now be used as variables on the IC. The value of the variable is equal to the line number the tag is defined on.
  • Changed Plants no longer take damage from being in an atmosphere that doesn't contain what they need to breathe. They'll still take damage incorrect temperatures, presence of toxins or lack of water, however.
  • Updated Localization Files (Current to 10th November)

  • Fixed Disk Slot on Air Conditioner and Wall Cooler allowing any item to be inserted.
  • Fixed Re-scaled audio settings sliders to a max of 100, this being identical to what was previously the default setting of 80. If you had volumes below the previous default value they will have been scaled accordingly, so no volumes should be any different unless you were using settings above 80.
  • Fixed issue where IC housing dropdown list entries were not cleared when removing a ProgrammableChipMotherboard from a computer, leaving them visible in the world and attached to the motherboard.
  • Fixed slightly less shadow from helmet when looking at player shadow. Was caused by incorrect layer assignment on one of the scene directional lights.
  • Fixed skin color not changing to correct body when wearing uniform. Now skin correct color on hands and arms while wearing uniforms.
  • Fixed Headlamp not counted as a "light" for the purposes of the Light key and status indicator. Now all helmets with lights, and headlamp, will be togglable with this.
  • Fixed bug where powered item status indicator would stay on when dropping an item while it was turned to on.
  • Fixed Randomize button in Character Creation screen did not randomize all attributes. Also did some slight optimization on character creation screen. More to come with this.
  • Fixed StationContact buttons now more clearly display whether or not they're within contactable range.
  • Fixed issue dropping objects since yesterdays beta update introducing controller support due to it still using an old input system.
  • Fixed DynamicCrate missing Lock interactable, causing Debug.Log spam and lowering FPS when looking at crate.
  • Fixed a bug in which a graph with a line y=0 would prevent interaction with consoles on either side of it.
  • Fixed Jetpack animations for directional movement not working properly due to controls refactor.
  • Fixed Playing of interface audio, game sounds and voice notifications are now gated behind checks that your master volume and volume for that particular channel is above 0.
  • Fixed Tooltip Opacity slider values not rounding correctly.
  • Fixed a big frame counter running in duplicate and reduced more memory allocation.
  • Fixed Volume scale readjusted to now bottom out at -40db instead of -80db, making more of the slider range useful.
  • Fixed a item kit composite floor grating bug where the kit claimed there were five options rather than the actual four.
  • Fixed Game now more gracefully handles instances where Steam isn't running, displaying a prompt rather than just a wall of log error text.
  • Fixed invalid construction option entries on ItemKitBasket and ItemKitWallIron (Thanks supakadai & Sli in Discord).
Stationeers - Heightmare


It's been a quiet week or so and with some of the team taking extended breaks we were fairly light on the ground - but we made some good progress on the trading mechanic and have a few other surprises.

Interstellar Communications
One thing we've been working towards through early access is a way to give the end-game further meaning. You've mined everything valuable around your starting area. You've built an impressive base with all the requirements for survival comfortably taken care of. You've built redundancy and automation using all the tools at your disposal - what is there to do next? We've got several ideas for expanding on late game life, and Interstellar Communication touches on several of them.

As described several updates ago, we're working towards what we've dubbed the 'Trader Mechanic', but the final implementation will actually support far more than that.

In creative mode you can now spawn in construction kits for Satellite Dishes and a Communications Motherboard. A Communications Computer will display all of the contacts that could be reached by all Satellite Dishes on its network, and the signal strength to each. You can adjust the angle of your Satellite Dish in order to improve the signal to available contacts or find new ones. In time, you'll be able to use logic to streamline this process like on all the other devices in the game.

The next steps we'll be implementing will allow you to, given a sufficiently strong signal, initiate contact. This may just be for information (ie. reports from weather satellites) or to accept trade offers or visitors assuming you have a powered, connected and accessible landing pad (also currently available in Creative Mode).

As with all our new features, portions of the complete feature may be accessible while it is still a work in progress. We encourage you to try it out, report bugs and let us know what you think on Discord!

Alien Mushrooms



To demonstrate some of the flexibility of how some of the systems in Stationeers interact, we'd like to introduce the newest member of the botanist/atmospherics engineer toolkit - the Alien Mushroom. This functions in much the same way as existing plants, however instead of breathing in Carbon Dioxide and exhaling Oxygen, these will inhale Nitrous Oxide and exhale Nitrogen and Oxygen. This serves as a proof of concept for allowing us to easily change the gas mixtures inhaled and exhaled by plants, for which the next step will be to expose these values to mods.

Stationpedia Expansion

As promised, Rocket has continued to expand the Stationpedia to now include information on Alloys, and applied a few usability improvements as well. The color scheme has been changed again to improve the readibility of some elements, but may still be subject to change based on peoples feedback. It will also now automatically appear when beginning the tutorial or your first game. For those who have been asking about how to translate this, once more of the guide is complete we'll be making it available through the localization system so you'll be able to help translate it into your preferred language.


Version 0.2.1791.8240
  • Added Alien Mushrooms. Alien Mushrooms breathes in Nitrous Oxide and breathes out Nitrogen and Oxygen. This is a first pass for plants breathing custom gas mixes.
  • Added Alloy information and list to Stationpedia.
  • Added Tutorial and new game Stationpedia will now popup with opacity set to none by default, to make it easiest to read it.
  • Added second pass on Satellite Dish. Vertical and Horizontal can be set, in a similar way to the Solar Panel.
  • Added first components of the systems supporting Interstellar Communication to creative mode.
  • Added RatioNitrousOxide LogicType to logic-enabled atmospheric devices.
  • Added Door Setting variable can now be set by Logic.

  • Changed approximate checks on programmable chip from using |a - b| < e*max(|a|,|b|) to |a - b| < max(e*max(|a|,|b|), float.epsilon * 8) to avoid it wigging out when a or b are near 0.
  • Changed GraphDisplay so that graph runs from left to right, and reduced wasted space on the plot by removing above/below the x-axis if no line is plotted there
  • Tweaked and adjusted the layouts of the Settings screens so they're easier to read.
  • Updated text input fields to now animate while hovering over them.
  • Improved server messages. Server messages (shutdown notifications, server notices etc) now show up in the chat window as well.

  • Fixed Doors not reset Setting to new Open state, so it assumed actions must be taken (Credit: Risu)
  • Fixed Player State Window (top right) now displays temperature as "not a number"(NaN) when in a vacuum.
  • Fixed Player State Window color values not being initialized, and only updating correctly on first change.
  • Fixed Aliases being cleared on reset for IC Chips (Credit: Risu)
  • Fixed Beta bug where NaN was displayed when below 0 celcius, not invalid temperature. Now displays Nil (localizable) correctly for invalid temperature, instead of 0 which it displayed previously.
  • Fixed syntax highlighting bug in programmable chip editor that would cause things like `# O=k` to display tags, and `# 0=kelvin` to not be coloured correctly.
  • Fixed a bug where players could use RTF markup to highlight their own code.
  • Fixed the incorrect display on the computer monitor of IC source code.
  • Fixed Rotated filter slots on the large gas filter so their label is visible.
  • Fixed NullReference on generating terrain while flying faster than it could generate.
  • Fixed a couple of null reference exceptions caused by the interim commit of the trading mechanics.
  • Fixed Stationpedia window was not correctly initializing centered.
  • Fixed an animation delay when hovering certain buttons in menus.
  • Fixed occasional error for some players when populating Stationpedia data resulting in none of the text being loaded for any language. Will now display an error and continue loading normally.
  • Fixed reagent coloring in help system was a dark purple that was nearly always hard to read. Has been replaced with magenta to help with reading.
  • Fixed two matching filters show up as a warning (Credit: Risu).
  • Fixed visual blueprint missing for Portable Solar.
  • Fixed NitrousOxide filters were removing Nitrous Oxide from the input pipe correctly, but would add Water to the output instead of Nitrous Oxide.
  • Fixed tutorial required player to keep Stationpedia window open at all times during microwave task. Now player only needs to open it, and if they want to have it closed during the rest of the task they can.
  • Fixed WallCooler being an amazing heater in Europa. WallCooler efficiency drops as the temperature difference becomes too large. If the waste network becomes 100 degrees warmer than input, efficiency begins to drop until zero at 200 degrees.
Stationeers - Heightmare


Update on Trading & Surgery
Immediately following last weeks patch a few nasty issues surfaced as a result of the engine migration, but they've been tackled and we're able to refocus on the trading mechanic. The new UI capabilities we have thanks to the addition of the Stationpedia will be a big part of that, so keep an eye on the beta branch for the latest on our works in progress!

It's only been a few days since our last hotfix, so not a massively dramatic update this week - however there is one very important things to note.

CAUTION: Back in September a change had the unintended result of canisters no longer taking damage when over-pressurized. This update includes a fix for that.

Besides that, we got a lot of fixes in for non-critical-but-annoying bugs, some that have been around for a while. The save process has been made much more robust, with more checking done when saving to ensure things are working and better error reporting when it doesn't. It also won't overwrite files if there are any problems with the save process.

Dedicated server is still a work in progress, but some of the outstanding issues with Integrated Circuits and Atmospherics (specifically, welder gas tanks) on dedicated server have been resolved. The remaining major bug relating to vanishing items on dedicated is proving more of a challenge, so if you happen to have a reliable set of steps and a world save to reproduce this issue we'd love to hear from you on Discord!


(Another) Tutorial Refresh
And surely not the last! We've expanded the tutorial to include build states for machines. Expect it to be expanded further in the future to integrate the new help system.

Stationpedia
We've implemented an entirely new in-game help system - Introducing the Stationpedia! It can be accessed using the F1 key and is a nice simple way to view game information without having to alt-tab. You can click on most objects to link through to other ones for all raw materials, gases, crafting kits, structures, their recipes and the values they have that are exposed to logic. This is definitely not an exhaustive list and we'll constantly expand on this as we (and you) think of more data to add. The window can be resized, and there's an icon in the top right corner that will let you toggle transparency.

Version 0.2.1772.8154
  • Added game version now stored with IC Source Code to help track down issues and in case we need to do special version handling later.
  • Added Stationpedia, an in-game help system. Default key to access is F1 (in game only). Framework has been added along with some data, note this is subject to significant change and does not contain all the information that is planned.
  • Added opacity toggle and help buttons to tutorial window.
  • Added deconstruction information, similar to construction tooltip. When a tool is in your hand, and Extended Tooltips is enabled, you will receive information on what tool is required (if any) to deconstruct the structure you are looking at. To disable this, turn off Extended Tooltips in the settings menu. This will help when deconstructing items as it tells you what tool to use.
  • Added Operate and Logic modes to all doors. When set in Operate mode (0; the default) the door works normally. When set to Logic mode (1), using the doors buttons will ignore open/close requests and change the "setting" variable, depending on the open state. If the player presses the button and the door is open, the setting will be set to 0. If the door is close, the setting will be set to 1. This allows you to manually control doors using it's buttons, instead of using the doors internal operation.
  • Added 'Mature' logic slot type. Will return 1 if the plant growing in the tracked slot is in a growth state flagged as 'Mature', 0 if not.
  • Added MaxQuantity as a LogicSlotType. You can now read both the Quantity and MaxQuantity of a slot for easy Diode displays!
  • Added Nitrous Oxide to Silver and Lead ore output.
  • Added Reagent, Gas, and much more information to Stationpedia. Now detailed information is available for this. For example, the Reagent and Gas pages will tell you what objects the reagent/gas is found in.
  • Added Autosave support for new worlds. If you don't have a current save slot set (by saving the world manually) and your autosave timer is reached, a new save slot will be created.

  • Improved garbage collection during terrain generation by pooling and reusing terrain chunks through the implementation of a 'Terrain Pool Manager'.
  • Improved tutorial significantly. Integrated it with the Stationpedia, so that players can click on highlights to get taken to more information.
  • Removed Tablet from tutorial. Instead tutorial covers recipes within the Stationpedia.
  • Changed WaterFilter in starting equipment to a ItemKitSensor to replace the one removed a couple of days ago. Water filter no longer required due to a water canister being included with the portable hydroponics added to the starting gear several weeks back.
  • Changed dedicated server. ClearAllInterval now treats zero or negative values as 'don't run ClearAll automatically'.

  • Fixed inability to create new entries in the code library due to the code input window obscuring the text input window.
  • Fixed NRE on dedicated server regarding elevator shafts.
  • Fixed IC Operations BDNSAL, BDSEAL, BEQAL, BGEZAL, BGTZAL, BLEZAL, BLTZAL and BNEAL branching to the incorrect line. [Credit: Risu]
  • Fixed the 'Setting' value on CircuitHousing not persisting through save/load due to CircuitHousingSaveData being a child of StructureSaveData instead of LogicBaseSaveData. [Credit: Risu]
  • Fixed IC housing losing device references on load on dedicated servers.
  • Fixed Logic Dials visual position not being updated on load. [Credit: Risu]
  • Fixed Automated Hydroponics not being paintable. It can now be painted like the other hydroponics structures.
  • Fixed welders not working on dedicated.
  • Fixed changing Autosave settings while the game is running not applying any changes. Autosave can now be disabled or have the interval changed after you start your game.
  • Fixed bug with chunk pool could not be reused.
  • Fixed problem where if the save process failed for any reason, you would not be able to try save your world again until you relaunched the game. You will be notified in the console if a save fails.
  • Fixed problem where incomplete saves may still overwrite existing ones. Now, as it saves each file of a world save they'll be given a temp_ prefix. If all the parts save completely, they'll replace the existing save files. This does not affect the contents of the backups folder.
  • Fixed issue causing terrain to become corrupted if you left one world and created another without relaunching the game due to terrain chunk pooling (added to reduce garbage collection) not being cleared properly when you leave a world.
  • Fixed world saves would sometimes get to a point where you could no longer place doors. This was caused by Cursor objects never correctly calculating their center position (only occurred once registered). This meant that when we fixed another bug regarding placement, this old one was exposed. This meant a final check was always occurring against one grid square in the world.
  • Fixed problem with dragged objects not displaying their icon properly.
  • Fixed unable to deconstruct damaged pieces. This was because the new extended tooltip was failing for destroyed structures that were not correctly registering themselves as destroyed. Credit: Su-pa-Kitsune.
  • Fixed Canisters exploding from being overpressurised had been accidentally disabled. It has been re-enabled.
  • Fixed CircuitHousing's IsValidIndex function bounds check was incorrect. [Credit: Risu]
  • Fixed Index lookup in IC's always returning 0 for aliases. [Credit: Risu]
  • Fixed null reference caused by player brain not being created in time for terrain generation to use it for positioning.
  • Fixed null reference caused by failure to create global atmosphere on client in time to begin atmospheric processing. Credit: TakoMT via Steam Forums.
  • Fixed Password server could become stuck in the top right of the screen when trying to drag it.
  • Fixed ladder blueprint shows incorrect bounds.
  • Fixed cannot connect to password protected servers. Now password window correctly passes in values, and allows connection to server. Issue was caused by a failed input box conversion between old unity version and new, which also didn't generate any errors.
  • Fixed Control Chairs unable to fire engines. A Control Chair connected to engines should now be able to fire up engines again when driven. Clients will not be able to see the engine particles for the moment.
  • Fixed Tutorial not able to complete due to Autolathe not having materials.
  • Fixed Jetpack in tutorial did not start with stabilization turned on.
  • Fixed could access buttons on simple manufacturing machines while still building them.
Stationeers - rocket2guns


We've passed a big milestone! v0.1 to v0.2 this week, given our major engine upgrade. Performance and fixes are the key of this week.

Known Issue with IC's
While not a regular section in our patch notes, we've got a major issue with IC's that is still awaiting a fix. There is an issue with some IC programs that can cause the registers and aliases to get mixed up, which can have unreliable results depending on how your program is structured.
If you are having problems with an IC program, and are unable to wait for a fix - you can resolve these issues by not using aliases and addressing registers directly. We will try get this fixed ASAP in a hotfix.

Engine Upgrade to Unity 2018

This week marks the completion of the first stage of the engine upgrade. Any major bugs caused by the switch should now be resolved, so a big thanks to everyone who was playing on the experimental branch while it was up and reported any bugs. Things should now be more-or-less back to normal, so now is probably a good time to re-iterate our patch process for all the new players who have joined us recently.

Performance and Stuttering Improvements

This weeks update will have a pretty significant postive impact on the game. Many users will now notice substantial framerate improvements as well as reduced stuttering. Unity 2018 will now allow us more options in the coming weeks for additional optimization and stuttering improvements as well.

Game Branches Explained

Stable/Main Branch
This is the branch everyone is on by default. This is only ever updated manually, and any update on this branch will be accompanied by either a Consolidated Patch Notes post like this one. If an urgent bug shows up in the ~24 hours following a patch, we'll just update the patch note post with the details. If the fix takes longer than that we'll make a separate Hotfix Patch Notes announcement.

Beta Branch
This is where the magic happens! The build on the beta branch comes directly from our working source at the studio. If something has been committed, it'll be in the next beta branch build. An automated build happens every weekday at roughly 8AM NZST, but if we're fixing something live as we discuss it with people in Discord or in response to a Steam Community post we'll likely push an update right away. Sometimes there could be multiple updates on this branch in one day, luckily the way Steam batches changes they're pretty small.

When the beta branch does get updated, you'll see the public patch notes in the #beta-changelog channel on Discord. Some patches may not contain any public change notes though, so don't be surprised if you see a blank one! It probably just had some boring change or the addition of some new art/sounds that haven't been implemented yet.

Build States for more structures

We've slowly been increasing the "build states" for various structures in the game, to add more depth and complexity. In a sense, this helps with physical security as well in the future - removing some devices completely would require tools which you could restrict access too.

Additionally a new resource, plastic sheets, has replaced Steel and Iron sheets in some cases. These are produced from Silicon Ingots. This should ease dependency on Steel in some cases, particulary for walls. But it's going to make finding Silicon quite important.

Other balancing is occuring as well, changing the reagent quantities to create things and also how many sheets are consumed in the build state process.

Hotfix 0.2.1763.8120
  • Fixed issue causing terrain to become corrupted if you left one world and created another without relaunching the game due to terrain chunk pooling (added to reduce garbage collection) not being cleared properly when you leave a world.
  • Fixed world saves would sometimes get to a point where you could no longer place doors. This was caused by Cursor objects never correctly calculating their center position (only occurred once registered). This meant that when we fixed another bug regarding placement, this old one was exposed. This meant a final check was always occurring against one grid square in the world.
  • Improvement chunk pooling manager for garbage collection.
  • Fixed problem with dragging objects not displaying their icon properly.
  • Fixed unable to deconstruct damaged pieces. This was because the new extended tooltip was failing for destroyed structures that were not correctly registering themselves as destroyed. Credit: Su-pa-Kitsune.
  • Fixed Canisters exploding from being overpressurised had been accidentally disabled. It has been re-enabled.
  • Fixed CircuitHousing's IsValidIndex function bounds check was incorrect. [Credit: Risu]
  • Fixed Index lookup in IC's always returning 0 for aliases. [Credit: Risu]
  • Added Stationpedia, an in-game help system. Default key to access is F1 (in game only). Framework has been added along with some data, note this is subject to significant change and does not contain all the information that is planned.
  • Fixed null reference caused by player brain not being created in time for terrain generation to use it for positioning.
  • Fixed null reference caused by failure to create global atmosphere on client in time to begin atmospheric processing. Credit: TakoMT via Steam Forums.

Hotfix 0.2.1758.8095
  • Fixed NRE when stop server on dedicated server
  • Fixed NRE on dedicated server
  • Fixed Password server could become stuck in the top right of the screen when trying to drag it.
  • Fixed ladder blueprint shows incorrect bounds.
  • Fixed cannot connect to password protected servers. Now password window correctly passes in values, and allows connection to server. Issue was caused by a failed input box conversion between old unity version and new, which also didn't generate any errors.

Hotfix 0.2.1748.8080
  • Fixed Control Chairs unable to fire engines. A Control Chair connected to engines should now be able to fire up engines again when driven. Clients will not be able to see the engine particles for the moment.
  • Fixed Tutorial not able to complete due to Autolathe not having materials.
  • Fixed Jetpack in tutorial did not start with stabilization turned on.
  • Improvement garbage collection with terrain generation.
  • Fixed could access buttons on simple manufacturing machines while still building them.

Version 0.2.1746.8073
  • Added some more error messages for the IC chip, mostly that will throw during runtime
  • Added basic telemetry variables to Control Chair and Hardsuit. Now reports PositionX, PositionY, PositionZ (worldspace positions), VelocityRelativeX, VelocityRelativeY, VelocityRelativeZ (relative velocity to forward), and VelocityMagnitude.
  • Added first pass of satellite dish for communicating with AI ships for missions and trading. Currently just placable, not functioning. Included support for complex multigrid blocks with different smallgrid dimensions.
  • Added first pass of Shuttle Landing Pad. Currently just placable but does not do anything.
  • Added build states for Tool Manufactory.
  • Added build states for Autolathe.
  • Added build states to Electronics Printer.
  • Added build states to Security Printer.
  • Added build states to Security Printer.
  • Added build states to Hydraulic Pipe Bender.
  • Added Logic Hash Generator. Buildable off the Logic Memory Item as a variant, when using a screwdriver on the button you get a combo that contains all dynamic things in the game. When you select it, that object will show as the current hash. This can then be used by anything that needs to use Hashes, such as the Circuitboard (Hash Display), IC's, Logic units, and Logic Motherboards. The output is recorded on the "setting", which is read only.
  • Added UPNPEnabled option to Multiplayer options screen, so you can now disable UPNP if you don't want it or if it's causing problems.

  • Updated wording on UPNP note on the Multiplayer settings page to clarify that both the setting AND UPNP on your router had to be enabled to make it work.
  • Removed "launch" mode from Jetpack for now.

  • Fixed buttons could not be used on Autolathe (experimental/beta only).
  • Fixed game unable to run if workshop folder does not exist for stationeers. Normally, a workshop folder would be created - but if this didn't occur the game would not be able to be run. Now the folder will be created and even if it can't the game will still run. Credit: Zaneo, DirtyRat, and 4o (via discord).
  • Fixed Slot Quantity text was not always aligned correctly in Unity 2018.
  • Fixed lighting problem caused by the planet lighting layermask being reset after 2018 update to include everything
  • Fixed human material specular settings
  • Fixed Dual Registration objects were never running the large grid validation code.
  • Fixed bounding box not supporting grid mode. Fallback had been using bounds, but this provided poor visual indication of blocking off grid areas for multi-grid large grid objects (such as the stairs, and the future landing pad). Now Grid mode for bounds now supports large grid correctly.
  • First pass on clouds (turned off by default as they are causing significant frame time increases)
  • Fixed Some tablet cartridge text not displaying correctly due to fonts missing after the Unity 2018 Migration.
  • Fixed Multiplayer and Misc settings pages not properly resetting to defaults when the button was clicked.
  • Fixed error spam when attempting to scroll the menu patch note box due to disabled components.
  • Fixed bug that prevented setting TooltipOpacity.
  • Fixed a bug that allowed an unpowered arc furnace and logic trickery to create duplicate ingots.
  • Fixed a bug where devices sometimes couldn't be accessed by the IC (credit to Risu)
  • Fixed incorrect error message when joining with incorrect version. Now displays Version Mismatch rather than Player Count Exceeded when joining via IP to a server with a different version.
  • Fixed bug in which structures which required items in off hand wouldn't use the correct amount.
  • Fixed a bug in which writing an incorrect value to DaylightSensor's Mode would brick the device
  • Fixed unable to use worldspace UI in the new unity 2018 version.
  • Fixed bug that was preventing IC using float constants.
  • Fixed bug in which IC errors that occurred at run time wouldn't be reported.
  • Fixed bug where exporting code to the IC chip didn't reset stack pointer to base of stack.
  • Fixed multiplayer game bug in which client wasn't able to put IC in housing (the credit for finding the problem goes to Kevin!)
  • Fixed Jetpack stuck with on sounds from clients. Now jetpacks will be turned completely off on load, until the root cause of the issue can be found.
  • Fixed Mouse not locking to screen in Unity 2018 version.
Stationeers - rocket2guns


For the first time in many months, we're not doing a weekly update! Before anyone posts about the project being abandoned, let's talk though the good news about why that is!

Upgrading our Engine to latest version

Most importantly, and most significantly, we are making a major upgrade in the engine. We have made the game using Unity. We locked the unity version a month or so out from our initial launch which means we haven't continued to upgrade the engine since then. Why is this? Well, engine version changes can cause a lot of headaches. While they do contain lots of bugfixes (good!) they often necessitate changes in how things work (bad!).

There was also a significant change in pricing for Unity which was going to have some pretty huge ramification for the cost of our project. This is a very niche title, that's likely to run very close to only break even. We have to buy licenses for not only the people developing the game, but even our build servers! So it adds up pretty quick.

In the end, the benefits of this project being like others in our studio (which had moved to Unity 2018), and the fixes and new features of 2018, meant that we needed to upgrade. And so we have. Heightmare did the initial test, porting over and changing what was needed. Then we started migrating all the team, and our build servers. We've got all the hard parts of that working to the point some in the community are actually testing versions of the game running in the updated engine. Now we're just finishing the upgrades to our automated build and deployment system so it works with the new Unity version.

What are the results? Well, quite staggering really. Load times for a community provided large map were reduced from 5-10 minutes to seconds. There are other areas we'll have significant improvements in that will be more appreciable over time.

Trading and AI missions

If you've played RimWorld, you know how well trading can factor into to these kinds of game. So we wanted to start looking at what trading could look like in Stationeers. A form of trading is also key in our inspiration, SS13, so we felt it was a necessary component before we could replicate round-based play of Stationeers as well.



The initial groundwork has been done, the models have been made, which means we can begin the implementation in the coming weeks. It will involve placing down a landing pad. Placing landing "beacons" which would guide AI aircraft in, and then placing a communications relay which allows you to talk to these traders. You need to make sure the path you set is clear, or the AI craft will crash and not want to trade.



Initially it will just be trading, once that works out, we'll look at how the mission system (already implemented) can be extended to include people coming in via these ships. Perhaps you need to escort a scientist out to a remote area, or find someone lost and then recover them to a rescue ship, and so on.



Surgery and Medical



The medical system seems very basic. You get hurt, you take a pill. The reality is the system behind it is actually well fleshed out - it's just the "healing" that is simplified. You have organs, they take damage. So we want to expand this and surgery is seen as a key component.



It's a good chance for to examine: how do we get key mechanics into the game? Well, simply put - we play games! For me, SS13 in particular Paradise Station has been a surgery system I really enjoy. I play on that server as a Surgeon often; so I'm very familiar with how fun it can be. We discuss those ideas in an open forum, and often break out to a whiteboard to discuss the implementation. Then it gets captured on an internal intranet, tasks get assigned, and the work begins in earnest.



When will we see this in? Good question! The answer is really "it depends". Really what affects it most is how stable the build is, how well the engine upgrade has gone, and how bad stuttering is in the game.

Some weeks, people complain about us having new content coming when there are still bugs - assuming this new content takes people away from fixing bugs. That's seldom the case, we prioritize bugfixing over new features. New features and content get implemented because: the programmer doing it needs a break (something fun), implementing it takes a very short amount of time (variations of existing things can take only 10-30mins to implement), others are working on core aspects of the game so the programmer isn't able to do bugfixes till they're finished.

So how are we doing?

We're pretty upbeat actually! The project is in a good place, it's fun for us to add new things because we've ended up refactoring most of the really troublesome things. We are left with a few hard ones: such as stuttering and whether we completely replace Unity's networking API with our own solution. We also have big design decisions to make, some community suggested such as how much more "science" we model with things like pressure and temperature.



What is most fun, at least for me, is going into the game and adding new stuff and then seeing people play with it. And with a good foundation, we're able to do that much easier. We got some rough feedback early in the project, and updates were a lot slower. But that's just because we took on the biggest tasks first. And that's a tough part of early access, consumers aren't really ever exposed to these realities and as a developer: you can be rewarded for having a short time "more content" focus rather than a long term "better architecture" approach.



Please consider leaving a review on the project! It's really good to get feedback and review score makes a tremendous difference. Whatever review you leave but especially if it is not recommended, please leave some constructive thoughts. There is, for example, a recent negative review saying that the game doesn't run on Linux for them. We think that's a bit unfair, as the game isn't listed as supporting Linux. We see significant drops in sales based on even a few negative reviews. Some people do change their reviews, if they listed specific things and we go in and address them

Conclusion

So that is a pretty good overview of where we are at, and where we are heading for the next few weeks and months. Please let us know your thoughts, and get involved on the forums and discord!


Stationeers - Heightmare


This week is another pretty big one in terms of patch contents! It was meant to be a week we put the brakes on new features and go back to fix some of the long-standing bugs and address some quality of life issues. The outcome was some big wins on the performance and reliability fronts, but because Rocket can't help himself we also got a few new features! We've got some leave coming up in the coming weeks that may slow things down a little, but rest-assured there will still be steady improvements and we'll still be around in Discord to answer your questions and hear what you're doing in game.

Build States



Furnaces and Airlocks have been given additional build states. Much like how Frames are constructed, these structures require additional components after the kit is placed before they're functional. If you mouse-over the incomplete structure with the Extended Tooltip option enabled, you'll be shown what is required to progress to the next build state. They also now have to be deconstructed in phases in the same fashion. Likely tools for deconstruction of various stages are the Angle Grinder, the Crowbar, the Drill and the Wrench.


Integrated Circuit Improvements



The IC system has been expanded a lot this week with the introduction of several new commands at your disposal and the ability to interface with Reagent mixes. In the example gif above, Discord user Qiler has used IC's to do their own implementation of sorting. The code is available to everyone on the Steam Workshop.

The hardsuit has now been given an IC slot, allowing you to use IC code to control its internal systems. We will likely expand this system to support things like custom alerts, and look at adding IC slots to even more devices to give you greater control over your systems.


Glasses Slot & Night Vision Goggles

We've introduced a new slot to the game: Glasses! This has rudely inserted itself into slot 2 on your inventory bar, so if you want to preserve your muscle memory you'll need to assign it a new key otherwise you may wish to reset the inventory slot keys to the new defaults of 1-6. Currently the only items available for this slot are some regular old Glasses (just cosmetic at this point) and the new Night Vision Goggles (NVG). They use a bit of power but let you get around at night a bit easier. Expect more options for this slot to be introduced later to display a whole raft of data visualization options.


UI Audio

You may notice a few strange new noises when navigating the main menu. The current sound implementation is the result of a fairly intense couple of weeks right before we went into early access, so was lacking in a few areas. We're looking to fill in some of those gaps in the near future - starting with the easy stuff like UI sounds. Currently just the main menu and some of the prompts are included, however, this will extend into the rest of the UI (settings screen, inventory slot interactions etc) in the near future. We can then start to look at some of the more complex sound additions to the game, like footsteps, impact sounds etc. Any feedback is appreciated, as always! You can alter the interface sound independently using the newest volume slider on the Audio settings screen.

Bug Fixes / Improvements

Normally they wouldn't get their own heading, but there has been several significant fixes and improvements this week we'd like to highlight. Firstly, as mentioned in last week's patch notes we've acknowledged the performance issue with stuttering in the game and are trying to identify the best places to fix or improve it. This week we had several big wins in that department, with some of the worst culprits getting refactored to try make things run a little smoother. The problem definitely isn't solved, but based on the early feedback we've had from those playing on the beta branch the issue in at least the early game has been improved significantly. Work will continue in this area in the coming weeks and months.

In addition, several significant long-standing Atmospherics bugs were resolved, which you may need to be aware of going forward. A bug was identified by the prolific Risu on Discord, which caused the calculation responsible for transferring heat from pipe contents to the air surrounding said pipe and vice versa, to mix with the atmosphere at the world origin (0,0,0) rather than the atmosphere around the pipe. Now that it is fixed, you'll likely see much faster temperature transfer between pipes and the rooms they reside in - so be sure to keep an eye on that furnace output! We'll revisit the values for this after people have had some time to gauge the impact, then can look at tweaking the values or introducing something like Insulated Pipe if required.


Version 0.1.1701.7945
  • Added build states to furnace. Now will require iron sheets and a variety of tools to construct. Note that deconstruction also requires different tools now.
  • Added additional build states to Airlock. Two extra build states are required to construct the Airlock, for balance reasons.
  • Added tooltip information for incomplete structures. If a structure is not completed, and Extended Tooltips is enabled in the settings, a tooltip will advise the player what tools they need to complete the structure.
  • Added Plants and Entities (such as players) will now take toxin damage from pollutants. This scales with the partial pressure of the pollutants in the atmosphere. 1 kPa PP is when they start taking damage, and when a critical toxin alert will show for the player. 0.5 kPa PP is when the caution toxins indicator will show for the player. Note this scales with partial pressure, if you have lots of toxins - you will die quickly. Lungs will, slowly, repair their toxin damage if below 50 damage. Plants will (currently) not.
  • Added new slot Glasses. Note: This will have a default key that will conflict with existing installs. You will need to either reset the keys to defaults or rebind.
  • Added Glasses. Made on Tool Manufactory. Cosmetic currently.
  • Added Night Vision Goggles. Powered item that goes into the new Glasses slot. NVGs allow you to see at night, reasonably well. They use a fair bit of battery.
  • Added Cognition voice warnings for critical and low, warns player when they are losing consciousness. Can be set on or off under audio settings.
  • Added first pass of menu button audio. Should cover most of the out-of-game interface, as well as some in-game parts. Settings screen & Toggle/Checkbox audio to come next.
  • Added a dedicated Interface Volume slider to the Audio settings page.

    LOGIC
  • Added an lR command to the programmable chip that allows reading reagent information (recipe/required/contents).
  • Added a ternary command 'select' to the IC. See in-game documentation for useage.
  • Added SGT, SLE, SGE, SEQ, SNE, SAP and SNA commands to round out the set containing SLT for programmable chip
  • Added PressureExternal and TemperatureExternal readable values on the Hardsuit. These could be read by an IC in the Hardsuit Processor slot.
  • Added IC's can now be loaded into the Hardsuit. When in the hardsuit, an IC will be processed in the same was as the IC would in a circuit housing. Device references are hardcoded, currently : db is the Hardsuit itself. d0 is the Helmet, d1 is the Backpack (possibly jetpack if word). PressureSetting and TemperatureSetting are new Logic variables that work on the Hardsuit. This would allow you to write your own IC's to control your hardsuit.
  • Added Hardsuit Filtration and AirRelease added as variables. These can be read and set, 0 is off and 1 is on.

  • Improved stuttering bug. As memory is turned over, it causes Unity to perform "garbage collection" regularly to clean things up. A number of String generation areas have now been cleaned up, and have reduced stuttering caused by the Inventory Windows, and the Player State info (top right). These two areas caused quite a lot of constant memory turnover from updating their strings. If you notice an improvement with this update, please post your results in the forums. Note that stuttering still exists for my test levels, and we will continue to improve memory turnover to reduce stuttering. One big cause of stuttering that remains is memory turnover from the tooltip, and also network messages.
  • Refactored atmospheric messages to raw StreamWriter instead of MessageBase to reduce garbage. Reduces stuttering caused by atmospheric updates over the network.
  • Replaced starting airlock kits with regular door kits, as airlocks now require steel to complete them.
  • Changed ICs so that if the thing causes an error is fixed it will try to resume execution.
  • Changed Basketball Hoop now counts anything going through it, not just basketballs. Ores work well!
  • Moved IC labelling of devices to be the responsibility of the device the IC is hooked into instead of the IC.
  • Balanced Plant damage. They now take 30% of the damage they previously took, so they will be damaged slower.
  • Balance second CO2 Gas Filter to player spacesuit for default starting conditions, to make initial start more balanced.
  • Balance altered for Breathing value rate of entities. Now use an order of magnitude more moles, and plants use/produce an order of magnitude more moles. This was because production was so low for plants that, while realistic, the values were lost in either floating precision, or the atmospheric system removed them as they were so incredibly low. This was causing plants to not produce O2.
  • Improvement added B[R]AP - 'branch (relative) approximate' - and B[R]NA - 'branch (relative) not approximate' - to coincide with B[R]EQ and B[R]NE but allow the player to specify a tolerance in the comparison
  • Added a stack and branch/jump-and-load instructions to the programmable chip. Subroutines for all!
  • Changed db, sp, and ra to aliases, so they don't have to be handled specially, and load them at the beginning of an algorithm run
  • Improvement: Tidied how the IC stored it's variables so instead of code repeating an ugly implementation several times the ugly implementation only happens once now.

  • Fixed Null Reference Exception Message if you had a Control Chair in your world due to missing text box on the altitude display.
  • Fixed If playing offline, error message when Steam attempts to connect but fails will only repeat several times before the message is supressed.
  • Fixed error preventing the peek operation from working correctly on IC (credit Risu)
  • Fixed a bug where LED displays could display numbers larger than the screen size.
  • Fixed controlling an active vent with an Mode Control Circuitboard shouldn't get stuck changing mode any more. [Credit: Risu / Zaneo]
  • Fixed Incorrect labelling of Logic Types using the Configuration Cartridge due to the list of types being sorted alphabetically but not the list of string labels.
  • Fixed unclickable call button on Elevators.
  • Fixed Incorrect spelling and odd naming conventions on some wall types.
  • Fixed Pipe Thermodynamics. For quite some time, heat radiation from pipes has been calculated but applied to the atmosphere located at 0,0,0 instead of the one surrounding the pipe. This fix may cause temperatures in your base to fluctuate quite a lot more than usual depending on how your pipes are situated and what they contain. A big thanks to Risu for finding this one!
  • Fixed a bug in which IC's that contained references to db would be in error state when loading a save game.
  • Fixed Incorrect StringHash on Glasses slot resulting in them being incorrectly labelled as 'Belt' in several places.
  • Fixed bug in IC that prevented values being loaded from devices.
  • Fixed Function and Variable help window lists were not sorted alphabetically.
  • Fixed Basketball Hoop now updates the score display when OnOff is changed.
  • Fixed Configuration Cartridge now properly displays all accessible logic types and their current values on devices. Grey for readable, Green for writeable.
  • Fixed null reference when plant is breathing in a complete vacuum.
  • Fixed occasional NullReferenceException with Arc Furnace when smelting, due to incorrect atmosphere object being referenced.
  • Fixed NullReferenceExceptions on attempting to join a second game without restarting your Stationeers client due to old objects from the previous world still being referenced on load.
  • Fixed unable to place airlocks/doors when an object existed at 0,0,0 in the world. This shouldn't normally have been able to occur, but could via bugs. This would prevent you being able to place airlocks till this was removed. Now this redundant check was removed, as it was a leftover from an old system. Airlocks correctly check their face neighbors during placement.
  • Fixed Global atmosphere state not syncing to clients, so they didn't get variation in temperatures.
  • Fixed Nul ref caused by Atmospheric thread cleaning up atmosphere before event had a chance to occur.
  • Fixed exception when ice melting in a global atmosphere or true vacuum.
  • Fixed Hardsuit PressureExternal reporting in Pa, when suit set in KPa. Now unified in KPa.
  • Fixed Arc Furnace resulting in drop in temperatures when smelting. Now the arc furnace will produce gas, which will tend to be at the temperature of the surrounding air. Previously the gas was produced at zero degrees. Note the Arc Furnace will generate heat energy now, it's not energy neutral. This means if 2000 J is needed to smelt Gold, it will produce 20000 J of heat. You could capture this heat and be net energy positive. This fix may also fix the furnace, as it involved making the methods used Thread-safe, but this was not properly tested so needs to be confirmed.
  • Fixed incorrect description of PEEK on the IC commands.
  • Fixed a bug when registers with multiple digits weren't showing up as valid in the IDE.
  • Fixed Bug with pipe network splitting not properly distributing atmosphere, resulting in the sum of the newly created pipe networks containing more gas than the original. [STAT-1022]
  • Fixed Hardsuit processor slot tied to AC power state. Now IC in processor slot will run if there is a battery, and the battery has charge. You have to remove the processor for it to stop working.
  • Fixed PressureSetting was not setable on the Hardsuit.
  • Fixed issue with recipe containing duplicates if Workshop screen was accessed due to mods reloading.
  • Fixed error handling if two scenarios with the same folder name are loaded.
  • Fixed elevator shaft bounds box during construction is comically large.
  • Fixed Iron Window was trying to cast a shadow and was not set as transparent, therefore hiding sun.
  • Fixed bug which prevented aliases above 5 being assigned aliases.
  • Fixed memory leak with new StringGenerator.
  • Fixed Automated Hydroponics missing correct blueprint was using fallback.
  • Fixed IDE for ICCode recognizing commands in comments when it shouldnt.
  • Fixed dedicated servers occasionally not loading world or crates.
Stationeers - Heightmare


So it's been a really big week for us. Often, in game dev, some weeks are slow and some weeks a lot of stuff comes through. We received a bit of feedback on discord that last week didn't have enough fixes. We made sure this week had lots of fixes! Also some new content that we have been preparing for a while.

Automated Hydroponics

For a long time growing plants has remained one of the areas it was completely impossible to automate. Now we have an item that will, with the future tech tree, become more of an "end game" way of growing plants.

This automated station has an Import, Export, and Growing slot. You can send custom Logic command (Plant, Harvest) to the machine with a value of 1 to get it to process itself via logic. Or you can click the buttons on the machine.

Atmospheric Fixes

The first phase in a major atmospherics refactor has been completely. The game uses threads to help with performance. This means the game is able to do many things at the same time, without those other tasks impacting on the rest of the game.

This is a very complicated way of making a game, as these need to be carefully synchronised. Often areas of the game were accessing this "volatile" information while it was being changed, resulted in weird values. This caused significant issues; such as the dreaded "Temperature Low" often for brief seconds. This has now been fixed!

Over the coming months we will continue to introduce more changes to make the atmospherics system more robust. We're very confident that this weeks refactor will provide significant improvement in stability.

Nitrus Oxide

As an additional part of the atmos refactor, is the preparation for surgery in the coming weeks. We've added N2O which, in larger quantities, can cause you to go unconscious. Currently it's only available by debug spawning, but throughout the week will add more.



Logic Control modes for Slot Handlers



Filters, Unloaders and Stackers have not been able to easily be controlled via logic. Now, if you set their Mode to the appropriate value (2 for Filter, 1 for Unloader and Stacker), they will enter a "wait" mode.

In this mode, they will process a single requested operation, and then go back to waiting. You can see (or set) this state using the Output variable.

For example with the Filter, -1 is idle, 0 is left, and 1 is right. With the Stacker, -1 is idle, 0 or greater processes a single requested stack size. With the unloader, -1 is again idle, 0 unloads the slot item itself without removing anything, and 1 removes a single item from what you have loaded.

This allows you to use these items in any custom way, with the new IC's or the existing logic system. They will be able to work in lock-step with your logic systems.

The following script sets a stacker to Logic mode, with a setting of five, and processes one stack:
alias Stacker d0 # sets the screw to show stacker​ s Stacker Mode 1 # set stacker to logic mode​ s Stacker Setting 5 # stacker size will be 5`​ s Stacker Output 1 # stacker will process once

Integrated Circuit Code IDE Improvements



Based on excellent community feedback the IDE for editing IC code has been improved significantly, and many bugs found and fixed. Now your string based jump labels (e.g. "start:") will be colored purple, with other strings white. There are still some bugs but this will continue to be improved.

Integrated Circuit Code Library Workshop Support



You can now share your IC Code creations on the Steam Workshop using the in-game code library. This feature has been available in beta for a couple of days, so there's already several items available. Once subscribed, they will appear in the code library from where they can be easily loaded into any Computer with a Programmable Chip Motherboard inserted.

Recipe Selection Improvements



All the basic manufacturing machines have been given a bit of a visual touch-up with recipe selection finally getting its own button. In addition, the recipe selection UI has been given an overhaul and now features more sensible sorting and thumbnails. It also now properly supports localised item names in languages that require extended fonts.

Known issue: Stuttering

As your base gets larger, we have more stuttering. This is caused by Unity's Garbage collection occurring. We have included an update in this patch that reduces this by about 30% but it is still very noticeable.

We have some plans for this:
  • We are looking at upgrading to the latest Unity version
  • Refactoring all our code to make it more memory efficient
  • Replacing Unity's MP system with our own that is more memory efficient

Version 0.1.1671.7828
  • Improved ICScript IDE to recognize dr? variants and r..? variants. Also recognizes labels (purple) and better recognizes strings. Also colors numbers separately.
    * Fixed tabs causing misalignment between formatted display and actual text. Now tabs are replaced with a single space on import.
  • Added Automated Hydroponics. This is a late-game device that allows you to fully automate growing of plants. It contains only one plant slot, but has Import and Export slots and connections for chutes. If you place a plant in the import slot, and then either press the "plant" button (or set the new device variable "Plant" to anything greater than zero) then one of the stack will be planted. The same system applies for Harvesting. You also receive better feedback on the state of the plant. There are two pipe inputs, one provides the "atmosphere" inside (CO2 for most plants), and the other is used by plants for water.
  • Added Workshop Support for IC Code Instructions. A new button is located to the left of the existing load/save/delete buttons in the saved instruction list. If uploading an item that already has a workshop ID, you will be prompted to enter a change note. A screenshot will also be generated automatically. All of these can be modified via the steam workshop webpage for your item.
  • Added Stun Warning and Critical indicators (no audio notification currently). A yellow warning and red critical icon will show, together with how stunned the player currently is.
  • Added Nitrous Oxide. Currently inert, other than at certain concentrations will cause the player to take (progressively more) stun damage. Only the first pass, will be utilized more with the implementation of surgery later.
  • Added disable water visualizer option. Water still exists as normal, you just can't see it.
  • Added Split/Filter/Logic mode settings to Sorter. You can force it into Logic mode (Mode = 2) with logic (IC, Logic Mobo, or Writers), and now the device will only process one action before resetting itself. You can control this action with the Output variable. Output == -1, when in logic mode, is the idle state. Output == 0 is the left slot, Output == 1 is the right slot. When in this logic mode, it will only process one slot before setting itself back to Output = -1. This is useful to completely control the Sorter using logic. It will allow you to read and handle what is in the Import slot.
  • Added Automatic/Logic mode to Stacker. When forced into Logic mode (Mode = 1) with logic, the device will only process one action before waiting. When in this logic mode, Output == -1 is idle. Output > 0 will perform a single stacker action (i.e. if the setting is set to 5, it would output one stack of five before stopping).
  • Added Automatic/Logic mode to Unloader. When forced into Logic mode (Mode = 1) with logic, the device will only process one unloading action before waiting. The idle state is Output == -1. When Output == 0, the device will move the item it is unloaded completely, without continuing to unload (basically, it stops unloading and ejects the parent item). When Output == 1, the device will unload one item from the parent it has held, and then return to the idle state.
  • Added Legacy Inventory setting. When enabled, only one window at a time will be open, similar to how the game was before. Note that it current does not allow you to have more than one window open at any time, including the hands - so it is not exactly the same as it was before. Once docking windows is added, I will look at allowing one window per docked location, which will then much more closely resemble the original inventory system for those who do not like the move to mouse control.
  • Added Advanced options page, splitting the Video settings between this and the Video page to give us more room for customization options.
  • Added alias string support to IDE for the IC Editor. Now defined aliases will be "recognized" by the IDE, and highlighted as a string.
  • Depreciated the Label command in the IC. Alias with device usage now also affects the screw previews.
  • Added extended terrain settings to worldsettings.xml. Now works on Europa.

  • Adjusted Stun mechanics. Now the saturation and visibility adjustments will occur faster, and full blackout will occur with the unconsciousness at 100%.
  • Refactored Atmospherics System (phase one). This is a major change that fixes a number of atmospheric issues. This fixes the occasional "temperature low" warnings, and the like, that were caused by the game reading data that was halfway being updated. This also greatly reduces the likelihood of atmospheric exceptions from "bad data", but not completely. Writing threadsafe enforcement has been developed but is not deployed in this build. This will likely also give a performance boost, as the game now caches values in the atmospheric system.
  • Replaced model for Organics Printer with a better one.
  • Replaced tool manufacturer with new model.
  • Replaced Electronics Printer, Pipe Bender, and Security Printer models with better buttons indicators for finding, and improved geometry.
  • Replaced Dropdown for selecting Machine Recipies to a new selection method that displays the recipes in groups, and includes a picture of the item, the name of the item, and the slot type (if any).
  • Replaced Autolathe model with new model, better indicator of the Find button and improved geometry.
  • Improvement jumping instructions can now go to tags.
  • Improvement IC command Alias can now take device arguments.
  • Tweaked IsVoxelFaceOpen - now allocates slightly more memory to ensure thread-safe operation, hopefully resulting in terrain being more reliable for containing atmosphere. [Credit: Risu]
  • Reduced memory allocation when generating terrain to improve issue with garbage collection.
  • Removed Dictionary lookup in justsample terrain generation to reduce garbage allocation.
  • Improvement mousing over a programmable chip in an error state will include a message about the line number the error is occuring on and the type of error.

  • Fixed plants wilting due to lack of CO2 in air. Plants required a minimum partial pressure of 2% CO2 at one atmosphere, which was wrong. Now 0.2% partial pressure is required for standard efficiency.
  • Fixed critical issue with plant breathing mechanic. Previous fix exposed flaw in how plants took breath. This has been corrected, they require 2% CO2 partial pressure at One Atmosphere as a baseline. Increased pressure will help with collection of CO2, up to a point.
  • Fixed bug with Health Caution indicator not displaying as Parent was incorrectly tested.
  • Fixed bug where Critical status indicators would be sent to the bottom of the status list, not the top, where it was intended they would go.
  • Fixed extended terrain showing up on the moon and space when it shouldn't be.
  • Fixed error when OcclusionManager tried to do work on the extended terrain when it is disabled.
  • Fixed exception occurring when message label changes were being executed by the logic computer on integrated circuits.
  • Fixed bug where trying to assign a label to db would corrupt save file.
  • Fixed rounding of Output logic command on Stacker, Unloader, and Sorter preventing value from being set to -1. [Credit: Risu]
  • Fixed UpdateEmptyFilter() not called when filter moved from inventory only when a filter has 0 Quantity [Credit: Risu]
  • Fixed Harvest null reference exception when called through logic to actually harvest a plant [Credit: Risu]
  • Fixed bug with IDE window of IC that would not update the text correctly if you had dragged over text, and then edited it. This was because dragging wasn't captured as an "active line". Now correctly refreshes after this occurs.
  • Fixed being able to eject resources while constructing with autolathe.
  • Fixed plants were scaling their breathing amount incorrectly, meaning plants were use huge quantities of gas when they were in high pressure environments. Now correct breathing amounts are used. This will probably significantly reduce CO2 consumption and O2 production from plants. Approximately 10 corn plants will grow off the CO2 produced by a single human.
  • Fixed bug in which aliases weren't being used by `l`, `ls`, or `s` commands on programmablechip.
  • Fixed able to write to battery state Mode to change it's viewed power level.
  • Fixed item drop location when dragging items to the world using mouse control. Now drops the item in front of the player, the same as when you use the drop key, rather than underneath the player.
  • Fixed bug where inserting a new chip to the housing didn't reset the error state.
  • Fixed stuttering caused by extended terrainLOD.fbx
  • Fixed able to place flag anywhere. Now can only place when terrain or a frame is below it.
  • Fixed issue where releasing MouseControl key would hide the cursor in some cases, even if you had a UI on screen that required the cursor to be visible.
  • Fixed Organics Printer On Switch was incorrectly animated.
  • Fixed bug in which reloading save would cause logic chips to restart from beginning
  • Fixed Dropdown boxes are not sorted in a way that makes sense. Now dropdown lists are sorted primarily by their generic type (Resources, Kits, Tools, Clothing, and General), and then secondarily by their Display Name in English. This isn't perfect, but it does make it somewhat easier to find things on dropdowns. This will be improved further in the future.
  • Fixed several settings that were not properly included when resetting to defaults.
  • Fixed game crashing when loading a save file with large terrain.
  • Fixed bug on programmablechip where multiple calls to RAND within a tick would obtain the same value.
  • Fixed when an IC is placed in the housing the program on the chip will start from the beginning instead of continuing from where it was
  • Fixed bug in which if an object was told to perform a task multiple times a tick by a programmable chip the sound would play several times.
  • Fixed bug with speech recognizer not being initialized and causing an exception, that prevented language from being selectable.
Stationeers - rocket2guns
The main update caused a problem with the dedicated server, and some other issues. The notes are below. This will be updated below with additional information if further hotfixes are released, but new posts will not be made.

Version 0.1.1652.7724
  • Fixed sizing issues causing line numbers to be obscured, and IC Editor page to be sized wrong with different UI scale applied.
  • Fixed Delete and Backspace not having intended effect of deleting a line. Now will change order of lines correctly. Note that Delete/backspace will never merge lines like a typical editor would.
  • [Version 0.1.1651.7720]
  • Fixed IC Housing not able to have screws set by clients, only changing on the server. Now correctly populates for clients and allows them to change [Credit: SilentEagle]
  • [Version 0.1.1650.7718]
  • Fixed IC Editor causing extreme lag when loading and editing. Now it is line based. Expect this to change significantly and more features are added.
  • Fixed IC Editor HOME and END moving to beginning and end of file. Now just beginning and end of line.
  • [Version 0.1.1649.7716]
  • Fixed Dedicated Server failing to start when trying to load graphics driver.
...

Search news
Archive
2024
Nov   Oct   Sep   Aug   Jul   Jun  
May   Apr   Mar   Feb   Jan  
Archives By Year
2024   2023   2022   2021   2020  
2019   2018   2017   2016   2015  
2014   2013   2012   2011   2010  
2009   2008   2007   2006   2005  
2004   2003   2002