Version history/0.17.0
Jump to navigation
Jump to search
0.17.15
Date: 18.03.2019
Changes
- Fixed that trains wouldn't depart for temporary stops when waiting at a station. (more)
- Fixed that two headed train running out of fuel didn't trigger the out of fuel alert in one of the directions. (more)
- Improved Compilatron's ability to select a free space when indicating structures by a factor of 16.6.
- The player must now wait for Compilatron to follow before being allowed to evacuate the first area of the NPE.
- The player must collect at least some of their structures before evacuating the first area of the NPE.
- Updated the player spawn after big biter attack in case the player wants to check how aggressive the biters are.
- Compilatron now has its own icon.
- Biters and worms in the NPE will now be aggressive except in special situations.
Gui
- It is now possible to scroll horizontally with a touch pad in the tech tree view. (more)
Bugfixes
- Fixed bugged Compilatron speech in NPE when showing blocked miner.
- Turrets placed in the starting area will now be detected during the entrench step of the NPE. (more)
- Fixed flamethrower turret range visualization was rendered in wrong layer. (more)
- Fixed editing map gen settings in the map editor would crash the game. (more)
- Fixed that robots would still try to deconstruct trains that left their network. (more)
- Reduced screen tearing on Windows 7 when Aero is disabled. (more)
- Fixed that converting games to scenarios and back could corrupt script global data. (more)
- Fixed that disabling friendly fire prevented fish from healing. (more)
- Fixed that LuaEntity::destroy({do_cliff_correction=true}) was ignored. (more)
- Fixed toggle state of item selection buttons when clicked with item to fast-select. (more)
- Fixed that the Q that cancels wire dragging also removed the hand from the quickbar. (more)
- Fixed that selecting quickbar slot while dragging wire only cancelled the dragging, but had to be pressed again to select the slot. (more)
- Fixed that modded fluid streams could crash the game in some situations. (more)
- Fixed that keys blocked by textfield didn't include CONTROL + A (to select all), the same way as it is doing for (CONTROL + C/V/X). (more)
- Fixed the double-click to clear functionality of number text field. (more)
- Fixed a crash when migrating mods related to assembling machines and fluids. (more)
- Fixed that exporting a blueprint to the library could crash the game. (more)
- Fixed a crash when a modded assembler is built over a ghost of assembler with different rotation. (more)
- Fixed damage technology migrations not migrating infinite technologies properly. (more)
- Potentially fixed a Linux-specific bug where the game would react to key presses not intended for it. (more)
Scripting
- Added LuaGameScript::create_profiler() which can be used to measure script performance.
0.17.14
Date: 15.03.2019
Bugfixes
- Fixed that research queue setting in the New Map GUI wouldn't remember its value. (more)
- Fixed a crash when hand replacing an assembler ghost with fluid mixing. (more)
- Fixed migration of fluid-using modded mining drill.
- Fixed ten_minutes modifier bug in NPE.
- Fixed broken resetting of scenario context.
0.17.13
Date: 15.03.2019
Changes
- Modified NPE quest structure to give the player more notice of impending attacks
- Added missing Steel plate recipe to NPE tech tree (more)
- Removed unneeded Iron stick recipe from NPE
- Fast replacing between rail signal and rail chain signal will preserve circuit wire connection and relevant settings. (more)
Bugfixes
- Fixed that the evolution pollution factor wasn't migrated properly. (pollution was increasing evolution 16.6 times faster than it should for existing saves).
- Fixed a crash when trying to assign invalid things to LuaPlayer::game_view_settings. (more)
- Fixed that replays could trigger autosaves and take screenshots. (more)
- Fixed that changing mod settings through Lua commands wouldn't trigger the settings-changed event. (more)
- Fixed that /config didn't support name, description, or tags. (more)
- Fixed a crash when using temporary stations. (more)
- Fixed that drop-item into vehicles didn't work. (more)
- Fixed that resizing the window while loading on 4k screens would cause the progress bar to not render. (more)
- Fixed that the crafting queue GUI wouldn't show correctly when loading a save with crafting in progress. (more)
- Fixed text box line wrapping didn't work correctly in most cases. (more)
- Fixed a crash when re-joining a multiplayer game while the tips-and-tricks window is visible.
- Fixed a crash when opening the set-filter GUI on the ammo inventory of other player using the /open command.
- Fixed that the pollution generation of steel furnace wasn't what it was supposed compared to 0.16.
- Fixed that you could die during a cutscene and become a ghost when it ended. (more)
- Fixed that you could die with required items in your inventory and make the NPE unwinnable. (more)
- Fixed that some turrets wouldn't be detected by the quest objectives in the NPE. (more)
- Fixed issue with detecting Steam engine on network in NPE (more)
- Fixed biters getting stuck in massive clumps in NPE (more)
- Fixed biters becoming frozen after arriving at target destination in NPE (more)
- Fixed crash when mining scrap metal in NPE (more)
- Fixed biters losing aggression after save/load during NPE (more)
- Fixed some windows in the NPE having inconsistent header draggable textures (more)
- Fixed build order for Compilatron in NPE so it is more successful (more)
- Fixed set_active_quick_bar_page not updating the GUI. (more)
- Fixed that waiting on temporary stop was reset every time other station was added. (more)
- Fixed that blueprints with trains and rails still could snap the trains to different rails. (more)
- Fixed LuaGameScript::take_screenshot with anti_alias = true would produce bad screenshots (more)
- Fixed that snapping to position while building ghost didn't update the ghost position properly, leading to invisible entities in rare cases. (more)
- Fixed a crash when destroying trains while in the paused map editor state. (more)
- Fixed that recipes could be setup to produce > 1 count of items that are never meant to be stacked. (more)
- Fixed that creating a new blueprint and pressing Q after it was setup removes it instead of putting it into inventory. (more)
- Fixed LuaGameScript::take_screenshot with anti_alias = true would produce bad screenshots. (more)
- Fixed Artillery targeting remote not showing the correct ability count in the quickbar. (more)
- Fixed scrolling through blueprint book with Shift+mouse wheel on macOS. (more)
- Fixed Artillery targeting remote not showing the correct ability count in the qickbar. (more)
- Fixed that blueprint shortcuts in quickbar linked to the library wouldn't remember their orientation. (more)
0.17.12
Date: 14.03.2019
Features
- Added pollution tab to the production statistics.
Minor Features
- Spawner tooltip (including the pollution statistics), shows distribution of biters spawn for the current evolution factor with the pollution costs.
- Added attack modifier setting into the pollution section in the map generator. This modifies how much pollution is consumed by biters attacking. (default is 50% for deathworld presets)
Changes
- Pollution generation is now shown in the x/s format both on the entity and in the item/crafting slot.
- All statistics graphs apart from electricity use smoothing now.
- The Install Mods GUI will now automatically install required dependencies.
- Added graphics option "Render in native screen resolution" on macOS to workaround performance issues due to rendering on Retina displays. (more)
Bugfixes
- Added another fixing migration of consistency related to undo.
- Fixed that inserters wouldn't copy the white list/black list setting during fast-replace. (more)
- Fixed that building/removing signals forced train in disabled station to move from it. (more)
- Fixed that the name of the "Undo" shortcut wouldn't show up in the shortcut selection list. (more)
- Fixed that the blueprint book shortcut's tooltip wouldn't show the assigned key combination. (more)
- Fixed search bar focus being lost when binding it to extra mouse buttons. (more)
- Fixed that shortcut bar keyboard shortcuts would appear twice in the control settings if certain mods were installed. (more)
- Fixed that backspacing text covered by unclosed rich text tags could leave them at the end of the string. (more)
- Fixed that technology tooltip would show "unknown key" for technologies with no description. (more)
- Fixed unable to close the menu when rebinding toggle menu from ESC. (more)
- Fixed that modded GUI window frames always contained header filler. (more)
- Fixed save file would contain two preview screenshots. (more)
- Fixed typo in decoratives.lua. (more)
- Fixed that cloning assembling machines wouldn't preserve the direction for some recipes. (more)
- Fixed bug with typing certain characters on alternative keyboard layouts on windows. (more)
- Fixed a crash of generators whose prototype changes to not use fluid anymore. (more)
- Fixed some crashes related to changes of modded fluid recipes. (more)
- Fixed NPE bug when Compilatron walks over the iron patch when he's about to build miners. (more)
- Fixed switching to map view when holding placeable item in cursor would make the item icon invisible. (more)
- Fixed cloning rocket silos with rockets wouldn't work correctly. (more)
- Fixed broken and missing support of modded underground pipe connections. (more)
- Fixed not being able to use the same key for some actions. (more)
- Fixed that releasing Alt before D when pressing Alt+D would cause the character to walk.
- Fixed that order of items in the circuit network did not respect group and subgroups. (more)
Modding
- Internal pollution values have been normalized, and they are now roughly 60 times less compared to what they were.
Scripting
- LuaPlayer::get_active_quick_bar_page now returns 1 based index.
0.17.11
Date: 11. 03. 2019
Bugfixes
- Fixed that the process name was set to "Main" on Linux. (more)
- Fixed a crash when closing GUIs with escape in some cases. (more)
- Fixed a crash when mods set repair pack speeds or entity repair speed modifiers to negative values.
- Fixed that focus-search wouldn't work in the Recipe GUI or Map Editor. (more)
0.17.10
Date: 11. 03. 2019
Changes
- Terrain generator options are preserved by the map generator GUI unless explicitly changed.
- Changed landfilling result to be tile called "landfill" instead of tile called "grass-1". It looks the same for now, but it solves some unexpected behaviour. We might give it a custom graphics later on. (more) Existing blueprints containing "grass-1" will be migrated to the "landfill" tile.
- The game will load without an error when non-essential shaders fail to compile. (more)
- When a player dies in the Wave defense, the free equipment will be removed from the corpse.
Minor Features
- "Make Blueprint", "Make Blueprint Book", "Make Deconstruction Planner", "Make Upgrade Planner", "Toggle Personal Roboport", and "Toggle Exoskeleton" functions are now accessible via keyboard shortcuts.
Bugfixes
- Fixed references to nonexistent noise expressions in map gen settings would crash the game.
- Fixed a crash when trying to read Lua drop-down font style names. (more)
- Fixed a crash when trying to join a Steam game fails in some cases. (more)
- Fixed crash related to latency hiding and undo.
- Fixed that map generation wouldn't always update to reflect modded noise expressions.
- Fixed a crash when the open GUI target would become invalidated during the same tick as autosave starting.
- Fixed that the repaired lab showed in the bonus GUI. (more)
- Fixed NPE crash when Compilatron tried to place his chest. (more)
- Fixed that Control+F didn't work in the trains GUI. (more)
- Probably fixed GUI not responding to user input in some situations. (more)
- Fixed scaling of some of the debug info text overlay. (more)
- Fixed headless server would be stuck in reset loop when trying to apply an update. (more)
Scripting
- Added LuaGuiElement::select_all and select methods that work for textfield and textbox.
0.17.9
Date: 08. 03. 2019
Changes
- Disabling station with train waiting in it doesn't force the train to departure anymore so it works as it worked in 0.16. It looked like a useful change for 0.17, but we can control train conditions by circuit network and there are some nice and simple use cases were ruined by trains being forced to departure when the stop is disabled. (more)
- Changed expensive version of assembling machine 2 recipe to match the normal version better. (more)
Minor Features
- Added map editor support to delete items.
Bugfixes
- Fixed pipette making error sound in latency state even though you have enough items. (more)
- Fixed that technologies would sometimes disappear from the technology list when added to the research queue. (more)
- Fixed problems related to circuit network connection inconsistency related to undo. (more)
- Fixed NPE issue where Compilatron could destroy essential buildings. (more)
- Fixed NPE crash when Compilatron tells you to pick up scrap. (more)
- Fixed that he bonus GUI wouldn't show personal equipment. (more)
- Fixed using special-item tags would cause desyncs. (more)
- Fixed NPE crash when Compilatron tries to point at an object that doesn't exist any more. (more)
- Fixed Local errors in scenarios would crash the game when viewing scenarios in the GUI. (more)
- Fixed that reviving and underground belt could sometimes change it's direction. (more)
- Fixed a crash when using modded recipes in furnaces with fluids. (more)
- Fixed that the active-version selector in the mods GUI didn't work. (more)
- Fixed that randomizing map seed didn't have any effect after an exchange string was loaded. (more)
- Fixed that resources wouldn't be rendered correctly in the map preview. (more)
- Fixed miscalculation of peak influence in autoplace specifications with more than 2 peaks. (more)
- Layout fix related to technology gui. (more)
- Fixed crash when running out of space in physical texture used for streaming. High detail textures will be evicted instead. (more)
- Fixed that mod settings could get scrambled/reset when adding removing or changing mods. (more)
- Fixed that you could open blueprint books/armor multiple times. (more)
- Fixed that the train inactivity wait condition time was limited to 120 seconds. (more)
- Fixed a crash when exiting the game through the "X" button from a tutorial. (more)
- Fixed the shadows of some GUIs when circuit network window is shown. (more)
- Fixed menu background image would be scaled with poor quality. (more)
- Fixed crash related to beam creation when the source or target is removed in the process. (more)
- Fixed a hand logic related to loading a save with different mod settings which results in to the cursor being item removed.
- Fixed being unable to clear "X"(missing blueprint) icon from the quickbar. (more)
- Fixed that train two stations of the same name in the train schedule could crash the game. (more)
- Fixed consistency check for signal state of train on the way. (more)
- Fixed issues with pipes disconnected w/o reason. Added stricter checks for new occurrences. (more)
Scripting
- Added LuaSurface::min_brightness read/write.
- Added LuaEntity::get_connected_rails(), get_rail_segment_entity(), get_rail_segment_end(), get_rail_segment_length(), and get_rail_segment_overlaps().
0.17.8
Date: 07. 03. 2019
Bugfixes
- Fixed modded multiplayer games would incorrectly show a mod-mismatch error (again). (more)
- Fixed queued GUIs didn't work correctly. (more)
- Fixed that terrain selectors other than 'elevation' messed with the water/island controls (more)
- Fixed PvP running on_init when it was already initialised. (more)
- Fixed that replacing an underground pipe by a pipe could cause fluid mixing in a special situation. (more)
- Fixed that upgrading entities with the upgrade planner would erase the last-user. (more)
- Fixed a crash in the update mods GUI.
- Fixed incorrect styling in the update mods GUI in some cases.
- Fixed crash when loading a save during a cutscene when following a unit. (more)
0.17.7
Date: 06. 03. 2019
Bugfixes
- Fixed game.players[#] would be treated as game.players[tostring(#)].
- Fixed inserter/mining drill interaction indications would still render for mined-in-latency-state entities.
- Fixed inserter/mining drill interaction indications wouldn't render in some cases and would ignore ghosts in some but not all cases.
- Fixed that the game would incorrectly think some mods wouldn't be required when joining multiplayer games even though they are.
- Fixed some key bindings not working correctly until game restart. (more)
- Fixed a crash when changing entity ghosts with wire connections through the upgrade planner. (more)
- Fixed that the prevent-robots-from-working-because-i-am-driving-too-fast logic still wouldn't work in some cases. (more)
- Fixed that highly nested recipes would freeze the game. (more)
- Fixed a crash when loading saves that contain connected cliffs that will be removed due to mod migrations/removals. (more)
- Fixed statistics graphs crashing when releasing shift with a tooltip active. (more)
- Fixed rendering of tile transitions on Sandy Bridge iGPUs for real this time. (more)
- Fixed that it was possible to add a blueprint to other player's shared blueprints. (more)
- Fixed that undo was not preserving ghost entity module requests. (more)
- Fixed that undo was not preserving circuit connections. (more)
- Fixed that un-researching technology wouldn't update GUIs correctly. (more)
- Fixed PvP scenarios created in 0.16 and loaded in 0.17. (more)
- Fixed PvP script error from bad migration data checking. (more)
- Fixed that blueprint that was meant to disappear on Q did not after selecting and cancelling selection. (more)
- Fixed persisting tooltips in the technology gui. (more)
- Fixed set_quick_bar_slot not refreshing item counts in the quickbar. (more)
- Fixed layouting in train configure gui with very long station names. (more)
- Fixed layouting in train configure gui with too long condition translations. (more)
- Squashed labels get a tooltip with the full text in a similar fashion as buttons.
- Fixed that research queue setting wouldn't export to map exchange string properly. (more)
- Fixed incorrect primary screen index in graphics options GUI.
- Fixed some cases of fluid mixing related to underground pipes.
- Fixed crash related to productivity bonus and a catalyst. (When the catalyst count covers all the ingredient count). (more)
- Fixed that the reset button wouldn't update after importing a map exchange string. (more)
- Fixed messed up research in the NPE (more)
Scripting
- Added LuaControl::ghost_cursor read/write.
0.17.6
Date: 05. 03. 2019
Changes
- Updated map-gen-settings.example.json to use numeric multipliers, include cliff richness, and demonstrate expression overrides. (more)
- It is not possible to fast-replace pipe to ground by another that is in an orthogonal direction.
- Changed mining productivity cost to 2500 increase per level to fix that the last change was actually making it 5 times less expensive towards infinity. Lower levels are cheaper on the other hand.
Bugfixes
- Fixed of loading of saves before 0.17.
- Fixed crash related to conflicting undo in multiplayer. (more)
- Fixed crash related to temporary stops and destroyed rails on the path that were already passed by the train. (more)
- Fixed yet another train pathing crash. (more)
- Fixed the hand logic for god-mode controller. (more)
- Fixed, that the hand logic could force an item to filtered slot that doesn't match it. (more)
- Fixed, that filtered inventory could ignore the hand when sorting or transferring in some cases. (more)
- Fixed overly generous migration of mining productivity research. (more)
- Right panel sizing fixes.
- starting_area (size multiplier) in map gen settings JSON can be represented by a number.
- Fixed crash related to removing technology from the research queue. (more)
- Fixed that driving backwards in vehicles wouldn't trigger the prevent-robots-from-working-because-i-am-driving-too-fast logic. (more)
- Fixed crash during startup on macOS 10.12 or older with GeForce GPU. (more)
- Attempt to fix tile transition rendering on Sandy Bridge iGPUs. (more)
- Fixed a performance problem related to undo in multiplayer. (more)
- Fixed upgrading ghost splitters wouldn't copy the splitter settings. (more)
- Fixed a couple of situations where fast replacing underground pipe could cause fluid mixing. (more)
- Fixed align in the blueprint library. (more)
- Fixed a crash when loading modded saves related to fluidbox removal in assembling machines.
- Fixed blueprint preview would be drawn out of its bounds. (more)
- Fixed the featured technology cost for upgrade technologies when the research queue is not enabled. (more).
- Fixed that search in the technology GUI would be cancelled by selecting a new research. (more)
- Fixed a crash on destroying an entity with fluid energy source. (more)
- Fixed a crash when deconstructing trains with inserters trying to put into them. (more)
- Fixed layout of circuit and logistic control windows. (more)
- Fixed that trying to join a multiplayer game too quickly would lead to a mods-mismatch error. (more)
- Fixed that behemoth biters didn't have resistance to acid (as all other biters have).
- Fixed NPE saves technologies were messed up by a migration in 0.17.5. (more)
- Fixed NPE issue where compi smashing a building would lead to a crash in migrated saves. (more)
- Fixed that it wasn't possible to access the game menu when the game was paused in multiplayer with the technology screen open. (more)
Scripting
- Added LuaItemPrototype::mapper_count read.
0.17.5
Date: 04. 03. 2019
Bugfixes
- Fixed crash related to train waypoints and very short train paths. (more)
- Fixed wrong entity info positioning when all other things in the right container are disabled. (more)
- Fixed Wave defense victory not being triggered in some cases.
- Fixed Wave defense victory message being printed on every rocket launch.
- Fixed restarting the game after sync-mods-with-save would fail to auto-load some saves on Windows. (more)
- Fixed PvP error when loading 0.16 versions of the scenario. (more)
- Fixed selection in blueprint preview would have an offset if UI scale was not 100%. (more)
- Fixed pie slice used as progress indicator in crafting queue wasn't rendering for small angles. (more)
- Fixed that the /time command would give back the wrong time played.
- Fixed rendered terrain would increasingly get corrupted during movement when using 16bit rendering mode on some OpenGL drivers. (more)
- Fixed player.get_quick_bar_slot causing a crash for some values. (more)
- Fixed controls were lagging when application window was receiving lot of events it didn't recognize on macOS or Linux. (more)
- Fixed "Wait for V-Sync" graphics option was not working on macOS 10.14 Mojave.
- Fixed crash logs were missing stack traces on macOS.
- Adjusted the Supply Challenge requirements to make sense. (more)
- Fixed a crash when reviving entities through the Lua API.
- Fixed NPE crash on biter commands during rebuild quest. (more)
- Fixed NPE crash during cutscene if player left entity ghosts in the starting area. (more)
- Fixed NPE crash on sending biters if you plaster half the map with furnaces (yes, seriously). (more)
- Fixed NPE bug where Compilatron would sometimes not continue after players put the required items in his chest. (more)
- Fixed that technology slot tooltip didn't reflect the cost of the selected technology in the queue.
- Fixed NPE confusing flying text at startup. (more)
- Fixed that the train passed wait condition time was limited to 120 seconds. (more)
- Fixed hand not disappearing from the quickbar in some situations. (more)
- Fixed a crash related to the research queue. (more)
- Fixed that the research queue could show incorrect research levels. (more)
- Horizontal layouting fix of the mods gui. (more)
- Fixed that the island related changes in the terrain settings in map generator gui weren't updated if the island preset was preselected. (more)
- Fixed that custom Lua-defined shortcuts would desync the game. (more)
- Fixed a crash when player is not given when using surface.deconstruct_area(). (more)
- Fixed loading of blueprints containing rail temporary stations.
Modding
- Added SelectionToolPrototype flag "nothing".
- Made resource autoplace helper functions usable from mods. (more)
- Added LogisticContainerPrototype::landing_location_offset.
Balancing
- Changed mining productivity technology to add 10% in one level instead of 2%, increased the formula from 100 * level to 500 * level and removed some of the low level intermediate levels.
Changes
- Blueprinting tools are no longer shown in the quickbar filter selection. (more)
0.17.4
Date: 01. 03. 2019
Bugfixes
- Fixed crashes related to Lua errors. (more)
- Fixed a crash when opening the fluid wagon GUI in the map editor. (more)
- Fixed that pressing "back" on the login prompt in the other settings GUI would exit the other settings GUI. (more)
- Fixed that robots could get stuck when trying to upgrade in some cases. (more)
- Fixed that the tooltips for tooltip times where backwards. (more)
- Fixed Lua commands wouldn't work show help correctly. (more)
- Fixed portable fusion reactor and rocketry tech pre-requisites - added military science pack. (more)
- Fixed uranium processing tech pre-requisites - added sulfur processing. (more)
- Removed ghost buildability consistency check until we properly integrate building of ghosts into the fluid mixing prevention logic.
- Fixed crash related to train pathfinding. (more)
- Fixed layouting of Map Generator gui when the preview is shown. (more)
- Fixed issues with rich text tags referencing entities that have no icon.
- Fixed crash related to moving blueprints from game blueprints to player blueprints. (more)
- Fixed crash related listing all players while while processing event of player being removed.
- Fixed a crash related to research that would continue even though the research queue is empty. (more)
- Fixed Compilatron placing a chest on top of things. (more)
- Fixed crash during quest to reactivate assembler in NPE. (more)
- Fixed that script render text would scale with GUI scale. (more)
Modding
- Made MiningDrillPrototype::radius_visualisation_picture tintable.
0.17.3
Date: 28. 02. 2019
Changes
- Disabled target leading for flamethrower turrets until it can be made better. (more)
- Changed train pathfinding in a way, that it can find path that ends in the same segment where it started. This worked only for the trivial case of all path of one segment before.
Bugfixes
- Fixed possible crash related to browsing in the mods gui.
- Fixed that turning off exoskeletons didn't work correctly in multiplayer.
- Fixed shaking of blueprint preview in blueprint book tooltip. (more)
- Fixed the wrong detection of changed autosave interval in other settings. (more)
- Fixed /help *command* would print a number instead of the help message. (more)
- Fixed a crash when dying with the locomotive GUI open. (more)
- Fixed a crash when using sprite variation sheets with mismatched frame counts. (more)
- Fixed that the admin-only portions of the whitelist command where not localised correctly. (more)
- Fixed building underground pipe between pipes with different fluids. (more)
- Fixed visual direction of fluid flow. (more)
- Fixed dead-dry-hairy-tree and dry-hairy sprite shifting in normal resolution. (more)
- Fixed PvP error when changing enabled mods. (more)
- Fixed number pad Enter key-bindings would be converted to normal Enter when restarting the game. (more)
- Fixed small worms having fluid consumption. (more)
- Fixed that copy-paste of fluid recipes would sometimes not reset fluid box contents. (more)
- Fixed that double-clicking a technology in the tree view wouldn't start research. (more)
- Fixed pipes that would sometimes be too noisy. (more)
- Fixed that you could build multiple underground belts on top of each-other. (more)
- Fixed tightspot level 5 was unbeatable. (more)
- Added workaround for GPU accelerated texture compression producing corrupted textures. (more)
- Fixed that the technology window scroll position would keep getting reset. (more)
- Fixed that the current research panel would not update in multiplayer if some other player changed the research. (more)
- Fixed terrain not being rendered when using OpenGL and any game overlay was enabled. (more)
Modding
- Added LoaderPrototype::structure_render_layer with default value "lower-object". (more)
0.17.2
Date: 27. 02. 2019
Changes
- Reverted default renderer on Windows to Direct3D on all configurations.
- All infinite technologies have Space science pack as a pre-requisite.
- Added textual error message when player tries to clean cursor but it isn't possible as inventory is full.
- Added /unlock-shortcut-bar console command to unlock all shortcuts at once. This command does not disable achievements.
- Keyboard shortcut for in-game undo feature will default to Ctrl+W on AZERTY keyboard layouts. (more)
- Control settings will revert to defaults when starting the game with pre-0.17.2 config with AZERTY keyboard layout.
Bugfixes
- Fixed Join Game through Steam Friend would fail to connect to a game with an error saying Steam Networking is disabled.
- Fixed LuaGameScript::take_technology_screenshot() would crash the game.
- Fixed a crash when trying to use async-saving when hosting multiplayer games on Windows. (more)
- Fixed electric mining drill coverage area visualization was not drawn correctly. (more)
- Fixed missing sprites on DirectX on GPUs supporting only feature level 10.0. (more)
- Fixed that the GUI would be hidden if the game was saved and loaded while the technology GUI was open. (more)
- Fixed a crash related to non gun/weapon items getting into the gun/weapon inventories. (more)
- Fixed a crash when bringing up the escape menu in multiplayer while in the middle of using blueprints/deconstruction. (more)
- Fixed a crash when mining ghosts built in the latency state. (more)
- Fixed every incremental change of sound volume would save the full config file. (more)
- Fixed that the category dropdown in the install mods GUI would only work the first time it was used. (more)
- Fixed that mod thumbnails in zipped mods wouldn't show in the mods GUI. (more)
- Fixed pre-requisites for the first tier of all upgrade technologies so that the required science packs are unlocked first. (more)
- Fixed electric inserter technology description in the tutorial. (more)
- Fixed that the undo shortcut tooltip didn't reflect latency hiding values and invalid entries filtering.
- Fixed a desync when deconstructing item request proxies in the latency state. (more)
- Fixed crash related to the hand logic and switching controllers. (more)
- Fixed a crash when lamp with non-electrical energy source (modded) is viewed in the blueprint preview/tooltip.
- Fixed that read-only multi-line text boxes wouldn't wrap text. (more)
- Fixed that the fast and express loader entity icons had the wrong colors. (more)
- Fixed that the autosave interval setting was off by one. (more)
- Fixed map preview would not be cleared to black before preview is generated on some PCs. (more)
- Fixed that active blueprint in a book was not preserved when using the book directly from the blueprint library. (more)
- Fixed that the tutorial specific assembler was shown in the "made in in" row in the crafting queue tooltip. (more)
- Fixed that the map type selection changed done by reset or changing the preset didn't update the sliders properly. (more)
- Fixed a rare issue with migration of fluid mixing in a modded save. (more)
- Fixed that the provided map-gen-settings.example.json contained invalid settings. (more)
- Fixed that checking for updates could crash the game. (more)
- Solved, that blueprint library link from quickbar appeared as an empty slot when the target blueprint wasn't available anymore and it wasn't possible to assign a new item to it.
- Fixed PvP scenario error when updating space race frame with no silos present. (more)
- Fixed drawing of some wires and wire shadows (more)
- Fixed a possibility to mix fluid through fast replacing / upgrading a pipe with underground pipe. (more)
- Fixed drawing of some wires and wire shadows. (more)
- Fixed crash when opening the map generator preview for the first time with invalid settings. (more)
Modding
- Renamed EntityPrototypeFlag "hide-from-bonus-gui" to "hidden" and made it also hide entities from the made in property of recipe tooltips.
0.17.1
Date: 26. 02. 2019
Modding
- Added shortcut bar shortcut type that fires Lua events, for use in mods
Scripting
- Added LuaPlayer::is_shortcut_toggled, LuaPlayer::is_shortcut_available, LuaPlayer::set_shortcut_toggled, LuaPlayer::set_shortcut_available
- Added on_lua_shortcut event.
Bugfixes
- Missing description.json in the campaign folder results into the folder being ignored instead of a crash.
- Fixed crash when trying to rotate quickbars with a controller that doesn't have it.
- Fixed crash when trying to open surface map generation settings.
- Fixed possible crash related to copy paste and multiplayer.
- Fixed it wasn't possible to use capital 'Z' in save name. (more)
- Fixed the infinity chest graphics.
- Fixed that the boiler didn't rotate in blueprints.
- Fixed that the bait chest showed in the upgrade planner.
- Fixed high CPU usage when using steam networking.
0.17.0
Date: 26. 02. 2019
Major Features
- New quickbar (more in Gui section)
- Added shortcut bar that allows quick access to certain game features, such as toggling alt mode, creating blueprints, or turning off personal roboport
- New gui style with final version of some parts of the GUI (More in Gui section)
- Added clipboard functionality. (Control + C, Control + X, Control + V activate appropriate tools) Shift + mouse wheel allows to cycle the clipboard history.
- Added undo functionality (Control + Z). Supports manual entity building and by blueprints and manual mining and usage of deconstruction planner.
- Reworked the Map Editor so it's now part of the standard game and can be toggled at will using the '/editor' command.
- Support for mod synchronisation when joining multiplayer game. Works as long as the used mods are on the mod portal.
- Fight changes. Enemy projectiles are dodgeable and slowdown/damage the target over time. They also leave splashes on ground that have the same effect.
- Rich text tags. These tags can be used almost anywhere: Chat, station names, save names, custom ui and probably a few places we didn't think of.
- They allow changing color, font, images and location/blueprint/armor/station/locomotive linking through chat. (More in features)
- Fluid mixing prevention. Actions that fail as they would lead to fluid mixing (like building a pipe, changing recipe, rotating etc.) produce an error message as flying text.
- Replaced First steps campaign with Introduction campaign, available from the Start campaign menu.
Features
- Trains can be blueprinted and deconstructed.
- Trains can be given temporary stations (by Control+clicking the map). Temporary station is automatically removed once the train departures from it.
- Train stops without conditions work as waypoints. (the train doesn't stop at those)
- Added Passenger present and Passenger not present wait condition to the train conditions.
- If building of entity/blueprint fails, the reason of it is pinged as flying text.
- Map pings. Ctrl+Alt+click on the map to show a ping in all players maps at that location.
- Basic image tags format is [img=<image path>] where image path can use item, entity, technology, recipe, item-group, fluid tile, virtual signal achievement or utility icon.
- For example [img=item/iron-plate] or [img=item.iron-plate]. The "." instead of "/" usage is to make it usable in save names.
- Additionally, items/entities/technologies/recipe/item-group/fluid/tile/virtual signal or achievement can be linked directly by [item=iron-plate], [recipe=iron-plate], or [entity=small-biter] to provide tooltip for the appropriate object.
- Blueprint/special item tags.
- Shift clicking the icon in chat will create an item and place it in the cursor.
- Format is [special-item=blueprint string], eg: [special-item=0eNp1jtEKwjAMRX9l5rnCxkShvyIi3YxboU1Lm4lj9N9N54sv5iFwL/eeZIPBLRiTJQa9gR0DZdDXDbKdyLjq8RoRNFhGDwrI+Ko4GcoxJD4O6BiKAksPfIPuyk0BElu2+CXtYr3T4gdMEvjHUBBDllqgelVQrYJVdqnE/br+eVaBM1ITb0bnQvNMwTc8YzPOhiZ0YTpI5oUp78BL33YnmbY/l/IBb4pSQQ==].
- These tags also work with deconstruction and upgrade planners.
- Map ping tags: Created by shift-clicking the ground/map when the chat is open. Format is [gps=x,y], eg [gps=10,30] will show a map ping in all players maps at location 10,30.
- Clicking the icon in chat will open the map on the specified location.
- Font tags: Format is [font=debug-mono]mono text[/font].
- Color tags: Format is [color=1,0,0]red text[/font]
- Fast replacing pipes by pipes to ground similar to underground belts.
- When multiple versions of the same mod are installed you can select which version you want to use.
- The sync mods with save/multiplayer game feature can now sync mod startup settings as well as mods.
- Added support to import and export permissions.
- Closing opened items (blueprint books/armor) now remembers what GUI you previously had open.
- Filter inserters can be set to whitelist or blacklist filters.
- Added belt immunity equipment.
- Added upgrade planner.
- Added steam networking support for steam users.
- Added RGB support for Logitech hardware.
- Robots can blow up cliffs.
- Wave defense scenario has been reworked to support multiple rounds and a procedurally generated map.
- Added a research queue that becomes available after the player has finished the game by launching a rocket with satellite.
Minor Features
- Warning icon for automated trains that are out of fuel.
- Added 250 and 1000 hours precision intervals into statistics.
- Using deconstruction planner is incorporated in the latency hiding.
- Changed personal roboports so they won't send construction robots if you're driving in a vehicle that they can't keep up with or if in a train in automatic mode.
- Added an option to ignore mouse events when using accessibility zoom feature on macOS.
- Added support to change multiplayer config settings runtime.
- Added support to edit the whitelist, banlist, and admin list when hosting a multiplayer game.
- Added the Admin GUI (openable through /admin in the console) to manage multiplayer players.
- Landfill can be built by robots and be included in blueprints.
- Blueprint items taken from blueprint library will not move to player inventory when Q is pressed, but can be moved to any slot explicitly. (Same as with clipboard items)
- When selecting any item to the cursor from some of the player inventories. As long as the item is being held, hand icon is shown on the slot it was taken from. The hand prevents any other item to be inserted into the slot as long as the player cursor isn't cleared.
- When holding radar in cursor, area covered by existing radars is also highlighted on minimap.
- Configurable (in gui), the count of rolling stocks shown in the train visualization.
- Added two levels of shallow water tiles (only placed by map editor, not generated). Enemies and vehicles can travel over shallow water.
Graphics
- New graphics for:
- accumulator
- biters, spitters, worms, spawners
- chests
- electric poles and substation
- map edge transitions
- rocket silo
- transport belts, underground belts, splitters and transport belt circuit connector
- trees
- turrets (gun, flamethrower and laser)
- walls and gates
- laser turrets, personal laser defense and distractor robots now use new laser beams.
- Highlighting inserters that would interact with selected/previewed entity.
- Showing shield bars above health bar for relevant entities.
- Single vertical pipe is shorter.
Gui
- New final versions of several important GUI screens (Quick bar, Train Schedule, Load/Save Game, Settings, Map Generator, Research, Mods)
- Other screens than the mentioned ones (more than 100) have inconsistencies and will be updated in future minor updates.
- The quickbar is no longer an inventory, instead it can only hold shortcuts it items in inventory or blueprint library.
- The quickbar now has 10 pages of shortcuts.
- Player inventory increased by 20 slots to compensate. Toolbelt research further increases the player inventory.
- In the map, station and tag selection is now visualized by the standard Factorio selection box graphics instead of highlighting.
- Added interface option: When selecting a buildable item from the quickbar or when using the pipette tool, if you have no items of that type, a ghost will be placed in the cursor instead.
- When something is not buildable (manual or blueprint building), the reason of why it isn't buildable is shown as flying text over the cursor when the build is attempted.
- Only compatible results of a furnace are manually placeable in the result slot. (Mainly to avoid confusion of new players)
Optimisations
- Modernized and optimized rendering backend. The game now uses DirectX 11 or OpenGL 3.3 Core and requires DirectX 10 class graphics card.
- DirectX backend doesn't keep backup of all sprites in RAM anymore.
- Added high quality texture compression to reduce amount of video memory consumed by the game and increase overall rendering performance.
- Added texture streaming so that adding more sprites does not necessarily increase GPU requirements.
- Improved game startup performance when using a large amount of technologies with deep dependency trees (it's now 67,000 times faster).
- Optimized rendering of logistic overlay when zoomed in to map. (more)
- Optimized rendering of turret ranges when zoomed in to map. (more)
Changes
- Resource generation changed significantly:
- The starting area contains only iron, copper, coal and stone, in very predictable amounts. Uranium and oil are excluded from the starting area.
- Resource generation settings now have a much more dramatic effect. Increased the number of steps for each setting.
- Ore patches are slightly less frequent but richer.
- There will be a more balanced amount of resources within a large enough region.
- Many other small tweaks.
- Biter generation changed significantly:
- Biter richness slider removed, biter placement is only configured by size and frequency settings.
- Biter generation settings now have a much more dramatic effect. Increased the number of steps for each setting.
- Biter bases will increase in size, frequency and number of worms depending on the distance from player spawn.
- Worm size increases depending on the distance from player spawn.
- Small biter bases are now closer to the player spawn.
- At large distances from player spawn, biter base frequency is lower than before but biter bases are larger.
- Other small tweaks.
- Terrain generation changed significantly:
- Water is generated as large lakes instead of swamps.
- Tile generation improved. Tile placement respects biomes better.
- More predictable cliff placement.
- Better controls in the map generator GUI for water, tiles and cliffs.
- New map terrain type selectable: Island. Launch the rocket with only a limited amount of resources available on the map.
- Default resolution of the game is now 1920x1080.
- Increased player reach from 6 to 10.
- Inserters are putting science packs to the lab even when there is no research in progress or when the research doesn't need that particular pack.
- Default_request_amount removed in all places where it was used. Default logistic request is 1 stack, unless changed by the setting "Default request is 1".
- All personal equipment stack sizes changed to 20.
- Placing a tile will now clear any tile ghosts at that position. (more)
- It is allowed to use unicode characters in save names.
- Recipes that have more ingredients than the assembling machine allows are now shown as red instead of not present when selecting the recipe.
- When the "Made in" row is shown in the recipe tooltip, player icon is added to the list when it is craftable by player.
- Increased ghost time to live of ghosts from 1 hour to 1 week.
- Since the catalysts have been tweaked, the kovarex enrichment process can now be used together with productivity module.
- Tile construction jobs are being handled by robots separately from entity building jobs, to prevent entity ghosts not being built due to large number of tile ghosts.
- Switched key bindings from key codes to scan codes. This solves an issue with bad default key bindings on layouts that are not similar to US QWERTY (ie. AZERTY).
- Armor no longer uses durability and all armor now has a stack size of 1.
- Manually putting modules into machines that are requesting modules from the logistic network will reduce the modules requested.
- Increased maximum train stop length from 50 to 100 characters so it can fit at least 3 tags in most cases.
- Items consumed by hand crafting are counted in item production statistics.
- Added --disable-migration-window command-line option to disable the "migrated content" gui.
- Removed tile properties debug overlay.
- Command-line map preview generator now shows biter nests.
- Items sent in a rocket are counted in item production statistics. (more)
- Removed pickaxes and replaced them with research effects.
- Removed Wood from the game (And raw wood renamed to Wood).
- Added rotation smoothing to biters.
- Chests and wooden power poles are no longer usable as fuel.
- Burner efficiency is set to 100% for all entities and fuel value is halved to simplify calculations. This should not change game balance.
- Removed the hardness/mining power mechanics, we just have a mining speed and mining time now.
- Manual mining speed times of various entities will differ a bit, but probably not in a noticeable way.
- Stone and other ore mining speed has been unified to be 1 (apart uranium ore, which is 2 and shown as 200% mining time)
- Mining drill speed is now shown in the form of <x>/s (0.25/s for burner mining drill, 0.5/s for electric mining drill), the relative mining speeds of the mining machines have been decreased a little so the numbers are rounded nicely (0.28 -> 0.25 and 0.525 -> 0.5).
- Renamed the whitelist and banlist to server-whitelist and server-banlist.
- Added server-adminlist that's used to determine which people are admins when hosting any multiplayer game. This is synced both ways when hosting any game.
- Removed "admins" from the multiplayer server-settings file - they're now handled through server-adminlist.
- "Z" (drop item) will drop single items into what ever entity is selected instead of only dropping on the ground.
- Stickers can by applied onto cars and tanks now.
- Changed the chat gray-out mechanism. It always greyed-out after 5 seconds to 70% alpha, and then stayed depending on the setting. Now it stays 100% and only greys out away in the last 2 seconds.
- Placing entities or paths removes tree stumps and biter corpses.
- Removed New Hope campaign.
Balancing
- Technology pre-requisites tweaked so the unlocked item(s) always have all the ingredients already unlocked as well. This means many small changes.
- Science pack names changed:
- Science pack -> Automation science pack
- Science pack 2 -> Logistic science pack
- Science pack 3 -> Chemical science pack
- High-tech science pack -> Utility science pack
- Military, Production and Space science pack names remain the same.
- Science pack recipes changed:
- Military science pack now requires 1x Piercing rounds magazine, 1x Grenade, 2x Wall.
- Chemical science pack now requires 3x Advanced circuit, 2x Engine unit, 1x Solid fuel.
- Chemical science pack now crafts in pairs.
- Production science pack now requires 1x Electric furnace, 1x Productivity module, 30x Rail.
- Production science pack now produces in groups of 3. Crafting time rescaled to match.
- Utility science pack now requires 2x Processing unit, 1x Flying robot frame, 3x Low density structure.
- Utility science pack now produces in groups of 3. Crafting time rescaled to match.
- Some technologies more clearly split between Production and Utility science packs:
- Production science pack:
- Effect transmission
- All level 3 modules
- Kovarex enrichment process & Nuclear fuel reprocessing
- Worker robot capacity 2
- Utility science pack:
- Logistic system
- Worker robot speed 3
- Military 4 and weapon unlocks/upgrades
- Power armor mk2 and Portable fusion reactor
- Both Production and Utility science packs are required only for Rocket silo, Atomic bomb and some high-tier upgrades.
- Production science pack:
- Every science pack now has a technology to unlock it. Some technology prerequisites changed slightly. Space science pack technology unlocks the Satellite.
- Rocket fuel, Low density structure and Rocket control unit are unlocked by their own technologies.
- The game is won by launching a rocket, the Satellite is only for getting Space science packs.
- Swapped sorting order of Military science pack and Chemical science packs because Military science pack does not need oil.
- Nuclear power technology split to Uranium processing and Nuclear power.
- Nuclear fuel reprocessing technology cost reduced from 1500 to 50.
- Lubricant technology added (pre-requisite for Electric engine and Logistics 3)
- Fast and Filter inserters are unlocked by their own technology with a pre-requisite of Electronics.
- Automation 2 is a pre-requisite for Fluid handling. (Assembling machine 1 can't handle fluids)
- Engine is a pre-requisite for Fluid handling. (Pump needs Engines to craft it)
- Pump is now unlocked by Fluid handling. (was Engine)
- Fluid handling is a pre-requisite for Oil processing.
- Item spacing on transport belts changed from 0.28 tiles to 0.25 tiles, giving a transport belts throughput of 15/30/45 (basic/fast/express) items per second.
- Iron plate, copper plate and stone brick crafting time reduced from 3.5 to 3.2, steel plate crafting time reduced from 17.5 to 16.
- Coal liquefaction now produces 90 Heavy oil, 20 Light oil and 10 Petroleum gas, consuming 25 Heavy oil, 10 Coal and 50 Steam. (Gaining much more Heavy oil, less Light oil and Petroleum gas)
- Low density structure now requires 2x Steel plate, 20x Copper plate, 5x Plastic bar.
- Low density structure crafting time reduced from 30 to 20.
- Medium and Big power pole recipes now use iron sticks.
- Train stop recipe now uses iron sticks.
- Programmable speaker recipe now uses iron sticks.
- Lamp recipe iron sticks ingredient changed to copper cables.
- Defender capsule recipe now requires flying robot frames.
- Rebalanced assembling machine 1,2 and 3 power consumption and pollution - higher tiers eat more power, but produce less pollution.
- Assembling machine 2 recipe changed to require 2x Steel plate instead of 9x Iron plate.
- Automation 2 now requires Automation and Logistic science packs.
- Chemical plant crafting speed has been changed to 1. Some chemical plant recipes now take less time.
- Centrifuge crafting speed changed to 1.
- Portable solar panels have Modular armor as pre-requisite.
- Portable solar panel power output changed from 10kW to 30kW, recipe tweaked to require less Solar panels but more Advanced circuits.
- Low-tier personal equipment has Portable solar panels as a pre-requisite so you could possibly utilize the equipment when it is unlocked.
- Some high tier personal equipment (Energy shield mk2, Battery mk2, Personal laser defense and Discharge defense) have Power armor technology as pre-requisite.
- Some high tier equipment recipes now require Low Density Structures. (Energy shield mk2, Battery mk2, Roboport mk2, Portable fusion reactor, Power armor mk2, Personal laser defense)
- Locomotive fuel consumption doubled.
- Relative fuel value of nuclear fuel doubled.
- Relative fuel value of rocket fuel decreased by 10.6%, relative value of solid fuel decreased by 4%.
Combat Balancing
- All military damage/shooting speed upgrade technologies merged into 7 technologies:
- Physical projectile damage 1-6 + infinite
- level 1-4: bullets, gun turrets, shotgun shells
- level 5+: previous levels and cannon shells
- Refined flammables 1-6 + infinite
- flamethrower turret, handheld flamethrower
- Stronger explosives 1-6 + infinite
- level 1: grenades
- level 2: previous level and land mines
- level 3: previous levels and rockets
- Energy weapons damage 1-6 + infinite
- level 1-3: laser turrets, personal laser defense
- level 4: previous level and distractor robots
- level 5+: previous levels and destroyer robots
- Weapon shooting speed 1-7
- affecting: bullets, gun turrets, shotgun shells, tank cannon shells, rockets
- Laser turret shooting speed
- Artillery shell shooting speed
- Artillery shell range
- Physical projectile damage 1-6 + infinite
- Personal laser defense damage reduced, power consumption reduced and it is now influenced by Laser and electric beam intensity upgrades.
- Modular Armor technology pre-requisite changed from Modules to Advanced Electronics.
- Power Armor Mk2 technology pre-requisite changed from modules to Military 4.
- Power Armor Mk2 recipe changed from 5x level 3 to 25x level 2 modules (to avoid requiring Production science pack) and added electric engine units.
- From the start maximum follower count is 5 instead of 1. Level 3 of maximum follower count gives +5 instead of +10 to compensate.
- Atomic bomb recipe now requires Rocket control units instead of Processing units.
- Behemoth worm added.
- Worms and spitters use new "stream" attack now.
- Attacks predict target position and shoot there.
- Flamethrower turret now predicts target position as well.
- Acid splashes are created on the ground, dealing damage and slowing.
- Slow effect received from different spitter/worm tiers stacks.
- Worm shooting range is generally longer.
- Rocket launcher range increased from 22 to 36 to outrange medium worms.
- Worm and behemoth spitter attacks are large enough to damage neighbouring buildings.
- All enemies have 100% acid resistance.
- Changed spawner pollution absorption logic so that all the pollution on a chunk doesn't build up un-spent in a single spawner.
- Removed damage bonus of tank machine gun.
Bugfixes
- Fixed that canceling production in assembling machine did return the products in progress.
- Fixed biters were unable to run against movement of belts.
- Tutorial GUI updates correctly after finishing a tutorial. (more)
- Chest GUI updates correctly when changed indirectly. (more)
- Changing train mode by a script updates the train GUI. (more)
- Fixed that tertiary was spelled "terciary" in the usage_priority. (more)
- Fixed construction robots would not give up module delivery when they didn't manage to get any modules. (more)
- Fixed issues with syncing mods to saves, when you don't already have the mod downloaded. (more)
- Entities affected by beacons now only show effect sources/receivers that have an effect. (more)
- Fixed furnaces wouldn't respect recipe module limitations correctly. (more)
- Fixed a crash when migrating blueprint book inventory sizes while they're in assembling machines that are being removed due to migration. (more)
- Fixed character.direction read didn't work correctly. (more)
- Fixed a crash when removing mods that add/change rolling stock entities. (more)
- Fixed script error in construction bot tutorial when deconstructing area. (more)
- Fixed Lua API methods to insert items didn't work correctly for entities that can hold items above the stack limit. (more)
- Fixed that the closing sound of other GUIs was too loud when the technology GUI popped up when a research finished. (more)
- Fixed that layered icons using shift wouldn't render correctly. (more)
- Fixed that running out of disk space could crash the game in some cases. (more)
- Fixed burner energy sources wouldn't always be able to output the full energy amount. (more)
- Fixed that transport belt circuit conditions wouldn't copy correctly in blueprints sometimes. (more)
- Fixed that limited/limiting upload speed could lead to an exponential soft lock in the upload process. (more)
- Fixed a desync related to cars on belts. (more)
- Fixed that crafting machines could be rotated diagonally using scripts. (more)
- Fixed that tooltips of unlocked recipes in technology preview didn't have the "made in" info even if it is not craftable by the player.
- Fixed recipes that consumed or produced > stack size of some item didn't work correctly.
- Fixed that game.reload_script() could cause desyncs when used in multiplayer.
- Fixed LuaScript::get_event_handler() didn't handle large numbers correctly. (more)
- Fixed AutoplaceSettings map_gen_settings didn't always work when defined through script. (more)
- Fixed a crash when using LuaEntity::get_train_stop_trains(). (more)
- Fixed a crash when using LuaGameScript::create_entity() related to making ghosts of ghosts. (more)
- Fixed setting entity healing_per_tick negative resulted in invincible entities. (more)
- Fixed that shadows wouldn't always render in the train camera. (more)
- Fixed health bars on large entities wouldn't render correctly. (more)
- Fixed trains would collide with item-requester-proxy. (more)
- Fixed train GUI buttons would lose too much quality graphics quality was set to Extra low. (more)
- Fixed a bug related to mining drills with > 100% productivity. (more)
- Fixed invalid optional dependencies wouldn't be highlighted correctly. (more)
- Fixed a crash when reading player.vehicle during the driving driving changed state event when triggered by the vehicle dying. (more)
- Fixed that beams would render 1 tile above their location when using a position source. (more)
- Fixed furnaces with input items and output fluids could get deadlocked. (more)
- Fixed when player teleported, renderer would draw all tiles between old and new position. (more)
- Fixed that frame count limits weren't enforced and would lead to a crash in several places. (more)
- Fixed a crash when the player port respawned a character without a connected player (more)
- Fixed that the market did not show the prices for some offers (more)
- Fixed that the "save replay" button would always show on the game finished screen even when it wouldn't work. (more)
- Fixed that filters would get copied between storage chests and requester chests. (more)
- Fixed error message given when loader entity prototype was defined with too many filters. (more)
- Fixed that fast replacing a train stop did not copy the name or color. (more)
- Ghost rails are now also considered when auto-selecting rail signal direction. (more)
- Fixed that the high-resolution car animation would shake. (more)
- Fixed errors in the mod settings stage wouldn't prompt to disable the erroring mod(s). (more)
- Fixed that crafting machines didn't work correctly with non-square bounding boxes. (more)
- Fixed that pasting train schedules did not dispatch trains waiting at a station that is not part of the new schedule. (more)
- Fixed possible crash when rendering a fish due to bad migration on fish prototype change. (more)
- Fixed that LuaGuiElement::zoom on minimaps would be rendered as zoom * 32.
- Fixed crash when detecting VRAM size on macOS. (more)
- Fixed LuaEntity::infinity_filters write didn't work. (more)
- Fixed that setting active on combinators would lead to desyncs. (more)
- Fixed that shift+click building blueprints didn't work correctly regarding tiles. (more)
- Fixed that construction robots could get stuck trying to repair things. (more)
- Fixed inventory highlights didn't work correctly when the game was paused while active. (more)
- Fixed a crash related to trains being forced to re-path when a stop is disabled. (more)
- Fixed that wire distance was ignored in some cases when connecting non-electric-pole entities. (more)
- Fixed that equipment grids wouldn't fit on screen if too large. (more)
- Fixed that the SelectSignal GUI wouldn't sort mixed-type signals correctly. (more)
- Fixed map generator would align entities to grid differently than manual building. (more)
- Fixed sprites in 16-bit depth per channel PNG would load as empty images on macOS. (more)
- Fixed that furnaces with mixed input could get stuck. (more)
- Fixed text duplication on research completion in the bonus GUI. (more)
- Fixed that LuaSurface::find_entities_filtered{position} wouldn't find entities with zero-sized bounding boxes. (more)
- Fixed that mod console commands would treat every command with the same help key as aliasing each other. (more)
- Fixed LuaGameScript::remove_path would log an error if path didn't exist. (more)
- Fixed cars and tanks had a slightly smaller collision box when not facing north. (more)
- Fixed inserter interaction with cars depended on rotation and on distance from map origin. (more)
- Fixed "InRangePredicate only accepts direction without diagonals" error. (more)
- Fixed when teleporting all tiles between old and new position would be rendered, causing performance problems. (more)
- Force space between spawners and worms in biter bases so they don't get stuck so much.
- Fixed trivial-smoke would be rendered for some time after its lifetime ended.
Modding
- Added a new entity type "infinity-pipe" that automatically adds/removes fluid from itself; similar to the infinity-chest.
- Added a new entity type "heat-interface" that automatically sets its own temperature.
- Added "void" energy_source type which makes any entity using the type not require power.
- Added CraftingMachinePrototype::show_recipe_icon which changes if the recipe icon is shown in alt-mode.
- Added "stop" AI command, which tells the unit to just stop moving where it is. Takes a "ticks_to_wait" parameter, after which it returns to normal.
- Added LuaGuiElement type "list-box".
- Added Entity prototype flags "no-automated-item-removal" and "no-automated-item-insertion".
- Added support for hidden optional dependencies via '(?) mod-name'.
- Added SelectionToolPrototype flags "not-same-force", "friend", and "enemy".
- Added SelectionToolPrototype optional filters: entity_filters, entity_type_filters, tile_filters, entity_filter_mode, and tile_filter_mode.
- Added SelectionToolPrototype optional filters: alt_entity_filters, alt_entity_type_filters, alt_tile_filters, alt_entity_filter_mode, and alt_tile_filter_mode.
- Added support to set wire_count on wires to define how many items are needed to connect 2 entities.
- Added UnitPrototype::ai_settings, which allows overriding default biter behavior.
- Added a spectator controller type that can view anything but can't change anything.
- Added GeneratorPrototype::burner to allow making an entity that burns fuel and produces power.
- Added ticks_to_wait parameter to wander ai command.
- Added Entity prototype property "next_upgrade".
- Added support to set draw_copper_wires and draw_circuit_wires for any entity that uses wires.
- Added optional "min_working_temperature" and "default_temperature" to heat buffer prototype.
- Added optional technology prototype property "hidden".
- Added optional fluid prototype property "hidden".
- Added "fluid" energy_source type can be used for both fuel-value based fluids, and heat capacity based fluids configured the same was as the generator entity.
- Added ReactorPrototype::scale_energy_usage to allow making a heat source that stops consuming fuel when max temperature is reached.
- Added EnemySpawnerPrototype::min_darkness_to_spawn and max_darkness_to_spawn.
- Added optional beam prototype properties random_end_animation_rotation and transparent_start_end_animations.
- Added rotation_speed value to Unit prototype.
- Added support for arbitrary non-circular references to named noise expressions.
- Added "spot-noise" noise function.
- Added "if-else-chain" and "literal-boolean" noise expression types.
- Added "cutscene" controller.
- Added "speech-bubble" entity.
- Added ResourceEntityPrototype::randomize_visual_position.
- Added EquipmentGridPrototype::locked.
- Added DamageType::hidden.
- Added optional draw_cargo property to construction robot and logistic robot prototypes.
- Added optional fluid_product to production achievement prototypes.
- Added UnitPrototype::affected_by_tiles.
- Added LuaStyle::stretch_image_to_widget_size, only applies to "sprite" widget styles.
- Added optional EntityPrototype::map_generator_bounding_box.
- Added EntityPrototypeFlag "not-upgradable".
- Added EntityPrototypeFlags "no-copy-paste" and "not-selectable-in-game".
- Added ItemPrototypeFlags "only-in-cursor", "not-stackable", "can-extend-inventory", "primary-place-result" and "mod-openable".
- Added BeamPrototype::target_offset and random_target_offset.
- Added TilePrototype::tint. Tile tint is packed to RGB 565 without alpha.
- Added "mouse-cursor" definitions for overriding system mouse cursor in selection tools.
- Changed radars so they support dynamic energy source types.
- Changed ItemWithInventoryPrototype flag "when_manually_filtered" to "when-manually-filtered".
- Changed SelectionToolPrototype flag "matches-force" to "same-force".
- Changed the maximum number of surfaces from 255 to 4,294,967,295.
- Changed migration scripts so they run in the context of the mod that created them.
- Changed TilePrototype::decorative_removal_probability default value to 0 (it was 1).
- Changed ReactorPrototype::burner to ReactorPrototype::energy_source to allow heat sources with alternate energy types.
- Changed ElectricEnergyInterfacePrototype::enable_gui to gui_mode.
- Changed EnemySpawnerPrototype::result_units to support any type of entity.
- Changed recipes to support having no results by setting results = {}.
- Lua scripts can now use require("__mod-name__.file") syntax.
- AutoplaceSpecifications can now be defined in terms of probability_expression and richness_expression as an alternative to peaks.
- property_expression_name values can be numeric constants.
- All autoplace controls are now available as noise expression variables.
- energy_per_movement and energy_per_rotation of inserter is now specified in energy format (aka "5KJ") instead of just a number.
- Increased limit for size of spritesheet to 8196px (regardless of sprite resolution settings). Maximal size of single sprite is 2048px in normal resolution and 4096px in high resolution. Smaller spritesheets can utilize parallel decompression better.
- Removed the "default-" prefix from core NamedNoiseExpressions; property_expression_names in MapGenSettings simply override the expression named by the key.
- Removed ItemPrototypeFlags "goes-to-main-inventory" and "goes-to-quickbar".
Scripting
- Added LuaRendering accessed via the lua global "rendering".
- Added LuaEntity::get_infinity_pipe_filter() and set_infinity_pipe_filter().
- Added LuaEntity::recipe_locked read/write for assembling machines.
- Added LuaRailPath.
- Added LuaTrain::path read.
- Added LuaEntity::connected_rail read.
- Added previous_direction to the on_player_rotated_entity event.
- Added LuaItemStack::deconstruct_area() and cancel_deconstruct_area().
- Added LuaSurface::deconstruct/cancel_deconstruct optional parameters skip_fog_of_war and item.
- Added LuaEntity::clone().
- Added LuaSurface::clone_area().
- Added LuaSurface::clone_entities().
- Added LuaGameScript::auto_save().
- Added LuaEntity::neighbours support for power switches, wall-connectable entities, and reactors.
- Added LuaFluidBoxPrototype.
- Added LuaEntityPrototype::fluidbox_prototypes read.
- Added LuaGameScript::take_technology_screenshot().
- Added LuaSurface::clear().
- Added LuaSurface::solar_power_multiplier read/write.
- Added on_pre_surface_cleared and on_surface_cleared events.
- Added on_pre_chunk_deleted and on_chunk_deleted events.
- Added on_chart_tag_added, on_chart_tag_modified, and on_chart_tag_removed events.
- Added LuaGameScript::styles read.
- Added LuaEntity::crafting_speed read.
- Added LuaTrain::max_forward_speed and max_backward_speed read.
- Added on_train_schedule_changed event.
- Added LuaForce::previous_research read/write.
- Added LuaSurface::find_decoratives_filtered().
- Added LuaEntity::inserter_filter_mode read/write.
- Added LuaEntity::neighbour_bonus read.
- Added LuaEntityPrototype::neighbour_bonus and neighbour_collision_increase read.
- Added LuaEntityPrototype::container_distance, belt_distance and belt_length read.
- Added LuaGameScript::table_to_json() and LuaGameScript::json_to_table().
- Added events on_player_banned, on_player_kicked, and on_player_unbanned.
- Added event on_rocket_launch_ordered.
- Added LuaItemPrototype::wire_count read.
- Added LuaRecipePrototype::main_product read.
- Added LuaEntity::get_fluid_count(), get_fluid_contents(), remove_fluid(), insert_fluid(), and clear_fluid_inside().
- Added LuaEntity::silent_revive().
- Added LuaFluidBox::get_prototype().
- Added LuaSurface::request_path().
- Added LuaGameScript::reload_mods().
- Added on_player_toggled_alt_mode, on_player_repaired_entity, and on_player_fast_transferred events.
- Added on_game_created_from_scenario event.
- Added on_surface_renamed event.
- Added on_ai_command_completed event, which can be used to detect command completion and failure/success.
- Added "pathfind_flags" parameter to "go_to_location" AI command.
- Added "radius" and "wander_in_group" parameters to "wander" AI command.
- Added "radius" parameter to "go_to_location" AI command.
- Added support for mods to change their own mod settings runtime.
- Added LuaEntityPrototype::next_upgrade read.
- Added optional parameters to LuaSurface::create_entity, LuaEntity::destroy and LuaEntity::revive to raise the associated script events.
- Added support to run console commands in a specific mod context via: /c __mod-name__ *command*.
- Added LuaTechnologyPrototype::hidden read.
- Added LuaFluidPrototype::hidden read.
- Added LuaSurface::get_map_exchange_string().
- Added LuaGameScript::get_map_exchange_string().
- Added LuaFlowStatistics::get_flow_count().
- Added LuaEntity::trains_in_block read.
- Added LuaGameScript::get_player().
- Added LuaGameScript::get_surface().
- Added LuaGameScript::set_wait_for_screenshots_to_finish().
- Added LuaGuiElement::resize_to_sprite (read/write).
- Added LuaGroup::localised_name read.
- Added SpritePath::equipment.
- Added LuaEquipmentGridPrototype::background_color read.
- Added LuaItemPrototype::reload_time read.
- Added highlight-box entity that can be passed a "bounding_box" or "source" entity parameter to display a highlight box around an area or entity.
- Added LuaEntityPrototype::is_building read.
- Added LuaEntityPrototype::automated_ammo_count read.
- Added LuaEntity::get_beam_source(), set_beam_source(), get_beam_target() and set_beam_target().
- Added LuaSurface::get_closest().
- Added LuaSurface::get_total_pollution().
- Added LuaPlayer::create_local_flying_text().
- Added LuaEntityPrototype::darkness_for_all_lamps_on and darkness_for_all_lamps_off read.
- Added LuaEntity::status read.
- Added LuaLogisticNetwork::robots, construction_robots, logistic_robots read.
- Added LuaGameScript::get_train_stops(), LuaSurface::get_train_stops(), and LuaForce::get_train_stops().
- Added LuaEntityPrototype::min_darkness_to_spawn and max_darkness_to_spawn read.
- Added "loot" to the on_entity_died event.
- Added LuaTrain::go_to_station().
- Added support to set quality when using LuaGameScript::take_screenshot.
- Added LuaForce::evolution_factor_by_pollution, evolution_factor_by_time, and evolution_factor_by_killing_spawners read/write.
- Added optional create_build_effect_smoke parameter to LuaSurface::create_entity.
- Added LuaEntity::drop_target/pickup_target write.
- Added LuaEntity::ghost_has_flag().
- Added runtime editable speed attribute to Unit.
- Added LuaSurface::get_starting_area_radius().
- Added LuaItemPrototype::robot_action read.
- Added LuaEntity::enable_logistics_while_moving read/write.
- Added optional render_player_index parameter for flying-text and simple-entities to LuaSurface::create_entity.
- Added LuaEntity::render_player read/write.
- Added LuaEntity::render_to_forces read/write.
- Added LuaGameScript::disable_tutorial_triggers().
- Added LuaEntity::get_radius() and LuaEntityPrototype::radius read.
- Added LuaEntity::get_health_ratio().
- Added LuaSurface::find_units().
- Added LuaTransportLine::output_lines read.
- Added LuaEntity::pump_rail_target read.
- Added LuaTrain::get_rails().
- Added LuaEquipmentGridPrototype::locked read.
- Added LuaForce::index read.
- Added direction to LuaSurface::count/find_entities_filtered.
- Added collision_mask to LuaSurface::count/find_entities_filtered.
- Added LuaEntity::clear_market_items().
- Added LuaEntityPrototype::cliff_explosive_prototype read.
- Added LuaDamagePrototype::hidden read.
- Added LuaControl::character_running_speed read.
- Added LuaEntityPrototype::draw_cargo read.
- Added LuaPlayer::use_from_cursor().
- Added LuaGameScript::autosave_enabled variable, that can be used to disable autosaving.
- Added LuaEntity::ai_settings read.
- Added LuaAISettings::destroy_when_commands_fail. When true, units will be destroyed when repeatedly failing to execute commands.
- Added LuaAISettings::allow_try_return_to_spawner. When true, units will try to return to a spawner when they are idle.
- Added LuaAISettings::do_separation. When true, units will try to separate themselves from nearby friendly units.
- Added LuaEntity::moving. Returns true if the unit is moving.
- Added on_unit_group_created, on_unit_added_to_group, and on_unit_removed_from_group events.
- Added LuaEntity::create_build_effect_smoke.
- Added LuaEntityPrototype::vision_distance read.
- Added LuaPlayer::open_map(), zoom_to_world() and close_map().
- Added LuaPlayer::render_mode read.
- Added LuaPlayer::map_view_settings write.
- Added LuaStyle::top_margin, right_margin, bottom_margin and left_margin read/write.
- Added LuaStyle::use_header_filler, natural_width and natural_height read/write.
- Added LuaStyle::extra_padding_when_activated read/write.
- Added LuaStyle::extra_top_margin_when_activated, extra_bottom_margin_when_activated, extra_left_margin_when_activated and extra_right_margin_when_activated read/write.
- Added LuaEntity::electric_network_id read.
- Added LuaControl::character_additional_mining_categories read/write.
- Added LuaGameScript::draw_resource_selection read/write.
- Added LuaForce::get_hand_crafting_disabled_for_recipe() and set_hand_crafting_disabled_for_recipe().
- Added LuaEntityPrototype::map_generator_bounding_box read.
- Added LuaEntity::release_from_spawner().
- Added on_cutscene_waypoint_reached, on_entity_cloned, on_area_cloned, on_marked_for_upgrade, on_cancelled_upgrade, on_post_entity_died, on_pre_player_removed, on_pre_robot_exploded_cliff, on_robot_exploded_cliff, on_script_path_request_finished, on_surface_imported, on_player_toggled_map_editor events.
- Added LuaEntity::timeout read/write.
- Added LuaEntity::highlight_box_type and highlight_box_blink_interval read/write.
- Added LuaEntity::order_upgrade(), cancel_upgrade() and to_be_upgraded().
- Added LuaEntity::research_queue_enabled read/write.
- Added LuaGameScript::get_active_entities_count().
- Added LuaGameScript::ticks_played read.
- Added LuaGameScript::tick_paused and ticks_to_run read/write.
- Added LuaItemPrototype::infinite read.
- Added LuaItemStack::clear_upgrade_item(), get_mapper(), set_mapper().
- Added LuaItemStack::is_upgrade_item read.
- Added LuaLogisticCell::logistics_connection_distance read.
- Added LuaLogisticNetwork::select_pickup_point() and select_drop_point().
- Added LuaPlayer::jump_to_cutscene_waypoint().
- Added LuaUnitGroup::group_number read.
- Changed LuaEntity::destroy() to accept a table of arguments.
- Changed LuaEntity::revive() to accept a table of arguments.
- Changed the player_used_capsule event so it's fired after the capsule item is consumed from the cursor.
- Changed LuaEntity::splitter_filter, splitter_input_priority, and splitter_output_priority so they also work on ghosts.
- Changed LuaSurface::destroy_decoratives() to take filters similar to find_entities_filtered.
- Changed LuaEntityPrototype::items_to_place_this and LuaTilePrototype::items_to_place_this to return an array of SimpleItemStack.
- Changed most LuaEntity properties/functions to also work on ghosts.
- Changed on_player_crafted_item item_stack to allow editing the stack before it's put into the player inventory.
- Changed LuaSurface::regenerate_entity()/regenerate_decorative() to treat "nil" as "all" for the autoplace list.
- Changed LuaEquipmentPrototype::energy_source to return a LuaElectricEnergySourcePrototype.
- Changed sound definition, so it can contain "aggregation" even when it doesn't contain "variations".
- Renamed LuaEntity::get_infinity_filter(), set_infinity_filter(), and infinity_filters to get_infinity_container_filter(), set_infinity_container_filter(), and infinity_container_filters.
- Renamed on_canceled_deconstruction event to on_cancelled_deconstruction.
- Fixed the spelling of LuaForce::max_successful_attempts_per_tick_per_construction_queue.
- LuaSurface::find_entities/filtered now accepts a zero sized bounding box as "find everything that collides with this point".
- CustomSprite now scales to the size of the sprite if a manual size isn't defined.
- It's possible to specify "frame_sequence" in animation definition as array of frame numbers that should be played in given order.
- Removed LuaStyle::visible, LuaGuiElement::visible is used instead.
- Removed LuaSurface::get_tile_properties().
- Removed LuaCustomChartTag::orientation and target.
- Removed LuaFluidPrototype::pressure_to_speed_ratio and flow_to_energy_ratio.