Quality of Life research


Adds bonuses and optionally research for bigger bags (more inventory space), movement/walking/running speed, character hand crafting speed, long reach (optional far resource reach), and player mining speed. Use settings to choose which ones you want, either through research or by just choosing a value yourself.

Utilities
a day ago
0.15 - 2.0
180K

b QOL mod somehow interferes with Blueprint Sandboxes mod

8 days ago
(updated 8 days ago)

Hello, I found out that if I have QOL mod enabled, an additional crafting tab from the other mod "Blueprint Sandboxes" stops showing. No errors are given, the tab is just not there anymore. Could you please take a look?

Blueprint Sandboxes mod: https://mods.factorio.com/mod/blueprint-sandboxes
The tab I am referring to: https://imgur.com/a/qeZuQBs

a day ago

I suspect I may know why this is happening, because I have a conflict with another mod that appears very similar.
This mod calls this function when configuration changes -- any mod being added, removed, updated, any startup setting being changed, etc, etc.

script.on_configuration_changed(function (changes)
    local was_logging_enabled = is_logging_enabled
    is_logging_enabled = true

    plog('configuration change detected, updating for all forces and resetting technology effects')
    update_for_all_forces()
    for _, force in pairs(game.forces) do
        force.reset_technology_effects()
    end

Calling reset_technology_effects() disables any recipes that are disabled by default and enabled programmatically, which is how the Voidcraft mod (https://mods.factorio.com/mod/Voidcraft) unlocks its alternate recipes. At a cursory glance, the sandbox mod appears to work similarly.

I can't say I quite understand why this needs to be done in the first place, because it has already been run by the game prior to this event firing at all, so the only changes would be from other mods, creating incompatibilities like this, and yourself in the update_for_all_forces() call, which you're already handling as far as I can tell.

a day ago

The reset_technology_effects() is a bit of a scourge on Factorio modding in general. It's often necessary to avoid compatibility issues, but it causes new ones by itself. There's a long history of why this was necessary, and back in the day I requested specific mod APIs to avoid it.

The problem was that when you disabled a category in startup settings, for example, crafting speed, and you'd load up the game, you would actually still have the crafting speed, since Factory would not "undo" the effects from a previously-researched technology, even if said technology has been removed.
reset_technology_effects() removes all those effects, and recomputes them from the currently researched technologies.

Technically seen, any mods breaking due to it, is a bug on their side. They should detect whenever technology effects are reset, and properly restore their state.

However, QoL research indeed no longer has a need for it, as its internal technologies (hidden technologies that actually give the bonus effects) are never getting removed anymore, except on removal of the mod. Even better, it seems that Factorio has improved things here, and even removing the mod will now remove the bonus effects, which it previously wouldn't do. With that, I'll remove this from the mod, and I'll also remove this section from the Q&A (just posting this here for historical tracking):

Q: How to uninstall the mod?
A: Since Factorio doesn't reset the technology effects when you uninstall a mod, simply removing the mod might leave them lingering. The easiest way to solve this is to go into settings before uninstalling, and set all flat bonus and multiplier settings to 0. This'll effectively disable any bonuses, and the mod can then safely be removed.

Alternatively, if you've already uninstalled the mod, you can run this console command to fix it:
/c for _, force in pairs(game.forces) do force.reset_technology_effects() end
Note that running console commands will disable achievements.

14 hours ago

Thanks guys! It's all good now

New response