Factorio - HanziQ
Minor features
  • Power switch connections are stored in the blueprint.

Changes
  • The F1-F12 debug hotkeys can now be reassigned.
  • Disabled pumps don't block other pumps from connecting to fluid wagon anymore. more
  • Pump can connect to fluid tank that is slightly rotated, but only to tanks that are standing on straight rails.
  • Blueprints in the library no longer transfer automatically when a player joins. Instead, they are transferred on-demand.
  • Admins are allowed to modify other players' blueprints in the library, including deleting them.
  • Changed default keybind for toggle filters on macOS to Command + Right Click more

Bugfixes
  • Fixed Infoboxes sometimes going to the center of the screen on scale change or display size change. more
  • Fixed the direction of underground belts/pipes wouldn't get detected correctly when using the pipette tool in some cases. more
  • Fixed that accumulators had two energy bars and one of these was showing incorrect value. more
  • Fixed that Copy paste couldn't be used in the numeric edit box.
  • Fixed that the recipe tooltip would resize/change every time something was crafted. more
  • Fixed burner inserter reading signal pulses twice more
  • Fixed electric buffer error that could happen when updating save to newer factorio version or changing mods. more
  • Fixed that failing to mine an entity wouldn't try to transfer all items in the entity. more
  • Fixed locomotive could snap to train stop after it was attached to an existing train. more
  • Fixed that the item counts when making blueprints or deconstructing things would render off-screen. more
  • Fixed impossible research tasks in team production challenge. more
  • Fixed that the blueprint library GUI wouldn't restore scrollbar position when moving in or out of a book. more
  • Fixed that setting inserter filters wouldn't update the last-user. more
  • Fixed that fluid would not flow through circuit network disabled mining drills. more
  • Fixed a crash when exiting multiplayer due to a script error while hosting a public game locally. more
  • Fixed pump would not connect to last tile of a train in some cases. more

Modding
  • Changed the format for localised mod name and description.
  • Fixed that assembling machines using the heat energy source type would go inactive when out of power and stay inactive. more
  • Limited map gen presets pollution diffusion and dissipation rate values to prevent never-ending pollution bloating map sizes by mistake. more
  • Removed CustomInputPrototype consuming types "all" and "script-only".
  • entity-with-owner now supports variation in blueprints.

