Version history/0.12.0: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
m (Remove table of contents from page)
m (Corrected turret dimensions)
Line 1,009: Line 1,009:
* The construction robots don't build gate in the gap between the rolling stock vehicles. They wait for the train to get away.
* The construction robots don't build gate in the gap between the rolling stock vehicles. They wait for the train to get away.
* Player's logistic filters are now remembered after respawn in multiplayer
* Player's logistic filters are now remembered after respawn in multiplayer
* All turrets are now 4x4; laser turrets are 4x more expensive and powerful, gun turrets are 2x more expensive
* All turrets are now 2x2 (incorrectly stated as 4x4); laser turrets are 4x more expensive and powerful, gun turrets are 2x more expensive
* Roboport tooltip now shows correct numbers of construction and logistic robots separately.
* Roboport tooltip now shows correct numbers of construction and logistic robots separately.
* When a train loses a path and cannot find a new one, it stops immediately. This prevents it from riding into parts of the rail network, from where it can't find a path.
* When a train loses a path and cannot find a new one, it stops immediately. This prevents it from riding into parts of the rail network, from where it can't find a path.
Line 1,015: Line 1,015:
* The autosave dialog no longer cancels an active blueprint or deconstruction planner selection if the mouse button is still held after the autosave finishes
* The autosave dialog no longer cancels an active blueprint or deconstruction planner selection if the mouse button is still held after the autosave finishes
* Number of autosave slots is now configurable through config.ini (no GUI).
* Number of autosave slots is now configurable through config.ini (no GUI).
=== Optimizations ===
=== Optimizations ===
* Overall optimization of train + belt heavy factories is roughly 66% compared to 0.11, this means that the game runs 3 times faster.
* Overall optimization of train + belt heavy factories is roughly 66% compared to 0.11, this means that the game runs 3 times faster.

Revision as of 01:54, 7 April 2017


0.12.35

Bug Fixes

  • Fixed the missing title in character logistics window.


0.12.34

Changes

  • Polished/Updated the New hope campaign maps
  • LuaGameScript::server_save silently does nothing if used on a single player game instead of giving an error.

Bug Fixes


0.12.33

Bug Fixes

Scripting

  • Added LuaStyle::cell_padding/horizontal_spacing/vertical_spacing.


0.12.32

Bug Fixes

  • Fixed loading of electric network of pre 0.12 saves.
  • Fixed blueprint building. Blueprints are migrated as long as you load the version 0.12.30 or earlier, existing blueprints might be off if you resaved in 0.12.31 already.

Scripting

  • Lua interface to create blueprint now expects the entity positions to be relative to center exactly, so in rail*less blueprints, the position 0.0 translates to center of the tile

when the blueprint is built.


0.12.31

Bug Fixes

Optimizations

Scripting

  • LuaUnitGroup::add_member now requires that the new member's force be the same as the UnitGroup's.
  • Added LuaUnitGroup::force read*only attribute.


0.12.30

Changes

  • Mod checksums are calculated when the game starts and are compared with other peers when joining a multiplayer game. This is to ensure everyone has exactly the same mod in order to prevent desyncs caused by local changes made to mod files.

Bug Fixes

Modding


0.12.29

Changes

  • When the game starts with the base mod disabled, it asks you, if you want to enable it.

Bug Fixes


0.12.28

Changes

  • Added **port to specify which network port the game should use, when hosting with **start*server or **mp*load*game. This overrides the port specified in the config file.

Bug Fixes


0.12.27

Changes

  • The area of 400X400 tiles is explored when the game starts.

Bug Fixes

Scripting

Modding

  • Added action_range to mining tool prototype (with the default of 1.5).


0.12.26

