Factorio as a 3d simulator

Factorio is one of the best games to become a better engineer. I wanted to use it as a 3d simulation for some ideas I had on human behaviour. For that that simulation to work I needed to ensure the construction of items built by factories had a consistent time, so I made a quick mod written in lua

The 3 files needed:

data.lua

for _, recipe_prototype in pairs(data.raw.recipe) do
    recipe_prototype.energy_required = settings.startup["adam-build-time"].value
end

settings.lua

data:extend({
    {
      type = "double-setting",
      name = "adam-build-time",
      setting_type = "startup",
      default_value = 2.0,
      minimum_value = 0.1,
      maximum_value = 1000.0,
    }
  })

info.json

{
    "name":"adam-set-build-time",
    "version":"0.0.1",
    "title":"Adam Set Build Time",
    "author":"",
    "factorio_version": "1.1",
    "dependencies": ["base"]
}

The way Factorio handles lifecycle of objects was initially confusing, but when you understand how amazingly optimised it is as a game, you know everything is done for a very good reason.

In the end, I didn’t use Factorio even though it worked because it was distractingly over complicated and looked messy… so back to the drawing board.