1. Oxygen Not Included
  2. News

Oxygen Not Included News

[Game Update] - 408920

Originally posted on the official forums by Ipsquiggle.

Hey friends!

We're putting out another hotfix on the live version of the game today! We've knocked out a bunch of recently introduced bugs, cleaned up and expanded some of the new features from the Automation Pack, and added a lot of refinement to the way crashes and mods are handled.

Additionally, there's a new color blindness mode which can be selected from the options menu. Read all about it and leave comments on this post!

I'd also like to mention that like many other teams, the ONI team has been affected by the transition to working from home. We're not sure yet how this is going to affect our future releases, but we're glad to provide this weird pee simulator to amuse you during these times and we're going to keep making it better! We're still here and still working hard to improve the game, so please report bugs and leave feedback for us.

Thank you!

FULL PATCH NOTES:

[h2]Features and Changes[/h2]
  • Add Protanopia and Deuteranopia color blindness modes.
  • Added Feedback button below patch notes as shortcut to feedback options.
  • Mod and Crash Screen Improvements:
    • Mods Screen button says "Browse" instead of "Subscription" for local mods. Hitting the button always opened a folder to the local directory, now the text matches that
    • Hook up new art for crash report screen
    • Enable/Disable all mods button on ModsScreen
    • Errors encountered while mods are installed will now bring up an error dialog.
    • Fix localization on the error screen
    • Error screen now has a "MORE INFO" button that reveals the callstack, and a copy to clipboard button
    • Mods referenced in the stack trace will be disabled by default (unless they are dev mods).
    • Disable mods that are non-dev mods when they fail to load, even if other mods are dev mods. This was causing infinite loops for mod creators when a mod was crashing that had nothing to do with what they were developing
    • Mods can be disabled or enabled directly on the error screen.
  • Under the hood, Timer Sensor now counts Logic Ticks rather than Time.time, which will make them more accurate and better at staying in sync with each other.
  • Counter Sensor improvements:
    • Add "Advanced Mode" toggle to Counter sidescreen. Advanced Mode performs a % on the count, rather than a direct comparison, allowing for actual binary counting.
    • Advanced Mode: sends a Green Signal only for one logic tick, rather than continuously.
    • Standard Mode: After its initial 0, Counter Sensor sidescreen displays its count as "10" rather than 0.
    • Counter sidescreen visual polish.
    • Improved counter's reset behavior to be more reliable.
  • Added some new hammer strike sounds
  • New logic gate sounds, changes and remixing
  • Sweepbot Station contents are always marked for clearing - similar to user marked sweeps on floor ore. This allows their storage priority to be set right on the Sweepbot Station
  • Notifier sidescreen now has tooltips for the three notification types.
  • New !! icon for VERY BAD notifications
  • OR and XOR gate backpieces shaped to look more like their symbols.
  • Add Copy Settings button to Signal Switch, Power Switch, Ribbon Reader, Ribbon Writer.
  • Counter Sensor description updated to make it more clear that it resets on the next signal after reaching max count.
  • Add localized string for "Reported Error" confirmation dialog
  • Ore chunks show their element description if necessary in Sweepy/receptacle side screens. Player visible debug message removed.
  • Revised description of the Feedback window
  • If world generation fails it displays an error message instead of continuing to selecting starting Duplicants
  • World generation will no longer retry with a new seed if a seed fails. This means that errors in worldgen will cause failures instead of silently changing the seed in the background.
  • Fixed world generation failing on some seeds resulting in a world filled with Abyssalite. This was reported primarily on Volcanea Asteroids but it could happen on any asteroid type with world traits.
    • Note: due to the combination of the above two fixes, a small number of seeds have been changed where previously that seed would fail on the first try and then succeed. This will not affect the vast majority of seeds.
  • Medical Cot severity slider requirement default is set to 70%.

