Version history/0.3.0

From Official Factorio Wiki
Jump to navigation Jump to search


  • Compatibility with Windows XP



  • Compatibility with older windows systems fix (Vista and older).
  • Fix of the character projectile creation position.
  • Fixed of the not working flame thrower.
  • German translation fix.
  • Fix of the script crash when player dies in beta scenario mission 1
  • Fixed the stuck assembling machines. (It affected saves where assembling machines had items inside, the order of items was changed.)
  • Fixed the building of walls in map editor.
  • Fixed the bug of autoclosing character screen when the player is in vehicle.
  • Fixed the splitter bug.
  • Fixed bug in loading Lua packages in modules data.Lua
  • Fixed the crash in the beta campaign level 02 (as well changing the core to show script error (instead of freezing) message when different object is given)
  • Map size settings didn't affect freeplay.



  • Game updates are using timer event. The program keeps 60 game updates even with FPS < 60 or FPS > 60. The "catchup rate" is configurable. When the FPS drops very low this stops having the effect.
  • Added walls. (Walls are made from stone bricks, these are created from stone in the furnace.)
  • Storing console history in the player data.


  • New tree graphics (8 dry trees 12 big trees)
  • New inserter graphics
  • New laser turret and gun turret graphics
  • Bullet particles for gun turret
  • New solar panel graphics
  • Lighter stone furnace graphics
  • New logistic robot graphics


  • Fixed crash when restarting the game with technology GUI opened.
  • Fixed crafting queue properties when saved during crafting.
  • Fixed laser turret not consuming energy in idle state.
  • Splitter has maximum memory of 5 items when forced to send items on one side because the other one is blocked. This means that when left is block for a long time, and then both are free, the right will get mostly 5 items before it is split 1:1 again.
  • Fixed that the electric pole has the same orientation all the time (regardless connections)


  • Removed the text length limit from the input console.
  • Wrapping of the console text in the game.


  • Mods are self sustainable folders now. They contain the prototype definitions, graphics, sounds, locale, scenarios or campaigns.
  • Mods GUI in the game to enable / disable mods and change their ordering.
  • The default game contents is treated as a mod (called base).
  • Prototype definitions are generated by Lua scripts (no json anymore). Mods can manipulate the definitions from previous mods.
  • Mods can have control.lua script that supplements / changes the behavior of the default scenario script.
  • Multiple running scripts (from the mods) can communicate with each other using interfaces.
  • General furnace energy source specification in json (so it can be electric)
  • Started to use the name of the recipe, this allows different recipes for the same product. Having different recipes for the same product for player crafting is not tested (regarding the auto crafting)
  • Translation files are merged properly.
  • Default English fallback for translations.


  • Simple way to add GUI elements using script.
  • Divided the player and its character, some functions that are not directly connected with the character (goal description, printing etc)are accessible from the player object, the rest from the character. The access to character is game.player.character
  • The migration script runs before the control.lua is loaded and can be used to reload scripts from the original scenario this is used to solve the issue of incompatible scripts in the save game.
  • Merged onunitdied and onplayerdied to onentitydied
  • Check for positive addition in the LuaInventory::insert method
  • Added LuaInventory::remove method
  • Added LuaInventory::getcontents method
  • Simpler access to player from game object (game.player instead of game.getplayer())
  • Added LuaRecipe::reload method
  • Added force parameter in createentity so player can specify the owner of the created entity (was always enemy now)
  • Added way to change force of entity and damage entity (damaging is different then sethealth).
  • Position doesn't need to be in format {x = 34, y = 7}, the format {34 ,7} works as well, the same with bounding box.
  • Added simple interface for the Freeplay that allows manipulating the attacks from mod scripts.
  • Scripts receive only events they have subscribed to.
  • Scripts can emit their own events (for instance Freeplay emits an event whenever it starts the attack).