Scripting
  • Fixed that marking an entity for deconstruction through script wouldn't fire the event. more
  • Fixed that level based research wouldn't fire the research-finished event in some cases. more
  • Fixed that several of the drop-down related methods for LuaGuiElement were 0-based.
  • Added a global Lua function "table_size" which will quickly compute the number of values in any lua table (not to be confused with the # operator).
  • Added LuaGuiElement::remove_item for drop-down type elements.
  • Added LuaSurface::clear_pollution().
  • Added events on_console_chat and on_console_command.
  • Added LuaEntityPrototype::production read.
  • Added LuaControl::mine_tile().


You can get experimental releases by selecting the 'experimental' beta branch under Factorio's properties in Steam.
Factorio - HanziQ
Minor features
  • Power switch connections are stored in the blueprint.

Changes
  • The F1-F12 debug hotkeys can now be reassigned.
  • Disabled pumps don't block other pumps from connecting to fluid wagon anymore. more
  • Pump can connect to fluid tank that is slightly rotated, but only to tanks that are standing on straight rails.
  • Blueprints in the library no longer transfer automatically when a player joins. Instead, they are transferred on-demand.
  • Admins are allowed to modify other players' blueprints in the library, including deleting them.
  • Changed default keybind for toggle filters on macOS to Command + Right Click more

Bugfixes
  • Fixed Infoboxes sometimes going to the center of the screen on scale change or display size change. more
  • Fixed the direction of underground belts/pipes wouldn't get detected correctly when using the pipette tool in some cases. more
  • Fixed that accumulators had two energy bars and one of these was showing incorrect value. more
  • Fixed that Copy paste couldn't be used in the numeric edit box.
  • Fixed that the recipe tooltip would resize/change every time something was crafted. more
  • Fixed burner inserter reading signal pulses twice more
  • Fixed electric buffer error that could happen when updating save to newer factorio version or changing mods. more
  • Fixed that failing to mine an entity wouldn't try to transfer all items in the entity. more
  • Fixed locomotive could snap to train stop after it was attached to an existing train. more
  • Fixed that the item counts when making blueprints or deconstructing things would render off-screen. more
  • Fixed impossible research tasks in team production challenge. more
  • Fixed that the blueprint library GUI wouldn't restore scrollbar position when moving in or out of a book. more
  • Fixed that setting inserter filters wouldn't update the last-user. more
  • Fixed that fluid would not flow through circuit network disabled mining drills. more
  • Fixed a crash when exiting multiplayer due to a script error while hosting a public game locally. more
  • Fixed pump would not connect to last tile of a train in some cases. more

Modding
  • Changed the format for localised mod name and description.
  • Fixed that assembling machines using the heat energy source type would go inactive when out of power and stay inactive. more
  • Limited map gen presets pollution diffusion and dissipation rate values to prevent never-ending pollution bloating map sizes by mistake. more
  • Removed CustomInputPrototype consuming types "all" and "script-only".
  • entity-with-owner now supports variation in blueprints.

Scripting
  • Fixed that marking an entity for deconstruction through script wouldn't fire the event. more
  • Fixed that level based research wouldn't fire the research-finished event in some cases. more
  • Fixed that several of the drop-down related methods for LuaGuiElement were 0-based.
  • Added a global Lua function "table_size" which will quickly compute the number of values in any lua table (not to be confused with the # operator).
  • Added LuaGuiElement::remove_item for drop-down type elements.
  • Added LuaSurface::clear_pollution().
  • Added events on_console_chat and on_console_command.
  • Added LuaEntityPrototype::production read.
  • Added LuaControl::mine_tile().


You can get experimental releases by selecting the 'experimental' beta branch under Factorio's properties in Steam.
Factorio - Klonan
Hello, after a lot of planning and preparation, the party on Saturday went very well. We really enjoyed spending time with some of our fans, and it has definitely sharpened our motivation to do right by our community and make the game as great as possible. With this festivity behind us, we started this week with some renewed focus.

0.15 Stabilization push
These last few days we have made a larger push to handle all the 0.15.x bugs reports on the forum, our current estimate is that we will have a stable release within a few weeks. As the player base has grown so has the number of bugs found - things which we haven't touched for quite some time end up being broken in interesting or weird ways. Most of the time the fixes are simple, but they can have unforeseen consequences that show up quickly with the number of daily active players. We do our best to test that we don't break anything with a bug fix - and write tests when it makes sense.

However sometimes this isn't enough, and we happen to get something like this recent bug introduced in 0.15.22 and fixed in 0.15.23: As of 0.15.22 modded GUI elements are marked per-element with which mod created them so when the mod is no longer active they can be automatically removed. The logic was simple: store a mapping of the mod name to the elements it owns. On load if the mod isn't active or doesn't exist, all the elements that it owned are removed. It was tested through save/load and through mod removal, and the system worked great. Except it didn't. Almost as soon as 0.15.22 was released, someone reported a problem with losing modded GUI elements through save/load.

It turned out that due to how we store mod names in the game ("mod-" + mod-name), some logic wasn't working correctly. If the mod added between 4 and the length of the mods name + 4 GUI elements, it would break and falsely detect the mod as removed when loaded. If the mod added less than 4 or more than the mods name + 4 GUI elements it worked just fine. We just happened to test a mod that only added 1 GUI element so all the testing worked perfectly.

Wireshark dissector for Factorio - quick and dirty (Technical)
A couple of weeks ago I joined a Factorio MMO event from KatherineOfSky. In the event, all players were invited to join the server. But as we were reaching about 60 players, people were starting to get dropped and they were unable to connect back. It looked exactly like a network bandwidth problem so my first thought was "well, get a better server before hosting an MMO event". But I started looking at the traffic on my computer and there was some unusually high bandwidth being used, especially during connection. Later I was shown that with about 60 online players and no one downloading the map, the server was uploading game traffic at up to 90 MB/s (yes megabytes).

So I started Wireshark, my favorite and I believe the best tool for inspecting network packets. I captured the game traffic and started to look around. I could see that there was a very large amount of packets but since everything was binary data, interpreting the packets was not easy. It took me 10 minutes just to decode a few fields of one packet. It was hard to know what was being sent that is so big. So since I like Wireshark so much, I decided to extend it so it can interpret Factorio packets.

Factorio's network packets are extremely complex. We have 175 InputAction types(e.g. StartWalking, CursorTransfer, EditTrainSchedule, ChangeArithmeticCombinatorParameters), 22 SynchronizerActions (e.g. MapReadyForDownload, ChangeLatency), 17 Network Message types(e.g ConnectionRequest, ServerToClientHeartbeat, MapTransferBlock) all of these each with possibly tens of fields, plus many more intermediate data types that hold all of these together. Add some more logic such as custom packet fragmentation, It was clear that I could not simply write a packet interpreter from scratch, for example using Wireshark's Lua api. I would have to reuse Factorio's code as much as possible in order to save time.
Part of the team, including me, thought that it might not even be worth spending time on making this tool, especially since in the meantime we found out what was causing the large bandwidth problems. That meant that I would either have to stop or make the tool as quickly as possible.I choose to try and make the tool as fast as possible. In order to make a C/C++ plug-in for wireshark, I had to install and setup the entire wireshark build environment. Meanwhile Factorio is built using FASTBuild. We had to somehow bring these together. The solutions we were thinking of were:
  • Build everything in wireshark's build environment. This meant adding only the relevant networking classes from Factorio into Wireshark's project. Some would say this would be the 'proper' way to do it. Unfortunately everything in Factorio is tightly coupled. Some networking classes access entities, or prototypes or graphics or GUI. This means I would have to go through hundreds of classes and manually remove any code and includes that are not related to networking. Not to mention I would then have to make then build correctly in a different build environment. While this would be the 'proper' solution it would take a very long time and it would be hard to maintain.
  • Build Wireshark in Factorio's build environment. Wireshark's build is very complex. It has 424 CMakeLists/Makefile files totaling 5086 lines. There would be no way I would make that build correctly in our environment using FASTBuild.
  • Build Wireshark with a small interface in it's own environment and have it link to Factorio's library which is built in FASTBuild. This meant that that the Wireshark plugin would include almost the entire Factorio code including gui, graphics, sound, lua, etc. It's not what some people would call proper, but it would work. One day of tweaking compiler flags I never knew existed and I managed to get them to link correctly. From here it's just a matter of creating instances of a few classes to get the networking part of Factorio running and calling some methods from the Factorio code in order to build a tree of the data. In the end I put everything in one DLL. The DLL is a massive 20MB, but it works and it's actually easy to maintain.
I would say that the lesson to take from this is that what looks like a quick and dirty hack might in the end be a much better solution. I ended up with an easy to maintain plugin that gets the job done and I did it in a little over 2 weeks. Here is a screenshot of how inspecting a packet looks like.



So now when you want to report a bug related to networking or inability to connect, adding a Wireshark (.pcapng) capture might help us debug the problem.Regarding the bandwidth problems, they were caused by the blueprint library when players with very very large blueprint libraries were in game. This has since been fixed by Oxyd, and he is working on improving the synchronization bandwidth further.

Mini-tutorial review
I am looking to go over the newly added tutorials of 0.15, and to try see what was done well, and which areas need some improvement. I would like to ask for some community feedback on this topic. At the moment we have the 5 train tutorials, but more will be in the works soon. I don't want to start work on new tutorials until myself and the others in the team are satisfied that we have the process and mechanics of the tutorials working perfectly.

So if you have any comments or feedback on the mini-tutorials, factorio or just something you'd like to say, we welcome you to fill us in over on our forum
Factorio - Klonan
Hello, after a lot of planning and preparation, the party on Saturday went very well. We really enjoyed spending time with some of our fans, and it has definitely sharpened our motivation to do right by our community and make the game as great as possible. With this festivity behind us, we started this week with some renewed focus.

0.15 Stabilization push
These last few days we have made a larger push to handle all the 0.15.x bugs reports on the forum, our current estimate is that we will have a stable release within a few weeks. As the player base has grown so has the number of bugs found - things which we haven't touched for quite some time end up being broken in interesting or weird ways. Most of the time the fixes are simple, but they can have unforeseen consequences that show up quickly with the number of daily active players. We do our best to test that we don't break anything with a bug fix - and write tests when it makes sense.

However sometimes this isn't enough, and we happen to get something like this recent bug introduced in 0.15.22 and fixed in 0.15.23: As of 0.15.22 modded GUI elements are marked per-element with which mod created them so when the mod is no longer active they can be automatically removed. The logic was simple: store a mapping of the mod name to the elements it owns. On load if the mod isn't active or doesn't exist, all the elements that it owned are removed. It was tested through save/load and through mod removal, and the system worked great. Except it didn't. Almost as soon as 0.15.22 was released, someone reported a problem with losing modded GUI elements through save/load.

It turned out that due to how we store mod names in the game ("mod-" + mod-name), some logic wasn't working correctly. If the mod added between 4 and the length of the mods name + 4 GUI elements, it would break and falsely detect the mod as removed when loaded. If the mod added less than 4 or more than the mods name + 4 GUI elements it worked just fine. We just happened to test a mod that only added 1 GUI element so all the testing worked perfectly.

Wireshark dissector for Factorio - quick and dirty (Technical)
A couple of weeks ago I joined a Factorio MMO event from KatherineOfSky. In the event, all players were invited to join the server. But as we were reaching about 60 players, people were starting to get dropped and they were unable to connect back. It looked exactly like a network bandwidth problem so my first thought was "well, get a better server before hosting an MMO event". But I started looking at the traffic on my computer and there was some unusually high bandwidth being used, especially during connection. Later I was shown that with about 60 online players and no one downloading the map, the server was uploading game traffic at up to 90 MB/s (yes megabytes).

So I started Wireshark, my favorite and I believe the best tool for inspecting network packets. I captured the game traffic and started to look around. I could see that there was a very large amount of packets but since everything was binary data, interpreting the packets was not easy. It took me 10 minutes just to decode a few fields of one packet. It was hard to know what was being sent that is so big. So since I like Wireshark so much, I decided to extend it so it can interpret Factorio packets.

Factorio's network packets are extremely complex. We have 175 InputAction types(e.g. StartWalking, CursorTransfer, EditTrainSchedule, ChangeArithmeticCombinatorParameters), 22 SynchronizerActions (e.g. MapReadyForDownload, ChangeLatency), 17 Network Message types(e.g ConnectionRequest, ServerToClientHeartbeat, MapTransferBlock) all of these each with possibly tens of fields, plus many more intermediate data types that hold all of these together. Add some more logic such as custom packet fragmentation, It was clear that I could not simply write a packet interpreter from scratch, for example using Wireshark's Lua api. I would have to reuse Factorio's code as much as possible in order to save time.
Part of the team, including me, thought that it might not even be worth spending time on making this tool, especially since in the meantime we found out what was causing the large bandwidth problems. That meant that I would either have to stop or make the tool as quickly as possible.I choose to try and make the tool as fast as possible. In order to make a C/C++ plug-in for wireshark, I had to install and setup the entire wireshark build environment. Meanwhile Factorio is built using FASTBuild. We had to somehow bring these together. The solutions we were thinking of were:
  • Build everything in wireshark's build environment. This meant adding only the relevant networking classes from Factorio into Wireshark's project. Some would say this would be the 'proper' way to do it. Unfortunately everything in Factorio is tightly coupled. Some networking classes access entities, or prototypes or graphics or GUI. This means I would have to go through hundreds of classes and manually remove any code and includes that are not related to networking. Not to mention I would then have to make then build correctly in a different build environment. While this would be the 'proper' solution it would take a very long time and it would be hard to maintain.
  • Build Wireshark in Factorio's build environment. Wireshark's build is very complex. It has 424 CMakeLists/Makefile files totaling 5086 lines. There would be no way I would make that build correctly in our environment using FASTBuild.
  • Build Wireshark with a small interface in it's own environment and have it link to Factorio's library which is built in FASTBuild. This meant that that the Wireshark plugin would include almost the entire Factorio code including gui, graphics, sound, lua, etc. It's not what some people would call proper, but it would work. One day of tweaking compiler flags I never knew existed and I managed to get them to link correctly. From here it's just a matter of creating instances of a few classes to get the networking part of Factorio running and calling some methods from the Factorio code in order to build a tree of the data. In the end I put everything in one DLL. The DLL is a massive 20MB, but it works and it's actually easy to maintain.
I would say that the lesson to take from this is that what looks like a quick and dirty hack might in the end be a much better solution. I ended up with an easy to maintain plugin that gets the job done and I did it in a little over 2 weeks. Here is a screenshot of how inspecting a packet looks like.



So now when you want to report a bug related to networking or inability to connect, adding a Wireshark (.pcapng) capture might help us debug the problem.Regarding the bandwidth problems, they were caused by the blueprint library when players with very very large blueprint libraries were in game. This has since been fixed by Oxyd, and he is working on improving the synchronization bandwidth further.

Mini-tutorial review
I am looking to go over the newly added tutorials of 0.15, and to try see what was done well, and which areas need some improvement. I would like to ask for some community feedback on this topic. At the moment we have the 5 train tutorials, but more will be in the works soon. I don't want to start work on new tutorials until myself and the others in the team are satisfied that we have the process and mechanics of the tutorials working perfectly.

So if you have any comments or feedback on the mini-tutorials, factorio or just something you'd like to say, we welcome you to fill us in over on our forum
Factorio - posila87
Changes
  • Reverted change that made Inserters no longer drop what they are holding when disabled by the circuit network. more

Bugfixes
  • Fixed that the UI scale option wouldn't apply until restarting the game in some cases. more
  • Fixed that number-input fields would also block letters/other keys. more
  • Fixed that tile filters in the deconstruction planner wouldn't get used in some cases when entity filters were also defined. more
  • Fixed curved rail ghosts wouldn't mark trees/rocks when force-built. more
  • Fixed construction robots could stop doing their jobs when roboport was destroyed or unpowered. more
  • Fixed long strings in the right description pane. more

Modding
  • Fixed that some mod mods would falsely be detected as removed and have GUI elements they added removed on load. more

Scripting
  • Fixed that teleporting entity ghosts didn't work correctly. more


You can get experimental releases by selecting the 'experimental' beta branch under Factorio's properties in Steam.
Factorio - posila87
Changes
  • Reverted change that made Inserters no longer drop what they are holding when disabled by the circuit network. more

Bugfixes
  • Fixed that the UI scale option wouldn't apply until restarting the game in some cases. more
  • Fixed that number-input fields would also block letters/other keys. more
  • Fixed that tile filters in the deconstruction planner wouldn't get used in some cases when entity filters were also defined. more
  • Fixed curved rail ghosts wouldn't mark trees/rocks when force-built. more
  • Fixed construction robots could stop doing their jobs when roboport was destroyed or unpowered. more
  • Fixed long strings in the right description pane. more

Modding
  • Fixed that some mod mods would falsely be detected as removed and have GUI elements they added removed on load. more

Scripting
  • Fixed that teleporting entity ghosts didn't work correctly. more


You can get experimental releases by selecting the 'experimental' beta branch under Factorio's properties in Steam.
Factorio - HanziQ
Changes
  • Blueprints in the blueprint library are sorted using case-insensitive natural compare. E.g. the sorting order now is "1", "2", "10", instead of the previous "1", "10", "2".
  • Inserters will no longer drop what they are holding when disabled by the circuit network. more
  • The deconstruction planner filter now treats any entity filter as also matching entity ghosts of that type.
  • Multiplayer creation GUI now remembers game name. more

Balance
  • Explosive Mine now only does damage to enemy units and structures.

Sound
  • Added missing vehicle collision sounds (pipes, solar panels, etc...)
  • Reduced volume of ore mining and tree chopping.

Bugfixes
  • Toggling fullscreen via options or Alt-Enter now keeps window on the same monitor. more
  • Fixed that in long recharging queues some robots would never get a chance to recharge. more
  • Fixed that it wasn't possible to click and drag blueprints into an empty blueprint book. more
  • Fixed that deconstruction/blueprinting selection would be canceled if the selection ended on one of the always-visible GUIs. more
  • Fixed the productivity bar in the furnace GUI wouldn't show in some instances. more
  • Fixed exiting a multiplayer game hosted through the in-game multiplayer option. more
  • Fixed that tile ghosts would always get selected over real entities. more
  • Fixed that the heat-connection icon was not visible on entities other than boiler and reactor. (related to modding)
  • Fixed that furnace with heat source couldn't be rotated before placing it.
  • Fixed the gui of furnace using heat as energy source.
  • Fix PvP Gui script error. more
  • Fix that clearing items in Transport belt maddness didn't give the items back. more
  • Fixed that rails marked for deconstruction wouldn't allow canceling deconstruction while a train was on them. more
  • Fixed that biters would change orientation rapidly when they were near a player whom they couldn't attack. more
  • Fixed that Rocket Silo would continue crafting for 1 tick after completing a rocket. more
  • Fixed that lot of other keys that can be used to write characters in the edit box (or console) were not blocked from affecting the game if they are assigned to do a game action. Having text box active now means that all of the keys are blocked from affecting the game.
  • Fixed (hopefully), that the stretching of bounding boxes of walls to touch their neighbours was not taking into account when marking things in the way for the blueprint. more
  • Fixed that the description pane would change width depending on the content. It should now never change width. more
  • Fixed that the shooting-target would render as valid to shoot with rockets when it actually wasn't. more
  • Fixed that programmable speakers would get wrong instruments after importing pre-0.15.19 blueprint string. more
  • Fixed that maximized Factorio window had thin border around it. more
  • Fixed that vanilla and modded version of achievements could be mixed up. more
  • Fixed that inserters would try to insert items into other non-burner inserters. more
  • Fixed that fast-transferring modules into the rocket silo would put them into the module slots and the rocket at the same time. more
  • Fixed that the "rocket launched without satellite" message couldn't be dismissed in some cases. more
  • Fixed the mining drill GUI wouldn't show mining progress when it had a large number of modded module slots. more
  • Fixed fast-replacing an assembling machine with overloaded ingredients would spill the items. more
  • Fixed many ingredients or products in recipes would break the assembling machine GUI. more
  • Fixed wrong values when using /config set allowed-commands with invalid values would crash the game. more

Modding
  • Fixed that giving rolling stock entities invalid collision masks would crash the game. more
  • Mod title and description can now be localised.
  • Fixed a crash when mods use reset technologies during the technology researched event. more
  • Fixed that modded GUI elements wouldn't get removed in some cases when the mod was removed. more
  • Fixed source_effects applying effects to the source by the target instead of to the source by the source. more

Scripting
  • Fixed setting robot.energy for logistic/construction robots wouldn't account for the robot battery upgrade. more
  • Fixed that setting LuaBurner::currently_burning didn't accept LuaItemPrototype as the docs said. more
  • Added LuaEntityPrototype::count_as_rock_for_filtered_deconstruction read.
  • Added LuaEntityPrototype::filter_count read.
  • Added LuaEntity::spawner/units read.


You can get experimental releases by selecting the 'experimental' beta branch under Factorio's properties in Steam.
Factorio - HanziQ
Changes
  • Blueprints in the blueprint library are sorted using case-insensitive natural compare. E.g. the sorting order now is "1", "2", "10", instead of the previous "1", "10", "2".
  • Inserters will no longer drop what they are holding when disabled by the circuit network. more
  • The deconstruction planner filter now treats any entity filter as also matching entity ghosts of that type.
  • Multiplayer creation GUI now remembers game name. more

Balance
  • Explosive Mine now only does damage to enemy units and structures.

Sound
  • Added missing vehicle collision sounds (pipes, solar panels, etc...)
  • Reduced volume of ore mining and tree chopping.

Bugfixes
  • Toggling fullscreen via options or Alt-Enter now keeps window on the same monitor. more
  • Fixed that in long recharging queues some robots would never get a chance to recharge. more
  • Fixed that it wasn't possible to click and drag blueprints into an empty blueprint book. more
  • Fixed that deconstruction/blueprinting selection would be canceled if the selection ended on one of the always-visible GUIs. more
  • Fixed the productivity bar in the furnace GUI wouldn't show in some instances. more
  • Fixed exiting a multiplayer game hosted through the in-game multiplayer option. more
  • Fixed that tile ghosts would always get selected over real entities. more
  • Fixed that the heat-connection icon was not visible on entities other than boiler and reactor. (related to modding)
  • Fixed that furnace with heat source couldn't be rotated before placing it.
  • Fixed the gui of furnace using heat as energy source.
  • Fix PvP Gui script error. more
  • Fix that clearing items in Transport belt maddness didn't give the items back. more
  • Fixed that rails marked for deconstruction wouldn't allow canceling deconstruction while a train was on them. more
  • Fixed that biters would change orientation rapidly when they were near a player whom they couldn't attack. more
  • Fixed that Rocket Silo would continue crafting for 1 tick after completing a rocket. more
  • Fixed that lot of other keys that can be used to write characters in the edit box (or console) were not blocked from affecting the game if they are assigned to do a game action. Having text box active now means that all of the keys are blocked from affecting the game.
  • Fixed (hopefully), that the stretching of bounding boxes of walls to touch their neighbours was not taking into account when marking things in the way for the blueprint. more
  • Fixed that the description pane would change width depending on the content. It should now never change width. more
  • Fixed that the shooting-target would render as valid to shoot with rockets when it actually wasn't. more
  • Fixed that programmable speakers would get wrong instruments after importing pre-0.15.19 blueprint string. more
  • Fixed that maximized Factorio window had thin border around it. more
  • Fixed that vanilla and modded version of achievements could be mixed up. more
  • Fixed that inserters would try to insert items into other non-burner inserters. more
  • Fixed that fast-transferring modules into the rocket silo would put them into the module slots and the rocket at the same time. more
  • Fixed that the "rocket launched without satellite" message couldn't be dismissed in some cases. more
  • Fixed the mining drill GUI wouldn't show mining progress when it had a large number of modded module slots. more
  • Fixed fast-replacing an assembling machine with overloaded ingredients would spill the items. more
  • Fixed many ingredients or products in recipes would break the assembling machine GUI. more
  • Fixed wrong values when using /config set allowed-commands with invalid values would crash the game. more

Modding
  • Fixed that giving rolling stock entities invalid collision masks would crash the game. more
  • Mod title and description can now be localised.
  • Fixed a crash when mods use reset technologies during the technology researched event. more
  • Fixed that modded GUI elements wouldn't get removed in some cases when the mod was removed. more
  • Fixed source_effects applying effects to the source by the target instead of to the source by the source. more

Scripting
  • Fixed setting robot.energy for logistic/construction robots wouldn't account for the robot battery upgrade. more
  • Fixed that setting LuaBurner::currently_burning didn't accept LuaItemPrototype as the docs said. more
  • Added LuaEntityPrototype::count_as_rock_for_filtered_deconstruction read.
  • Added LuaEntityPrototype::filter_count read.
  • Added LuaEntity::spawner/units read.


You can get experimental releases by selecting the 'experimental' beta branch under Factorio's properties in Steam.
Factorio - Klonan
Tomorrow's party
Since a couple of weeks ago I was working for the 1M Party. Made some little graphic design jobs which finally became not that little and much more than "some little". I have to admit that I had quite some fun doing them, cause these small things are giving me the chance to experiment and play with the graphical identity of Factorio, like the happy logo variation, the small jumping gear, some layouts, the 1 color version of the Factorio logo and so on.




Luckily I finished the jobs with time enough as to come back to the game gfx. But to be honest, Jitka is the person who's really taking care of every single detail for the party, and preparing and organizing everything. She became a master with the stamp and other stuff that I can't reveal just to not spoil surprises.

HR electric poles
Most of the time when converting normal-res graphics (NR) to high-res (HR), I like to take the chance to re-think the design of the entity. Normally after testing it in the game for so long, it is easy to find better solutions for old problems. But the main reason for re-designing an entity, is that it doesn't support the double resolution - because it was designed and optimized for NR - and sometimes it is because the style is primitive and doesn't fit with the actual standards of the game. Both reasons are true for the case of the electric poles.



Now that I see them again, after working for so long with the HR versions, I don't find them that bad, but it is true that there are problems, especially with the medium one. I will talk about it later. Let's start with the big pole, the 'easy' one.



The model v.1 doesn't support HR, and I always thought that it could be much nicer.
This new v2.a model, is in fact a real one that exists not too far from my home. It's just perfect - in real life - but for Factorio it has some problems.
The base is too thin, it needs to cover 4 tiles, and it has 6 connections instead of the 3 that Factorio requires. I asked for having 6 connections and little variations in the position and rotation of the poles, to make it more natural in the game. But the amount of work and potential problems that this would cause makes it just not viable.
A really nice point of this model is how it rotates. It's very clear in its geometry, clean and transparent at the time of overlapping with other tiles.




After the first attempt, the proposed solution is more conservative. Getting back to the classic v.1.
v2.b is just trying not to freak out too much, and moves forward within the comfort zone. Just the same as the v.1, but better for HR and the modern Factorio style.
The problem of this model is the rotations, specifically the horizontal view, so I believe a 3rd version will come out after mixing the best parts of the other two.



The main problem with medium and small poles, is that they are normally located in the middle of your factory, so if you have a tight setup they can be very intrusive.
They need to be transparent. On the other hand, they have to be visible enough in order to feel comfortable at the time of playing.
That's why medium pole v.1 is a diagonal. It is just an experiment that tries to show the tiles behind as best as possible.
But to be honest I find a bit annoying the absurdity of having a diagonal pole that requires another support on the base just to be stable. What kind of engineer does a pole like that?
The good part of the v.1 is that it is very unique, and you can recognize this pole as from Factorio anytime you see it.
With this new model v.2a, I'm trying to simplify the shape as much as possible in order to be more light and transparent. The problem is that the horizontal rotation is not spectacular, and this sense of uniqueness is quite diluted.



So comes the medium pole v.2b, which is trying to keep the lightness of 2a, even increases it, and it tries also to recover this lost uniqueness from v.1.
Rotations are not super spectacular either, but for the horizontal rotations which are the most difficult ones, this model works pretty well.
I believe that a medium pole v.2c will come by taking the very best of the other models.



With this first version of the small electric pole, I had already a long and difficult process for building it. In my opinion there's not really any serious issue with it apart from the HR incompatibility. So basically v.2a is just a cleaned and stylized version of the v.1. Anyway it needs to be tested to see if it really works.


So that was a short and brief trip to the re-design for HR in Factorio. I just wanted to continue a little bit the last FFF, in order to show more deeply the process of creating an entity.
Many times we speak about technical stuff, meaning code and complicated tools, but we sometimes forget to talk about conceptualization and design, which is full of techniques and twists.
As you can see, everything in here is a work in progress, so we will probably speak about the final HR electric network in action soon. I hope you find it interesting.



As a bonus, I'd like to introduce you to the new version of the warning signals. I had to clean up the style a lot in order to make it very visible in any situation. Still work in progress so expect changes, but step by step Factorio looks better.

Any feedback from you is always interesting. See you in the forums.
Factorio - Klonan
Tomorrow's party
Since a couple of weeks ago I was working for the 1M Party. Made some little graphic design jobs which finally became not that little and much more than "some little". I have to admit that I had quite some fun doing them, cause these small things are giving me the chance to experiment and play with the graphical identity of Factorio, like the happy logo variation, the small jumping gear, some layouts, the 1 color version of the Factorio logo and so on.




Luckily I finished the jobs with time enough as to come back to the game gfx. But to be honest, Jitka is the person who's really taking care of every single detail for the party, and preparing and organizing everything. She became a master with the stamp and other stuff that I can't reveal just to not spoil surprises.

HR electric poles
Most of the time when converting normal-res graphics (NR) to high-res (HR), I like to take the chance to re-think the design of the entity. Normally after testing it in the game for so long, it is easy to find better solutions for old problems. But the main reason for re-designing an entity, is that it doesn't support the double resolution - because it was designed and optimized for NR - and sometimes it is because the style is primitive and doesn't fit with the actual standards of the game. Both reasons are true for the case of the electric poles.



Now that I see them again, after working for so long with the HR versions, I don't find them that bad, but it is true that there are problems, especially with the medium one. I will talk about it later. Let's start with the big pole, the 'easy' one.



The model v.1 doesn't support HR, and I always thought that it could be much nicer.
This new v2.a model, is in fact a real one that exists not too far from my home. It's just perfect - in real life - but for Factorio it has some problems.
The base is too thin, it needs to cover 4 tiles, and it has 6 connections instead of the 3 that Factorio requires. I asked for having 6 connections and little variations in the position and rotation of the poles, to make it more natural in the game. But the amount of work and potential problems that this would cause makes it just not viable.
A really nice point of this model is how it rotates. It's very clear in its geometry, clean and transparent at the time of overlapping with other tiles.




After the first attempt, the proposed solution is more conservative. Getting back to the classic v.1.
v2.b is just trying not to freak out too much, and moves forward within the comfort zone. Just the same as the v.1, but better for HR and the modern Factorio style.
The problem of this model is the rotations, specifically the horizontal view, so I believe a 3rd version will come out after mixing the best parts of the other two.



The main problem with medium and small poles, is that they are normally located in the middle of your factory, so if you have a tight setup they can be very intrusive.
They need to be transparent. On the other hand, they have to be visible enough in order to feel comfortable at the time of playing.
That's why medium pole v.1 is a diagonal. It is just an experiment that tries to show the tiles behind as best as possible.
But to be honest I find a bit annoying the absurdity of having a diagonal pole that requires another support on the base just to be stable. What kind of engineer does a pole like that?
The good part of the v.1 is that it is very unique, and you can recognize this pole as from Factorio anytime you see it.
With this new model v.2a, I'm trying to simplify the shape as much as possible in order to be more light and transparent. The problem is that the horizontal rotation is not spectacular, and this sense of uniqueness is quite diluted.



So comes the medium pole v.2b, which is trying to keep the lightness of 2a, even increases it, and it tries also to recover this lost uniqueness from v.1.
Rotations are not super spectacular either, but for the horizontal rotations which are the most difficult ones, this model works pretty well.
I believe that a medium pole v.2c will come by taking the very best of the other models.



With this first version of the small electric pole, I had already a long and difficult process for building it. In my opinion there's not really any serious issue with it apart from the HR incompatibility. So basically v.2a is just a cleaned and stylized version of the v.1. Anyway it needs to be tested to see if it really works.


So that was a short and brief trip to the re-design for HR in Factorio. I just wanted to continue a little bit the last FFF, in order to show more deeply the process of creating an entity.
Many times we speak about technical stuff, meaning code and complicated tools, but we sometimes forget to talk about conceptualization and design, which is full of techniques and twists.
As you can see, everything in here is a work in progress, so we will probably speak about the final HR electric network in action soon. I hope you find it interesting.



As a bonus, I'd like to introduce you to the new version of the warning signals. I had to clean up the style a lot in order to make it very visible in any situation. Still work in progress so expect changes, but step by step Factorio looks better.

Any feedback from you is always interesting. See you in the forums.
...