1. Stationeers
  2. News

Stationeers News

Printer Instructions: Sugar, Cocoa, and Cake

More Stuff, Faster


In the near future we'll revisit kitchens and cooking, but currently we are working on several other aspects of the larger survival updates including new suits, jetpacks, and starting equipment. Instead of hoarding all of the new content for one massive cooking update, we’ve decided to add some of it into the current system, so players can grow some new plants, and craft some new foods in the meantime.

New Plants: Sugarcane and Cocoa


Cocoa plants like a warm environment, and while a dedicated room isn't necessary, the ideal growth temperatures of some normal plants may conflict, leading to some plants growing slower depending on your grow room temperature. Cocoa plants harvest into cocoa pods, which can be used in the reagent processor to create cocoa powder.

Sugarcane plants grows much like wheat and harvests into sugarcane, which can be used in the reagent processor to create sugar.

But what could you make with sugar and cocoa…?


Chocolate!


We’ve added a selection of sweet treats for your chubby little stationeer fingers to grab. Chocolate bars, regular cake, chocolate cake, and chocolate cereal bars count as high quality food, which additionally raise your mood if you are feeling down. We’ve also increased the trader’s egg and milk supply, so that you can bake some joy into your life at the cost of some credits, without raising chickens, or making soy milk. Some traders might also pay a high price for some of your delicious treats.


Printer Stack Instructions


Following on from our introduction of stack instructions for the Logic Sorter last week, IC can now ‘easily’ write their own print stack onto the printers. This includes internal count tracking of each print request, so keeping track of how many of something has printed is much easier. There are also several modifier instructions that will tell the printer to modify the next instruction, to do things such as to wait until this print is complete before continuing. We are trying to keep each instruction as simple and straightforward as possible, so that players can intuitively know what their code will do.

Another notable feature of the printer instructions is an exposed stack pointer. The Logic Sorter reads through and evaluates all of its memory to check for valid conditions each tick but Printers may hit an instruction that blocks them from continuing their internal processing, such as WaitUntilNextValid. This is notable in the instruction JumpIfNextInvalid, where instead of continuing on, or waiting upon finding a print job that cant complete, a stack address can be provided to jump to another section of prints that might be desired instead. So the stack pointer is exposed to the player here so they can write flow control into their print requests, with reduced overhead on the IC10 code.

The last interesting mechanic used in the printer instructions is MissingRecipeReagent. Notably, it is only valid from 54 to 62, and it is actually used as an instruction from the printer to the player, sending data back out. The printer can be stopped at a ExecutePrintRecipe if it was preceded by a WaitUntilNextValid, and it is missing resources to execute the print job. In this case, the printer will use those addresses to output the missing reagents via the payload of the MissingRecipeReagent.


[hr][/hr]
Your support makes these updates possible


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

