Version history/2.0.0
Jump to navigation
Jump to search
2.0.15
Date: 05.11.2024
Minor Features
- Cars and tanks will auto-refuel. (more)
- Relation between offshore pump and fluid tiles added to Factoriopedia.
- Statistic GUI precision is preserved across instances.
- [space-age] Space platforms can be built with quality starter packs. (more)
Changes
- Increased spidertron walking sound volume.
- Using the "craft all" hotkey on free recipes queues 1 stack of the results. (more)
- Changed the simulated mouse cursor appearance to match the system default on macOS.
- [space-age] Added pollution value to heating tower.
- [space-age] Show recycler output arrow in "Alt-mode". (more)
- Display panels set to "Show in chart" with no icon now hide the default icon until hovered. (more)
- Removed support for 8 bit audio depth.
- Added tooltip to "Spoiled priority" inserter setting to clarify behavior and limitations.
Bugfixes
- Fixed IME Pad input not working on screens with visible simulations. (more)
- Fixed that the browse-games GUI header labels were not clickable. (more)
- Fixed that kills with chained effects did not count towards statistics or achievements. (more)
- Extended the mute-programmable-speaker command to apply to sounds with both global and surface playback modes. (more)
- Fixed a crash when a player got desynced from a multiplayer game while the Technology GUI was open.
- Fixed a crash when rendering display panel text after loading a save file. (more)
- Fixed a crash when clicking on an orbital request slot with an invalid ghost item in cursor. (more)
- Fixed a crash when rendering certain blueprints with pipe-to-grounds which visually connected to neighbours outside of the blueprint. (more)
- Fixed cargo pod with satellite not despawning after launching to orbit. (more)
- Fixed a crash when teleporting a crafting machine ghost with fluid connections. (more)
- Fixed that space platforms would try to build/upgrade/deconstruct/repair other forces entities. (more)
- Fixed that the production GUI title wouldn't update when viewing different planets. (more)
- Fixed that starting territories on Vulcanus could be merged into one more frequently than expected. (more)
- Fixed that platform requests satisfied wait conditions could be stuck when the platform had unfulfilled ghost item requests. (more)
- Fixed that space platforms didn't fulfill remote item delivery requests if the target slot was already occupied with the same item. (more)
- Fixed that negative movement speed stickers could cause player movement to get stuck in a near infinite loop. (more)
- Fixed a crash when drawing spidertrons on the map if selected_minimap_representation wasn't defined. (more)
- Fixed shattered planet achievements being incorrectly awarded when traveling backwards in a paused platform. (more)
- Fixed that remote view while in the map editor did not ignore fog of war. (more)
- Fixed a crash when using LuaEquipmentGrid::take_all() when the grid contained ghosts. (more)
- Fixed that belt immunity equipment didn't use less power at higher qualities like it said it did. (more)
- Fixed that several specific-item producing entities could not be specifically filtered in the deconstruction planner. (https://forums.factorio.com/118089, https://forums.factorio.com/118297, https://forums.factorio.com/116477)
- Fixed LuaEntity::max_health was returning incorrect values for entities with health affected by evolution factor. (more)
- Fixed fast replacing loaders would not preserve filter mode. (more)
- Fixed that heating towers and nuclear reactors were fast-replaceable with each other. (more)
- Fixed rail curves making a blueprint's default snapping grid unnecessarily large. (more)
- Removed long delay at start when no audio devices are found. (more)
- Fixed that result_is_always_fresh was ignored for hand crafting. (more)
- Maybe fixed crashes related to using formatting strings with floating-point numbers on Intel Macs running Sonoma.
- Fixed that removing cargo bays while the inventory limit was in place did not work correctly. (more)
- Fixed that inserters could get stuck loading cargo wagons in some cases. (more)
- Fixed spoiled items in filtered slots of inventory would not get ejected to unfiltered slots when sorting inventory. (more)
- Fixed a crash when removing equipment that was in equipment ghosts. (more)
- Fixed a crash when migrating a fluid box from one that joins with a fluid segment to one that does not.
- Fixed endlessly pending asteroid collector calculation when navigation was not changed (more)
- Fixed modded spider vehicles being selectable with Spidertron Remote when selectable_in_game property was false.
- Fixed copying settings from inserter to assembler could raise error sound even when circuit conditions were changed. (more)
- Fixed that some color signals were not given lamp color. (more)
- Fixed that recipe parameter would not allow productivity effect. (more)
- Fixed that new filters set by LuaLogisticSection::filters would not propagate to other sections under the same group. (more)
- Fixed that sync-mods-with-save did not show load-save as an option. (more)
- Fixed captive biter spawner was able to connect to logistic network. (more)
- Fixed that clearing assembler recipe would not clear invalid item requests. (more)
- Fixed a crash when trying to drag temporary schedule record for a constantly retriggering interrupt. (more)
- Fixed asteroid collector description not listing minimum energy consumption. (more)
- Fixed recycling time of recipes with default crafting time was twice as long. (more)
- Fixed space platforms and cargo landing pads losing items when merging forces. (more)
- Fixed that item pickup requests weren't invalidated after making an automatic trash request. (more)
- Fixed environmental sounds needlessly reloading when entering/leaving remote view. (more)
- Fixed rough ice thawing to volcanic tiles. (more)
Modding
- [space-age] Changed territory noise expressions coordinate system from chunk-based to tile-based.
- Added option to surface.pollute() for recording the pollution change in statistics.
- Fixed on_entity_damaged.source not behaving according to the 2.0 specification.
Scripting
- Added connection_type and linked_connection_id to LuaFluidboxPrototype::pipe_connections.
2.0.14
Date: 01.11.2024
Changes
- [space-age] Changed self-recycling recipe statistics to be ignored in production graph.
- Changed sprites with scale between 0.5 and 1 (exclusive) to apply downscaling to low resolution (affects base game biter sprites).
- Changed cargo landing pad mining time to 1.
- Moved the mods GUI search to be with the content it is searching.
- Added linear interpolation method (used by default now) for audio resampling when playback speed is changed. (more)
- Added an option to disable animated ghosts to aid performance on integrated GPUs. (more)
- [space-age] Added a confirmation box when deleting space platforms.
Bugfixes
- Fixed that having multiple key bindings could cause some keys to get stuck. (more)
- Fixed that it wasn't possible to parametrised item filter to any quality. (more)
- Fixed a crash when killing segmented units attached to a segmented controller. (more)
- Fixed that tank logistic trash slots did not work correctly when using roboports in the tank. (more)
- Fixed that shortcuts marked as not toggleable still allowed being toggled. (more)
- Fixed that lua shortcuts ignored unavailable_until_unlocked. (more)
- Fixed that teleporting certain entities would delete their fluid contents. (more)
- Fixed that the reactor GUI temperature would flicker when the temperature was < 100 degrees. (more)
- Fixed that some errors related to prototypes would report coming from the wrong prototype. (more)
- Fixed that copying spider vehicle settings between spiders of different quality did not work correctly. (more)
- Fixed that pumps would pull fluid from internal machine buffers instead of the connected fluid segment. (more)
- Fixed that mods were able to create item stacks without quality which crashed the game. (more)
- Fixed rocket silo requesting more items even if another rocket wasn't ready yet. (more)
- Fixed incorrect lightning protection visualisation in some cases where shorter range attractor is close to longer ranged one (more)
- Fixed vehicle sounds not playing in some menu simulations. (more)
- Fixed a crash when reading repair state of a character not assigned to a player. (more)
- Fixed asteroid collector navigation not generating in time when a straight platform edge is aligned with chunk border, which caused a crash. (more)
- Fixed consistency issue when removing a turret that was connected to logistic network. (more)
- Fixed a crash when prototype data changes and roboports are requesting specific robots. (more)
- Fixed combinators could get stuck after cancelling deconstruction order. (more)
- Fixed a crash when fast-replacing not-a-heat-interface entity with a heat interface. (more)
- Fixed a crash when trying to recycle blueprint books with contents. (more)
- Fixed being able to enter a frozen rocket.
- Fixed flames not updating on a frozen or deconstructed rocket silo.
- Fixed a crash when viewing players in the players GUI when they disconnect from the server.
- Fixed a crash when copy-pasting settings from an assembling machine to a logistic chest that did not support requests. (more)
- Fixed that the space map GUI would not show until you had visited at least 1 other planet. (more)
- Fixed loader energy source buffer size computation. (more)
- Fixed that tesla turret and tesla gun chain lightning sometimes arced to friendly entities. (more)
- Fixed that character_mining_speed_modifier was not handled in latency state.
- Fixed factoriopedia for space connections would highlight wrong graph series when hovering over slots of spawned asteroids. (more)
- Fixed pinning other players did not work correctly. (more)
- Fixed demolishers getting disturbed by vehicles and other non-building entities. (more)
- Fixed "Get off my lawn" achievement not being awarded when building close to a demolisher. (more)
- Fixed a crash when copy-pasting from cars with equipment grids to ghost-cars without equipment grids. (more)
- Fixed a crash when showing logistic request tooltip immediately after joining a multiplayer game. (more)
- Reverted a fix for train interrupts not being checked when passing a station without conditions (more)because it crashed the game. (more)
Modding
- Combined four ghost tint definitions in UtilityConstants into UtilityConstants::ghost_shader_tint and added UtilityConstants::ghost_shaderless_tint.
- Added LoaderPrototype::per_lane_filters.
Scripting
- Added LuaEntity::loader_filter_mode (read/write).
2.0.13
Date: 30.10.2024
Minor Features
- [space-age] Offshore pump speed increases with quality.
Changes
- Curved rails cost 3 rail items to build.
Bugfixes
- Fixed Remote View sometimes flickering to the wrong surface when using Next Surface/Previous Surface hotkeys.
- Fixed that the Surface List would react to the Home and End keys after it was clicked (more)
- Improved diagonal character movement which should help slip between things easier. (more)
- Fixed a crash when upgrading the inner entity of a ghost while the GUI was open. (more)
- Fixed that joining LAN games without a username set would allow any characters for the username. (more)
- Fixed that request from buffer chests was not preserved when changing the force of an entity. (more)
- Fixed that flamethrower turret could be manually built to mix fluids. (more)
- Fixed that half diagonal rails would cost only 1 rail item. (more)
- Fixed pipe sound starting and stopping too abruptly. (more)
- Fixed turret behaviour when it has more than 4 directions and the collision box is not affected by rotation.
- Fixed a crash when switching preferred audio output device while a variable music track is being generated. (more)
- Fixed an issue with platform construction requests when copying settings onto the hub. (more)
- Fixed a crash when saving related to construction robots and their work targets moving. (more)
- Fixed that Continue host option didn't offer mod sync to the save to be hosted. (more)
- Fixed Space platform requests would always be checked in the same order, leading to some requests being ignored. (more)
- Fixed base game space science getting throughput limited due to limited hatches. (more)
- Fixed defines.space_platform_state was missing value for paused. (more)
- Fixed solar panel output multiplier flickering in tooltip. (more)
- Fixed that deconstruction of a chest with full trash slots didn't dispatch enough robots. (more)
- Fixed a crash caused by a player sending a space platform which was waiting for departure (not enough thrust) to a location which wasn't unlocked yet. (more)
- Fixed that train interrupts were not checked when passing station without conditions. (more)
- Fixed that the browse-games GUI 'dedicated server' and 'favorite' settings would get confused with each other. (more)
- Fixed that capture-spawner research trigger reported incorrect type. (more)
- Fixed production and electricity statistics would use wrong locale for ranges exceeding 99 hours. (more)
- Fixed that exoskeleton legs would incorrectly consume more energy at higher qualities. (more)
- Fixed that logistic filter upper count wasn't considered by the blueprint parametrisation. (more)
- Fixed technology trigger info showing outside the tooltip. (more)
- Fixed that Lua require didn't accept symbolic links. (more)
- Fixed that migrating logistic cell charger count would corrupt loading. (more)
- Fixed that cars/tanks would not preserve their settings correctly in blueprint strings. (more)
- Fixed that fluids would be duplicated when fast-replacing machines. (more)
- Fixed that the window could get stuck in an infinite loop of toggling fullscreen when changing displays on Linux. (more)
- Fixed that the "make it better" achievement only worked with quality level 1 modules. (more)
- Fixed asteroid collectors sometimes not generating navmesh properly around chunk borders and related instabilities. (https://forums.factorio.com/117737, https://forums.factorio.com/117276)
- Fixed that opened console was rendered into the galaxy of fame output. (more)
- Fixed that the focus search hotkey would not work in choose elem button GUIs if a mod GUI was marked as opened. (more)
- Fixed that Intel Macs running macOS Big Sur or later logged the wrong version number.
- Fixed issue where entities at position where entities at the point where lightning attractor collection ranges touch were incorrectly considered endangered by lightning (more)
- Fixed blue line at the edge of some sprites by clearing sprite atlas background to clear color. (more)
- Fixed some cases of upgradeable overbuilds not upgrading (more)
- Fixed that using Nauvis map gen settings for other planets made them generate only grass. (more)
- Fixed that the select-recipe GUI did not work correctly if you re-bound the crafting hotkeys. (more)
- Fixed a crash when editing a pin while the entity was referencing was removed. (more)
- Fixed selector combinator could sometimes fail to select correct signal. (https://forums.factorio.com/118412, https://forums.factorio.com/116548)
- Fixed that some technology triggers required crafting specific quality items. (more)
- Fixed constant combinator activity lamp not updating state in certain cases. (more)
- Fixed that custom sprite button's caption would be drawn under the sprite. (more)
- Possibly fixed a crash on Intel Macs related to printing floats with 0 precision. (more)
- Fixed layered icons in rich text were not scaled and rotated properly. (more)
- Fixed that moisture and terrain type weren't migrated properly for 1.1 saves resulting in hard chunk edges.
- Fixed occasional crash occurring when super force deconstructing with filtered tiles only planner includes double tile ghosts and an entity ghost on one tile (more)
- Fixed a crash when a space platform hub with 'Any request zero' wait condition was destroyed. (more)
- Fixed that custom gui elem_tooltip did not work for some new types. (more)
- Fixed big electric poles were not colliding with asteroid collectors. (more)
- Fixed that LuaGameScript::show_message_dialog() could use the wrong player and freeze the game. (more)
Scripting
- Added LuaSpacePlatform::name write.
- Added player_won to the on_pre_scenario_finished event.
- LuaControl uses physical controller for item manipulations (LuaControl::insert, has_items_inside, get_item_count, remove_item, clear_items_inside)
- Added LuaPlayer::physical_controller_type read.
- Added LuaQualityPrototype::color read.
Sounds
- Fulgora lightning sound remixed lower with volume variations.
- Fixed some explosions that were using the wrong size of explosion sound.
- Numerous sound mixes including new plant mining sounds mixed lower.
- Various menu simulation mixes improved.
2.0.12
Date: 28.10.2024
Bugfixes
- Fixed rocket silos requesting more items than necessary. (more)
- Fixed a crash when reading owner_location on simple item stacks. (more)
- Fixed mini-tutorial scripts crashing or not granting items if player switched to remote view.
- Fixed that LuaControl::opened write did not work for several GUI types. (more)
- Fixed that elevated rail entities would still work without owning space-age. (more)
- Fixed that the admin "other player" GUI would open the other player's remote controller invenory instead of physical inventory. (more)
- Fixed a crash related to quickbar interaction with any-quality spawnable items. (more)
- Fixed a crash when building (faulty) blueprint with two hazard concrete tiles in one space (https://forums.factorio.com/117108 and https://forums.factorio.com/117071)
- Fixed game state GUIs being automatically closed when the game was paused. (more)
- Fixed several possible errors related to smart belt building. (https://forums.factorio.com/116660, https://forums.factorio.com/117119)
- Fixed that disconnecting and reconnecting while personal robots were working did not preserve their quality. (more)
- Fixed that cargo pods dropped players to a random location which could make them stuck. (https://forums.factorio.com/117461 and https://forums.factorio.com/117408)
- Fixed that alert icons were rendered into the galaxy of fame.
- Fixed a desync related to space platform hubs reading content and repair packs merging due to inventory sorting.
- Fixed ribbon world preset having too many cliffs on Nauvis. (more)
- Fixed that blueprint parametrisation value formula evaluation didn't work for negative numbers. (more)
- Extended blueprint parametrisation to work on fluid recipe parameters.
- Fixed lua deconstruct_area crashing when deconstructing a ghost (more)
- Fixed inserter status showing "Target full" when swinging towards a belt (more)
- Fixed that drag building context was not carried properly between normal view and remote view. (more)
- Fixed combat robots bobbing. (more)
- Fixed a crash when defining a recipe that does not always produce an item. (more)
- Fixed that filters of a ghost turret could get corrupted in latency when upgrading it with upgrade planner. (more)
- Fixed that re-bound crafting keys did not work correctly. (more)
- Fixed that chat icons didn't include layered icons. (more)
- Fixed a crash when super-force-building electric poles in latency state. (more)
- Fixed a debug visualization render crash when the given force no longer exists. (more)
- Fixed visual noise caused by parameter recipes drawing as not researched. (more)
- Fixed selector combinator's constant index was not covered by blueprint parameters. (more)
- Fixed arithmetic combinator was not showing red and green inputs separately in tooltips. (more)
- Fixed superforced overbuilding logistic and non-losistic chests did not transfer limits (more)
- Fixed underground pipe in cursor would sometimes not rotate when rotation key pressed right after placement while playing in latency.
- Fixed loading save files with some entities on planets with lighting when those entities were removed.
- Fixed a crash in multiplayer if you were wearing armor and the force you were on was deleted.
- Fixed some of the quirks of drag building. Whenever there is nothing to build from in the cursor, the drag building logic is interrupted. (more)
- Fixed that the mine-entity technology trigger did not work if the resource entity produced multiple or variable results. (more)
- Fixed that asteroid collectors could get stuck if the inventory limiter was used. (more)
- Fixed a missing value in the prototype explorer. (more)
- Fixed that smoke-with-trigger could teleport to 0,0 on a map if it was previously following a specific entity. (more)
- Fixed rail ramp health bar position. (more)
- Fixed wait condition "station is full" and "station is not full" would report incorrect progress. (more)
- Fixed crash related to blueprint parametrisation and drag building button being held and moved after the dialog appeared. (more)
- Fixed lamp would keep using color when circuit wire was disconnected. (more)
- Fixed copy settings undo could fail to restore control behavior settings if they were originally at default values. (more)
- Fixed that the map editor couldn't set filters in some cases. (more)
- Fixed that LuaRecord methods did not work correctly. (more)
- Fixed crash when building parameterised blueprint with dependent ingridient used in another machine being a fluid. (more)
- Fixed missing blueprint parametrisation logic for the loader. (more)
- Fixed a crash when migrating blueprint library content in a save that had that blueprint GUI open. (more)
- Fixed that items could be put into ghost inventories. (more)
- Fixed playing too many sounds at once at the start of certain tips and tricks simulations. (more)
- Fixed a crash when setting RoboportPrototype::charging_station_count_affected_by_quality to true. (more)
- Fixed generic interrupt false positives with certain interrupt conditions. (more)
- Fixed main-menu music mode not working correctly in-game. (more)
- Fixed a crash when trying to open Technology GUI from Factoriopedia while the game was being saved. (more)
- Fixed clipping that could occur in some variable music tracks. (more)
- Fixed that set recipe on assembling machine circuit controls could buffer items indefinitely. (more)
- Fixed inconsistency in belt power replace through corner when going backwards and forwards. (more)
- Fixed a train consistency issue when interrupt triggers inside of another interrupt in certain cases. (https://forums.factorio.com/116845, https://forums.factorio.com/117585, https://forums.factorio.com/117717)
- Fixed space platform losing its paused state when it arrived to a planet drifting backwards. (more)
Modding
- Added LoaderPrototype::frozen_patch_in and frozen_patch_out.
2.0.11
Date: 25.10.2024
Features
- Asteroid collector filters can be modified by blueprint parametrisation.
- Programmable speaker can be modified by blueprint parametrisation.
- When imported blueprint is placed, assembling machines will be configured with the recipe even when recipe is not yet researched.
Changes
- Fulgora ruins now also drop iron sticks when mined so electric poles could be crafted without recyclers at the start.
- The "Custom minimum payload" slider for orbital logistics now offers more sensible values.
- Orbital logistics "Custom minimum payload" is now checked against largest possible payload before setting the filter.
- Cargo bays will show a warning icon when they are not connected to a Hub or Landing Pad.
Optimizations
- Improved performance of technology GUI when viewing only essential technologies. (more)
Bugfixes
- Fixed a crash when construction robots attempt to deliver modules in the same tick the target entity is destroyed. (more)
- Fixed that biter base menu simulation had more decoratives over the Wube logo than desired. (more)
- Tips simulation fixed with minor changes to texts (more more more)
- Fixed that the map editor couldn't change the spawn point of a force after it was set. (more)
- Fixed that the game would hang when closing the load game menu if the number of mods in the mods directory was too large on Linux. (more)
- Fixed incorrect pump speed reporting when pumping into a fluid wagon. (more)
- Fixed that pumps could not pump into a fluid wagon at full speed. (more)
- Fixed that inserters could get stuck if the crafting machine they're interacting with dies and is rebuilt. (more)
- Fixed a performance issue with ghost building. (more)
- Fixed achievement nucear-power to require building nuclear reactor. (more)
- Fixed a possible exploit of using parametrised blueprint to set unlocked recipes in assemblers. (more)
- Fixed that players in remote view were unable to open menu when the game was paused. (more)
- Fixed turrets sometimes being marked for deconstruction and rebuild if trying to upgrade through overbuilding.
- Fixed position of car driven by local player would be delayed on minimap in multiplayer.
- Fixed a crash related to rocket silos when adding and removing mods. (more)
- Fixed that zooming with buttons(keyboard or controller) would not zoom to pixel-perfect values.
- Fixed a crash when reading cursor record of a character not assigned to a player. (more)
- Fixed that building with modded items did not work correctly in all cases. (more)
- Fixed a crash when merging forces related to chart tags. (more)
- Fixed that blueprinted containers would loose their settings when overbuilt over container without those settings (more)
- Fixed a crash when setting roboport requests to a negative value. (more)
- Fixed RecipePrototype::maximum_productivity was allowed to be negative. (more)
- Fixed rail description would suggest toggle rail layer binding when elevated-rails mod was disabled. (more)
- Fixed blueprints being able to produce two overlaying ghosts of tiles with the same placing item (like hazard-concrete-left/right)
- Fixed technology GUI not updating technology cost label if the technology didn't have any science packs. (more)
- Fixed reading LuaTechnologyPrototype::research_trigger could throw an error. (more)
- Fixed modules technology icon when quality mod is disabled. (more)
- Fixed MapGeneratorGui would not enable reset to defaults button when changing technology price multiplier. (more)
- Fixed PVP scenario not having starting area protection enabled when the last player of that force logged out. (more)
- Fixed use-item-groups had no effects. (more)
- Fixed a crash when trying to render a surface which doesn't exist in a simulation. (more)
- Fixed crashes caused by calling missing library symbols on older macOS versions. (more)
Modding
- Added AssemblingMachinePrototype::disabled_when_recipe_not_researched.
Scripting
- Added LuaEntity::insert_plan and LuaEntity::removal_plan read/write.
- Added removal_plan parameter to LuaSurface::create_entity for item request proxies.
2.0.10
Date: 23.10.2024
Features
- Galaxy of fame. Offered when the game is finished. (more)
Changes
- Non-blocking saving setting is no longer synced over the Steam cloud.
Minor Features
- Added flying text for more cases of unsuccessful resource mining.
Bugfixes
- Fixed that blueprint book tooltips did not look correct when in the quickbar. (more)
- Fixed that movement speed bonus equipment would show garbage values when low on energy. (more)
- Fixed that some fluid-only recipes would allow quality modules. (more)
- Fixed that the "kill with artillery" achievement did not work with artillery wagons. (more)
- Fixed invalid package name in sprite path definition would result in OS error message dialog instead of loading into minimal mode. (more)
- Fixed that continue host menu option didn't respect the port from the config. (more)
- From now on, we wont save blueprint-storage to a file when it was not used yet. This might help preventing cloud storage file by a file representing empty blueprint storage. (more)
- Fixed that the blueprint setup GUI would always confirm to discard changes even if nothing changed when the blueprint had a description. (more)
- Leaked D3D device and swap chain in attempt to avoid AMD driver crash when closing the game. (more)
- Fixed LogisticContainerControlBehavior exclusive mode could get out of sync from the ContainerControlBehavior it derives from. (more)
- Fixed that the debug settings GUI could get stuck behind the normal game logic. (more)
- Fixed that the elem_tooltip type of "signal" did not work correctly. (more)
- Instead of aborting when SDL_DXGIGetOutputInfo call fails, the game will try to initialize D3D device using adapter 0. (more)
- Fixed crashes when using LuaEntity fluid methods when the entity's fluidboxes were not part of a segment. (more)
- Fixed that LuaEntity::insert_fluid would not work on the output FluidBoxes of a crafting machine.
- Fixed removal of transport belts under cursor which would be normally fast-replaeable while drag traversing underground gap by belt rebuilding. (more)
- Fixed arithmetic combinator's first constant would not be proposed as parameter. (more)
- Fixed that on_entity_logistic_slot_changed did not fire for constant combinators. (more)
- Fixed a crash in the space platform hub GUI when the inventory size changes at the same time as the limit is changed. (more)
- Fixed turbo underground belts simulation in factoriopedia. (more)
- Fixed a crash when a segmented unit entity causes the entire segmented unit to die. (more)
- Fixed a crash when a platform was traveling to the shattered planet using a temporary stop which expired. (more)
- Fixed fluid conditions not showing fluid amounts. (more)
- Fixed using a custom surface in PvP was preventing Space Age progression. (more)
- Fixed a crash when switching preferred audio output device while a variable music track is playing. (more)
- Fixed train stop GUI being too wide at some smaller resolutions. (more)
- Fixed driven car being drawn on all surfaces in latency. (more)
- Fixed dying enemy would not randomize direction of its dying animation.
- Fixed that failed achievement wasn't gettable again without restarting the game. (more)
- Fixed a crash when defining planet prototypes that don't contain any resources. (more)
- Fixed logistic section active state was not preserved in a blueprint string. (more)
- Fixed a crash when showing some modded GUI tables. (more)
- Fixed an issue where entity flagged as not mineable could be marked for deconstruction using undo.
- Fixed pumpjacks with low yield would show 0 output rate in the tooltip. (more)
- Fixed Nauvis elevation dropdown missing in map generator GUI, causing incorrect previews from map exchange strings. (more)
- Fixed that it wasn't possible to parametrise virtual signals and space locations contained in text. (more)
- Fixed brightness and contrast sliders being reset to 0 when setting the text field to a negative value. (more)
- Fixed that it wasn't possible to parametrise entities, virtual signals and space locations contained in text. (more)
2.0.9
Date: 22.10.2024
Changes
- Achievement logistic-network-embargo updated with different condition for base game and space age.
Bugfixes
- Fixed a crash when viewing the production statistics GUI while switching surfaces. (more)
- Fixed unstable global grid position when re-assigning blueprint. (more)
- Fixed that individual segmented units parts were in the kill statistics.
- Fixed a crash when opening the technology GUI focused on disabled technology. (more)
- Fixed migration of rails in blueprints in 1.1 version of blueprint library. (more)
- Fixed a crash when trying to use unsupported audio depth. (more)
- Fixed a crash when loading some blueprint library contents with mods changed. (more)
- Fixed a crash when clicking "upgrades" in the wave defense scenario. (more)
- Fixed Spidertrons receiving up to 8 times extra damage from explosives. (more)
- Fixed that unpowered inserters could grab items.
- Fixed that some GUIs could be opened behind the technology GUI. (more)
- Fixed crash in multiplayer when mining modded tree with less stump variants than alive tree variants.
- Fixed it was not possible to open loader gui for input loader. (more)
- Fixed crash in mod manager in minimal mode when some text used space-age icon rich text tag.
- Fixed that changing surfaces with ghost equipment would not correctly request robots to deliver the equipment. (more)
- Fixed build sound of huge ghost entities not being ghostly enough. (more)
- Fixed a crash when item entity marked to be deconstructed is cancel deconstructed while being over belt. (more)
- Fixed that the runtime server config GUI did not fit on some screen sizes. (more)
- Fixed GUI effects volume set to zero not being applied on start if background simulations were turned off. (more)
- Fixed a crash when setting cursor_ghost of a character not assigned to a player. (more)
- Fixed a crash when reading opened GUIs of a character not assigned to a player. (more)
- Fixed PvP Scenario unlocking all the trigger technologies. (more)
- Fixed a crash when changing the force of cargo landing pads.
- Fixed tools items and ammo items could be refilled during cursor split interaction. (more)
- Fixed that it was not possible to mark legacy rails for deconstruction using deconstruction planner configured for straight-rail. (more)
- Fixed that the Fulgora starting island could have no breaks in the cliffs. (more)
- Fixed that deconstruction planner would treat entities with deconstruction alternative as being normal quality.
- Fixed crash when running out of disk space when saving preview for a save file.
- Fixed that passive provider and active provider logistic points could have sections added through the Lua API. (more)
- Fixed that space platform schedule changes didn't update last user of the space platform hub. (more)
- Fixed a crash when enabling snap-to-grid when a blueprint had no contents. (more)
- Fixed that filter inserter was visible in technology icon for fast inserters.
- Fixed that a buffered rocket would briefly render lights south of the rocket silo. (more)
- Fixed commas and quality icons not allowed in save file names. (more)
- Fixed crashes when viewing alerts for entities that then die. (more)
- Fixed incorrect surface condition of a space platform hub. (more)
2.0.8
Date: 21.10.2024
Bugfixes
- Fixed a crash when changing decider combinator conditions or outputs in latency in some cases.
- Fixed a crash when sending a platform with no thrust to a planet and then removing the stop. (more)
- Fixed a crash when robots try to station in a full roboport because their stack size changed.
- Fixed a crash in path finder when migrating 1.0 save files to 2.0.
- Fixed orbital drop slots not counting towards Item count wait condition.
- Fixed space platforms not respecting peaceful and no enemy modes.
- Fixed a crash when downloading multiple mods fails.
- Fixed a crash when clicking "play" while the map preview was running. (more)
- Fixed a crash when drawing a spider leg with length 0. (more)
- Fixed error in loading 1.1 version of blueprint library would prevent starting new map or loading a save. (more)
- Fixed crashes around the Explore Mods GUI with intermittent network connectivity.
- Fixed a crash when viewing a single-product recipe with no main product in Factoriopedia.
- Fixed a crash when pathfinding with a rotated bounding box. (more)
2.0.7
Date: 21.10.2024
Major Features
- Added space platforms, which can request items to be delivered by rockets and used to deliver cargo between planets. (Friday Facts #381)
- Added new planet Vulcanus, a volcanic planet with new resources, structures, items, recipes and technologies focussed on metallurgy. (Friday Facts #386, Friday Facts #387)
- Added new planet Gleba, a swampy planet with new resources, structures, items, recipes and technologies focussed on agriculture. (Friday Facts #413, Friday Facts #414)
- Added new planet Fulgora, a stormy desert planet with new resources, structures, items, recipes and technologies focussed on elecromagnetism. (Friday Facts #398, Friday Facts #399)
- Added new planet Aquilo, a freezing planet with new resources, structures, items, recipes and technologies focussed on cryogenics.
- Introduced quality, which is additional property of item, entities and equipment. (Friday Facts #375) Most entities, equipment, modules and ammo have various kind of bonuses with higher quality.
- Added rail ramps, rail supports and elevated rails to build bridges. (Friday Facts #378)
- Added stack inserters (previous stack inserters are called bulk inserters now) which can load transport belts with layered stacks of items. (Friday Facts #393)
- New rail shapes, rail curves, 22.5 degree tracks.
- Added Train interrupts (Friday Facts #389, Friday Facts #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. (Friday Facts #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. (Friday Facts #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. (Friday Facts #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. (Friday Facts #383)
- Added search to the remote view. It allows to do surface wide search for recipe production, resources and train stations and map tags. (Friday Facts #400)
- Blueprint parametrisation. Allows to make more generic bluprints, which are configured upon building. (Friday Facts #392)
Features
- Rail planner is usable in the map (remote view). (Friday Facts #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. (Friday Facts #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. (Friday Facts #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. (Friday Facts #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. (Friday Facts #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. (Friday Facts #380)
- All turrets (except for artillery) can now be configured individually to prioritize certain types of enemies when looking for targets. (Friday Facts #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. (Friday Facts #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. (Friday Facts #380)
Ease of use
- Added green indicator (instead of yellow), when previewing underground belt/pipe on its maximal distance. (Friday Facts #388)
Circuit Network
- 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. (Friday Facts #419)
- Transport belt connected to a circuit network can now read contents of the whole segment instead of just the one tile. (Friday Facts #405)
- Roboports can read logistic network contents and requests. (Friday Facts #428)
- Roboports can output the number of roboports in the logistic network to the circuit network. (Friday Facts #428)
- Logistic Chests have an optional circuit condition to enable / disable their connection to the network. (Friday Facts #428)
- Rocket silo is connectable to circuit network, and allows to read its contents.
- 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. (Friday Facts #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). (Friday Facts #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. (Friday Facts #402)
- Added a way to read nuclear reactor temperature through the circuit network. (Friday Facts #428)
Minor Features
- 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. (Friday Facts #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. (Friday Facts #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. (Friday Facts #388)
- Map tags can be quickly copied using pipette. (more)
- 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. (Friday Facts #395)
- Allow copy-pasting of setting for trains and train stops while in chart view. (Friday Facts #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. (Friday Facts #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.
Optimizations
- 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. (Friday Facts #421)
- Improved performance of idle roboports. (Friday Facts #421)
- Improved radar charting speed. (Friday Facts #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.
Graphics
- 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.
Sounds
- Improved sounds of dying enemies.
- Added different sounds for manipulating different items in the inventory and opening different entities. (Friday Facts #396)
- Added different sounds for shooting different kind of targets.
- Added ambient sounds. (Friday Facts #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.
- Added new music. (Friday Facts #406)
- Added variable music. (Friday Facts #407)
Balancing
- Diminishing return of beacons effect (Friday Facts #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.
- Rocket part takes 10 times less ingredients than before.
- 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.
Changes
- Reworked the fluid system flow logic. (Friday Facts #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).
- 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. (Friday Facts #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.
Gui
- Added Players screen (accessible from the side menu), where each of the player can be inspected. (Friday Facts #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. (more)
- 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. (Friday Facts #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 (Friday Facts #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. (Friday Facts #423)
- Alert gui now allows specific selection of the problem we want to move to. (Friday Facts #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.
Modding
- 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.
- Added space-platform-hub, cargo-pod and cargo-bay prototypes.
- 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.
- Added segment and segmented-unit prototypes.
- Added lightning-attractor prototype.
- Added lightning prototype.
- Added plant prototype.
- 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.
- Added MiningDrillPrototype::drops_full_belt_stacks.
- Added LoaderPrototype::max_belt_stack_size.
- 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.
- 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.
- Added ArmorPrototype::provides_flight, collision_box and related properties.
- Added CharacterPrototype::flying_bob_speed, grounded_landing_search_radius and flying_collision_mask.
- Added capture-robot prototype.
- Added EnemySpawnerPrototype::captured_spawner_entity and time_to_capture.
- 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.
Scripting
- Renamed `global` into `storage`.
- Added LuaBootstrap::feature_flags.
- Added LuaEntityPrototype::allowed_module_categories read.
- Added LuaRecipePrototype::allowed_module_categories read.
- Removed LuaConstantCombiantorControlBehavior::parameters read/write.
- Added LuaPlanet::associate_surface.
- Added on_space_platform_pre_mined, on_space_platform_mined_item, on_space_platform_mined_entity, on_space_platform_built_entity, on_space_platform_built_tile, and on_space_platform_mined_tile.
- Renamed on_built_entity and on_robot_built_entity parameter `created_entity` to `entity`.
- Removed LuaConstantCombinatorControlBehavior::signals_count, set_signal() and get_signal().
- Removed LuaGameScript::disable_tutorial_triggers().
- Added LuaGameScript::enable_tip_triggers_in_custom_scenarios().
- Added event on_player_used_spidertron_remote.
- Added LuaEntity::cargo_pod read.
- Added LuaHelpers class globally visible under `helpers` in control stage, including in `on_load`.
- Moved LuaGameScript::table_to_json, json_to_table, write_file, remove_path, direction_to_string, evaluate_expression, encode_string, decode_string, parse_map_exchange_string, check_prototype_translations, is_valid_sound_path, is_valid_sprite_path to LuaHelpers.
- Removed LuaGui::is_valid_sprite_path. Use LuaHelpers::is_valid_sprite_path instead.
- Removed LuaRendering::is_font_valid. Use LuaPrototypes::font instead.
- Removed LuaGameScript::active_mods. Use LuaBootstrap::active_mods instead.
- Added on_player_controller_changed event.
- Added LuaEntity::force_finish_ascending() and force_finish_descending() methods.
- Added LuaEntity::procession_tick read/write.
- Removed LuaPlayer::open_map, zoom_to_world, and close_map. LuaPlayer::set_controller with type 'remote' replaces these.
- Added LuaPlayer::centered_on read/write.
- Added LuaPrototypes globally visible under `prototypes` in control stage, including in `on_load`.
- Moved prototypes access from LuaGameScript::X_prototypes to LuaPrototypes::X.
- Moved filtered prototypes access from LuaGameScript::get_filtered_X_prototypes to LuaPrototypes::get_X_filtered.
- Moved LuaBootstrap::get_prototype_history to LuaPrototypes::get_history.
- Moved LuaGameScript::styles to LuaPrototypes::style.
- Moved LuaGameScript::map_gen_presets to LuaPrototypes::map_gen_preset.
- Moved LuaGameScript::named_noise_expressions to LuaPrototypes::named_noise_expression.
- Renamed LuaSettings::player to player_default.
- Changed Vectors to always be read from the game as the two-element array format instead of sometimes using x and y keys. This mostly affects properties of TriggerEffectItem. Writing a Vector to the game still accepts both formats.
- Removed util.online_players. Use game.connected_players instead.
- Removed LuaEntity::is_entity_with_force. Use LuaEntity::is_military_target instead.
- Added preserve_ghosts_and_corpses argument to LuaSurface::create_entity.
- Added cause argument to LuaSurface::create_entity.
- Added on_pre_scenario_finished event.
- Added optional gui_title to game.create_inventory().
- Changed on_entity_damaged.cause semantics
- Added on_entity_damaged.source
- Replaced dealer argument with source and cause arguments in LuaEntity::damage().
- Added LuaEntityPrototype::growth_grid_tile_size read.
- Added LuaEntityPrototype::harvest_emissions read.
- Added LuaSurfacePrototype::surface_properties read.
- Added max_radius and use_start_position_on_failure to LuaSurface::spill_item_stack.
- Changed LuaSurface::spill_item_stack to take a table of parameters.
- Lua functions inside of `global` will now throw an error when saving instead of being silently discarded.
- Renamed LuaEntityPrototype::stack to LuaEntityPrototype::bulk.
- Added LuaTechnology::successors and LuaTechnologyPrototype::successors read.
- Added LuaGameScript::technology_notifications_enabled (read/write).
- Removed LuaForce::get_saved_technology_progress() and set_saved_technology_progress(). Added LuaTechnology::saved_progress (read/write).
- Added LuaPlayer::locale read and on_player_locale_changed event.
- Moved LuaGameScript::request_train_path into LuaTrainManager::request_train_path.
- Removed LuaEntity::get_rail_segment_entity. Added LuaEntity::get_rail_segment_signal and get_rail_segment_stop.
- Added LuaEntity::get_item_insert_specification.
- Added LuaEntity::get_line_item_position, LuaTransportLine::get_line_item_position and LuaTransportLine::line_length.
- Added LuaTransportLine::get_detailed_contents.
- Added LuaEntity::fluids_count read, get_fluid() and set_fluid().
- Removed ability of reading FluidWagon's fluid storage or FluidTurret's internal buffer fluid storage using LuaFluidBox.
- Added new controller type (remote), which is to build space platforms, so it allows ghost building but not any physical manipulation.
- Added LuaPlayer::physical_surface, physical_surface_index, physical_vehicle and physical_position read.
- LuaInventory::get_contents() will now return an array of {name = name, count = count, quality = quality}.
- Changed market price items to be defined as {name = name, count = count, quality = quality }.
- Added 8 new directions into defines.direction. If mods are storing any direction values in their storage, they will need to migrate them by multiplying by 2.
- LuaEntity::rotate no longer takes "spill_items", "enable_looted" nor "force" parameter.
- Removed LuaEntity::get_upgrade_direction() method.
- Changed on_built_entity event. Instead of stack/item, it passes consumed_items - modifiable stack of items used for the building.
- LuaTile::to_be_deconstructed() and related events can be given a force. If not given, it checks if tile is to be deconstructed by any force.
- Moved LuaItemPrototype::mapper_count property to LuaItemCommon.
- Renamed LuaLogisticContainerControlBehavior::circuit_mode_of_operation into circuit_exclusive_mode_of_operation.
- Added LuaCustomEventPrototype type and LuaGameScript::custom_event_prototypes read for the custom event prototypes.
- Added on_achievement_gained event.
- Added on_undo_applied event.
- LuaBootstrap::raise_event()'s "event" parameter now also accepts event names as string as alternative to their numerical IDs. The event names are needed to raise custom events.
- LuaBootstrap::on_event()'s "event" parameter now accepts event names for built-in events too, in addition to for custom inputs and the new custom events.
- Added new attribute "icon_selector" to LuaGuiElement::add() for creating textfields and text-boxes with the icon selector button.
- Removed __self from the LuaObjects. Intended way of checking if an object is a lua object is to check type is userdata.
- Changed LuaForce::evolution_factor, evolution_factor_by_pollution, evolution_factor_by_time and evolution_factor_by_killing_spawners to get_* and set_* methods.
- Type of LuaObjects is now "userdata" instead of "table".
- Added defines.wire_connector_id.
- Added LuaEntity::get_wire_connector and LuaEntity::get_wire_connectors.
- Added LuaWireConnector.
- Added LuaRecipePrototype::hide_from_signal_gui.
- Removed LuaEntity::circuit_connected_entities, LuaEntity::circuit_connection_definitions and LuaEntity::copper_connection_definitions.
- Removed LuaEntity::neighbours support for electric poles and power switches.
- Removed LuaEntity::connect_neighbour and LuaEntity::disconnect_neighbour.
- LuaCircuitNetwork is now binding to WireConnectorID. Removed LuaCircuitNetwork::circuit_connector_id. Added LuaCircuitNetwork::wire_connector_id.
- LuaEntity::get_circuit_network and LuaControlBehavior::get_circuit_network now require exactly 1 parameter: wire_connector_id.
- Replaced LuaEntity::get_merged_signal with LuaEntity::get_signal and LuaEntity::get_merged_signals with LuaEntity::get_signals. They no longer take circuit_connector_id but wire_connector_id.
- Removed defines.circuit_connector_id.
- Electric pole created through LuaSurface::create_entity can be requested to not auto connect.
- Replaced LuaFlowStatistics::get_flow_count parameter "bool input" with "string category" to reflect the addition of the "storage" category.
- Added LuaFlowStatistics::set_storage_count() and get_storage_count() methods.
- Added LuaFlowStatistics::storage_counts read.
- Removed LuaForce::item_production_statistics, fluid_production_statistics, kill_count_statistics and entity_build_count_statistics reads.
- Added LuaForce::get_item_production_statistics(), get_fluid_production_statistics(), get_kill_count_statistics() and get_entity_build_count_statistics() methods.
- Removed LuaGameScript::pollution_statistics read.
- Added LuaGameScript::get_pollution_statistics() method.
- Unified the way logistic filters are accessed, removed specific character/spidertron logistic filter methods, and all is done through get_logistic_point and get_section.
- Added LuaControl::get_requester_point() method.
- Removed LuaControl::clear_vehicle_logistic_slot, get_vehicle_logistic_slot, set_vehicle_logistic_slot, clear_personal_logistic_slot, get_personal_logistic_slot and set_personal_logistic_slot.
- Removed LuaEntity::clear_request_slot(), get_request_slot() and set_request_slot() methods.
- Removed LuaEntity::request_slot_count read.
- Added LuaLogisticSection.
- Added LuaLogisticPoint::get_section(), add_section() and remove_section() methods.
- Added LuaLogisticPoint::enabled read/write.
- Added LuaLogisticNetwork::network_id read.
- Added LuaRailEnd.
- Added LuaEntity::get_rail_end.
- Removed LuaTrain::front_rail, back_rail, rail_direction_from_front_rail, rail_direction_from_back_rail. They are replaced with LuaTrain::get_rail_end.
- Added LuaFluidBox::add_linked_connection(), remove_linked_connection(), get_linked_connection() and get_linked_connections() methods.
- Renamed LuaFluidBox::get_fluid_system_id() to get_fluid_segment_id().
- Renamed LuaFluidBox::get_fluid_system_contents() to get_fluid_segment_contents().
- Removed LuaFluidBox::get_flow() method.
- Added LuaPlayer::land_on_planet() method.
- Added LuaPlayer::enter_space_platform() and leave_space_platform() method.
- Added LuaPlayer::display_density_scale read.
- Removed LuaEntityPrototype::collision_mask_with_flags, LuaTilePrototype::collision_mask_with_flags and LuaDecorativePrototype::collision_mask_with_flags. Respective collision_mask returns mask with flags instead.
- Added LuaSurface::global_effect read/write.
- Removed LuaTechnology::effects, use LuaTechnologyPrototype::effects instead.
- Added LuaAirbornePollutantPrototype.
- Removed LuaNoiseLayerPrototype.
- Removed LuaItemPrototype::limitations and LuaItemPrototype::limitation_message_key reads.
- Removed LuaGameScript::get_active_entities_count() method.
- Removed LuaGameScript::count_pipe_groups() method.
- Removed LuaForce::zoom_to_world_* properties.
- Removed LuaForce::research_queue_enabled read/write.
- Removed LuaGuiElement::get_slider_discrete_slider(), set_slider_discrete_slider(), and discrete_slider.
- Removed LuaGuiElement::clear_and_focus_on_right_click, it is now always true.
- Removed LuaEntity::text.
- Removed LuaPlayer::log_active_entity_chunk_counts() and log_active_entity_counts() methods.
- Removed LuaAutoplaceControl::control_order since it was a duplicate of ::order.
- CircuitCondition passed to or given by LuaControlBehavior no longer uses the "condition" table, condition should be given directly.
- Renamed LuaItemStack::blueprint_icons into preview_icons.
- Added LuaTrainManager available through LuaGameScript::train_manager (read).
- Added LuaTrainManager::get_trains. Removed LuaSurface::get_trains and LuaForce::get_trains.
- Added LuaTrainManager::get_train_stops. Removed LuaSurface::get_train_stops, LuaForce::get_train_stops and LuaGameScript::get_train_stops.
- Added snap_to_grid to LuaSurface::create_entity() and LuaControl::teleport().
- Added LuaRenderObject. All LuaRendering methods for manipulating object selected by id were moved to LuaRenderObject.
- Added LuaSurface::localised_name read/write.
- Moved LuaGameScript::get_train_by_id into LuaTrainManager::get_train_by_id.
- Added LuaRecord representing records in the blueprint library.
- Added LuaPlayer::blueprints read.
- Added LuaGameScript::blueprints read.
- LuaGameScript::print, LuaPlayer::print, LuaSurface::print and LuaForce::print no longer accept Color as a second parameter.
- Changed permission related events to also fire when mods edit permissions.
- Changed LuaForce::ghost_time_to_live to LuaForce::create_ghost_on_entity_death bool read/write.
- Renamed on_entity_destroyed event into on_object_destroyed.
- Renamed LuaBootstrap::register_on_entity_destroyed into LuaBootstrap::register_on_object_destroyed.
- Removed help() method from every Factorio Lua object.
- Removed LuaObject::isluaobject.
- Renamed LuaUnitGroup into LuaCommandable. Renamed LuaCommandable::group_number into LuaCommandable::id.
- Added LuaEntity::commandable read. LuaEntity::unit_group moved to LuaCommandable::parent_group. LuaEntity::spawner moved to LuaCommandable::spawner.
- Removed LuaEntity::set_command, set_distraction_command, command, distraction_command and moving.
- Added LuaEquipment::quality read.
- Added LuaEquipment::to_be_removed read.
- Added LuaEquipment::ghost_prototype, ghost_type and ghost_name read.
- Added LuaEquipmentGrid::revive() method.
- Added quality and ghost parameters to LuaEquipmentGrid::put() method.
- Added search_ghosts parameter to LuaEquipmentGrid::find() method.
- Added LuaEquipmentGrid::order_removal() and cancel_removal() methods.
- Added LuaEquipmentGrid::entity_owner and player_owner read.
- Changed LuaEquipmentGrid::generator_energy read to LuaEquipmentGrid::get_generator_energy() method.
- Added LuaPrototypeBase as the common superclass for all Lua*Prototype classes.
- Added LuaItem and LuaItemCommon. LuaItemCommon is the common superclass for LuaItem and LuaItemStack.
- Moved LuaControl::get_blueprint_entities to LuaItemCommon and LuaRecord.
- Added LuaUndoRedoStack available through LuaPlayer::undo_redo_stack (read).
- Added player and undo_index parameters for undo queue to LuaSurface::set_tiles() method.
- Added player and item_index parameters for undo queue to LuaEntity::destroy() method.
- Added item_index parameter for undo queue to LuaSurface::cancel_deconstruct_area() method.
- Added item_index parameter for undo queue to LuaSurface::create_entity() method.
- Added item_index parameter for undo queue to LuaEntity::order_upgrade() method.
- Added item_index parameter for undo queue to LuaEntity::order_deconstruction() method.
- Added super_forced parameter to cancel_deconstruct_area and deconstruct_area in LuaSurface, LuaRecord and LuaItemCommon.
- Added quality condition to count_entities_filtered and find_entities_filtered methods in LuaSurface.
- Added has_double_hidden_tile boolean to count_tiles_filtered and find_tiles_filtered methods in LuaSurface.
- Added LuaSurface::set_property() and get_property() methods.
- Added LuaSurface::set_double_hidden_tile() and get_double_hidden_tile() methods.
- Added LuaTile::double_hidden_tile read.
- Added LuaSurface::execute_lightning() method.
- Added max_gap_size and max_attack_distance to LuaSurface::request_path() method.
- Added LuaSurface::create_global_electric_network() and destroy_global_electric_network() methods.
- Added LuaSurface::has_global_electric_network read.
- Added LuaSurface::platform read.
- Added LuaSurface::pollutant_type read.
- Added LuaSurface::deletable read.
- Added LuaRecipe::productivity_bonus read/write.
- Added LuaNamedNoiseFunction.
- Added LuaSpacePlatform and LuaPlanet.
- Added LuaEntity::custom_status read/write.
- Added LuaEntity::use_filters read/write.
- Added LuaEntity::name_tag read/write.
- Added LuaEntity::get_priority_target() and set_priority_target() methods.
- Added LuaEntity::ignore_unprioritised_targets read/write.
- Changed LuaEntity::electric_output_flow_limit and electric_input_flow_limit read to get_electric_output_flow_limit() and get_electric_input_flow_limit() methods.
- Added quality parameter to LuaEntity::set_recipe() method.
- Added LuaEntity::combinator_description read/write.
- Added LuaEntity::mining_drill_filter_mode read/write.
- Added LuaEntity::tick_grown read/write.
- Added LuaEntity::quality read.
- Added LuaEntity::always_on read/write.
- Renamed LuaEntity::electric_emissions to electric_emissions_per_joule.
- Added LuaEntity::copy_color_from_train_stop read/write.
- Added LuaEntity::train_stop_priority read/write.
- Added LuaEntity::rail_layer read.
- Added LuaEntity::mirroring read/write.
- Added LuaEntity::crane_grappler_destination and crane_grappler_destination_3d write.
- Added LuaEntity::crane_destination and crane_destination_3d read/write.
- Added LuaEntity::artillery_auto_targeting read/write.
- Added LuaEntity::robot_order_queue read.
- Added LuaItemCommon::owner_location read.
- Added LuaForce::unlock_space_location(), lock_space_location() and is_space_location_unlocked() methods.
- Added LuaForce::create_space_platform() method.
- Added LuaForce::unlock_space_platforms(), lock_space_platforms() and is_space_platforms_unlocked() methods.
- Added LuaForce::set_surface_hidden() and get_surface_hidden() methods.
- Added LuaForce::unlock_quality(), lock_quality() and is_quality_unlocked() methods.
- Added LuaForce::copy_from() and copy_chart() methods.
- Added LuaForce::platforms read.
- Renamed LuaForce::stack_inserter_capacity_bonus to bulk_inserter_capacity_bonus.
- Added LuaForce::beacon_distribution_modifier and belt_stack_size_bonus read/write.
- Added LuaSimulation available through LuaGameScript::simulation (read).
- Added LuaGameScript::get_entity_by_unit_number() method.
- Added LuaGameScript::set_win_ending_info() and set_lose_ending_info() methods.
- Added LuaGameScript::planets read.
- Added LuaGameScript::get_vehicles.
- Added LuaSurface::planet read.
- Removed LuaEntityPrototype::max_health. Added LuaEntityPrototype::get_max_health(quality?). Added LuaEntity::max_health read.
- Changed on_cutscene_waypoint_reached event's parameter "waypoint_index" to not be zero indexed.
- Added LuaPlayer::clear_local_flying_texts() method.
- Added LuaSurface::clear_hidden_tiles.
Bugfixes
- Fixed a crash related to fast-replacing a belt during its created trigger.
- Fixed that character entities couldn't be teleported between surfaces by script directly.
- Fixed mining a tree in multiplayer would make its stump appear with a delay, only after the mining action propagated to the game state.
- Fixed that joining a server while auto-save is running would lead to a deadlock on the client side.
- Fixed reading LuaItemStack::entity_label would return nil when label was set. (more)
- Fixed reading object_name of LuaTransportBeltControlBehavior would return incorrect value.
- Fixed that linux would not release memory after deleting blueprint library contents. (more)
- Fixed that enemies could not retaliate to the original cause of some forms of damage.
- Fixed that joining a multiplayer server did not work if the save was larger than 4 gigabytes. (more)
- Fixed a desync when clicking the "continue" button on the game-won screen. (more)
- Fixed that mod-defined additional paste entities did not work for splitters. (more)
- Fixed LuaPlayerBuiltEntityEventFilter ghost_name did not filter tile ghost inner names. (more)
- Fixed that driving vehicles in the map editor would not open gates. (more)
- Fixed disabling inserter's circuit condition could activate inserter when it was still requested to say disabled. (more)
- Fixed a desync when setting tiles during chunk generation that resulted from force_generate_chunk_requests(). (more)
- Fixed that underground pipe dragging would not use the correct distance if the underground fluidbox connections were not in the center of the entity.
- Fixed potential audio clicks when a filter is used. (more)
- Improved performance of the upgrade planner GUI when there are many entity prototypes. (more)
- Fixed plural form localisation of decimal and negative numbers. (more)
- Fixed silent global programmable speaker sounds taking up audio resources. (more)
- Fixed single water tile edging weird on border of 2 land tiles. (more)
- Fixed a desync when changing PathFinderMapSettings cache sizes at runtime. (more)
- Fixed renaming train stop could skip updating train schedules if there were train stops with same name on other surfaces. (more)
- Fixed that labs didn't work correctly around high speeds and low science pack stack sizes. (more)
- Fixed --load-scenario would force map size to be 50x50. (more)
- Fixed Gui double-click speed was very fast and not respecting the system settings. (more)
- Fixed that escape didn't work to dismiss the sync mods with save GUI. (more)
- Fixed setting up blueprint from library would not set the label. (more)
- Fixed that pickup inserters would not go to sleep when there was a rolling stock present even if it was not valid to interact with. (more)
- Fixed boilers would not account for output fluid heat capacity when calculating the amount of output fluid produced. (more)
- Fixed disconnecting lamp from circuit network would disable control behavior even if it was still connected to logistic network. (more)
- Fixed filter burner inserter was not able to pickup fuel from belt when fuel is not accepted by filters. (more)
- Fixed burner inserter could get stuck when fueling cycle was interrupted by a player. (more)
- Fixed burner mining drill could drop items on wrong side of transport belt if the drill was not facing north. (more)
- Fixed it was not possible to change rail's chart color. (more)
- Fixed cursor split from quickbar would not round up. (more)
- Fixed that zoom limits were appearing too small on Apple Retina displays. (more)
- Fixed that building entities close to vertical rails would trigger train visualisation from train stop rendering even if it goes away from cursor.
- Fixed pressing R while in rail planner would set wrong initial building direction.
- Fixed rolling stock ghost revive was possible when there are diagonal rail ghosts not yet built which could make a train to not connect properly.
- Fixed the wrong technology level shown on the icon in the currently selected technology.
- Fixed upgrading connected underground belt ghost in latency state.
- Fixed that lights of trains on other surfaces would be rendered on selected surface when doing a screenshot.
- Fixed that for train "Fluid count" conditions, a fractional fluid amount below 1.0 would already be considered equal to 0. Amounts between 0.0 and 1.0 are now rounded up instead. The same logic now also applies to fluid storage tanks reading their contents and pumpjacks reading their expected resource yield.
- Fixed undoing tile deconstruction after it was cancelled and undone before.
- Fixed that upgrade tasks might not be processed by mobile roboport as fast as other types of tasks. (more)
- Fixed responsibility of toggle shortcut buttons in multiplayer.
- Fixed upgrading electric pole would disconnect a power switch.
- Fixed several problems related to character walking and terrain building in latency hiding mode.
- Fixed characters being able to 'jump over' obstacles when moving fast enough.
- Fixed upgraded-modules undo action not saving or loading entity tags.
- Fixed cutscene controller index could go out of bounds and grow indefinitely. (more)
- Fixed that rocket silo didn't wait for the stack to be full when autolaunching.
- Fixed the 'Error loading mods' window did not allow copying the error message. (more)
- Fixed the shortcut bar GUI not shrinking when GUI scale is decreased. (more)
- Fixed furnaces with fluidboxes defined with fluid filters would not have fluid filters. (more)
- Fixed that trains didn't show wheels in blueprint, even when the rails are present.
- Fixed that trains in blueprints didn't save the connections, so close individual rolling stocks could get connected after the blueprint placement.
- Fixed that assembling machine would not complain when fixed_recipe was specified that cannot be crafted by given machine. (more)
- Fixed building a blueprint with entities buildable off grid only could fail to center the blueprint properly. (more)
- Fixed closing quickbar select page gui would not close when using confirm gui binding. (more)
- Fixed rotating off-center bounding boxes. (more)
- Fixed long train stop names causing shorter names to be clipped on subsequent selection. (more)
- Fixed that inserters could sleep incorrectly if pointed at furnaces with fluid inputs. (more)
- Fixed item stack sizes could cause issues with crafting machine's overloaded status. (more)
- Fixed that extreme speed assembling machines would calculate productivity incorrectly. (more)
- Fixed that robots waiting to charge were stuck after removing all charging spots of that roboport prototype.
- Fixed that equipment in armor not currently worn would still apply drain logic. (more)
- Fixed that worms wouldn't target construction robots correctly in some cases. (more)
- Fixed that LuaEntity::copy_settings() didn't respect normal copy logic. (more)
- Fixed that require() would allow files from other drives. (more)
- Changed burner energy sources without burnt result inventory to void burnt results instead of getting stuck. (more)
- Fixed wrong hierarchy order of blueprint book nesting when previewing entities in the world.
- Fixed that rich-text used in train stops and train schedule weren't migrated.
- Fixed tiles in the rocket rush lobby could be deconstructed. (more)
- Fixed translation requests failing because of empty parameters. (more)