Version history/0.13.0

From Official Factorio Wiki
Revision as of 13:14, 12 March 2017 by Gangsir (talk | contribs) (Remove table of contents from page)
Jump to navigation Jump to search


0.13.20

Date: 29. 08. 2016

Bugfixes

Modding

Scripting

  • Fixed "unknown" error in some cases when using radio button GUI elements.
  • Fixed crash when a mod custom event event would error. (https://forums.factorio.com/31779)
  • Added LuaGuiElement::type read.

0.13.19

Date: 26. 08. 2016

Bugfixes

Scripting

  • Added LuaSurface::regenerate_entity(...)

0.13.18

Date: 25. 08. 2016

Changes

  • Changed train wait conditions to use standard Boolean precedence for evaluation, instead of a simple left to right accumulative evaluation.

Balancing

  • Increased tank machine gun range to 20.

Bugfixes

Modding

Scripting

  • Fixed LuaSurface::map_gen_settings.shift not working. (https://forums.factorio.com/31143)
  • Fixed chunk positions would get improperly rounded instead of floored. (https://forums.factorio.com/31092)
  • Added LuaConstantCombinatorControlBehavior::enabled read/write.
  • Added upper limit to resolution parameter of LuaGameScript::take_screenshot function. Limit for width and height is 16384.
  • Added LuaStyle::visible read/write.

0.13.17

Date: 17. 08. 2016

Bugfixes

0.13.16

Date: 16. 08. 2016

Changes

  • Changed the personal roboport so it reacts faster to jobs in range.
  • Added graphics option "Enable tree sprite mipmaps" that should reduce GPU load when drawing large forests.
  • Changed default value of "Lights render resolution" graphics option to 0.25. High values of this setting have negative performance impact on drawing lamps.
  • When the first LUA command is used, players are warned that it would disable achievements.
  • Changed default renderer for AMD GPUs back to DirectX.
  • Rewritten sandbox scenario to work in multiplayer.

Bugfixes

Modding

  • Fixed crash when mods use tables as key values in prototype data. (https://forums.factorio.com/30606)
  • Added example definition of an electric energy interface.
  • Fixed copy&paste on modded constant combinator would copy also number of item slots. (https://forums.factorio.com/30908)
  • Fixed possible desync caused by inserters putting items directly to loaders.
  • Fixed loader wouldn't stop loading to chest marked for deconstruction.

Scripting

  • Fixed LuaEntityPrototype::resource_category crash. (https://forums.factorio.com/30626)
  • Fixed changing force of construction or logistic robot would cause game state corruption. (https://forums.factorio.com/30912)
  • Added LuaEntity::get_fuel_inventory().
  • Added event on_player_changed_surface.
  • Added LuaInventory::find_item_stack(...).
  • Added LuaControlBehavior::disabled read.
  • Added LuaVirtualSignalPrototype and LuaGameScript::virtual_signal_prototypes read.
  • Changed LuaEntity::get_filter()/set_filter()/filter_slot_count to work on both inserters and loaders.
  • Added an optional Boolean to LuaSurface::spill_item_stack to mark the created items with the to-be-looted flag.
  • Added LuaSurface::get_connected_tiles(...).
  • Added LuaSurface::get_hidden_tile(...).
  • Changed Product::type to string containing "item" or "fluid".

0.13.15

Date: 06. 08. 2016

Bugfixes

0.13.14

Date: 05. 08. 2016

Changes

  • Surplus items from crafting are again available for crafting other items.
    • For example, crafting two green circuits will no longer result in two extra copper wires in the player's inventory. This only applies to items that are automatically crafted as a prerequisite; items the player has explicitly requested to craft will not be used to satisfy the dependencies of any further orders.
  • Factorio will output to console window in UTF8 on Windows.

Bugfixes

Optimizations

  • Significantly reduced the high CPU usage caused by the main loop logic from 0.13.10.

Modding

Scripting

  • Fixed map corruption and crashes caused by some API functions allowing entities to be used across surfaces when they aren't setup to handle it. (https://forums.factorio.com/30187)
  • Fixed evolution_factor could be set to a negative number resulting in base build errors. (https://forums.factorio.com/30264)
  • Fixed crash when using entity of type 'flame-thrower-explosion' with 'create-entity' trigger effect. (https://forums.factorio.com/28467)
  • Fixed LuaGameScript::take_screenshot() would fail if destination file contained non-English character in its path. (https://forums.factorio.com/30431)
  • Added LuaEntity::filter_slot_count read.
  • Added LuaEntityPrototype::mining_drill_radius read.
  • Added LuaTrain::station read.
  • Added LuaDamagePrototype and LuaGameScript::damage_prototypes read.
  • Added LuaEntity::loader_type read.
  • Added LuaRemote::remove_interface(name).
  • Changed LuaRemote so interface names must be unique to maintain save/load determinism.
  • LuaEntity::revive() will return the revived entity as a second return value if successful and if the ghost was an entity.

0.13.13

Date: 30. 07. 2016

Bugfixes

Modding

  • Added entity prototype flags "not-blueprintable" and "not-deconstructable".

Scripting

  • Changed LuaEntity::order_deconstruction() to return true/false if it did the deconstruction instead of throwing errors.
  • Added LuaPlayer::entity_copy_source - the source entity used during entity settings copy paste.
  • Added LuaEntity::request_slot_count read - the number of request slots on the entity or 0 if none.

0.13.12

Date: 30. 07. 2016

Changes

  • Vsync will be automatically turned off and hidden from the options menu if desktop composition(windows aero) is on.

Small changes

  • - Locale additions and improvements.

Bugfixes

Modding

Scripting

  • Fixed error when attempting to interact with LuaInventory that has a size > 255. (https://forums.factorio.com/29834)
  • Fixed crash when robots charging would get disabled through mods. (https://forums.factorio.com/29833)
  • Fixed wrong error when setting durability of an item. (https://forums.factorio.com/29903)
  • Added LuaItemPrototype read properties: localised_description, place_as_equipment_result, place_as_tile_result, flags equipment_grid_size, inventory_size_bonus, capsule_action, attack_parameters, inventory_size, item_filters group_filters, sub_group_filters, filter_mode, insertion_priority_mode, localised_filter_message, extend_inventory_by_default, default_label_color, draw_label_for_cursor_render, attack_result, attack_range, category, tier, limitations, limitation_message_key, straight_rail, curved_rail, repair_result, selection_border_color, alt_selection_border_color, selection_mode_flags, alt_selection_mode_flags, selection_cursor_box_type, alt_selection_cursor_box_type, always_include_tiles, durability_description_key, durability.
  • Added LuaItemStack::add_durability()/drain_durability().

0.13.11

Date: 25. 07. 2016

Small changes

  • Further locale changes and polish.
  • Horizontal mouse wheel scrolling is now translated to vertical scrolling, because of key binding problems on OS X.
    • OS X blueprint book binding is changed back to Shift + Mouse wheel up/down, other custom horizontal mouse wheel bindings are changed to vertical.

Bugfixes

Scripting

  • Fixed accumulators with circuit connectors not working correctly when exported through get_blueprint_entities(). (https://forums.factorio.com/29727)
  • Changed LuaSurface::find_entities/filtered to take either area, position, or neither instead of just area.
  • Added LuaGroup::order read.

0.13.10

Date: 22. 07. 2016

Minor Features

  • Added logistics auto-trash slots: the opposite of logistic request slots.
  • Added --mod-directory: Specifies which mod directory to use

Changes

  • Increased the size of the curved rail bounding boxes slightly so trains won't damage things built next to them.
  • Server stdout messages now contain timestamps and message-type tags
  • Biters and other units won't become aggressive as a result of friendly-fire.

Bugfixes

Optimizations

  • Improved performance when building large electric poles in the latency state by click-and-drag. (https://forums.factorio.com/29104)
  • The game's main loop has been rewritten. This should increase performance in some cases and fixes some freezes and stability issues.
    • For example game freezing when changing system time.

Modding

  • Starting area is now 1.5x the size in tiles (also affects tier_from_start).
  • Fixed manually defining the localised_name of an item didn't work correctly. (https://forums.factorio.com/29148)

Scripting

  • Added LuaEntity::copy_settings() - copies settings from one entity to another as if the player did it.
  • Changed LuaSurface::find_entities/count_entities/filtered to search the entire surface if the area isn't defined.
  • Fixed crash when trying to set compound command with missing list of commands. (https://forums.factorio.com/29164)
  • Fixed technology effects are now applied before the research_completed event is fired. (https://forums.factorio.com/29451)
  • Added LuaGameScript::direction_to_string(...) - converts a defines.direction to the string name.
  • Added LuaPlayer::clean_cursor() - acts as if the player pressed the "clean cursor" key.
  • Added LuaEntity::mining_target read.
  • Added properties to LuaSurface::create_entity to make the creation act as fast-replace building.
  • LuaGameScript::take_screenshot now has an additional field "by_player" that when set will cause the screenshot to only be taken on that players local game.
  • Added LuaEntity::circuit_connected_entities - the entities directly connected to an entity by the circuit network.
  • Added LuaEntity::circuit_connection_definitions - the connection definitions for all wires connected to an entity.

0.13.9

Date: 15. 07. 2016

Changes

  • Updated demo campaign tips images.
  • Updated/Fixed locale entries.
  • Removed --mp-load-game
  • Default value for "Lights render quality" graphics options was changed to 1.0.
    • If config.ini contains value lower than new minimum (0.25) it will be reset to the default value.
  • Lights are rendered with linear filtering to improve quality for lower "Lights render quality" settings. (https://forums.factorio.com/28892)
  • Added tips and tricks for pasting wagon slots and cycling in blueprint book.
  • Mods are now sorted alphabetically in the mods list.

Bugfixes

Scripting

0.13.8

Date: 11. 07. 2016

Bugfixes

Scripting

  • Reverted changes related to 0.13.7 fix for (https://forums.factorio.com/28564). If entity specified in sprite path
    • doesn't have an icon, button will be created anyway, but no sprite will be drawn inside of it.
  • Added LuaGui::is_valid_sprite_path() function
  • Fixed that if a land mine got blown up and replaced by a robot, it wouldn't arm itself. (https://forums.factorio.com/28761)
  • Added LuaPlayer::admin read - if the player is an admin.

0.13.7

Date: 11. 07. 2016

Minor Features

  • Holding the "drop item" key will keep dropping items.
  • Rocks can be mined while holding blueprints.

Graphics

  • Updated the stack inserter technology icon.

Balancing

  • Medium and large worms spawn further from the starting area.

Bugfixes

Scripting

  • Fixed label size issues when using different font sizes or resizing the game window. (https://forums.factorio.com/27722)
  • Fixed crash when trying to create sprite-button with valid SpritePath to sprite that doesn't exist. (https://forums.factorio.com/28564)
    • LuaGuiElement::add won't create sprite-button and returns nil if invalid SpritePath is passed.
  • Added an option to LuaSurface::set_tiles() to disable the correction logic for total control of what the tiles end up as.
  • Added item-group, fluid, tile, virtual-signal and achievement icons to be accessible by the SpritePath used in the sprite-button element.
    • Added SpriteButton to the scripting documentation.
  • Added "grid" to the on_player_placed_equipment event.
  • Added LuaRecipe::localised_name read.
  • Added LuaGuiElement type "scroll-pane".

0.13.6

Date: 06. 07. 2016

Changes

  • Stack inserters are unlocked by their own research that is dependent on advanced electronics and logistics 2.
    • This also solves that stack inserters were available but not buildable in the campaign.
  • Deconstructing and cancel deconstruction can be toggled between by using the modifier key. (https://forums.factorio.com/28092)

Bugfixes

0.13.5

Date: 05. 07. 2016

Minor Features

  • Blueprints with labels will now show the label when holding them to-be-built.
  • Once mining is started over non-resources, resources are ignored until the mine button is released. (https://forums.factorio.com/3995)

Changes

  • Attempting to mutate the 'global' table of a mod in the 'on_load' event handler will result in an error.
    • The 'on_load' event handler is *only* meant for re-registering conditional event handlers and setting up meta-tables.
    • Use 'on_configuration_changed', 'on_init', and migration scripts in all other instances.
  • When connecting circuit wires, the wire will re-anchor to the last entity clicked. (https://forums.factorio.com/28096)
  • Increased collision box of stone walls slightly, to prevent the player getting stuck. (https://forums.factorio.com/28226)
  • Power switch will not show electric sparks in some situations. (https://forums.factorio.com/28026)

Bugfixes

Optimisations

0.13.4

Date: 03. 07. 2016

Changes

  • For performance reasons: latency state blueprint building is automatically disabled if building blueprints with a combined total
    • of more than 300 entities + tiles.
  • Player names are now shown in the description pane instead of just "player". (https://forums.factorio.com/28004)

Bugfixes

Scripting

  • LuaEntity::built_by can be used with ghosts if the inner ghost supports built_by. (https://forums.factorio.com/27769)
  • LuaEntity::recipe can be read off furnaces as well as assembling machines.

0.13.3

Date: 01. 07. 2016

Changes

  • Slightly reduced big electric pole collision box to allow squeezing between big pole and accumulator.
  • Increased the distance between items on the belt from 0.28 to 0.28125.

GUI

  • Only games with the same application version are displayed in Browse Games screen.
  • Removed tabs from Browse Games and Browse Mods screens and tweaked column widths.

Bugfixes

0.13.2

Date: 30. 06. 2016

Changes

  • Damage bonus in turret tooltip will now show both basic turret damage multiplier and turret damage bonus from research. (https://forums.factorio.com/27486)
  • Limited multiplayer game name length to 60 characters.
  • Moved the copper wire back to the intermediate category in the recipes.
  • Inserters connected to the circuit network now have the option to only read hand contents.
  • During biter migration, medium worms can now only spawn if the evolution factor is greater than 0.3, and big worms require evolution factor of 0.5.

Bugfixes

Optimisations

  • Optimized rendering of huge pollution clouds on map.

Scripting

  • Added LuaEntityPrototype::spawn_cooldown - the spawn cooldown for enemy spawners.
  • Added LuaEntity::power_production and power_usage read/write for the ElectricEnergyInterface type entity.

0.13.1

Date: 29. 06. 2016

Changes

  • Added /demote to demote players from admins

Bugfixes

Modding

  • Added mandatory reversing_power_modifier property into locomotive prototype definition.
  • Changed the logistic-robot-storage and logistic-robot-speed modifiers to worker-robot-storage and worker-robot-speed

0.13.0

Date: 27. 06. 2016

Major features

  • Improved Multiplayer game UX (see https://www.factorio.com/blog/post/fff-139 and https://www.factorio.com/blog/post/fff-116).
    • Server games are published to the server and clients can browse existing games.
    • Automatic discovery for the LAN games.
  • Mod Portal integration. Factorio can list and install mods from the mod portal. (https://mods.factorio.com)
  • Achievements and Steam Achievements integration. (https://www.factorio.com/blog/post/fff-125)
    • Modded games won't have the achievements recorded on steam.
  • Rail planner tool simplifies the rail building. (https://www.factorio.com/blog/post/fff-113)
  • Added fire. Fire will spread between trees and cause forest fires, causing a large amount of pollution to be released.
  • Power switch. It can be used to control the energy flow. Power switch can be connected to the circuit network. (https://www.factorio.com/blog/post/fff-115)
  • Added the Stack inserter - an expensive upgrade over fast inserters that can move several more items at a time.
  • Flamethrower turret. Fueled with fluid, shoots a stream of burning oil towards oncoming enemies.
  • Bonus GUI (accessible from sidebar GUI) showing bonuses the force has researched.
  • Train station window contains a list of all trains (each can be opened) that have that station on their schedule.
  • Single train GUI now has an additional panel which shows the minimap/camera view of the given train.
  • Search field to the filter selection and recipes selection windows.
  • Trains GUI. It displays all the trains as small minimaps with schedules, which can be searched.
  • Extension of the train wait conditions. (https://www.factorio.com/blog/post/fff-114)
  • New locomotive, cargo wagon and train stop graphics. Locomotives can be colored. The trains are a consistent size in horizontal and vertical orientations.
  • New technology tree GUI. (https://www.factorio.com/blog/post/fff-128)

Minor Features

  • Blueprints can be now edited.
  • Added the Blueprint Book item - an item to manage blueprints. The book can be renamed and only holds blueprints.
  • Map generator algorithm changed, further resource field now have greater richness.
  • Added landfill, it can be used to replace water areas with grass.
  • Added yellow/black striped concrete tile that is rotatable.
  • Small sidebar GUI containing buttons for main menu, production statistics, etc.
  • Armors have inventory size bonuses (10 for modular armor, 20 for power armor, 30 for power armor mk2).
  • Underground pipes and belts are placed at max connecting distance apart when built by dragging.
  • --scenario2map: Creates a save from a custom scenario, without initializing the graphics.
  • The lamp can change it's color based on circuit network signals.
  • Roboport is connectable to the circuit network. It sends the logistic network contents or the robot statistics of the network.
  • Accumulator is connectable to the circuit network. It sends it's charge level as a percentage.
  • Transport Belt is connectable to the circuit network. It can be turned on or off and it can send it's contents to the circuit network.
  • Rail Signal is connectable to the circuit network. It will send the signal's state and can block trains from passing.
  • Gate can be controlled through the circuit network by connecting to the wall next to it. It can be opened manually or send a signal if the player is nearby.
  • Requester chest's requested items can be set automatically from the circuit network.
  • Inserters can now send the item held in hand to the circuit network. Filter inserters can have their filters set automatically from the circuit network.
  • Most entities that can be turned on or off by the circuit network can also be turned on or off by directly using a logistic condition.
  • Circuit network and logistic network conditions can now be accessed by icons in the top-right corner of the entity's GUI, for all connectable entities.
  • Connected Red/Green wires are highlighted when hovering over a combinator or entity connected to the circuit network.
  • Wire disconnecting is incorporated in the latency hiding.
  • Crafting machine item/fluid total craft counts are recorded per force.
  • Intro sound in the loading screen.
  • Improvements to the statistics GUI (electric network/production info).
    • Added the ability to filter out things.
    • Added the ability to view "all" information recorded.
    • Made the GUI scrollable.
  • Added /ban /kick /bans /admins and /admin commands.
  • Added /color command, so changing color doesn't require access to Lua commands.
  • When running as a server, Factorio now accepts console commands on standard input.
  • When running as a server, Factorio can be told to listen for RCON connections.
  • New parameter to start the headless server: --start-server-load-latest. Instead of accepting a save name, it will automatically load the latest save in the saves folder.
  • The "disallow-commands" flag has been changed to "allow-commands" and accepts "true", "false", and "admins-only" for values.
  • It is stored and shown which player built each of the machines.
  • Added cluster grenades and grenade upgrades.
  • Added flamethrower and flamethrower turret damage upgrades.
  • When creating a new map using the --create command-line option, --map-gen-settings can be used to specify the map generation settings.
  • Log file reopening on SIGUSR1 and a commandline option to disable log rotation.
  • The default font looks better (improved hinting for the thinnest weight).
  • Labels and values in descriptions have different colors.
  • Item health bars are rendered green, yellow, red based off the % health remaining like entities.
  • Modules support in blueprints.
  • Equipment can be put in open equipment grids using standard inventory shortcuts (shift + click, ctrl + click).

Ease of use

  • Turret displays its range when you hover over it.
  • Rail signal/train stop placement indicator. (https://www.factorio.com/blog/post/fff-134)
  • Indicator of train vehicle positions in a station when building next to track where would the train stop.
  • It is possible to change the module in the slot to different one without having to clear it first.
  • It is possible to upgrade modules to more powerful variant in machine by fast entity transfer.
  • Clear cursor first cancels the current action (rail building, wire dragging, blueprint/deconstruction), and only removes the item from the cursor when pressed again.
  • Saving a game changes selected name and directory for next saves. (https://forums.factorio.com/19461)
  • Clicking different filtered slot in quickbar will try to clear the currently selected quickbar item if possible.
  • Cleaning item in cursor that is taken from quickbar slot will try to refill the slot from the inventory if possible.
  • Clicking on the warning icon will open the location on the map.
  • Pressing E/Escape will close the map mode.
  • It is possible to move the map by clicking and dragging.
  • Hovering mouse over inventory logistic request slots makes matching items in inventory be highlighted.
  • Fixed the zoom to cursor feature introduced in 0.8 that was non functional since 0.10.
  • Improved the rail selection logic in junctions.
  • Stone Rock can now be mined and deconstructed by robots. It gives some stone as resource.
  • Combinators input and output arrows in alt mode. Additional alt mode information can be turned on in the options menu.
  • The constant combinator has an on/off switch.
  • Several non-stackable items can be swapped directly with counterparts (power armor, deconstruction planner, selection tools).
  • Inventory filter slots can be copy-pasted from empty slots onto empty slots using the stack transfer/split controls (shift + left click, shift + right click by default).

Balancing

  • The productivity module pollution addition was lowered (30%->5%, 40%->7.5%, 50%->10%), as the pollution generated by the machine is already increased
    • by the additional energy production and time, it doesn't need to be so high as the modules are quite expensive already.
  • Repair packs have double durability (100->200) and stack size (50->100).
  • Changed stack size of raw wood (50->100) so it doesn't fill the inventory so quickly.
  • Roboport have decreased transmission power consumption (200kw->50kw) while the robots (and their recharging) has increased power consumption (200kW per recharge slot to 1Mw per slot)
    • Basically, covering area by roboports is cheaper, but using robots for transport is more expensive. To keep the personal roboport usefulness, energies used in personal roboport have been
    • all multiplied by 10.
  • Inserters are able to squeeze things "slightly" better to belts. more resources.
  • Increased size of several green science and few blue science technologies.
  • Increased inventory size of cargo wagon. (30->40)
  • Oil yield drains to 10% two times slower.
  • Big and behemoth enemies spawn 50% slower.
  • Armor resistances are applied before the energy shield is used.
  • Increased the ghost time to live when something is destroyed from 5 + 5 minutes to 30 + 30 minutes.
  • Halved the mining time of rails, rail signals and walls.
  • Changed the way evolution factor approaches the maximum (1).
    • The addition of evolution factor was changed from addition * (1 - evolution) to addition * (1 - evolution)^2
    • This means that the progress gets more slower towards the high values.
  • Balanced train acceleration and top speed, additional wagons no longer slow trains so strongly.
  • Changed the amount of items requested when copy-pasting assembling machines to requester chests for several recipes.
  • Express underground belts require lubricant to match the express belts and express splitters.
  • Increased battery equipment power storage, input, and output by a factor of 20.

Changes

  • Reduced number of connections drawn between roboports in blueprint and roboports on map.
  • More virtual signals for combinators.
  • Virtual signals can be used in blueprint icons.
  • Disabled loading of saves before 0.10.0 version (You can use 0.10.12 to load older saves and re-save them).
  • Removed multiplayer peer-to-peer mode.
  • Ghosts created by player no longer expire and can be placed before researching any technologies.
  • Ghosts are brighter and easier to see.
  • Alert of destroyed entity exists 2 times longer.
  • Quickbar filters are set and unset using the same key.
  • Loading a scenario without control.lua will automatically load the freeplay game mode scripts.
    • This means new maps created in the map editor will get the freeplay game mode.
  • Loading a scenario in the map editor will preserve it's scripts.
    • This means custom freeplay/sandbox maps can be created in-game.
  • Constant combinator can be rotated.
  • All types of inserters can be controlled by the circuit and logistic network, once the respective network is researched.
  • All types of chests can be connected to the circuit network. Smart Chest was removed from the game.
  • Decider combinator "input count" option makes the combinator copy the count of the specified output signal from the input signals,
  • Transport belt connectable entities will disconnect from incoming (and all other) belts when marked for deconstruction.
  • Spaces are now allowed in file names when saving.
  • Changed the fluid color of heavy oil to match the icon color.
  • Alert beep sound is activated only when something is destroyed, not by something damaged.
  • Spitter attack distance is randomized slightly to make them look more organic.
  • Rocket fuel can now be used as fuel.
  • Saves given on command line (to options --start-server, --mp-load-game, --load-game, --create) are always absolute or relative paths.
    • If the path is relative, it is relative to the current directory (where the binary is run from).
  • Main menu background image is scaled proportionally now. (https://forums.factorio.com/26090)
  • Renamed "research-effectivity" to "research-speed".
  • Removed light entity info background option.
  • Cleaned up freeplay and sandbox scenario scripts.
  • Exiting vehicles now puts you to the left of the vehicle with respect to the orientation of the vehicle.

Graphics

  • Health bars are partially visible when obstructed.
  • High resolution in-game indicators.
  • New fire graphics for Stone Furnace, Steel Furnace and Boiler.
  • New icons for rocket fuel, low density structure, rocket control unit, satellite, car and tank.
  • Entities show a circuit connector when connected to the circuit or logistics network.
  • Added compression for some sprites to save video memory. This can be enabled in Graphics options.
  • Added linear filtering for GUI icons. This can be disabled in Graphics options.
  • New combinator graphics.

Optimisations

  • Optimised GUI render.
  • Minimap is rendered in 16bit colors to reduce memory usage.
  • Less memory usage for entities that are connectable to the circuit network.
  • Faster map unload on Quit to Main Menu or closing the game.
  • Optimized pollution rendering on map and minimap.
  • Optimised roboport radius rendering.
  • Optimised biter pathfinding. (https://www.factorio.com/blog/post/fff-117 https://www.factorio.com/blog/post/fff-121)
  • Optimised save file times by doing compression in parallel.

Bugfixes

Modding

  • Mods need to have factorio_version value in their info which specifies major Factorio version they are suited for, default value is 0.12.
    • Mods with non fitting version are not loaded.
  • Added item_pickup_distance and loot_pickup_distance to player definition.
  • Added invalid parameter error for data.extend function.
  • Added the ability to define additional_pastable_entities for an entity which allows copy-paste between that entity type and the defined destination types.
    • Useful in conjunction with the new copy-paste events.
  • Added a new item type "selection-tool" that fires the events on_player_selected_area and on_player_alt_selected_area.
  • Unified prototype names to be consistent with in-game names. (basic-transport-belt->transport-belt, *transport-belt-to-ground->*underground-belt, basic-splitter->splitter,
    • basic-inserter->inserter, basic-mining-drill->electric-mining-drill, basic_beacon->beacon, basic-bullet-magazine->firearm-magazine, piercing-bullet-magazine->piercing-rounds-magazine,
    • basic-grenade->grenade, basic-armor->light-armor, basic-modular-armor->modular-armor, basic-laser-defense-equipment->personal-laser-defense-equipment,
    • basic-exoskeleton-equipment->exoskeleton-equipment)
  • Construction robots will now use any available repair tool items instead of a fixed single item defined in the prototype for the robot.
  • Various indicator and game icons are defined in the utility-sprites objects, so it is now moddable.
  • Added new research options: character-crafting-speed, character-mining-speed, character-running-speed, character-build-distance, character-item-drop-distance,
    • character-reach-distance, character-resource-reach-distance, character-item-pickup-distance, character-loot-pickup-distance, character-inventory-slots-bonus,
    • deconstruction-time-to-live, character-health-bonus
  • Sticker entity can deal damage.
  • Added a new entity type "electric-energy-interface" that can consume, produce, and accept energy while also allowing all of its electric network parameters to be configured runtime.
  • Added flags to energy_source prototypes "render_no_network_icon" and "render_no_power_icon" to prevent rendering those icons when set.
  • Removed "inventory_order" prototype property as it wasn't actually used and isn't needed.
  • Removed "radius_visualisation_picture" and "construction_radius_visualisation_picture" from roboport and roboport-equipment prototypes. The pictures were moved to core.
    • If needed you can use "draw_logistic_radius_visualization" and "draw_construction_radius_visualization" Boolean properties to disable drawing radius in your prototype.

Scripting

  • Moved LuaGame::daytime/wind/wind_orientation/wind_orientation_change/peaceful_mode to LuaSurface.
  • Added LuaEntity::held_stack_position. It tells you the world position of the inserter arm.
  • Added LuaGame::delete_surface. Deletes the surface passed in if the surface is deletable.
  • Added LuaItemStack::create_blueprint() - sets up a blueprint as if a player did it.
  • Added LuaItemStack::build_blueprint() - builds a blueprint as if the player built it in the world.
  • Added LuaSurface::deconstruct_area() - deconstructs an area as if the player did it.
  • Added LuaSurface::cancel_deconstruct_area() - cancels deconstruction over an area as if the player did it.
  • Added on_pre_entity_settings_pasted and on_entity_settings_pasted events that pass the source and destination entities involved.
  • Added "robot" to the robot related events.
  • Added "chunk_position" to the on_sector_scanned event.
  • Added optional "player_index" to on_marked_for_deconstruction/on_canceled_deconstruction when fired due to player actions.
    • This field is nil when fired from from script/non player action.
  • Added LuaEntity::crafting_progress/bonus_progress write.
  • Added LuaForce:: item/fluid/resource/build counterparts to kill_counts.
  • Added LuaFlowStatistics - used to read/write statistics data related to a given force (production, kills, etc).
  • Removed LuaForce:: set_kill_count/get_kill_count/kill_counts - these are now readable through LuaFlowStatistics.
  • Added LuaGame::disable_replay() - disables the replay for the current save game.
  • Added several player related events: on_player_cursor_stack_changed, on_player_main_inventory_changed, on_player_quickbar_inventory_changed,
    • on_player_tool_inventory_changed, on_player_armor_inventory_changed, on_player_ammo_inventory_changed, on_player_gun_inventory_changed,
    • on_player_placed_equipment, on_player_removed_equipment, on_pre_player_died, on_player_died, on_player_respawned, on_player_joined_game, on_player_left_game
  • Added events for tile building: on_player_built_tile, on_player_mined_tile, on_robot_built_tile, on_robot_mined_tile
  • Added LuaEntity::damage_dealt/kills read/write - usable with turrets.
  • Added LuaGameScript::active_mods - a table of active mod names to mod versions.
  • Added LuaEquipmentGrid::get - gets the equipment at the given equipment grid position or nil if none.
  • Added LuaEntity::player, returns the player connected to the character entity.
  • Added LuaInventory::get_filter, set_filter, has_filters, can_set_filter methods to set/get/clear filters on inventories that support them.
  • Changed LuaEntity::get_filter/set_filter parameters around to match the inventory versions. They also now only work on inserter filters.
  • Added LuaPlayer::get_craftable_count/begin_crafting/cancel_crafting/crafting_queue to read/write crafting information for a player.
  • Added modifiers to the character entity that stack with the force research bonuses but are unique to the character: character_crafting_speed_modifier, character_mining_speed_modifier, character_running_speed_modifier, character_build_distance_bonus, character_item_drop_distance_bonus, character_reach_distance_bonus, character_resource_reach_distance_bonus, character_item_pickup_distance_bonus, character_loot_pickup_distance_bonus, quickbar_count_bonus, character_inventory_slots_bonus, character_logistic_slot_count_bonus, character_trash_slot_count_bonus, character_maximum_following_robot_count_bonus, character_health_bonus
  • Added LuaTilePrototype accessible from LuaTile::prototype and LuaGameScript::tile_prototypes.
  • Added LuaEquipmentPrototype accessible from LuaEquipment::prototype and LuaGameScript::equipment_prototypes.
  • Added LuaGuiElement::tooltip read/write - a localized tooltip for any GUI element.
  • Added LuaCircuitNetwork readable off entities with circuit network connections and through control behaviors.
  • Changed StickerPrototype::magnitude to StickerPrototype::target_movement_modifier. Speed of a Unit is not multiplied by value of target_movement_modifier.
  • Added optional "limit" field to find_entities_filtered and count_entities_filtered to limit the results.
  • Added "force" to the entity_died event when the killing force is known - nil otherwise.
  • Added LuaEntity::unit_number - read - a unique ID field used by all entities having owners.
  • Added LuaInventory::index - the inventory index the inventory reference uses.
  • Added LuaEntity::supports_backer_name() - true when an entity supports a backer name.
  • Added LuaEntityPrototype::belt_speed and underground_belt_distance read.
  • Added LuaEntityPrototype::result_units the result units a biter spawner can spawn.
  • Added LuaItemPrototype::ammo_type read.
  • Multiple stickers (i.e. slowdown capsule + fire) can be applied to a unit entity.
  • Added LuaEntity::get_quickbar() - gets the quickbar of the character or player.
  • Changed LuaEntity::color to work for locomotives, cargo wagons, and characters - it will return nil if used on other entities.
  • Added LuaEntity::mining_progress/bonus_mining_progress read write - for mining drill entities.
  • Added LuaEntityPrototype::attack_result - the attack result for entities using attacks (beams, fire, landmines, projectiles).
  • Added LuaEntityPrototype::final_attack_result - the final attack result of a projectile.
  • Added LuaFluidPrototype::base_color + flow_color read.
  • The Train changed state event now fires when a train goes from stationary to moving or from moving to stationary while under manual control.
  • Prototypes can have the optional properites "localized_name" and "localized_description" to manually define the localized keys instead of using the auto generated keys.
  • Added sprite-button GUI element, works the same way as button, but it can have sprite name assigned.
  • Added sprite GUI element, can have the sprite name assigned/changed and has no interaction logic.
  • Custom sprites can be defined in Lua data definition (type = sprite, the rest is sprite definition).
  • Sprite identifier can either point to custom definition from the data, or have form <type>/<id>, type can be (item, entity, recipe and technology), for example button.sprite = "item/iron-plate"
  • Renamed some defines (groupstate->group_state, circuitconnector->circuit_connector, circuitconditionindex->circuit_condition_index, trainstate->train_state)
  • Removed game.regenerate_tiles().
  • Removed game.get_player() and game.get_surface(): game.players[] and game.surfaces[] can be used instead.
  • Changed game.players, game.surfaces, game.entity_prototypes, game.item_prototypes, game.fluid_prototypes, force.recipes, force,technologies to use custom access + iterator objects for improved performance.
  • Changed game.players[] to work with both the player index and the player name.
  • Added on_GUI_text_changed and on_gui_checked_state_changed events.
  • Changed "defines" so they're available by default and removed the defines.lua file.
  • Renamed LuaForce::logistic_robot_storage_modifier -> logistic_robot_storage_bonus to better match what it does
  • LuaEntity has built_by read/write.
  • game.player has been removed (use game.players[#] and associated event.player_index during events).
  • game.local_player has been renamed to game.player and now works through remote calls.
  • Offline players can be teleported anywhere (between surfaces or just around).
  • entity.get_inventory(index) returns nil if it doesn't have an inventory for the given index instead of giving an error.
  • entity.riding_state can be set on cars without players and the car will act as if it's being driven by a player (consume fuel).
  • Changed LuaForce::current_research to accept "nil" to stop the current research.
  • Added LuaTrain::front_stock and back_stock the front and back rolling stock entities of the train.