[h2]Change Log v.2.4966.22543[/h2]
  • Fixed a bug where clicking on the scrollbar in the sorter motherboard's filter dropdown would close the dropdown, rendering it unusable.
  • Update scroll speed of the sorter motherboard's filter dropdowns to be 10x faster
  • Fixed AreaPowerControl, PoweredVent, ActiveVent and WallLight were not checking base.CanConstruct method. This meant they could be placed adjacent to other devices such that their power connections where connected.
  • Extended width of IC editor from 64 to 90 characters
  • Added first pass of Read/Write Stack addressable memory for all Fabrication Devices such as the autolathe. These enhancements allow device memory stack to have reserved memory locations in the stack. In the fabricators the Stack Pointer index is the last value in the stack. The remainder of the stack is split as used for the player to store requested transactions (such as make this prefabhash a number of times, or export everything in the device), and the other part the device will write missing reagents. This transaction is the reagent hash (not the prefab hash - the reagent hash i.e. Iron would be HASH("Iron")), and the total quantity needed as a ceil integer (so 0.5 would become 1). These details are shown in the stationpedia, and if the instructions are only expected in certain stack addresses you will be told. Currently there is no safety checking with specific memory addresses currently.
  • Added instructions to manufactuing devices, such as the Autolathe and other printers. The Printers now have their own internal stack that is used for different functions. The end of the stack is used as the "stack pointer", which is the "memory" for the device of where it is up to, when processing. The first bunch of addresses are used for "transactions". you can load payloads into this memory to have the printer do things for you. The second chunk of memory it will record things it is missing. If instructions are only to be used in certain addresses, the stationpedia will tell you so. Added FabricatorInstruction.DeviceSetLock, FabricatorInstruction.JumpToAddress, FabricatorInstruction.WaitUntilNextValid, FabricatorInstruction.JumpIfNextInvalid, FabricatorInstruction.ExecuteRecipe, FabricatorInstruction.EjectReagents/
  • Added CLRD. This is a variant of the CLR IC instruction, which will clear the stack memory of any device with writable memory. This variant allows directly referencing a device via ID rather than pin.
  • Fixed Clients can't interact with slot screw of SlotReader on Dedicated Server.
  • Fixed Resetting values on circuitBoards & Motherboards with screwdriver did not work reliably for all clients on dedicated server.
  • Fully Disabled Deprecated Research system as it was causing some saves (that had research disabled) to fail to load.
  • Fixed Credit cards spawning with zero credits in a new game. IQuantity was not implemented on the CreditCard so the QuantityAction was not applying.
  • Fixed hygiene and mood tooltips showing for robots.
  • Fixed stacker not splitting items correctly which could result in space ice having zero gas or de-gassed ore having its gasses duplicated. Stacker will now use the same logic as splitting from your hands which should handle all these cases rather than its own custom logic.
  • Fixed when starting a new game when your species was set to robot or zrillian in on a previous stable branch (i.e. you had old saved character data in your local PlayerCosmetics.xml) upon loading that game a second time your character would pass out. This was due to the old player cosmetics data not initialising correctly and causing the creation of a bugged character spawn.
  • Changed PumpkinPie provides 50% Mood Recovery.
  • Added ChocolateCake (50 Sugar, 50 flour, 5 milk, 1 Egg, 2 Cocoa Powder). High Nutrition, 100% Mood Recovery.
  • Added Cake (50 Sugar, 50 flour, 5 milk, 1 Egg). High Nutrition, 50% Mood Recovery.
  • Added ChocolateBar (10 Sugar, 2 Cocoa powder). Modest Nutrition, 100% Mood Recovery.
  • Added Chocolate CerealBar (50 flour, 1 Cocoa powder). Same nutrition value as CerealBar but also provides 50% Mood Recovery.
  • Balance pass on Growth times and life requirements for Cocoa Tree and Sugarcane. Cocoa is perennial grows at a similar rate to the pumpkin. Cocoa ideal growth temperature is 30-40degreesC. Sugarcane is annual and grows at a similar rate to wheat.
  • Added battery slot trigger (art asset)
  • Added advanced turbine jetpack for hardsuit. (art asset)
  • Reinstated throwing fixes from r22413 and r22419 that were removed for hotfix preparation.
  • Changed Flagged ResearchCapsules and ResearchMachine as not spawn-able.
  • Removed Calls to Research initialisation methods.
  • Removed PanelResearch and ResearchManger from scene.
  • Removed Saving of Research state.
  • Fixed robots mood being reduced on taking damage
  • Removed Research fields from PanelToolTip.
  • Removed References to PanelResearch in InventoryManager & GameManager.
  • Removed Research events.
  • Changed PanelTooTip is now initialised by GameManager instead of ResearchManager.
  • Fixed new emergency suit being green by removing the unused materials
  • Updated h2 combustor models and thumbnails to have output port on the correct side (the front rather than the left).
  • Changed Furnace to using animComponents instead of unity animator. This should resolve occasional issues where the imported ore would not be processed due to an animator event not firing.
  • Added enforcement of 4096 B limit for IC files
  • Added back slots, back interactables and their collider to other new suits
  • Fixed emergency suit collider size
  • Changed Advanced Furnace to use AnimComponents.
  • Fixed 'cant enter slot' tooltips getting stuck based on the last thing you hovered your mouse on. Also fixed a few cases where tooltips would be incorrect when dragging from a world slot as the 'last hovered' thing could become the parent item rather than the dragged item dependent on mouse placement.
  • Added crosshair, matter state labels, and freezing temperature to phase change diagram
  • Added PrinterInstruction.EjectReagent. This allows you to specify the reagent you want to eject. All reagents of that type will be ejected. The stack will not advance until this is complete.
  • Fixed PrinterInstruction was not correctly applied by ProgrammableChip
  • Moved slots away from having hard coded indexes. The indexes are now serialized when the suit slots are created.
  • Added ability to have a suit that does not have a waste tank slot at all. When this is the case the suit will dump filtered gas directly into the world atmosphere.
  • Refactored TradeDataHelper.HandleBuyItem to more cleanly handle edge-cases around transaction of quantities of stackables and ingots. This allowed for removal of edge-case code for trading in QuantityAction which was interfering with new spawn-condition logic.
  • Changed tightened grid bounds of wind turbine.
  • Fixed a bug where the last segment on the phase change diagram wasn't drawing directly up as it should have
  • Fixed Clients can't interact with Mode screw on Speaker on Dedicated Server.
  • Fixed Atmospherics devices with IC slots could not read the gas ratio values of the new gasses/liquids.
  • Fixed On/Off animation position of valve on shower.
  • Fixed On/Off animation position of valve on powered shower.
  • Fixed batch logic instructions that use the name would not consider default names, only custom names. Now the default name generates a hash and is used in the comparison.
  • Added LogicType.NameHash. This returns the 32bit hash of the objects name.
  • Changed IC source code was being stored as char rather than bytes, despite being parsed at ASCII. This change has no functional impact for player scripts, as the text was already being parsed. This means that 1 character will only take 1 byte. Network synchronization has been moved to sync the bytes, rather than the characters. This substantially reduces the network impact of synchronizing IC script changes in multiplayer.
  • Added Turbine Jetpack
  • Updated Animation Component to take in a time value rather than a speed value. This was required so that a single component could move several objects synchronously.
  • Fixed dynamic crate open/close animation speed was too fast and was not matching up with its audio.
  • Fixed days passed text not initializing correctly when starting a new game.
  • Added Prototype scripts and prefabs for networked window shutters.
  • Moved where the 'you have survived for x days' message is published. Will now appear after the InventoryManager is initialized to guarantee the player and their days lived have been loaded.
  • Fixed days lived not being correctly synced for clients. This could result in clients' days lived value resetting to 0 every time they join a game.
  • Updated seed bag texture for watermelon, blueberry and strawberry. (Art asset)
  • Added new seed bag models for watermelon, blueberry and strawberry (art asset)
  • Added new models and textures for blueberry tree, strawberry tree, and watermelon plant (art asset)
  • Changed scale for cooked corn and tomato
  • Updated advanced tablet tooltip to show both cartridge slots rather than just the first one.
  • Changed scale for cooked corn and tomato (Art asset)
  • Committed automatic prefab changes for rocket manufactory (animSpeed was renamed to time).
  • Tweaked cooked corn and cooked tomato meshes and updated blueprints and thumbnails for both.
  • Fixed Reseting Programming Motherboard with screwdriver causes it to retain reference to an old circuit holder
  • Fixed LandingPad pieces do not consume grinder battery when deconstructed.
  • Fixed Traders could buy items from vendingMachine import and export slots. 1st Item bought from the trader would spawn in VendingMachine export slot.
  • Fixed Vending machine would export incorrect item after buying from the trader.
  • Added new food models and a texture. (Art asset)
  • Changed color and mesh of growth stages for sugarcane tree. (Art asset)
  • Added new sugar and cocoa models and textures
  • Updated the locking behaviour on the electric jetpack's battery slot. It now also prevents swapping from the player's inventory, and is colored red when locked.
  • Added roatry animation to the electric jetpack's turbines
  • Removed deprecated auto-generation code for reagents.cs from WorldManager.
  • Added Sugar and Cocoa Reagents.
  • Added cocoa and sugar seed bag and plant prefabs plus their related blueprints, thumbnails and materials
  • Removed some unused models
  • Moved some consumables prefabs to their appropriate folder
  • Updated english xml for sugar and cocoa assets.
  • Fixed incorrectly set up toxic gas types for cocoa and sugar cane
  • Added CocoaPowder Item.
  • Added cocoa and sugar cane plants and seeds to the world manager
  • Committed auto prefab changes (IsLocked field was added)
  • Moved cocoa powder material out of resources folder
  • Added MoodBonus to INutrition to allow certain foods like chocolate to boost your mood when eaten
  • Fixed cocoa and sugar plant prefabs having the incorrect grip type
  • Fixed cocoa and sugar reagent contents were incorrectly set to corn
  • Added Sugar, Eggs, Flour and Cocoa Selling items to consumables trader.
  • Added Sugar and Cocoa selling items to Food Trader and cocoa pod and sugarcane buys to food trader.
  • Added Sugar and Cocoa recipes to reagentgrinder.xml
  • Added Sugar Item.
  • Added models and texture for chocolate bar and cake (art asset)
  • Added chocolate cereal bar (art asset)
  • Fixed incorrect quantity tooltip in trader UI on microwave ingredient reagent quantities.
  • Fixed autolathe's ExecuteRecipe could override the stack pointer at address 63 if enough reagents were missing from a recipe.
  • Fixed autolathe's ExecuteRecipe was reusing the first valid address (index 54) to put its missing reagents, overriding the previous value if more than one reagent was missing. It will now correctly fill up addresses 54 to 62.
  • Fixed stationpedia descriptions for autolathe instructions DeviceSetLock and JumpToAddress were reporting the incorrect 'valid address space'
  • Updated size of cake, uncooked cake and chocolate cake. (art asset)
  • Fixed missing reagent instructions for the autolathe were not being converted correctly in some cases to a double. Have changed it to use LongToDouble rather than auto casting.
  • Increased size of cakes
  • Added Exposed Mood Bonus of food to stationpedia. Some High quality foods will restore mood when eaten. Eating raw foods will lower mood.
  • Added Buy and sell orders for new foods to traders.
  • Fixed PackByteInt32 was shifting the incorrect number of bytes making it impossible to read hashes from the autolathe's missing reagent instruction.
  • Fixed SourceCode Fragment byte count being sent as a byte when it had a max size of 512. (this meant the code longer than 128bytes would not send correctly)
  • Fixed Code input window not counting line break characters when counting the code size. (this meant that some characters could get stripped if the total length INCLUDING line break characters exceeded the size limit.
  • Fixed possible nre when opening the menu before the initial world save has completed

Hotfix v0.2.4945.22425

This hotfix includes fixes for a few issues related to data changes in the starting conditions.
[h3]Changlog v0.2.4945.22425[/h3]
  • Fixed a bug where null reference exceptions would sometimes be thrown when a dynamic gas canister was destroyed
  • Fixed a bug where splitting seed bags obtained from traders for the first time would throw an exception
  • Fixed a bug where pipes mounted on walls were not damaged by freezing or phase change
  • Changed CanEnter to return a result struct rather than just a bool. This allows us to show tooltips explaining why certain things can't enter slots e.g. a light suit may not accept a heavy jetpack.
  • Fixed double tap F being able to move backpacks to the backpack slot while one of the new suits was being worn. This should not be possible as the new suits have their own dedicated back slot and block the use of the default backpack slot.
  • Removed unused variable in tooltip.cs
  • Fixed Newly spawned Robots would start with a SmallBatteryCell instead of a LargeBatteryCell.
  • Fixed issue where old saves would load their saved satellite dishes with best contact filter initialized to 0 instead of -1.
  • Fixed Robots and Zrillians Loading in with partial human characteristics. (Zrillians would load in with human lungs Robots would not initialise their slots correctly and would immediately die)
  • Fixed a bug where deconstructing insulated inline gas tanks would return their non-insulated kits
  • Fixed mkII dynamic gas canister incorrectly configured colliders
  • Fixed a few tooltip issues. When dragging, the 'left click to pick up' tooltips will now be hidden. When the mouse is over the ui, in world tooltips should now be hidden.
  • Fixed a few ingots having the incorrect blueprint
  • Fixed concurrency was not working on equip sounds.
  • Fixed incorrect insert behaviour for ResolutionRule "StopLowPriorityThenNew" & "StopLowPriorityThenNew".
  • Optimised Concurrency code by removing some un-necessary sorting calls.
  • Changed Audio concurrency system to run on the main thread, it was using uni-task worker threads for some work which was causing race conditions.
  • Fixed Errors being thrown by audioManager caused by audio concurrency system.
  • Removed deprecated discord lobby creation
  • Fixed Research Manager breaking loading of some games.
  • Fixed Vulcan nights in peak summer did not drop to night temperature.

Logic Sorter: Insulation, Ore Tablet, and Future Content

Stack Instructions and Logic Sorter


There exists a data storage paradigm in Stationeers known as the "stack". On IC10 chips it exists as an addressable memory space to store data. On the new Logic Sorter, and moving forward on other 'complex' devices, we'll be adding machine instructions that can pass advanced information and configurations to machines. Unlike the static logic types most devices use, and players are largely accustomed to, these instructions are dynamically configured and written to.

What these instructions are very similar to CPU instructions and how to write them can be found on the Stationpedia of a given device. The logic sorter for example can use combine SorterInstruction.FilterPrefabhashEquals, and a prefab hash shifted 8 bits, to write a single instruction to whitelist an item on the sorter. Instructions can pass arbitrary information to the sorter though. SorterInstruction.LimitNextExecutionByCount, can be used to modify the evaluation of a the next instruction, and will actually modify its own count payload, as it passes items through, allowing a player to read that instruction from the stack, and figure out what the sorter is doing even if it has a ton of custom instructions.

This approach to advanced device operation lets us as developers keep the operations of machines as very simplistic, and straight forward. As an example, instead of circuit boards containing tons of custom code that only we developers can see and modify, players could see an airlock circuit board having clear instructions on its stack, turning on and off vents, and conducting evaluation operations on sensors.



[hr][/hr]
Insulation

We've added new insulated inline tanks for both gasses and liquids, and changed the pipe insulation upgrade process slightly. Last update we added the ability to upgrade pipes to insulated pipes using a wrench and some insulated pipes. Based on feedback from the community, combined with us adding these new inline insulated tanks, we've changed the upgrade process to use a new adhesive insulation item that you print separately.


[hr][/hr]
Ore Tablet

Previously the ore tablet required the use of the Ground Penetrating Radar, and was very annoying to use. The GPR has been removed and the tablet now functions by itself. Just throw it in a tablet and you're good to go.



[hr][/hr]
Future Content

If you've been following the beta patch notes, you'll be aware that we've been working on suits as well as more starting condition changes. None of these changes are active in the game yet so we've separated the changes in the bellow change logs.

Here's a quick outline of the upcoming changes.

[hr][/hr]
[h2]Starting Conditions[/h2]
This update includes some changes to the starting conditions data and paves the way for making much more dynamic starting conditions. When starting a new game you'll be provided with the familiar starting gear, however when another player joins, they will bring with them a smaller set of gear to reduce the stresses that each new player adds to a game. When respawning it will remain largely unchanged. All of these are defined in XML for easy modding.

[hr][/hr]
[h2]Suits[/h2]
A range of new suits are still in heavy development so we can't give too many details, but you should expect a range of suits that are suited for different situations rather than there being the "bad suit" and the "good suit". In the same vein we'll be reworking jetpacks with a set of jetpacks that are useful in different situations.



[hr][/hr]
[h2]More Stack Instructions[/h2]
The sorter was a obvious example of a complex machine that needed a better programmatic way of configuring. Manufacturing, and Trading both have multiple complex machines that we are looking at as examples of both simplifying the machines operations, and creating the opportunities for players to control core systems in their base without being overly complex(to stationeers standards). We also will be adding specific large memory servers, so players can store large and complex data structures of their own.

[hr][/hr]
Patch Artwork

[expand]
[/expand]

[hr][/hr]
Your support makes these updates possible


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

[h2]Change Log v0.2.4936.22393[/h2]
  • Refactored the Starting and Respawn Condition definitions. This is a non-critical breaking change, which will affect mods. The old data structure was limited and had a lot problems. The new one uses the same classes and approach as the tradables system. The chosen spawn structures are defined primarily in the worldsetting, and if it is blank the game will use default ones. See the discord beta announcements for documentation about how to format xml for this.
  • Fixed medium shelf not being deconstructable when built against a frame
  • Fixed large tank throwing errors when using autorotate
  • Removed inaccurate stationpedia descriptions for canisters
  • Fixed cancel keybind closing the window even if the filter field was populated. A keypress will now clear the filter field before closing the window.
  • Fixed close all button not showing correctly when getting out of a sleeper
  • Fixed undocked inventory windows staying visible when you fall asleep in a sleeper
  • Fixed Eggs laid by chickens could not be used in microwave or automated oven.
  • Changed space maps to clamp traders towards the upper sky, until devices are possibly changed to be placed in any rotation on space maps.
  • Fixed a bug where Stationpedia could be opened while rebinding keys
  • Fixed a bug where using 'save as' would not give the new save a unique id. This would cause inventory window positions to mimic the parent save which can be confusing.
  • Fixed a bug where inventory window positions would not be saved in the playercookie in some instances.
  • Fixed a bug where closing Stationpedia while the ingame pause menu is open would unpause the game
  • Exposed Math outputs of Convection and radiation calculations.
  • Added SuitBase class.
  • Changed Pipe Analyser Operating sound to be quieter and less high pitched.
  • Added first pass on new suit prefabs.
  • Added new prefabs for Insulated In-Line Tanks and Insulated Pipe Utilities (WIP waiting on new art assets)
  • Fixed helmet overlay settings not being respected on load
  • Added first pass of runtime game profiler tool
  • Fixed a number of issues with the audio concurrency system that were preventing it from working as designed and in some cases not working at all.
  • Fixed the runtime game profiler tool so it now displays the memory usage
  • Added concurrency setting for pipeAnalysers.
  • Fixed looping sounds that were disabled due to concurrency would not play at later point when they should.
  • Refactored how tradable data is stored. This does impact slightly how references are handled with trading, so requires careful testing to ensure there are no problems.
  • Added the ability to upgrade an inline tank to it's insulated variant
  • Added new meshes for Insulated InLine tanks and their associated kits
  • Added recipe for Insulated Pipe Utility to PipeBender
  • Fixed bug where inventory windows were not being cleared correctly when exiting game or respawning.
  • Fixed white indicator box around open inventory items not showing up
  • Added further null checking to suit LeakEffects to stop an NRE that can occur in specific scenarios.
  • Fixed the ordering of the display mode materials for the station batteries
  • Adjusted Vulcan sun position to atmospheric temperature map to prevent winter on vulcan from diverging from desired gameplay temperatures. Instead of 650C summer days and 250C Winter days, summers days now max out around 750C, and Winter days bottom out around 500C. Temperatures rise faster in the mornings and fall in evenings, but there still is changing thermal flux throughout the entire day. Night time temperatures remain the same.
  • Added error in console when attempting to load a spawn with an invalid ID
  • Removed bad id test case from last commit
  • Updated pipes and inline tanks to require Adhesive Insulation to upgrade to their insulated variants
  • Added Adhesive Insulation item
  • Fixed issue where liquid canister and water bottle would spawn without any contents in the lander
  • Removed duplicate constructable from table kit
  • Fixed a bug where Battery-powered Wall Lights would remain powered after their power cable was cut.
  • Fixed tables not being able to be rotated by the player
  • Fixed config cartridge value text overlapping when logic values are long
  • Fixed text overflowing off the edge of the config cartridge
  • Fixed possible nre when chickens food target is null when loading a game
  • Fixed pickaxe playing sounds and particles when you are mining with another mining tool while holding it in your unselected hand.
  • Fixed plants getting stuck as not visible when built outside of occlusion range.
  • Fixed clothing slot hotkey hint area having the incorrect width when empty.
  • Added Thing tooltip now updates each frame.
  • Fixed a bug where pipes placed in walls or on the side of frames were invulnerable
  • Fixed some tooltips showing up as empty.
  • Added first pass of Logic Sorter that will be powered by a "Stack" that can be set using GET and PUT from IC. This "stack" contains a struct of doubles, with the first byte being the "instruction". So logic sorters will be given a series of instructions. They will go through the stack and process it's stack. This means that, going forward, devices like the sorter will act like CPUs and have their own instructions that IC can be used to manipulate. Currently just debugging. This will allow you to fill the "stack" for the sorter will increasingly complex and powerful instructions, such as "filter 8 ItemSteelSheets", where the stacker would filter off 8 steel sheets and then stop.
  • Fixed the Reagent Processor recipes not properly linking their requirements in Stationpedia
  • Fixed a bug where destroyed landing pad pieces would lose their material, becoming bright pink.
  • Fixed a bug where evaluating atmospherics pressure damage would occasionally throw collection modified exceptions
  • Moved some materials into their correct folder
  • Removed the GPR
  • Changed ore scanner tablet cartridges to work without the GPR and did a small refactor to get rid of coroutines and unused code.
  • Added second pass to Logic Sorter. Now it contains five basic instructions that process the stack on the logic sorter. Currently the logic sorter stack is volatile between saves (not serialized) but it will be in future update. Each value of the stack, the first 8bits are the OPCODE and the next 32bits are the integer used. This is show by machine generated section on the stationpedia that shows the format required for each instruction. This is a very powerful system that can form the future of very advanced systems within all devices in the game.
  • Fixed issue where players that split a stackable item into the world while looking downwards would take damage
  • Added more information about internal stack to the Stationpedia. Now the access mode (READ | WRITE) and memory size (Bytes) will be shown as well as the any device instructions that will be assessed on the stack.
  • Added third pass on LogicSorter. Now the mode affects how the LogicSorter processes the stack. By default, it is set to ALL so all instructions on the stack will need to evaluate to true before something is moved to the Export 2 slot. This means you could load an instruction for FilterPrefabHashEquals to filter for ItemCoalOre and FilterQuantityEquals 10, this would then only move a Coal Ore that had a stack size of 10 to the Export2 Slot.
  • Fixed AdvancedSuit class (hardsuit) was not bound to IMemory interfaces despite implementing the required signature. This meant that the advanced suits were not considered for some of the more complex IC instructions such as GET/GETD and PUT/PUTD.
  • Added FilterQuantityCompare to LogicSorter which the struct has the OpCode, ComparisonOperator, and Quantity. The ComparisonOperator uses the compare constant (equals is 0, greater is 1, etc...).
  • Cleanup of LogicStack helper statics to make it much easier for other devices to implement and process their internal stack.
  • Fixed cant use constants in DEFINE instruction on IC. Now you can do 'DEFINE operator Equals' and it will use the inbuilt 'Equals' constant. Previously it would throw an error, as DEFINE was very strict about requiring a literal double. Now it will parse a double for an actual number or a constant.
  • Changed stationpedia formatting of Logic Stack Instructions to make the struct clearer.
  • Added Serialization to LogicStack. This is generically checked at the Thing level, meaning it will automatically be serialized/deserialzed for any item or device or anything that implements a logic stack. When your game saves, the state will be saved, and then loaded next time.
  • Fixed issue of players getting damaged by splitting stacks while looking downwards
  • Added FilterSlotTypeCompare instruction to LogicSorter. This allows you to assess contents and filter based on the SlotType of the thing.
  • Added LimitNextExecutionByCount instruction to LogicSorter. This includes a USHORT (16) in its payload, and it will ensure the next executable instruction will only return true the number of specified times. Each time it returns true, it will update its count decremented by one.
  • Added CLR instruction. This instruction will clear the Stack memory for the provided device. This will work for any device that has a writable internal memory, such as the Logic Sorter, Circuit Housing. It will not work for devices that have read only memory.
  • Added IO indicator to CircuitHousing. It will flash green when stack is read and yellow when stack is written to.
  • Added Internal Memory to the RocketCelestialTracker that will have an internal memory of Horizontal and Vertical coordinates for celestial objects, providing faster access to all data if needed.
  • SatelliteDish now uses logic type idle to return 0 if its still rotating, and 1 if its not.
  • BestContactFilter is serialized on save.
  • Changed the SignalID logic on the dish to return -1 instead of 0 when not finding a contact.
  • BestContactFilter must be cleared back to -1 for the dish to auto select signals again.
  • Added new logic type, BestContactFilter, to SatelliteDish that allows logically located trader IDs to be selected as the best signal, instead of forcing the closest contact to automatically be selected. This will allow player scripts to more easily search for a single target that has been previously identified.
  • Fixed ItemBiomass Blueprint being the wrong size when using precision placement
  • Changed the PortableComposter buttons to the prefab buttons
  • Fixed the PortableComposter button colliders being the wrong size
  • Tweaked small hangar door close animation as it was starting at the incorrect position.


[h2]Future Content[/h2]
  • Added ic code from advanced suit to the new SuitBase
  • Added ability for new suits to pass brute damage through to entity as stun damage
  • Created ISuit interface in preparation for adding new suit functionality and make Suit and SuitBase implement it.
  • First pass on extracting internal air conditioner into an interface for new suit logic
  • Temporarily disabled thermal interaction of helmets until new suits are balanced.
  • Added placeholder convection values for new suits.
  • Added Suit Heat/Cold Convection behaviour for new suit prefabs.
  • Removed internal conditioner monobehaviour on new suits and replaced with static suit helper functions.
  • Second pass on pulling out suit atmospherics functionality into statics.
  • Added MovementSpeed Modifier to new suits. (spaceSuit = 125%, HardSuit and InsulatedSuit 80%, others are unchanged)
  • Added Movement speed modifier to stationpedia suit info panel.
  • Added new suit thermal values to stationpedia.
  • Added new Suit info panel to stationpedia for showing values relevant to the new WIP suits.
  • Moved default evaluate suit atmospherics code from normal suit into the SuitBase class.
  • Added first pass of liquid cooling for new suits. All suits can take non-cryogenic liquids, some advanced suits can take cryogenic, and some can be upgraded using an AC upgrade to take cryogenics. A status warning is provided if the current liquid tank is not suitable, or if it's missing. (these changes are not currently accessible and are for internal testing.)
  • Added Placeholder durability and Hygiene values to new suits.
  • Changed Increased volume of new suits to 100L from 10L
  • Reduced power of base suit AC from 2000J to 350J
  • Added Enlarged coolant range for AdvancedACSuit.
  • Changed suits now have an operating range for coolants.These values have been added to stationpedia. if the suit coolant is out of range the suit AC will be much less efficient and do less cooling for more power consumption.
  • Fixed null ref when new suits have no coolant tank.
  • First pass on adding new HARM suit.
  • Added a 'back' slot to one of the new suits for testing purposes.
  • First pass on adding 'back' slot to new suits. The back slot will be mirrored by a new slot display which will show up in the main inventory panel when a new suit is equipped.
  • Update new suit's back slot to have the correct name.
  • Made jetpacks and backpacks on new suits be visible on player.
  • Fixed jetpacks in new suits not being picked up by the movement controller.
  • When equipping one of the new suits, anything in the backpack slot will be ejected in-front of the player.
  • Stopped the 'hold slot key' function from moving backpacks and jetpacks into the back slot if you are wearing one of the new suits.


Hotfix v0.2.4902.22241

This hotfix contains a number of changes and fixes including a fix for errors thrown for systems set to Turkish language as well as some other languages, as well as a multiplayer issue causing client positions to get out of sync.

Changlog v0.2.4902.22241
  • Fixed Airlocks that go into an error state when the cable connecting any device is removed (including the console data cable) will now return to a functional state if the cable connection is restored.
  • Fixed Removing the cable directly connecting an airlock console puts the console into an unrecoverable broken error state on clients.
  • Fixed formatexception in German localization
  • Fixed long prefab names not being copied to clipboard when clicking on them in stationpedia
  • Removed CanEnter override in backpack which was incorrectly surrounded by UNITY_EDITOR tags
  • Fixed an audio pool exception when destroying a burst pipe
  • Tweaked pipe bender export slot collider position so you should no longer be able to put things into it.
  • Fixed slots behind sliding panel on atmospheric devices were interactable when the panel was closed.
  • Fixed an issue where client positions could get out of sync on server. This issue became increasingly apparent when the local host character had died and decayed into skeleton.
  • Fixed errors with GameStrings when system language is set to Turkish. This should also fix a few other specific cases for other languages.

Hotfix v0.2.4899.22229

This hotfix includes a range of fixes and changes. The most important being a fix for lungs spawning when a chick is born.

Changlog v0.2.4899.22229
  • Fixed Clients on Dedicated Server were not receiving other clients AimIk position due to an early return for batchMode in Human.LateUpdate.
  • Fixed normal map problem for chicken
  • Fixed pipe igniter not being able to be activated via logic
  • Fixed t-ray scanner sometimes showing burst pipe meshes everywhere once a single pipe had burst.
  • Fixed advanced furnace kit blueprint showing as the basic furnace kit
  • Fixed an issue where a client would delete a dual registered structure when joining a server. Multiple structures registered to the same position is very rare but can happen due to server lag or packet loss. This could cause a potential byte array reading error. Dual registered structures will now only get cleaned up when server loads the game.
  • Fixed a bug where the cancel keybind wasn't closing the fabricator scroll list popup
  • Fixed NullReference Exception in DoAtmosphereMixJobs(). Potential fix for reported game crash.
  • Added new slot type bitflag and added tools for copying the data from the old enum value to the new flag fields. This is a first iteration of changing from an enum to a bit flag for slot types so is not yet used.
  • Tentative fix for console search button not working. Also potential fix for circuitboards getting into a bad state and appearing blank when inserted into a console.
  • Fixed Issue where Airlock and Advanced Airlock buttons would be greyed out on clients when a cable was removed from the cableNetwork connected to the Airlock console.
  • Fixed chick lungs appearing at origin - added missing lung slot to chick.