New feature: Full mixed materials support

  • Mixed mined material can now be stored in storages, transported on conveyor belts and trains, and dumped by stackers.
  • Ore sorting plants have new conveyor input ports for sorting mixed material delivered by belts.
  • Ore sorting plants can output the products they are not set to sort as mixed material, allowing partial sorting.
  • Storages set to mixed mined material can be assigned to mine towers to receive mixed truck loads.
  • Storages and train station modules set to mixed mined material can also accept non-mixed products.
  • Storage, truck, wagon, and other inspectors show what their mixed material contains.
  • Mixed materials are extensible and can support all product types.
  • Recyclables are now a mixed material that tracks which products they were made from.
  • Sorting recyclables returns the matching scrap instead of a factory-wide average.
  • Sandbox product sources now produce recyclables and mixed mined material with a mix of products that sorts into scrap and ores.
  • Fixed recyclables collected from settlements ignoring the recycling efficiency.

New feature: Info overlays

  • Added info overlays that gray out the world and color buildings, vehicles, conveyors, and pipes by a selected statistic.
  • Available overlays: productivity, pollution (including radiation and landfill), priority, electricity, computing, workers, maintenance, and product flow (producers and consumers of a selected product).
  • Electricity, computing, and maintenance overlays can switch between long-term averages and current values.
  • The priority overlay shows the priority number of each entity and can switch between general and power generation priority.

New feature: Radiation-shielded trains

  • Added a shielded wagon and a shielded station module for moving radioactive products by train without causing radiation.
  • Radiation is now calculated daily from the radioactive products that buildings, vehicles, and conveyor belts actually hold, which prevents radiation from products miscounted by bugs (in the game or in mods).

New train features and improvements

  • Added train activity statistics to the train inspector (working, idle, refueling, and not working).
  • Added train travel statistics that show how trains spend their time between stations (full speed, accelerating & braking, track speed limit, and blocked by trains).
  • The Train lines & networks window shows both statistics for the average train of the selected line or network.
  • Added a track speed limit overlay to the train and train depot inspectors that shows where curves and slopes limit train speed.
  • Train tracks with a 25% grade (including grade transitions) now have an 80 km/h speed limit to make gentler 12% slopes worthwhile on high-speed lines.
  • Added track buffers that can be built at the ends of bidirectional tracks with a new tool and set to allow or forbid trains to reverse there (track ends without a buffer always allow trains to reverse).

New feature: Web API

  • Added an in-game web API server, started with the web_api_start console command and stopped with web_api_stop.
  • Built-in routes include a demo dashboard (/demo-dashboard), a screenshot of the current view (/screenshot), and a list of all routes (/routes).
  • Game commands can be sent through the API (cheat commands only in sandbox games).

Translations and onboarding

  • Patch notes are now machine-translated into all 20 supported languages, with an option to show the English original.
  • The game language can now be changed in the main menu (from a new dropdown or in the settings) without a restart, while changing it during a game still requires one.
  • The first game launch now asks for a language, display, and window mode.
  • Added British English.
  • The patch notes window now shows a timeline with release names.
  • Fixed some texts never being translated or staying in the language that was loaded at startup.

Key bindings and input

  • The Controls tab can search by action, group, or key, show only the base game, a DLC, or a mod, and filter conflicting or customized bindings.
  • Each action in the Controls tab has a reset button that shows its default keys.
  • Conflict tooltips in the Controls tab name the mod that owns the other binding.
  • Ctrl, Shift, Alt, and Cmd now match either side of the keyboard and take one key slot instead of two (except in bindings customized before this update).
  • Every toolbar menu and the asteroid management window can now be bound to a key (unbound by default, except Transports, which keeps T).
  • Key hints in window titles, toolboxes, and tooltips now update after a rebind.
  • The mouse wheel no longer acts when the cursor is outside the game window.
  • Fixed build tool modes (e.g. transport no-turn or train track alternative modes) staying on after their key was released.
  • Fixed a key pressed and released within one frame never being registered as released.
  • Fixed single-key shortcuts (e.g. Z) not working when the same key with a modifier (e.g. Ctrl+Z) was bound to another action.
  • Fixed Enter, WASD, and other keys acting behind popups or while typing in the new game screen, save and load windows, blueprints, and the mod and map managers.
  • Fixed text fields treating a changed placeholder as typed text.

New sound engine

  • Rewrote sound playback to combine sounds of the same kind, which frees sound channels and lets more different sounds play at once in large factories.
  • Added ambient sounds based on the surroundings of the camera, such as forest, ocean, wind, and rain.
  • Added terrain collapse sounds that differ for soft and hard materials and get louder as more terrain collapses.
  • Added a sound quality setting that controls how many sounds can play at once.
  • Sounds use about 10x less memory.

Improvements

  • Products on conveyor belts now travel half a tile into connected buildings instead of appearing and disappearing abruptly at belt ends.
  • Global search now starts searching from the first typed character.
  • Added an optional real-time clock next to the game speed controls (Settings > Video > User interface, 12-hour or 24-hour).
  • The per-recipe breakdown in product statistics now shows totals.
  • The Captain's office now shows the monthly Unity provided by enabled edicts, and a tooltip explains what its edicts Unity cost includes.
  • Window mode changes now use the same confirmation with automatic revert as display changes.