[h2]Fixes[/h2]
  • Further fixes for constructions getting dragged around during autosave and when the Notifier triggers
  • Fixed building toggle errands not being saved.
  • Fix rocket module meters not matching the offset of their parent module
  • Fix crash when deconstructing a tile
  • Counter Sensor defaults to the "off" anim state when first built.
  • Counter Sensor no longer sends Green Signal for its initial "zero" state, making daisy-chaining possible without requiring to reset.
  • Copy Settings works correctly for Liquid Reservoirs and Gas Reservoirs
  • Signal Switch and Circuit Switch sidescreens now scale correctly with UI scaling.
  • Signal Switch now initializes in the right animation based on whether it's on or off, instead of always defaulting to off.
  • Signal Switch no longer says it requires Duplicant operation.
  • Control Inputs on the Signal Selector/Signal Distributor now only read from the first bit of an Automation Ribbon.
  • Canister emptier no longer shares auto-bottle strings with bottle emptier
  • When paused, multiple Signal Switches/Circuit Switches can be toggled at a time, and general improvements to the functionality of the player controlled toggle sidescreen.
  • Automation Ribbon Bridges now correctly de-tint if they are offscreen when the Automation Overlay is closed
  • Light audio mix and performance fixes around creatures
  • Fixed issue allowing for 2 Sweepys to be produced for the same base station
  • MOTD strings can now be translated by Language Mods
  • Sweepy fixes:
    • Refined metal for sweepy production will no longer be cleared from the Sweepy base station as if it were swept clutter. This should fix some infinite delivery loops with the sweepy station.
    • Improved Sweepy status item when trapped
    • Fixed empty status item for Sweepy. Added status items for common states. Added placeholder string to base station description to describe emptying behavior.
    • Fixed the dying animation sometimes being interrupted by the idle animation.
    • Fixed bug allowing Sweepy to magically change the temperature of things swept.
  • Fix some instances of dupes still carrying on conversations after death.
  • Fix crash when a dupe greets another dupe right as they're dying.
  • A couple fixes for trying to retrieve the schedule of a dead dupe.
  • Fix crash when a critter dies right before they get wrangled.
  • Fix crash when a building or plant is destroyed while its room is being updated.
  • Fix achievement crash for very old saves.
  • Fix retry-loop when a translation mod becomes enabled somehow.
  • Prevent softlock when a modal dialog is rendering behind the crash report screen.
  • Separate limits for sliders and text input fields in sandbox tools. Should allow very negative heat gun values and prohibit
  • Sandbox brush size limited to 50
  • Sandbox settings revert to default settings if the saved data is not applicable (update IDs loaded in base game). Mass, temperature, and brush radius values are better clamped.
  • Further fix for refunding secondary materials from construction when a building is replacing itself
  • Tweaks to the Reader/Writer and Ribbon art to overlap better and display the proper animations
  • Wheezewort description updated
  • Sweepy Recharge description updated
  • Fixed blank status item for Sweepy moving to charging station
  • Make "Infinity" and "-Infinity" translatable.
  • Add closing color tag to privacy policy description
  • Fix sandbox backup save file path on non-Windows machines
  • Potentially fix broken "Browse Log Files" link for Linux
  • Fix color for red duration tooltip on Timer details screen
  • Hover tooltips properly use selected color mode for logic description strings
  • Duplicants can no longer get the "Pacifist" trait if they have a Digging interest. This prevents the bug where their stats would reroll if they ever had both Digging interest and Pacifist.
  • Door toggle buttons once again animate while waiting for a Duplicant to perform the action
  • Remove duplicate "Tutorial: Scheduling" entry from the codex
  • Fix typo in Pip codex entry
  • Weight plates now properly detect when an element solidifies directly on top of them
  • Fix crash when creature dies while it's laying an egg
    • Also cleanup the inactive egg left in the scene
  • Fix old hack that had sweepers always drop their contents on load. This was to stop them from putting their current contents into an unrelated fetch. Now the arm drops everything only if its new fetch doesn't match the current request
  • Fix unrelated entities taking on mass when combining same elements on a cell
  • Fix crash when a sweeper has to drop an item
  • Fix Counter not changing output signal when receiving reset signal
  • Fix inconsistent Timer Sensor behaviour dependent on framerate
    • This will reset all timer sensors for save files currently on the preview branch.
  • Fix strange input if a mouse button was clicked twiced in a frame. This caused the area measurement numbers to stick around, "phantom" constructions, and other oddities.
  • Properly load localized string keys for Sweepy status messages
  • Fixed Auto-Sweepers sometimes dropping their contents before their errand was actually finished