Bug Fixes

  • Fixed the corrupted level 2 of the New hope campaign, that was producing corrupted saves. If you are already playing this level, you have to start it over, I'm sorry for the trouble.
  • Fixed the performance issue in the same level after train transport is researched.
  • Fixed that the game reported the error to be related to overlay always when it crashed.
  • Fixed rare crash related to splitting item in entity that is just about to be destroyed. (https://forums.factorio.com/20818)
  • Sending random packets to Factorio port can still crash the server eventually, the probability will just be lower. (https://forums.factorio.com/20154)
  • Running biters over with a car or tank will make them aggressive in peaceful mode (https://forums.factorio.com/20866).


0.12.25

Bug Fixes


0.12.24

Changes

  • Updated sountrack.

Bug Fixes


0.12.23

Changes

  • Scenario pack was moved to the base game package.

Bug Fixes

Scripting

  • Fixed that game.load (inner load) crashed the game in multiplayer. It still causes disconnect though.
  • Removed the screen2realposition and real2screenposition methods from Lua API.

Sound

  • Extended the soundtrack.


0.12.22

Bug Fixes


0.12.21

Changes

  • Dropped support for OS X 10.6 Snow Leopard.

Bug Fixes

Scripting

Modding


0.12.20

Bug Fixes

Modding

  • Technology prototypes now have optional integer property "icon_size". Default value for non*base mods is 64 (and 128 for base mod).


0.12.19

Bug Fixes


0.12.18

Bug Fixes

Changes

  • Improved formatting of map exchange string.

Scripting

  • Reading or writing LuaPlayer::character will now fail if the LuaPlayer isn't connected (see LuaPlayer::connected).
  • Lua API documentation is included in release packages (directory doc*html)


0.12.17

Graphics

  • New technology Icons!
  • New item group icons.
  • Updated the icons of rocket silo, beacon, sulfur, armors, stone brick and radar.

Bug Fixes

Scripting

  • Added global log method that can be used to debug script problems.
  • Added LuaFluidPrototype::localised_name property.
  • Fixed that LuaInventory::insert didn't follow the slot restrictions. (https://forums.factorio.com/17347)


0.12.16

Bug Fixes


0.12.15

Bug Fixes

  • Fixed that it wasn't possible to execute UI actions while the game was stopped (research, tips and tricks etc.)
  • Fix of fix of loading of game containing Lua objects.


0.12.14

Graphics

  • Added new smoke ==== Graphics ====

Bug Fixes

  • Fixed loading of game containing duplicate Lua tables. (https://forums.factorio.com/17275)
  • Fixed flickering light intensity at the edge of the screen when moving.
  • Fixed crash when pasting from empty clipboard into console on OS X.
  • Fixed crash when reviving train stop that was connected to rail while destroyed while the rail no longer exists.
  • Some UI actions made while the game was being saved were actually not executed although it looked like it. (https://forums.factorio.com/16866)


0.12.13

Bug Fixes


0.12.12

Bug Fixes

Scripting

  • game.get_localised_entity_name is replaced by LuaEntityPrototype::localised_name read property. The same for technology and item.


0.12.11

Features

  • Added **no*auto*pause: When running as a server, **no*auto*pause will prevent stopping the game when no players are connected.

Optimizations

  • Optimised the particle performance. Helps during heavy fights.

Changes

  • Showing the log file location when the game crashes, so it is easier to find when reporting the bug.
  • The "graphics.force*opengl" option default value is true when AMD Graphics card is present.

Bug Fixes

Scripting

  • Changed LuaSurface::set_multi_command signature. Now the function takes a table with following keys: command(required), unit_count(required), force(optional), unit_search_distance(optional) This solves issue with not finding any enemies to attack: https://forums.factorio.com/16541
  • Removed game.on_save function. There should be no need for it and it was causing too many problems.
  • Lua on_load function is not called when saving the game anymore. It is called only on actual load now.
  • Lua API calls on_load, on_init, on_configuration_changed, on_event and generate_event_name have been moved to a new namespace called script (so from now use script.on_load(...)). This will break many mods! The callback registered in on_load function doesn't have access to the game API. This is to avoid common desyncs. The on_init and on_configuration_changed still retain the access to the game API.
  • on_configuration_changed is fired when the map version changes, a mod version changes, a mod is added, or a mod is removed and passes "data": Pushes old_version="x.x.x", new_version="x.x.x" when loading map versions other than the current version When a mod version is changed it appears as a table of mod ==== Changes ==== {["Mod name"] = {old_version="x.x.x", new_version="x.x.x"}, ...} When a mod is added it appears as: ["Mod name"] = {old_version=nil, new_version="x.x.x"} When a mod is removed it appears as: ["Mod name"] = {old_version="x.x.x", new_version=nil}
  • Changed LuaGameScript::makefile to LuaGameScript::write_file and added an optional third parameter bool to append.

Modding

  • Replaced entity type "rail" with types "straight*rail" and "curved*rail". Property "bending_type" is optional for rail entities, but is still mandatory for rail remnants.


0.12.10

Changes

  • Script created beam entities will now destroy themselves when the source or target entity becomes invalid.

Bug Fixes


0.12.9

Features

  • Added reset button to the control settings dialog. It will set the controls back to the default.

Graphics

  • Destroyer electric beams now use soft additive blend mode.

Changes

  • Added **load*game: Will automatically load a save after initializing Factorio and go straight to the game, skipping main menu.
  • Moved MP / autosave information dialogues to the top half (better visibility of what is happening in the game) and added screen fading.
  • Implemented time*to*live for deconstruction order, if an order is not assigned for 1 hour, it is removed.
  • game.print_entity_statistics() has been moved to player.print_entity_statistics(). (https://forums.factorio.com/16520)
  • Updated the tips and tricks pictures. (+added copy paste)
  • Smoothed map scrolling speed on different zoom levels.
  • Added Resume button to multiplayer game menu.

Optimizations

  • Dramatic speedup of loading packages (mods) from the zip files. It is recommended to used only zipped mods from now on, as on non ssd discs, it might even speed up the startup time.
  • Added FPS limiter to main menu screen.

Bug Fixes

Modding

  • Fixed projectiles with direction_only = false didn't respect direction_deviation configuration.
  • Fixed entity dying explosion with "rotated = true" caused crash (https://forums.factorio.com/16652).

Scripting

  • Added LuaEntity::get_connected_rail. It takes a table with rail_direction (0 front, 1 back) and rail_connection_direction (0 left, 1 straight, 2 right) and returns a new rail (or nil) following that specification from the given rail entity.
  • LuaTrain::front_rail, LuaTrain::back_rail, LuaTrain::rail_direction_from_front_rail and LuaTrain::rail_direction_from_back_rail None of the methods takes any parameters.
  • LuaEntity::get_output_inventory now returns nil when the inventory doesn't exist (doesn't raise an exception as before).


0.12.8

Graphics

  • New ==== Graphics ==== of the steel furnaces.

Bug Fixes

Scripting

  • Beams can now be created via create_entity. You need to specify source/source_position and target/target_position, you can also specify duration (ticks), max_length and source_offset (vector). Position of the created entity does not matter.
  • Added LuaItemStack::set_blueprint_tiles/get_blueprint_tiles * the counterpart to get/set_blueprint_entities.
  • LuaEntity::insert/remove_item and LuaInventory::insert/remove now return counts of inserted/removed items.
  • Added LuaTrain::insert, remove_item, get_contents, clear_items_inside, get_item_count methods which interact on the cargo wagons of the train.
  • Added LuaItemStack::cost_to_build * the cost in items to build a given blueprint.

Modding

  • The minimal energy_required for a recipe is 0.001 to avoid wrong behavior with values close to 0.


0.12.7

Changes

  • Added 5th level of character logistic slots research.
  • New command line options for the headless server: **disallow*commands and **peer*to*peer
  • Entries in the mod list GUI are highlighted in red only when enabled and invalid at the same time.
  • Added natural case*insensitive string ordering for the mod list GUI.
  • There is now only one spawn position per each force and per each surface. This means that only one spawn position can be defined in the map editor as it currently supports only the default surface and the "player" force.
  • Added force*opengl value in config (under ==== Graphics ====). When set to true, it forces to use opengl on windows instead of D3D.
  • Map scrolling speed now changes with zoom level.

Bug Fixes

Scripting

  • The LuaEntity::logistic_network now returns also primary logistic network of other entities than roboport. (Inserter, Character, logistic chests)
  • Placing stone or concrete floors will now remove most of the bushes (https://forums.factorio.com/13638).
  • Fixed crash on exit when config file can't be written (https://forums.factorio.com/15436).
  • Fixed player changing direction when the game is paused (https://forums.factorio.com/15233).
  • LuaEntity::belt_to_ground_type also works on a ghost.
  • Increased precision of floating point in save files to prevent some desyncs in multiplayer (https://forums.factorio.com/15037).
  • Added LuaEntity::revive() * usable on ghost entities to revive them back to normal.
  • Fixed that that the resource amount while creating the entity accepted non*positive values. (https://forums.factorio.com/15567)
  • Added LuaForce::set_spawn_position(surface, position) and LuaForce::get_spawn_position(surface)
  • Fixed that the event queue was never cleared when scripting error occurs while processing it. This lead to processing the same event every update once the game was stopped when error happened. (https://forums.factorio.com/15564)
  • Fixed inserting or removing items from player's inventory through LuaInventory object didn't update logistic supply properly. (https://forums.factorio.com/16007)


0.12.6

Changes

  • Smaller breaks between ambient music tracks, some volume tweaks and moved a few tracks to the interlude category.
  • Ambient settings can be controlled from the config file. By using: sound.ambient_music_pause_mean_seconds (default 60), sound.ambient_music_pause_variance_seconds (default 30) and ambient_music_mode: possible values are main*tracks*only, interleave*main*tracks*with*interludes, randomize*all (default is interleave)

Bug Fixes

Changes

  • Smaller breaks between ambient music tracks, some volume tweaks and moved a few tracks to the interlude category.
  • Ambient settings can be controlled from the config file. By using: sound.ambient_music_pause_mean_seconds (default 30), sound.ambient_music_pause_variance_seconds (default 30) and ambient_music_mode: possible values are main*tracks*only, interleave*main*tracks*with*interludes, randomize*all (default is interleave)
  • Fixed a performance problem in the pathfinder that would cause complete lack of enemy attacks in certain situations (https://forums.factorio.com/15238).

Scripting

  • Added LuaItemPrototype::module_effects read.
  • LuaSurface::spill_item_stack will now additionally accept LuaItemStack objects as the stack to drop.

Modding


0.12.5

Features

  • The armor window opening is included in the latency hiding.
  • Multiplayer broadcast (heartbeats) is done via a single message when not using peer2peer.
  • Added some new ambient sounds (wind, slow tunes).
  • Combinators blinking emit light.

Changes

  • Pasting newlines and tabs into Factorio console now no longer strips them. Instead they are replaced by spaces.
  • Continuous zoom is much slower in the chart mode. Only applicable when the zoom is setup to keys rather then scroll wheel. (http://www.factorioforums.com/forum/posting.php?t=14985)
  • Changed open/save dialog and the rail station list to use case insensitive natural ordering.
  • Inserter stack size bonus is added to the assembling machine stack limit, to avoid inserters being stuck in certain situations. (https://forums.factorio.com/15219)
  • Robots can charge from closer roboport when heading to distant roboport for stationing. (https://forums.factorio.com/15234)

Optimizations

  • Further Optimizations in size of the Multiplayer heartbeat (message sent every tick).

Bug Fixes

Scripting

  • LuaForce::chart now creates a new chart if one doesn't exist yet, instead of erroring out (https://forums.factorio.com/15021).
  • Items now have a new optional attribute "stackable": When set to false, assembling machines won't be allowed to create stacks of the item. Currently only used with blueprints, to fix the "crafting machine stacks blueprints" bug.
  • Added LuaEntity::rocket_parts read/write, usable on Rocket Silo.
  • Added LuaEntity::launch_rocket(), usable on Rocket Silo.
  • Added LuaLogisticNetwork * an interface to logistic networks.
  • Added LuaLogisticCell * an interface to logistic cells (roboport/player logistic information).
  • Added LuaTransportLine::get_contents().
  • Added LuaPlayer::connected read * true/false if the player is currently connected to the game.
  • Added LuaForce::kill_counts read, set_kill_count/get_kill_count methods to access and manipulate kill counts per force.
  • Constant combinators now export their wire connections in LuaItemStack::get_blueprint_entities. (https://forums.factorio.com/15189)
  • Added Prototype::order/group/subgroup read + LuaTechnology::order read.
  • Added LuaRecipe::force read * the force that owns recipe reference.
  • Added LuaEntity::chain_signal_state read * the chain state of chain signals.
  • Added LuaEntity::speed read/write * the speed of a car/tank.


0.12.4

Features

  • Simple mechanism for multiplayer relaying via the server.

Changes

  • Renamed "multisampling" to "multisampling*level" in the config file. This will reset everyone's multisampling setting to 0.
  • Construction robots take things primary from the main inventory, then quickbar.
  • Reverted the order of inserter slot selection. (https://forums.factorio.com/14656)
  • Added Alt*mode (showing entity info) to the latency hiding.
  • Trains now try to recalculate their path, when waiting over 5 seconds on a signal (only if needed). The recalculation is forced when waiting over 30 seconds.
  • Construction robots will check if their target is still in the network area when they return to personal roboport for charging.(https://forums.factorio.com/14249)
  • Tweaked the stuck resolve mechanism. This should solve the https://forums.factorio.com/14403

Bug Fixes

Scripting


0.12.3

Features

  • Circuit wire building and repairing is incorporated in the latency hiding logic.

Changes

  • Cars of your own force always render their tags on the map.
  • Multisampling not officially supported from now on.
 It can still be manually specified in the config, but not in the graphic settings GUI.
 The main reason is the trouble with tiling which doesn't really have a simple fix.
  • Changed the console spam*prevention mechanic to check all messages for the last second instead of just the last entered one.

Bug Fixes

 even after the chest gets out of the personal robot range. (https://forums.factorio.com/14412)

Scripting

  • Implemented remove_item() for all entities that have items.
  • Added LuaEntityPrototype::autoplace_specification read.


0.12.2

Features

  • Enabled swapping held blueprints with other blueprints directly.
  • Force*building blueprints will mark any colliding trees for deconstruction.
  • Added filters to car and tank main inventories.

Changes

  • Inserters will never take more than the maximum stack size of the item.
  • Way more relaxed timeouts for dropping peers during map uploads (https://forums.factorio.com/14082).

Bug Fixes

 Fixed "Attempt to clone non empty blueprint" and "Attempt to clone armor with equipment grid" when inserters move them.
 (https://forums.factorio.com/14179)
  • Character doesn't get moved by neighbour transport belt after game load.
  • Crafting entity tooltips show contents in order and now also show fluids (https://forums.factorio.com/14211)
  • Fixed missing belt activation in specific situation (https://forums.factorio.com/14023)
  • Fixed modded spitters could spit very far from their location when trying to destroy a tree (https://forums.factorio.com/14106).
  • Map editor wire editing works again.
  • Fixed beacons stopping working when the modules where removed and re*inserted (https://forums.factorio.com/14275).
  • Fixed power armor GUI tooltips not showing sometimes.
  • Fixed v*sync causing framerate to go bellow 60 when Windows Aero theme is enabled (https://forums.factorio.com/13622).
  • Flame*thrower sounds volume is dependent on the distance of the player now. (https://forums.factorio.com/13538)
  • Tank can turn around without moving forward again. (https://forums.factorio.com/13936)
  • Fixed tile building/removal sometimes removing buildings or killing the player.
  • Fixed tile building/removal sometimes creating or removing water.
  • Fixed tile removal ignoring changes made in map editor.
  • Fixed crashes when mining path tiles while map is generated.

Scripting

  • get_surface never returns invalid surface.


0.12.1

Features

  • Burner inserters start with enough energy to pick up 1 item and fuel them selfs.

Changes

  • Train station names use natural string comparing (station "Iron 10" comes after "Iron 9", not after "Iron 1").
  • New command*line parameter: **latency*ms. Allows to set server latency in milliseconds rather than ticks
  • You can copy paste circuit network conditions between Inserter, Lamp, Pump and Offshore Pump.
  • The delete button in Load Game or Save Game dialogues now asks for confirmation before deleting
  • Locomotive on schedule can't be rotated while moving anymore.
  • Changed fast inventory transfer from the main player inventory so ctrl+clicking empty slots doesn't move items to the logistic trash slots.
  • Changed Assembling machine's auto*insertion behaviour when using speed module effects. Faster speed with fast recipes will insert more items sooner.

Bug Fixes

Scripting

  • LuaSurface::set_multi_command now takes an optional third argument specifying the force to send the command to. Default is the enemy force
  • Default mods are always enabled if mod*list.json is lost (even when enable new mods option is disabled).
  • LuaSurface can be invalid when read from LuaPlayer and Player entity if the player is disconnected from the game (MP disconnect) * use LuaSurface.valid to check.
 Note: LuaSurface currently never switches between valid and not valid so the check only has to be done when it's first read from the LuaPlayer.
  • Changed default maximum range of projectiles from 10^308 to 1000.


0.12.0

Features

  • The game is now finished by launching the rocket with satellite.
  • Added chain signals, they can be used to make more complicated junctions and stations without deadlocks.
  • Added personal roboport as modular armor equipment. Once it is active, it uses the materials and robots in the players inventory. It supports all the tasks construction robots can do like building blueprints, repairing structures, deconstruction etc.
  • Added logistic trash fields to the character GUI. They supply items into the logistic system in the same way active provider chests do.
  • Added combinators (Arithmetic Combinator, Decider Combinator and Constant combinator). These allow more advanced manipulation with the circuit network logic (https://www.factorio.com/blog/post/fff*88)
  • The Lamp, Storage Tank, Small Pump and Offshore Pump can be connected to the circuit network.
  • Multiplayer latency hiding (gives impression that some common tasks are performed immediately) Applies to character movement, mining buildings, building, fast replacing, opening guis, etc.
  • Stone brick can be used to build stone path. (30% walking speed increase).
  • Concrete can be created. The concrete can be used to build concrete floors (40% walking speed increase).
  • Terrain modifies vehicle friction force (sand: 1.8, grass: 1.6, dirt: 1.4, stone path: 1.1, concrete: 0.8).
  • Trees degenerate slowly when there high pollution levels.
  • Lab research is now continuous. Science packs have progress bars of usage. This means that 20 labs doing research with 10 units will still be faster than 10 labs and the science packs aren't wasted.
  • Assembling machine input slot can contain more than the usual stack size when the recipe requirement demands it (3 X recipe demand). Example: The rocket silo requires 1000 steel, while the stack size is 100, but the input stack can hold enough.
  • Added / updated sounds for biters, spitters, worm, spawner, flamethrower, tank, lasers, etc.
  • New ambient soundtrack added. Added mechanism that prevents playing track that was played recently. The ambient player alternates between neutral wind/environment sounds and soundtrack songs.
  • Mousing over a train will show you its current path and blocks it can't enter.
  • Locomotives now show the contents of attached cargo wagons in their tooltip.
  • Trees regenerate health slowly.
  • Added support for transferring contents/settings when fast*replacing all entity types.
  • Added modules to the alt*view for entities that support modules.
  • Factorio can run as a dedicated server without ==== Graphics ==== (http://www.factorioforums.com/wiki/index.php?title=Multiplayer#Headless_server).
  • Basic PvP: New forces can now be created and merged back together; a cease*fire can be agreed upon between forces
  • IPv6 support for multiplayer.
  • DNS names can be used when connecting to multiplayer game.
  • Enabled mining trees/ghosts while holding blueprints to be built.
  • Added explosive cannon shells.
  • Building blueprints over existing ghosts restores the ghost time to live to full.

Changes

  • Disabled loading of saves before 0.9.0 version (You can use 0.9.8 to load older saves and re*save them).
  • Removed rocket defense entity.
  • Items on transport belts don't go off the belt at the end, so the transport belt has to go directly in front of the required inserter.
  • Reduced number of rendered Roboport connections.
  • The trade in the marketplace only happens if the player can accept the trade items.
  • Inserters can now extract from Roboports and Beacons.
  • Inserters now take items from right behind them, not from the center of the pickup target entity.
  • Copy entity settings mechanism now remembers only the last entity copied from. Also mechanism allows copy/paste across different entities of the same type (i.e. assembling machine 1 *> assembling machine 2) and from assembling machines to requester chests (sets filters to 2 x requirements of the assembling machine).
  • Trees have generally smaller bounding boxes, so it is easier to walk through forest.
  • Power armor modules generate and consume 100 times more power in order to be able to charge construction robots.
  • The construction robots don't build gate in the gap between the rolling stock vehicles. They wait for the train to get away.
  • Player's logistic filters are now remembered after respawn in multiplayer
  • All turrets are now 2x2 (incorrectly stated as 4x4); laser turrets are 4x more expensive and powerful, gun turrets are 2x more expensive
  • Roboport tooltip now shows correct numbers of construction and logistic robots separately.
  • When a train loses a path and cannot find a new one, it stops immediately. This prevents it from riding into parts of the rail network, from where it can't find a path.
  • Improvements to circuit network wire connection. You can connect multiple wires of the same color to the same entity.
  • The autosave dialog no longer cancels an active blueprint or deconstruction planner selection if the mouse button is still held after the autosave finishes
  • Number of autosave slots is now configurable through config.ini (no GUI).

Optimizations

  • Overall optimization of train + belt heavy factories is roughly 66% compared to 0.11, this means that the game runs 3 times faster.
  • Optimised the transport belt movement.
  • Optimised the rotated bounding box collisions checks (trains).
  • Optimised the smoke update.
  • Optimised the solar panel, all the solar panel input is merged, so the count doesn't matter.
  • Optimised the accumulators by merging then into groups, where typical factory has 1 group per network.
  • Optimised the land mine activation mechanism.
  • Smaller multiplayer heartbeat packet size.
  • Optimised adding/removing of roboport, robots keep their tasks if they can.
  • Path finder will terminate when search is too long. This avoids save explosions (see https://forums.factorio.com/12580).
  • Optimised rendering for large logistic networks.
  • Fixed that the ==== Graphics ==== were saved twice in the RAM memory.

Graphics

  • New ==== Graphics ==== of the combat robots.
  • New ==== Graphics ==== of the laser/gun turrets, their color is now player/force dependent.
  • New ==== Graphics ==== of muzzle flash for player, car, tank and turrets.
  • New tree ==== Graphics ====. Trees have 4 levels of leaves and the leafs are color-able.
  • Trees emit leaves (based on the tree color) when being mined and destroyed.
  • Trees emit branches when mined or destroyed.
  • Storage tank has a small window showing the liquid inside.
  • Combat robots attack beam (https://www.factorio.com/blog/post/fff*84)
  • New GUI icons: Weapons, ammo, status icons such as out*of*ammo or out*of*electricity

Bug Fixes

  • Fixed wrong item count in the logistic system when handling partially*filled magazines, repair packs or other items with durability
  • Fixed the choppy (not smooth) movement when using the exoskeleton equipment.
  • item*description localization now displays correctly when previewing recipes.
  • entity*description localization now displays on entities.
  • Proper blueprint centering. It is based on the included entities rather then the selection rectangle when the blueprint is created.
  • Very big entities no longer disappear at the edge of the screen
  • When putting things on ground, the first item was never put exactly under the cursor even when the place was empty.
  • Fixed that it wasn't possible to swap stacks of the same items with different health.
  • Fixed strange behavior of tank/car entering sound.
  • Fixed LuaFluidBox crashing the game when attempting to read fluid from an entity that previously had fluidboxes.
  • Car / Tank ammo inventory is refilled from the trunk / player inventory when exhausted.
  • Fixed writing invalid LuaEntity::selected_gun_index crashing the game.
  • Fixed the power armor battery level indicator getting drawn on top of everything else (https://forums.factorio.com/8206).
  • Fixed that following robots created through trigger crashed the game.
  • Fixed the train pathfinding issue when the train crashes to something while stopping for signal or station in front of a junction.
  • Fixed that crashing to something while in manual mode in train could switch it to automatic mode.
  • Fixed crashing when setting modded GUI styles in Multiplayer.
  • Fixed crash when trying to read LuaPlayer::opened on a dead player.
  • Fixed crash when canceling deconstruction of a logistic container that was marked for deconstruction after the logistic network it was in lost power and then regained power (https://forums.factorio.com/10143).
  • Fixed LuaSurface::can_place_entity returning true when checking item*on*ground against item*on*ground (https://forums.factorio.com/9247).
  • Turrets can now be modded to use shotgun (and other not guided) ammo.
  • Fixed research window appearing behind the selection/minimap pane when shown from research completion (https://forums.factorio.com/13235).
  • Fix inability to bind some OEM keys on Windows. Added the ability to bind more keys including multimedia keys. (https://forums.factorio.com/10027)
  • Fixed marking a ton of entities for deconstruction outside the construction range of roboports slowing down normal deconstruction rates.
  • Fixed crash when removing electric poles from electric networks or circuit networks with large amounts of poles (https://forums.factorio.com/13368).
  • Fixed video*memory*usage option on Windows. It is possible to run Factorio on configurations with low VRAM (less then 512MB). Other platforms don't have this issue.
  • Fixed that control*clicking entire inventory into a machine installed modules.
  • Fixed another instance of the "Trying to make chunk at unreasonable position" bug (https://forums.factorio.com/13399).
  • Requester chests no longer request more than they can store. E.g. if a requester chest only has one free slot and the requester slider is set to request 20000 iron ore, the chest will only request one stack from the network (https://forums.factorio.com/4604)
  • Console no longer loses focus after an autosave (https://forums.factorio.com/10025)
  • Fixed wrong highlight when crafting ammo in vehicles (https://forums.factorio.com/9620)

Modding

  • Ambient sounds are specified as prototypes so they can be extended and modified by mods.

Scripting

  • Changed all the identifiers/methods/events/parameters. Underscores are used as word delimiter (findentities *> find_entities).
  • Changed glob to global.
  • New object LuaSurface, accessible from player/entity as read property surface.
  • Some commands moved from LuaGame to LuaSurface: get_pollution, can_place_entity, find_entity, find_entities, find_entities_filtered, find_non_colliding_position, find_enemy_units, find_nearest_enemy, set_multi_command, create_entity, create_unit_group, build_enemy_base, get_tile, get_tileproperties, set_tiles, pollute, get_chunks, is_chunk_generated
  • Added LuaGame::local_player console command: when entered through the console it will reference the local player doing the console command. Only works when run through the console.
  • Added LuaFluidPrototype * similar to LuaItemPrototype but for fluids.
  • math.random can now accept negative values for ranges eg x + math.random(*10, 10)
  • Added LuaRecipe::hidden and energy read.
  • New object LuaGroup, accessible from LuaEntityPrototype as read property group/subgroup. LuaGroup contains: name, type, inventory_order, group, subgroups
  • Added several new options to LuaEntityPrototype: mineable_properties, items_to_place_this, collision_box, selection_box, order, group, subgroup, healing_per_tick, emissions_per_tick, corpses, selectable_in_game, weight, resistances, fast_replaceable_group, loot, repair_speed_modifier
  • LuaItemPrototype::group now returns the new LuaGroup object.
  • Added LuaEntity::is_crafting() * returns true/false if the assembling machine or furnace is currently crafting a recipe.
  • Added LuaEntity::crafting_progress/bonus_progress * a percent of 1: the current crafting progress or bonus progress.
  • Added the ability to compare LuaObjects using "==" as in: "if game.player == game.players[1]" for all LuaObjects.
  • Removed all LuaObject::equals(): the == operator can be used in its place.
  • Added new blend modes for sprites using "blend_mode" property. Possible values: "normal", "additive", "multiplicative".
  • Added on_player_driving_changed_state event * passes the player_index who's driving state changed.
  • Added LuaEntity::belt_to_ground_type * returns the type "input"/"output" of the transport*belt*to*ground.
  • Added several methods for manipulating gates: is_opened, is_opening, is_closed, is_closing, request_to_open, request_to_close.
  • Changed LuaEntity::neighbours:
 For electric poles: the wire connections: {copper={}, red={}, green={}}
 For transport*belt*to*ground: the input/output entity it's connected to (or none)
 For entities with fluid * the entities the fluid connections connect to indexed by the fluid connection
  • #entity.fluidbox can now be read from any entity and will return the number of fluidboxes the entity has (0 for non*fluid handling entities).
  • Added the ability to specify map colors for all entities: map_color, friendly_map_color, and enemy_map_color
  • Added the ability to disable drawing the station name for train*stop type entities: chart_name = "false" in the prototype.
  • LuaEntity::backer_name can now be read/written for all entities that support backer names (furnace, assembling machine, lab, locomotive, radar, roboport, trainstop).
  • LuaEntity::recipe can now be set to nil to remove the recipe from an assembling machine.
  • Added LuaItemPrototype default_request_amount, resistances, item_to_clear.
  • Added LuaChart::chart_all (charts all the generated parts of the map).
  • Expanded LuaEntity::get_item_count and LuaEntity::clear to work with all transport belt entities.
  • New object LuaTransportLine, accessible from entity as read method get_transport_line(index) * an interface to the items on transport belts.
  • Added LuaSurface::count_entities_filtered * the same as find_entities_filtered but simply returns a count. The benefits being: it's much faster than find_entities_filtered when the entity references aren't desired.
  • Added LuaForce::enable_research() * enables research for the force if it was disabled.
  • Added LuaSurface::spill_item_stack() * takes a item_stack and position and drops the items on the ground item bomb style.
  • Changed LuaEntity::stack, LuaEntity::held_stack and LuaPlayer::cursor_stack to return LuaItemStack objects.
  • Changed LuaItemStack to allow reading any inventory slot even when the item in the slot is invalid. LuaItemStack::valid_for_read should be used before accessing the normal properties/methods for a given LuaItemStack.
  • Removed LuaEntity::clear_circuit_condition() * LuaEntity::set_circuit_condition(index, nil) can be used instead.
  • Added "force" option to LuaSurface::find_entities_filtered/count_entities_filtered.
  • ItemStack counts can be excluded and defaults to 1, ItemStacks can be strings and default to a full stack.
  • Added LuaItemStack::count write support.
  • Added LuaItemStack::can_set_stack(), set_stack(), clear() * write support to a specific item stack.
  • Removed LuaEntity::stack, held_stack write support * LuaItemStack::set_stack() can be used.
  • Removed LuaPlayer::cursor_stack write support * LuaItemStack::set_stack() can be used.
  • Added LuaTrain::cargo_wagons read * returns only the cargo wagons for the given train.
  • Added LuaEntity::remove_market_item * takes an index to remove from a Market entity offer list.
  • Added LuaEntity::get_market_items * returns a table of offers the Market entity offers.
  • Added LuaForce::research_progress read/write * a percent of 1 * the current research progress (0 if no research).
  • Added LuaEntityPrototype::turret_range read * the range of a given turret entity prototype.
  • Added player_index to the on_put_item event.
  • Added ghosts from manual building and blueprints to the on_built_entity event.
  • Added LuaPlayer::enable_flashlight() * counterpart to disable_flashlight().
  • Replaced LuaGameScript::kill_all_enemies() by LuaForce::kill_all_units().
  • Changed on_researched events to return the relayed LuaTechnology object.
  • Added LuaTechnology::force read * the LuaForce the technology belongs to.
  • Added LuaGame::create_surface * takes a string name and optionally a table of map gen settings and creates a new surface.
  • Changed LuaPlayer::teleport to allow optionally a surface name, index or object to teleport the player to. The surface must exist.
  • Added LuaSurface::request_to_generate_chunks * takes a position and radius and requests to generate those chunks * will not generate chunks outside the map bounds.
  • Added LuaSurface::map_gen_settings * the current map gen settings for the surface.
  • Added LuaGame::server_save * in a multiplayer game with a server, this will make the server save the game. Only works with a headless server, i.e. one launched through the **start*server option.
  • Added LuaGuiElement::parent read * the parent of the LuaGuiElement if any else nil.
  • Added LuaPlayer::index read * the numeric index of the LuaPlayer object.