- [space-age] Added space platforms, which can request items to be delivered by rockets and used to deliver cargo between planets. (https://factorio.com/blog/post/fff-381)
- [space-age] Added new planet Vulcanus, a volcanic planet with new resources, structures, items, recipes and technologies focussed on metallurgy. (https://factorio.com/blog/post/fff-386, https://factorio.com/blog/post/fff-387)
- [space-age] Added new planet Gleba, a swampy planet with new resources, structures, items, recipes and technologies focussed on agriculture. (https://factorio.com/blog/post/fff-413, https://factorio.com/blog/post/fff-414)
- [space-age] Added new planet Fulgora, a stormy desert planet with new resources, structures, items, recipes and technologies focussed on elecromagnetism. (https://factorio.com/blog/post/fff-398, https://factorio.com/blog/post/fff-399)
- [space-age] Added new planet Aquilo, a freezing planet with new resources, structures, items, recipes and technologies focussed on cryogenics.
- [space-age] Introduced quality, which is additional property of item, entities and equipment. (https://factorio.com/blog/post/fff-375) Most entities, equipment, modules and ammo have various kind of bonuses with higher quality.
- [space-age] Added rail ramps, rail supports and elevated rails to build bridges. (https://factorio.com/blog/post/fff-378)
- [space-age] Added stack inserters (previous stack inserters are called bulk inserters now) which can load transport belts with layered stacks of items. (https://factorio.com/blog/post/fff-393)
- New rail shapes, rail curves, 22.5 degree tracks.
- Added Train interrupts (https://factorio.com/blog/post/fff-389, https://factorio.com/blog/post/fff-395) Trains can have number of interrupts, each interrupt has conditions and set of stops. Whenever is the train leaving a station, the first interrupt with fulfilled condition is activated, which adds its stations as temporary items into the schedule.
- Added Train groups. (https://factorio.com/blog/post/fff-389) Train name is editable and trains with the same name are considered to be in the same group. Editing schedule of a train automatically updates schedules of all the trains in the same group.
- Added Logistic groups. (https://factorio.com/blog/post/fff-382) Logistic group is editable for logistic points (Requester chest, Roboport, Character, Spidertron, etc.). Editing the requests of a logistic point automatically updates requests of all the points in the same group.
- Added Factoriopedia. (https://factorio.com/blog/post/fff-397) It provides detailed information about different kind of objects. Alt clicking any relevant gui element or game entity opens the related page.
- Forced building will now automatically adds missing landfill or other other tiles based on context.
- Added super forced building mode. Ctrl + Shift + Build marks for deconstruction player's colliding entities and replaces ghosts and tiles. (https://factorio.com/blog/post/fff-383)
- Added search to the remote view. It allows to do surface wide search for recipe production, resources and train stations and map tags. (https://factorio.com/blog/post/fff-400)
- Blueprint parametrisation. Allows to make more generic bluprints, which are configured upon building. (https://factorio.com/blog/post/fff-392)
- Rail planner is usable in the map (remote view). (https://factorio.com/blog/post/fff-403)
- Added smart dragging of underground belts and pipes.
- Added a toggle to show pipelines on the map.
- Added the option to pin positions, entities, alerts or search results, and keep track of their location. (https://factorio.com/blog/post/fff-400)
- Entity ghosts are now buildable on water if the landfill ghosts are already there.
- Added a third graph to the electric network overview to track the charges of accumulators over time. (https://factorio.com/blog/post/fff-408)
- Added a new alert for construction and logistic robots that can't find free space in a roboport.
- Added a new alert for trains failing to pathfind to their target. (https://factorio.com/blog/post/fff-395)
- Added a new alert for turrets running out of ammunition. It only sounds once right when the ammo is used up.
- Added fuel condition to the train schedule.
- Added condition to the train schedule to check whether a specific station is full or not.
- Added an option for a locomotive to update its color automatically based on the color of the target train stop. (https://factorio.com/blog/post/fff-389)
- Smarter worker robot scheduling. Worker robots have task queue now which allows the planner to choose the robot that will be able to get to the destination fastest, even if it is doing something else at the moment.
- Robot requests in roboports.
- Added Flipping as a primary action to flip entities horizontally or vertically. Works on items in hand placed on the surface or ghosts. AssemblingMachines can now be mirrored by flipping them, allowing additional fluid box configurations. Bound to F (Horizontal) & V (Vertical) by default.
- Upgrade planner can install new modules into machines, this is done by leaving the source slot empty and setting up only the destination slot.
- Upgrade planner module upgrade/install can have machine filter and maximum count per machine specified.
- Upgrade planner now has dynamic size, similar to the blueprint library. The size is capped at 250 rows now.
- Added a way to create module/fuel requests in entities remotely by clicking with ghost item in hand. (https://factorio.com/blog/post/fff-380)
- All turrets (except for artillery) can now be configured individually to prioritize certain types of enemies when looking for targets. (https://factorio.com/blog/post/fff-410) The priority settings can be copy-pasted between the different turret types and can be configured through the circuit network.
- Added latency hiding for cars (and tanks).
- Rocket silos continue producing parts for the next rocket while the current rocket is being launched. Completing another rocket soon enough skips closing and reopening the doors. (https://factorio.com/blog/post/fff-405)
- Improved the way spidertrons are remotely controlled. Instead of spidertron remote being linked to single spidertron, it can be used to group select and command spidertrons like in your typical RTS game.
- Spidertrons can be entered remotely, so you can control them as if you were inside physically, so switching the map on/off doesn't distrubt the mode.
- Allowed opening and configuring entities through remote view. (https://factorio.com/blog/post/fff-380)
- Added green indicator (instead of yellow), when previewing underground belt/pipe on its maximal distance. (https://factorio.com/blog/post/fff-388)
- Added selector combinator. It allows to select one of the signals, or the signal count from an input.
- Added editable description to combinator entities.
- Decider Combinators are now allowed to check multiple conditions and send multiple outputs per combinator.
- Arithmetic combinator now allows to select red and green networks for input signals and perform Each-Each operations.
- Signal pipetting.
- Added display panel. 1X1 entity which can show specified icon and/or text, possibly also on the map. It can be also controlled by the circuit network. (https://factorio.com/blog/post/fff-419)
- Transport belt connected to a circuit network can now read contents of the whole segment instead of just the one tile. (https://factorio.com/blog/post/fff-405)
- Roboports can read logistic network contents and requests. (https://factorio.com/blog/post/fff-428)
- Roboports can output the number of roboports in the logistic network to the circuit network. (https://factorio.com/blog/post/fff-428)
- Logistic Chests have an optional circuit condition to enable / disable their connection to the network. (https://factorio.com/blog/post/fff-428)
- Rocket silo is connectable to circuit network, and allows to read its contents.
- [space-age] Rocket silo circuit connection can read orbital requests.
- All turrets (including artillery) can now be connected to the circuit network to read their current ammo count and/or deactivate them. (https://factorio.com/blog/post/fff-410)
- Assembling machines, chemical plants, oil refineries and centrifuges can now send the ingredient list of their recipes to the circuit network.
- Drag building electric poles will also drag circuit wires when starting from electric pole with already connected circuit wires.
- When electric pole is removed, it will rewire circuit wires similar to copper wires.
- Cut/copy pasting blueprint with external circuit wire connections will preserve these connections when the blueprint is built (if possible). (https://factorio.com/blog/post/fff-402)
- Radar can now be connected to circuit network, allowing to wirelessly transmit a single channel of red and green signals on each planet/surface. (https://factorio.com/blog/post/fff-402)
- Added a way to read nuclear reactor temperature through the circuit network. (https://factorio.com/blog/post/fff-428)
- Added "No enemies" setting that disables enemy unit spawning from enemy spawners, map gen, and items. Does not disable enemy spawners.
- Upgrade planner can upgrade fuel in blueprints (yet to be implemented for existing entities).
- Added cargo pods that move items from platforms to landing pads.
- Added a warning when a save game is too large to sync via the Steam cloud.
- Added PipeWire audio driver.
- Added a setting to select the preferred audio driver on Windows and Linux.
- Undo improvements. Undo actions older than 1 minute require confirmation +flying text notification of what was undone.
- Added redo.
- Allow undoing of module changes done via upgrade planner.
- Allow undoing of copy-pasting entity settings like assembler recipes or inserter filters. (https://factorio.com/blog/post/fff-412)
- Allowed lamps color to be configured manually.
- Manual building in latency state now tracks used items.
- Manual building previews will now highlight ghosts that would be removed.
- Blueprints with entities and landfill are now one-click buildable over water.
- Added icons for tileable blueprints, like "Curve, Corner, T junction, X junction" and similar, in Virtual signals category.
- Evolution factors are now tracked individually for each surface.
- Pumps now can have a fluid filter. If present, only the specified fluid is taken from the pump's source.
- Electric poles are no longer limited to 5 copper connections to other electric poles.
- Removed some of the abstract items (red wire, green wire, discharge defense, artillery remote, spidertron remote) and replaced them with shortcut bar tools which can be used anytime for free. (https://factorio.com/blog/post/fff-379) These tools can still be placed into the quickbar if desired.
- The smart pipette can also pick terrain and using it on fluid select the offshore pump.
- The smart pipette can also pick items from crafting, logistic, select list, inventory and quickbar.
- Disabling train stop no longer sends ongoing trains away. Disabled train stop is now considered full and trains will not skip schedule records.
- Map tags can be moved. (https://factorio.com/blog/post/fff-388)
- Map tags can be quickly copied using pipette. (47822)
- Map tags and pings can be placed while zoomed in to game view.
- Spidertrons can be damaged by cars and tanks, can be damaged by walking on fire, and can be slowed with slowdown capsules.
- Switching to the map editor using /editor now places the player at the position they were looking at in remote view. Switching out of the map editor returns the character to the position it was when entering. Added editor options to individually revert these changes to their previous behavior.
- Numerical textfields accepts values with postfix formats (10k instead of 10000 etc), simple math expressions, like 3*7+7k are also possible.
- Added logic to hide previews for buildable items if fast-transfer modifiers (default: Ctrl) are pressed. Doesn't apply to blueprints or when rail planner is active.
- Improved the AI of the worker flying robots when it comes to choosing roboport to recharge. It prefers roboports closer to its destination, so (for example) it won't get stuck over lakes forever.
- When you retrieve your corpse, the logistic requests will re-enable if they were enabled before death. (Related to the already existing behaviour, where the requests are disabled upon death, to avoid unwanted supply)
- Dedicated servers will stay paused until the first player is fully connected (if auto-pause is enabled).
- Added an option to auto-pause servers while any player is connecting (defaults to false).
- Added several new achievements both to the base game and space age.
- When renaming a train stop, it will try to copy its color from an existing stop with that name.
- Added control inputs (Ctrl/Shift + Arrow keys) to adjust blueprint grid alignment.
- Train stop can be given a priority, trains will prefer going to the train stop with higher priority and it will be easier for them to depart from such train stop. (https://factorio.com/blog/post/fff-395)
- Allow copy-pasting of setting for trains and train stops while in chart view. (https://factorio.com/blog/post/fff-403)
- Crafting machines can craft more than 1 recipe per tick if their speeds are fast enough.
- Improved the ultra-wide monitor experience by greatly increasing the maximum view distance based on the game window's dimensions.
- Added "sync-mods" command line option to sync mods with a given save file.
- Trains with non-empty schedule are automatically switched into automated mode upon completition.
- The spidertron inventory is automatically sorted.
- Added a browse history feature. Pressing ALT + arrow keys (or the arrow button on the right top of the window), can go back and forth through what was opened. (https://factorio.com/blog/post/fff-397)
- Added 8 directional arrows to virtual signals. Also added red cross signal next to the checkmark.
- Added a super forced mode for deconstruction planner: when selecting area while holding Ctrl + Shift (by default) deconstructs everything (deconstructible and not filtered out), i.e. entities, tiles and hidden tiles
- Added a reverse mode for deconstruction planner: when selecting an area using right-click, the white-/blacklist setting for entity and tile filters will be reversed for this selection.
- Added a nondefault tile cover cache - last used cover tile is being saved per surface per force per tile id being covered. For most intents and purposes, those values act the same as default covers defined by covered tile prototype (for tiles without default cover defined).
- The storage filter of logistic storage chests can now be copy-pasted.
- Added automatic splitting of repeated noise expressions into separate procedures which increased map generation speed.
- Improved C++ structure of noise expressions which reduced game start-up time and MapGenSettings compilation time.
- Improved worker robot performance, they are not updated every tick when moving or stationary anymore. (https://factorio.com/blog/post/fff-421)
- Improved performance of idle roboports. (https://factorio.com/blog/post/fff-421)
- Improved radar charting speed. (https://factorio.com/blog/post/fff-421)
- Improved circuit network logic by making it fully multithreaded.
- Changed Spidertron walking strategy to deliberately alternate legs and be overall more efficient and performant.
- Changed train wait condition evaluation order to check 'cheap' conditions (e.g. wait time) before 'expensive' conditions (e.g. inventory) within a set of "and"-connected conditions.
- Changed night vision effect from grayscale to a more contrasty one.
- Added decay stages for enemies. (Biters, Spitters, Worms, Spawners)
- Reworked die animations, now they have more gore to transition into the decay stages better.
- Reworked fire animations, improved quality and increased resolution.
- Reworked rocket projectile animations
- Fixed copper and circuit wires appearing to sag below the perceived ground level.
- Fixed copper and circuit wire shadows projecting onto the ground incorrectly.
- Improved sounds of dying enemies.
- Added different sounds for manipulating different items in the inventory and opening different entities. (https://factorio.com/blog/post/fff-396)
- Added different sounds for shooting different kind of targets.
- Added ambient sounds. (https://factorio.com/blog/post/fff-396)
- Added semi-persistent ambient sounds.
- Added support for sound accents for entities' working_sound. These are short sounds which play at a specific moment in the entity's animation.
- Added support for multiple main sounds for entities' working_sound.
- Extended support for aggregation to most sounds.
- Added controls to skip current music track, go back to previous one and to pause/resume music.
- [space-age] Added new music. (https://factorio.com/blog/post/fff-406)
- Added variable music. (https://factorio.com/blog/post/fff-407)
- Diminishing return of beacons effect (https://factorio.com/blog/post/fff-409)
- Lowered Fluid pumping speed from 12 000 to 1 200.
- Altered the mining drill bounding box, so you can walk between mining drill and substation and such.
- Lowered stack size of ammo from 200 to 100.
- Increased fluid wagon capacity from 25000 to 50000 to make fluid wagons more compelling compared to the new pipe mechanics.
- Increased low density structure stack size from 10 to 50.
- Increased beacon stack size from 10 to 20.
- [space-age] Rocket part takes 10 times less ingredients than before.
- [space-age] Rocket silo requires 50 rocket parts to craft a rocket instead of 100.
- Biter spawner health grows with evolution, up to 10 times with maximum evolution.
- Increased health of bigger worms, and added a laser resistance to them.
- Removed the 15% explosion damage resistance from biter spawners.
- Doubled the damage of artillery.
- Nerfed personal laser defense damage output to 1/3 its previous output.
- Changed all module-3 recipe to require only 4 (instead of 5) module-2 ingredients.
- Greatly increased default tile pollution absorption.
- Increased rocket fuel stack size from 10 to 20.
- Decreased the crafting time of rocket ingredients.
- Decreased the crafting time of solid fuel.
- Increased damage and range of non-explosive cannon shells.
- Doubled the distractor robot health from 90 to 180 and life time from 45s to 90s.
- Increased destroyer robot base damage from 10 to 20 and range from 15 to 20.
- Increased damage of shotgun pellets from 5 to 8, and made shotgun projectiles spawn closer to the player.
- Increased battery capacity of construction robot from 1.5MJ to 3MJ.
- Rocket (ammo) no longer requires an electronic circuit to be crafted.
- Rocket and Explosive rocket projectiles accelerate twice as fast.
- Changed the rocket recipe to require only processing unit instead of rocket control unit. Rocket control unit was removed from the game.
- Reworked the fluid system flow logic. (https://factorio.com/blog/post/fff-416) Contiguous sections of pipes and storage tanks are merged into segments. Each segment contains a single fluid, and throughput is proportional to how full a segment is.
- Removed Filter and Stack filter inserter, instead all inserters can use filters now.
- Character corpses no longer despawn.
- Merged zoom controls and removed functionality to zoom in without leaving chart view.
- Kovarex enrichment process is now unlocked by automation, logistic and chemical science pack only.
- Power armor equipment grid resized from 7x7 to 6x8 to be a bit more practical.
- Power switch and Programmable speaker stack size reduced from 50 to 10.
- Big and huge rock doesn't drop stone items when destroyed anymore.
- 1 Water will now produce 10 Steam in boilers/heat exchangers.
- Boilers will respect conservation of energy by considering heat capacity of input and output fluids.
- Improved high-DPI display support on Windows to match that of Retina displays on macOS.
- Removed the "fuzzy search" setting.
- Updated SDL to version 2.30.0.
- Smart belt building was slightly improved, so it makes the underground also when overbuilding belt gap with belts already present on both sides.
- Trains will not skip stations that do not have any valid stops, they will 'no path' instead.
- Trains with artillery wagons now need to wait for all cannons to be in fully their parked position before departing. When driving manually, keep holding accelerate to command the artillery to stop firing and assume their parked position.
- Improved Apple Retina display support throughout the game.
- Made manual UI scale setting visually consistent between Retina and non-Retina displays, and between native resolution rendering setting being enabled and disabled.
- Default control key for Map changed from M to Tab or M.
- Default control key for Next weapon changed from Tab to C.
- Default control key for Shoot selected changed from C to Shift+Space.
- Default control key for Toggle personal roboport changed from Alt + R to Alt + F.
- Added event-based technologies for unlocks related to the early game.
- Added event-based technologies to only allow to research the oil related and uranium related technologies after the related resource had been mined.
- Switching to map view switches to remote controller now, which allows to open and setup entities even when they are far away.
- Chunks under fog of war are covered even in normal view.
- Default train connect key is now J, train disconnect key is now K and vertical flip is now V.
- Allowed electric poles to be fast-replaced by moving.
- Allowed entity ghost-building over tile ghosts.
- Allowed landfill mining.
- Underground belts and pipes-to-ground connections can be blocked by certain tiles.
- Disabled loading of saves before 1.0.0 version (You can use 1.1 to load older saves and re-save them).
- Changed the /evolution command to respect the now Surface-based evolution tracking. Provide a Surface's name as parameter to get its evolution factor, or leave blank to get a full list.
- Locomotive fuel inventory is now accesible by inserters, so it can be unloaded automatically.
- Changed module limitations for recipes from item-based to effect-based. A module can't be placed into a machine if the current recipe doesn't support one of the effects.
- Changed "use item" (grenades, artillery remote, capsules) to its own control and changed the default to right mouse button.
- Improved heuristic of robots selecting roboports to charge/station.
- Changed selection logic of entity ghosts. They now behave as if they were real entities already.
- Car collisions impact on speed reworked (destroying obstacles now slows the car less than before).
- Added one more color to robot overview on the map (red = logistic robots targeted to me, to deliver or to trash).
- [space-age] Launching space science pack into space no longer returns fish as there is now an other method to automate obtaining fish.
- Changed command-line map preview to match GUI map preview, including correct overlapping ore generation and cliffs.
- Changed --report-quantities option to report total entity count and resource amount in the selected area instead of approximate values.
- Removed --map-preview-scale, --slope-shading, --slope-shade-property and --noise-outputs command-line options.
- Ghost pipes are now connecting to other pipes.
- When train has no fuel, player can manually move the train slowly when it is manually controlled. (https://factorio.com/blog/post/fff-403)
- Increased Big electric pole maximum wire reach from 30 to 32.
- Electric poles are always crafted from copper wire instead of copper plates.
- Removed sandbox scenario.
- Tweaked most of the tips trigger and skip trigger logic, added new tips. Added the ability to show animated UI related tips.
- MapTick is now 64 bit.
- Disabled the turret shooting alert by default.
- Remnants of destroyed player buildings do not disappear after a while any more.
- Increased the number of chunks generated around players based on the maximum view distance.
- Steam Cloud sync for blueprint library is enabled by default now, and library is saved to blueprint-storage-2.dat.
- Changed pipe to ground collision mask so player can walk on top of it.
- Using the pipette on an entity marked for upgrading now picks the result of the upgrade instead of the existing entity.
- Rotating (and flipping) already built entities is now allowed at any distance.
- Added Players screen (accessible from the side menu), where each of the player can be inspected. (https://factorio.com/blog/post/fff-423)
- Added click-and-drag to rearrange logistic requests within a section.
- Changed spidertron gui to have 3 panels instead of two when the flat character gui settings is selected (which is by default).
- The spidertron grid is opened by a button instead of a tab.
- Improved the tooltips of the graph, to actually explain what is the relationship of the two numbers displayed.
- Production and electric network graphs now highlight the corresponding line if an item's slot is hovered in the list below.
- Fixed technology graph UI not properly scaling with UI scale.
- Fixed heat exchanger glow sprite was drawn above the character sprite. (110542)
- Fixed a minor bug in the fluid movement calculation, which didn't take the volume of the container into considaration properly.
- Restructured all the circuit condition windows.
- Circuit and logistics condition windows can be opened at the same time.
- New logistic networks GUI. (https://factorio.com/blog/post/fff-405)
- Added Arrow Up/Down keys support when searching in a listbox.
- The trains stop gui contains a list of trains on the way to this stop (https://factorio.com/blog/post/fff-403).
- Added option switch save game sorting by either name or last modified state.
- Added a notification of researched technology.
- Research widget has a tooltip which shows the research production graph for the last 10 minutes. (https://factorio.com/blog/post/fff-423)
- Alert gui now allows specific selection of the problem we want to move to. (https://factorio.com/blog/post/fff-400)
- Circuit conditions for trains now show precise progress in the GUI if it makes sense for the condition.
- Changed sorting of technologies in technology list to put infinite technologies at the back.
- The buttons for circuit and logistic control settings of entities are now always visible if the entity supports them.
- Added global feature_flags in the settings and prototype stages.
- Added BeaconPrototype::allowed_module_categories, CraftingMachinePrototype::allowed_module_categories, LabPrototype::allowed_module_categories, MiningDrillPrototype::allowed_module_categories, and RecipePrototype::allowed_module_categories.
- Replaced the map generator water slider with an autoplace control prototype; water_level and segmentation_multiplier are now noise expressions.
- Removed pre-defined noise variables finite_water_level, wlc_elevation_offset, wlc_elevation_minimum, cliff_elevation_offset, terrace_elevation_offset, terrace_elevation_interval. Added cliff_elevation_0.
- Added EntityWithHealthPrototype::overkill_fraction.
- Removed AutoplacePeak specification format.
- Added AmmoItemPrototype::shoot_protected.
- Removed ItemPrototype::rocket_launch_product. Use rocket_launch_products instead.
- Moved FluidBoxManagerPrototype::off_when_no_fluid_recipe up to AssemblingMachinePrototype::fluid_boxes_off_when_no_fluid_recipe.
- Added delayed-active-trigger ActiveTrigger type.
- Added ability to attach a SmokeWithTrigger to a target entity and make it fade when the target entity is destroyed.
- Added time-based cooldowns to TriggerEffectWithCooldown.
- Removed ContainerPrototype::enable_inventory_bar.
- Added ContainerPrototype::inventory_type "normal".
- Added LinkedContainerPrototype::inventory_type "normal".
- Added ItemPrototype::send_to_orbit_mode.
- Renamed ItemPrototype::placed_as_equipment_result to place_as_equipment_result to match the runtime name.
- Removed BurnerEnergySource::fuel_category. Use BurnerEnergySource::fuel_categories instead.
- Removed slice, slice_x and slice_y from Sprite and RotatedSprite.
- Changed PipeToGround::pictures to use a standard Sprite4Way.
- Removed OffshorePumpPrototype::picture. Use OffshorePumpPrototype::graphics_set instead.
- Removed deprecated "compressed" SpriteFlag.
- Removed icon_mipmaps from various prototypes using icons. Mipmap count will be inferred from icon_size and actual dimensions of the source image.
- Added OffshorePumpPrototype::energy_source and energy_usage.
- Changed research unit ingredients to only be specified by a tuple.
- Changed recipe ingredients to only be specified by a table with named keys.
- Removed catalyst_amount from recipe ingredients and products.
- Added ignored_by_stats to recipe ingredients.
- Added ignored_by_stats and ignored_by_productivity to recipe products.
- Added 'R' (ronna) and 'Q' (quetta) SI prefixes.
- Removed 'K' from allowed SI prefixes - use 'k' instead.
- Renamed "effectivity-module" to "efficiency-module", including all items, recipes, and technologies.
- Renamed technology "advanced-electronics" to "advanced-circuit".
- Renamed technology "advanced-electronics-2" to "processing-unit".
- Renamed technology "optics" to "lamp".
- Reset technology effects is automatically run when technology unlocks change.
- Renamed boiler "heat-water-inside" mode to "heat-fluid-inside".
- Replaced TileSpriteLayoutVariant::tall with TileSpriteLayoutVariant::tile_height.
- Removed WorkingVisualisation::draw_as_sprite and WorkingVisualisation::draw_as_light. Use SpriteParameters::draw_as_light and draw_as_glow instead.
- Removed BeaconModuleVisualization::draw_as_sprite and BeaconModuleVisualization::draw_as_light.
- Removed AnimationElement::draw_as_sprite and AnimationElement::draw_as_light.
- Removed BeaconGraphicsSet::apply_module_tint_to_light.
- On prototypes of entities with circuit connector removed circuit_wire_connection_points and circuit_connector_sprites but added circuit_connector.
- Renamed InserterPrototype::stack to InserterPrototype::bulk.
- Changed "forward-then-backward" animation run mode to not repeat the first and the last frame when running backward.
- Determining whether a tile draws transitions over different tile takes into consideration also TilePrototype::layer_group now.
- Renamed TileRenderLayer "ground" to "ground-natural" and added "ground-artificial".
- Reduced number of layers in "zero" tile render layer group from 128 to 64. And "water" from 64 to 8.
- Removed TilePrototype::draw_in_water_layer.
- Changed tile graphics definition format for both main tile pictures and tile transitions. See TilePrototype documentation.
- Add more prototype properties for shaping Spidertron and spider unit legs and behaviors.
- Loader is now circuit connectable.
- Increased the limit of different "optimized-decorative" types from 255 to 65535.
- Removed EntityPrototype::drawing_box and replaced it with drawing_box_vertical_extension.
- Changed icon_size default to be always 64, which is also defined by defines.default_icon_size, for the case we ever wanted to change this.
- Changed icon drawing in GUIs to account for all layers when scaling them to fit a slot or a button.
- Added IconData::draw_background.
- Increased the limit of different tile types from 255 to 65535.
- Collision layers are now defined by prototypes. There is still limit of 55 layers but the layers themselves can have any name.
- Collision mask has a mandatory table "layers" which must specify layers as dictionary.
- Removed collision layers from "layer-13" to "layer-55".
- Changed prototypes from straight-rail to legacy-straight-rail and curved-rail to legacy-curved-rail
- New rail prototypes: straight-rail, curved-rail-a, curved-rail-b, half-diagonal-rail, rail-ramp, elevated-straight-rail, elevated-curved-rail-a, elevated-curved-rail-b, elevated-half-diagonal-rail.
- Added rail-support prototype.
- Changed way of defining rail prototype graphics: pictures are tied to direction of an entity they will be used by.
- Changed prototype data loading to enforce the correct types are used.
- Restricted prototype names to only contain alphanumeric characters, dashes and underscores.
- Added RailPrototype::ending_shifts to fine-tune render position of rail endings.
- Added RollingStockPrototype::transition_collision_mask and RollingStockPrototype::elevated_collision_mask.
- Changed rail planner prototype: it now takes list of rail entities it is allowed to place and optional support for use with elevated rails.
- Added EntityPrototypeFlag "building-direction-16-way".
- Reworked noise expression definition system.
- Added circuit connections to TurretPrototype and ArtilleryPrototype.
- Changed most entity graphics definitions to be optional.
- Changed various entity prototypes to only accept "energy_source" for the energy source, not "burner".
- Changed PumpPrototype::fluid_box into input_fluid_box and output_fluid_box.
- Changed TileEffectDefinition to allow for different effects.
- Changed "finish-the-game-achievement" achievement type to "complete-objective-achievement".
- Renamed until_second to within for various achievement prototypes.
- Renamed spidertron-remote prototype to rts-tool.
- Moved subgroup property from individual prototypes to PrototypeBase.
- Removed "axially_symmetrical" property from RotatedSprite and RotatedAnimation definitions.
- Removed the entity flag fast-replaceable-no-cross-type-while-moving and fast-replaceable-no-build-while-moving.
- Removed support for emissions_per_second from worker robots.
- Renamed track_coverage_during_build_by_moving to track_coverage_during_drag_building and changed the default to true
- Added optional tile_condition to the place_as_tile, which allows to specify explicit list of tiles it can be built over.
- Added vector_to_place_result (drop target) support to crafting machines.
- Changed default value of TilePrototype::check_collision_with_entities to true.
- The fluid generated by offshore pump is property of the tile instead of the pump.
- Replaced ModulePrototype::limitation and ModulePrototype::limitation_blacklist with RecipePrototype::allow_[effect-name] properties (e.g. RecipePrototype::allow_productivity). By default, all effects except productivity are allowed.
- Replaced ModulePrototype::limitation_message_key with RecipePrototype::allow_[effect-name]_message properties (e.g. RecipePrototype::allow_productivity_message). If not set, the game uses "item-limitation.[effect-name]-effect".
- Added ElectricPolePrototype::auto_connect_up_to_n_wires.
- Added RecipePrototype::hide_from_signal_gui.
- Replaced min_perceived_performance, performance_to_sound_speedup, min_animation_progress and max_animation_progress with perceived_performance table containing minimum, maximum and performance_to_activity_rate.
- Entity selection priority is no longer deduced from collision masks. Use property 'selection_priority' for that purpose.
- Several prototype types have been given new 'selection_priority' default values, documented in '__base__/prototypes/entities/entity_util.lua'.
- The prototype names of logistic chests have been changed to match their English display name. 'logistic-chest-requester' became 'requester-chest', etc. This applies to entities, items and recipes. Saves, exported blueprint/book/planner strings, and rich text tags in labels and destriptions will have their contents migrated automatically.
- Added RocketSiloPrototype::rocket_quick_relaunch_start_offset, specifying the starting position for rockets created with the new quick-launch feature. 0 is the regular starting position, 1 is the end of the rising animation.
- Added optional RocketSiloPrototype::rocket_parts_storage_cap, denoting when a silo is considered "full" for crafting rocket parts. Has to be at least rocket_parts_required, and defaults to that value.
- Reworked how PipeConnectionDefinitions are specified. Added 'connection_type'. Added ability to specify 'linked' connection_type. Renamed 'type' into 'flow_direction'. Added direction. 'position' now has to be inside of the entity. Added 'connection_category'. Added 'linked_connection_id'.
- Deprecated player-port prototype.
- Changed type of 'entity-unknown', 'tile-proxy', 'tree-dying-proxy', 'tree-proxy' from flying-text to entity-ghost.
- Removed the "flying-text" entity type. Use LuaPlayer::create_local_flying_text or LuaRendering::draw_text instead.
- Removed the "flame-thrower-explosion" entity type.
- Removed "smoke" entity prototype.
- Removed "particle" and "leaf-particle" entity prototypes.
- Removed "mining-tool" item prototype.
- Removed "noise-layer" prototypes. Places previously accepting them now take a 32-bit integer or a string which gets converted using CRC32.
- Removed SpiderEnginePrototype::military_target check. If a spider vehicle should be a military target, set EntityWithOwnerPrototype::is_military_target directly.
- Removed RecipePrototype::result and result_count. Use RecipePrototype::results instead.
- ProductPrototype now has a mandatory "type" field and does not accept simplified syntax for item products.
- Unified the way hidden property of all prototypes is specified, which is always a hidden bool instead of different kind of flags.
- Added MiningDrillPrototype::effect_receiver, CraftingMachinePrototype::effect_receiver and LabPrototype::effect_receiver.
- Removed MiningDrillPrototype::base_productivity, CraftinMachinePrototype::base_productivity and LabPrototype::base_productivity. They were moved into EffectReceiverPrototype::base_effect.
- Restructured SelectionToolPrototype: specific modes are described under select(required), alt_select(required), reverse_select(optional) and alt_reverse_select(optional) tables.
- Added airborne-pollutant prototype and changed various pollution related properties to support multiple pollution types.
- Rearranged BoilerPrototype's pictures.
- Added CorpsePrototype::expires, defaulting to 'true'. Denotes whether corpses of this type expire by default.
- Moved character guns inventory size to the prototype as guns_inventory_size defaulting to 3.
- Removed hr_version from all graphics definitions. The graphics are now always considered to be in high definition.
- Removed ability of ItemWithInventory to extend inventory.
- Removed ItemPrototype::default_request_amount and wire_count.
- Removed normal and expensive properties from TechnologyPrototype and RecipePrototype.
- Removed deprecated graphics definitions from TransportBeltConnectablePrototype, use belt_animation_set instead.
- Removed RocketSiloPrototype::rocket_result_inventory_size.
- Removed ConstantCombinatorPrototype::item_slot_count.
- Changed "combat-robot-count" achievement type to "combat-robot-count-achievement".
- Changed "ghost-time-to-live" modifier type to "create-ghost-on-entity-death" and changed the modifier from double to bool.
- Added EntityPrototype::icon_draw_specification, to control the scale and shift of alt-info icons for entities.
- Removed AmmoTurretPrototype::entity_info_icon_shift.
- Removed CraftingMachinePrototype::entity_info_icon_shift.
- Removed CraftingMachinePrototype::scale_entity_info_icon.
- Removed StorageTankPrototype::scale_entity_info_icon.
- Removed LinkedContainerPrototype::scale_info_icons.
- Removed ContainerPrototype::scale_info_icons.
- Removed RobotWithLogisticInterfacePrototype::cargo_centered.
- Removed utility constant pollution_color.
- Removed biter_ai_settings global variable. Instead, when requiring "biter-ai-settings.lua", assign the returned table to a local variable.
- Added BeamPrototype::graphics_set and moved graphics related properties there.
- Added CraftingMachinePrototype::graphics_set and moved graphics related properties there.
- Added AccumulatorPrototype::chargable_graphics and moved graphics related properties there.
- [space-age] Added space-platform-hub, cargo-pod and cargo-bay prototypes.
- [space-age] Added asteroid, asteroid-collector and thruster prototype.
- Added asteroid-chunk prototype.
- Added cargo-landing-pad prototype.
- Added procession and procession-layer-inheritance-group prototypes.
- Added space-platform-starter-pack, space-location, planet and space-connection prototypes.
- Added surface-property and surface prototypes.
- Added active-trigger and chain-active-trigger prototypes.
- Added quality prototype and various related prototype properties.
- Added spider-unit prototype.
- [space-age] Added segment and segmented-unit prototypes.
- [space-age] Added lightning-attractor prototype.
- Added lightning prototype.
- Added plant prototype.
- [space-age] Added agricultural-tower prototype.
- Added selector-combinator and display-panel prototypes.
- Added fusion-generator and fusion-reactor prototypes.
- Added burner-usage prototype.
- Added temporary-container prototype.
- Added equipment-ghost prototype.
- Added impact-category, deliver-category and deliver-impact-combination prototypes.
- Added remote-controller prototype.
- Added stateless_visualisation_variations to DecorativePrototype, SimpleEntityPrototype, SimpleEntityWithOwnerPrototype and TreePrototype.
- Added stateless_visualisation to DecorativePrototype and EntityPrototype.
- Added RoboportPrototype::radar_range.
- Added ShortcutPrototype::unavailable_until_unlocked.
- Added MiningDrillPrototype::resource_drain_rate_percent and filter_count.
- [space-age] Added MiningDrillPrototype::drops_full_belt_stacks.
- [space-age] Added LoaderPrototype::max_belt_stack_size.
- [space-age] Added InserterPrototype::max_belt_stack_size.
- Added InserterPrototype::grab_less_to_match_belt_stack and enter_drop_mode_if_held_stack_spoiled.
- Added BeaconPrototype::profile and beacon_counter.
- Added AmmoItemPrototype::ammo_category.
- Added LogisticContainerPrototype::trash_inventory_size.
- Added LabPrototype::trash_inventory_size.
- Added CarPrototype::auto_sort_inventory and trash_inventory_size.
- Added RocketSiloPrototpye::rocket_supply_inventory_size, logistic_trash_inventory_size, render_not_in_network_icon and cargo_station_parameters.
- Added TilePrototype::built_animations and related properties.
- Added TilePrototype::weight, max_health, dying_explosion, destroys_dropped_items and default_destroyed_dropped_item_trigger.
- Added ItemPrototype::weight, random_tint_color, has_random_tint, plant_result, destroyed_by_dropping_trigger and default_import_location.
- [space-age] Added ItemPrototype::spoil_result, spoil_to_trigger_result and spoil_ticks.
- Added CliffPrototype::place_as_crater.
- Added TurretPrototype::graphics_set and other graphics related properties.
- Added TechnologyPrototype::research_trigger and allows_productivity.
- Added AmbientSound::planet and variable_sound.
- Added Prototype::factoriopedia_alternative and PrototypeBase::factoriopedia_description, hidden_in_factoriopedia and factoriopedia_simulation.
- Added RecipePrototype::preserve_products_in_machine_output, surface_conditions and maximum_productivity.
- Added VehiclePrototype::allow_remote_driving.
- Added MapSettings::asteroids.
- Added RollingStockPrototype::default_copy_color_from_train_stop.
- Added AmmoTurretPrototype::energy_source and energy_per_shot.
- Added RocketSiloRocketPrototype::cargo_pod_entity.
- Added EntityPrototype::ambient_sounds, tile_buildability_rules, impact_category, icons_positioning and surface_conditions.
- Added RadarPrototype::connects_to_other_radars, energy_fraction_to_connect and energy_fraction_to_disconnect.
- Added CustomInputPrototype::block_modifiers.
- [space-age] Added ArmorPrototype::provides_flight, collision_box and related properties.
- Added CharacterPrototype::flying_bob_speed, grounded_landing_search_radius and flying_collision_mask.
- [space-age] Added capture-robot prototype.
- Added EnemySpawnerPrototype::captured_spawner_entity and time_to_capture.
- [space-age] Added EntityPrototype::heating_energy.
- Added frozen graphics to various entities.
- Added inventory-bonus-equipment prototype.
- Added lane-splitter prototype.
- Added new achievement prototypes: dont-kill-manually-achievement, dont-research-before-researching-achievement, change-surface-achievement, create-platform-achievement, deplete-resource-achievement, destroy-cliff-achievement, equip-armor-achievement, module-transfer-achievement, place-equipment-achievement, research-with-science-pack-achievement, shoot-achievement, space-connection-distance-traveled-achievement, use-item-achievement.
- Added FluidPrototype::visualization_color.
- Added PipeToGroundPrototype::visualization.
- Added "get-by-unit-number" entity prototype flag.
- Changed plural localisation format to use double underscores around parameter index.
- Added new prototype type "custom-event" to define custom events in the data stage. Custom events share the same namespace as custom inputs and built-in events for subscribing to and raising them.
- Added "grounded" sticker effect to temporarily disable mech armor flight
- Changed autoplace control-setting variable names in noise expressions to be shorter/less verbose.
- Added dynamic volume modifiers to sounds. These are applied when specific conditions in-game are met.
- Added non-linear modes for sound attenuation.
- Added an option to override default zoom level attenuation for individial sounds.
- Added darkness (time of day) threshold for sounds.
- Added Sound::advanced_volume_control which includes attenuation (distance based), fades (zoom level based) and darkness threshold.
- Added Sound::speed_smoothing_window_size to smooth out changes in playback speed.
- Added priority selection to sound aggregation.
- Added activity matching modifiers to further control activity to volume or speed matching of working_sound.
- Added Sound::priority. Sounds with higher priority can replace sounds with lower priority when all audio resources are used.
- Added SoundDefinition::min_volume and SoundDefinition::max_volume for automatic volume variation.