[h2]Optimizations[/h2]
  • Removed validations in our arrays which were were taking up over 5% of the frame
  • Minor optimize to ConduitFlow
  • Bridge optimizations save about 3% of the frame when a steady stream of elements are passing through conduit bridges
  • Reduce memory usage during save:
  • State Machines don't allocate extra memory
    • Compress save data directly into the filestream instead of using a separate buffer
    • Move our serialization of the Sim directly into our primary buffer
    • Estimate our deserialization buffer capacity based on last load or save
    • Save ~1% frame time when setting animation symbol overrides
  • Reduce memory usage when saving numbers. And there are a lot of numbers in this game...
  • Reduce memory usage for writing out encoded strings
  • Reduce Report Manager memory usage while saving
  • Slight improvement to the speed of the algorithm for fetch errands
  • Slight improvement to the speed of data lookup for fetch errands

[h2]Modding[/h2]
  • Added hooks to LogException in KMonoBehehaviour's try-catches for mod support
  • Removed IEffectDescriptor; in every case except one it just deferred to the game object anyways, so no reason to inject the BuildingDef. This makes all effect descriptors use the same interface, simplifying things.
  • Support archived versions for mods
    • This will allow modders in the future to publish versions of their mod simultaneously for the testing and release builds. There's no immediate changes to be made right now. However, next patch this can be used to update mods on the Testing branch without breaking them for Release players!
    • The "current" most up-to-date version of the mod continues to live in the root folder of the mod as always.
    • Archived/previous versions of the mod can be moved into an 'archived_versions' folder, and their last good version specified in a top-level file called 'archived_versions.yaml'. Its structure looks like this:
        archivedVersions:
        - relativePath: archived_versions/0
        lastWorkingBuild: 10000
        - relativePath: archived_versions/1
        lastWorkingBuild: 10001

[Game Update] - 399948

Fix a crash where animations could be invalid when a Duplicant finished working at a building
Fix a crash when a Duplicant leaves a Tourist Module on rocket landing

[Game Update] - 399090

Originally posted by Ipsquiggle on the official forums.

Hey everyone, just wanted to let you know that we really appreciate the bug reports and feedback you leave for us. Though the game has been officially released, we have been and will continue to put out patches with fixes and quality-of-life improvements. There are some fixes to new content we didn't get into this patch for stability reasons, but we're continuing to improve the game and will get those fixes into a later update! For the whole story be sure to read the roadmap.

[Game Update] - 399090
  • Solid Conveyor Filter no longer gets "stuck" if an ore sublimates and sends an empty box to the filter
  • Fix the Conveyor Element Sensor and Conveyor Shutoff being "one tick behind".
  • Fix to Sweepy's sleep sounds
  • AND gate audio added
  • Some automation sound volumes adjusted
  • Fix crash in Element sensors when an object is destroyed while in the conduit
  • Update Chinese strings
  • Logic Gate animations are now Played, not Queued, since they are all much quicker. Prevents the animations from playing continuously even after a signal has stabilized.