Performance

  • Resource bars shown over the terrain initialize ~10x faster on large maps.
  • Ship pathability initializes ~2x faster on load.
  • Loading is faster because product textures are no longer recompressed every time.
  • Fixed slow unlock checks in inspectors, Codex search, and the toolbar.
  • Save file checksums are computed 2-3x faster, which speeds up saving and loading.
  • Optimized the internal dictionaries and sets used throughout the game.
  • Sound processing is faster, especially while the camera moves.
  • Research unlock conditions based on global statistics are now checked less frequently.

Fixes

  • Fixed machines with recipe-specific power use (e.g. Arc furnace II) not updating their power demand after a recipe finished, which also made a loaded game diverge from the game that saved it.
  • Fixed network trains with leftover cargo and no job (e.g. after their job was cancelled) going to the station with the most free space instead of the highest-priority one with room for the cargo.
  • Fixed network trains driving empty to the delivery station when their pickup was at the station they had just unloaded or refueled at.
  • Fixed placing a train station or level crossing over partly built tracks making their delivered construction materials disappear.
  • Fixed the train go-to tool showing switchbacks incorrectly.
  • Fixed copying a waypoint leaving the copy cursor active.
  • Fixed designation removal starting away from the cursor, and decal removal not matching the outlined area.
  • Fixed inverted lighting on 15 loose products (e.g. crops, feed, scrap, waste, quartz) and on dumped waste and slag.
  • Fixed slag, titanium slag, crushed slag, crushed gold ore, quartz, and woodchips using flat or mismatched surface detail.
  • Fixed large numbers rounding to "1000k" instead of "1M" (and "1000M" instead of "1G").
  • Fixed edicts that provide Unity (e.g. Plenty of food) losing the days already earned in a month when switched off and back on within that month.
  • Fixed the inertia of idle mechanical shafts getting stuck just above 95% instead of decreasing.
  • Fixed water sprinkled by rocket launch pads missing from product statistics.
  • Fixed memory leaks when tree harvesters cut trees, when selecting saves in the save and load windows, and when editing map publishing settings in the map editor.
  • Fixed the splash screen background being stretched on displays that are not 16:9.
  • Fixed an off-center dropdown arrow.

Modding

  • Mods can ship translations in a Translations folder (one JSON file per language, same as the core game).
  • Added the export_mod_translations console command that generates a translation template for a mod.
  • Shipping translations requires a mod ID of 4-32 letters, digits, dashes, and underscores without periods (mods with other IDs still load with a warning, but will be rejected in Update 5).
  • Mods can add key bindings through IShortcutsRegistry (in IMod.Initialize or in a global dependency's constructor), and the Controls tab lists them under the mod's name.
  • KbHandle replaces ShortcutsMap, KbAttribute, and KeyBinding (mods that use key bindings need an update).
  • Mods can add info overlays by implementing IInfoOverlay.
  • Mods can serve web API routes by marking a method of a global dependency with [WebRoute], or register routes of other objects with RegisterRoute.
  • Mods can create their own mixed material categories with MixedMaterialCategory.CreateAndRegister, and modded mineable and recyclable products join the base categories automatically.
  • Compactor and shredder recipes are generated from CompressionParam on loose products (modded scrap gets pressing recipes by declaring it).
  • Recipes must call EnableRecyclablesOutput() instead of adding recyclables with AddOutput, which is now a proto build error.
  • Office building and research lab protos take an OutputProduct instead of a fixed quantity per recipe.
  • Product buffers were reworked for mixed materials with new IPlainProductBuffer and IMixedProductBuffer interfaces (mods that use buffers directly may need an update).
  • Entity sounds are now bound in sound tables (.tbl files embedded in the mod assembly), and the sound members of protos and builders (e.g. SetMachineSound) are obsolete and ignored.
  • Commands marked with [CheatCommand] now fail outside of sandbox games, whether the UI, a mod, or the web API sent them.
  • Commands now reject locked protos (e.g. locked vehicles, transports, or recipes) and invalid values.
  • IsFree on build commands is obsolete and ignored, and their remaining bool arguments should be passed by name (a positional true after the transform in CreateStaticEntityCmd now sets allowValidationSuppression).
  • The default maximum quantity of a loose product per belt pile dropped from 5 to 3 (base game belts already carry at most 3).
  • JsonWriter now has a fluent API for nested objects and arrays and replaces WebJsonWriter (the old AppendStartObject and AppendXxxField methods were removed).
  • Added a RegisterDataWithInterface overload that takes the mod assembly, which is more reliable than detecting the calling assembly (as with RegisterAllProducts).
  • Serialization and dependency resolver errors now show generic type names as written in C#.
  • Saves that cannot load correctly after mod changes (e.g. too many proto IDs) now fail to load with an explanation instead of loading with broken data.
  • Fixed removing a mod with its own proto types possibly leaving every product without an ID.