HOTFIX - 398437

  • Fix crashes in certain tile/wire replacement situations
  • This reverts the change that fixed the bug where replacing a tile with two materials would only refund the primary material
  • Changed message text in the new automation ports popup when loading a save
  • Send a clearable notification message for each building where a wire is connected to a new automation port (only shows in saves that haven't been "upgraded" yet)
  • Art updates for NOT gate
  • Fixed sweepy base station rest animation layering issue
  • Shortened the animation length for Signal Selector / Splitter for more responsiveness

Banhi's Automation Innovation Pack Now Available!

[previewyoutube][/previewyoutube]

Hello friends!

Today we're releasing a new free content pack, Bahni's Automation Innovation Pack, available automatically as part of the game! This includes several new sensors and automation buildings, as well as improvements and bugfixes to many of the existing automation buildings. These new tools will let you increase the effectiveness of your automated contraptions, improve your control and awareness of colony operations, and maybe even let you express your creative side.

To help you get started on this computer-controlled journey, we've introduced Sweepy, a sweet robot caretaker to help you keep your floors tidy and dry! Not the brightest little bot, but it'll get the job done.

And of course we're continuing to hack away at bugs and work on performance. In case you missed it, we posted a new Roadmap a few weeks ago that explains what's been happening and what will be happening with ONI over the next little while, please check it out.

Thank you as ever for your feedback and bug reports, we appreciate them so much!

New Features and Notable Changes
  • New Automation Sensors
    • Counter Sensor
    • Timer Sensor
    • Wattage Sensor
    • Conveyor Rail Sensors
  • New Automation Ribbon allows sending up to 4 signals along a single tile
    • Ribbon Writer and Ribbon Reader convert single-signal wire to ribbon
    • Mixing single wires and ribbons causes a signal overload
  • Signal Selector and Signal Distributor for automation routing
  • New Automation output buildings
    • Pixel Pack
    • Hammer
    • Notifier
  • Updated artwork for Automation Gates to make their function more concrete
  • New Sweepy Bot and Sweepy Dock
  • Liquid Vent, Gas Vent, High Pressure Gas Vent, and Conveyor Chute can now be closed, both manually and by automation
  • Gas Reservoir and Liquid Reservoir have smart storage functionality
  • Added an information screen when loading old saves to warn about changes to buildings
  • Added a Solid Filter building for Conveyor Rails
  • Signal Switch and Power Switch no longer require Duplicant interaction
  • Updated Sticker artwork
  • Critter Sensor now has toggles for detecting Critters/Eggs/Both

Fixes

Buildings
  • Gas Shutoff behavior is now consistent with Liquid Shutoff
  • Placing a "replacement" building over a deconstruct will clear the deconstruct
  • Thermo Sensor now behaves properly when input temperature is equal to the threshold
  • Virtual Planetarium requires the Astronomy Skill with Planetarium Researching trait. (Previously it was incorrectly set to Advanced Research)
  • Rationbox and Refrigerator are user nameable
  • Broken Automation Wires no longer carry an automation signal
  • Copy Settings on the Critter Sensor now copies Critter/Egg detection toggles.
  • Liquid Shutoff and Gas Shutoff now properly consume power when set to an OPEN state.
  • Conveyor Shutoff now consumes power in an OPEN state, not just OPEN+DISPENSING, to align with the Gas/Liquid Shutoff behaviours
  • Automatic Dispensers now consume power correctly.
  • Disease Clinic now properly consumes power when actively healing a duplicant.
  • Fix "ghost" rocket modules appearing for rockets already in space after a load
  • Doors now properly melt or don't melt in various situations
  • Remove Disable Delivery button from algae terrarium and rust deoxidizer, disabling the building can be done instead
  • Logic wires can now be replaced by different materials. Also support logic wires and logic ribbon replacements
  • Fix solid conduit contents not exchanging heat when the camera was in certain configurations

Duplicants
  • Fix a crash when duplicants try to eat an invalid amount of food
  • Duplicants will no longer forget their progress when tuning a power generator, and will be more resilient to changes in the room

Critters
  • Fix a crash when Pokeshells find an egg to protect

UI
  • Closing the Automation Overlay with previously-viewed buildings off screen no longer causes them to render behind Automation Wires
  • Fix Printing Pod now showing one of the victory conditions
  • Heavi-Watt Wire tooltip is now measured in kW
  • Fix output ports hover text using incorrect input ports string
  • Massage Table sidescreen tooltip formatting
  • Massage Table, Smart Battery, Liquid Reservoir, Gas Reservoir sidescreen tooltips now load correctly the first time
  • Conveyor Rails are now highlighted when the Conveyor View is active.
  • Conveyor networks now pulse when hovering a rail in the Conveyor View
  • Fix Temperature overlay so its tooltips update when F/C/K units option is changed during session
  • Sandbox tools save settings. Some other small sandbox QOL.
  • Changed many elements' default temperatures to 300k - this should only be relevant for sandbox tool defaults
  • Fixed several issues with sandbox temperature tools relating to user temperature unit selection
  • More buildings are brought forward into Overlay space in the Gas / Liquid conduit overlay
  • Many buildings (e.g. Gas Filter, conduit sensors, etc) are now selectable from the Gas/Liquid overlays directly with a single click rather than requiring the overlay to be closed to interact
  • Fixed issue with formatted text where multiple copies of identical strings were not being properly formatted
  • Added proper sorting and also categorization to the filter sidescreen
  • Changed the default rotation of the Memory Toggle to match the other Automation buildings
  • The "Copy" building button now copies the rotation of the selected building

Audio
  • Add a cooldown to some building noises to fix noisy bases
  • Automation sounds recover to full volume more quickly

Strings
  • Automation inputs/outputs now show the proper localized strings
  • Updated Chinese, Korean, and Russian translations
  • Change "Forever" string on the recipe select screen to be localized properly

Frontend and Backend
  • Updated the link to the newsletter to use the new Klei Account system
  • Only test for writeable save paths on Windows
  • Cap max number of logs to 10 million - this should prevent hard drives from filling up with enormous log files

Simulation
  • Fix "Flaking" bug. Tiles and doors will no longer partially melt when they get too warm
  • Fix solid conduit contents not exchanging heat when the camera was in certain configurations
  • Fix cases where doors would technically be melted but the building wouldn't go away
  • A bug causing the Automation Overlay to only update on every second automation tick has been fixed. It should be easier to see and debug rapidly-switching circuits now
  • Loading a sim cell with a mass larger than a million tons will cap to that max. Fixes crashes in some saves where masses were so large it was creating invalid temperature calculations

Performance
  • Auto Sweeper caches target positions
  • Performance savings for triggering sounds
  • Reduce a tons of memory spend on Line of Sight tests. On one save, this cut down on 965MB of allocations during load
  • Reduce memory allocations from testing the areas around buildings and other objects
  • Load optimization saves 10-15% of load time
  • Reduce memory allocations from reports during loading (~200mb in large colonies)
  • Reduce filesize usage from reports
  • Reduce memory allocations loading up animations (~300mb)
  • Reduce memory allocations from buildings during load (~300mb in large colonies)
  • Improve speed of saving reports
  • Improve speed of saving buildings
  • Improve startup times of some UI elements
  • Performance improvement to adding and removing animations
  • Reduced memory allocations loading and saving state machines. This reduces the save file size as well
  • Loading a sim cell with a mass larger than a million tons will cap to that max. Fixes crashes in some saves where masses were so large it was creating NaNs in temperature calculations
  • Improve Animation lookup times during load
  • Optimize auto-wrangling setting on Critter Dropoffs
  • Reduced memory allocations in Conduit system and the PokeShell's egg protection behaviors
  • Save 3-4% frame time with proper caching for Errand offsets

Modding
  • Fix hard crash when new elements are added to the game
  • Fix the weird and unnecessary warning when checking for the ModLoader.dll
  • Each mod gets its own uniquely named Harmony instance for better dependency management. (Name is .)
  • Don't eat exceptions during Mod DLL loading
  • State Machine Exceptions are now logged through a non-generic method, making hooking the exception easier