Quality Control

by raley

Assemblers and furnaces earn quality upgrades for the entire factory.

Content
8 days ago
2.0
1.62K
Factorio: Space Age Icon Space Age Mod
Logistic network Manufacturing Cheats
Owner:
raley
Source:
https://github.com/aarons/factorio-qu...
Homepage:
https://github.com/aarons/factorio-qu...
License:
MIT
Created:
7 months ago
Latest Version:
2.1.2 (8 days ago)
Factorio version:
2.0
Downloaded by:
1.62K users

This mod adds a chance for machines to upgrade in quality as they work.

Gacha-style progression


Individual machines roll for quality upgrades when they hit work milestones, similar to the chance-based progression of Factorio's quality system. By default there's a 1% chance per 3 hours of crafting, but you can adjust both the chance of success and the time of work required.

Fair assembler treatment


Assemblers progress at the same rate regardless of what they are working on; an assembler making iron gears for an hour will upgrade just as fast as one making science packs for an hour.

Crafting speed does impact progression; so an assembler with speed modules will progress more quickly than one without.

Works with the whole factory


Just about all entity types are supported:

  • Manufacturing: assembling machines, furnaces, rocket silos
  • Producers: mining drills, agriculture towers, water pumps
  • Power: electric poles, solar panels, accumulators, generators, reactors, boilers, heat pipes, power switches, lightning rods
  • Combat: turrets, artillery turrets, walls, gates, radar
  • Logistics: inserters, beacons, roboports
  • Space Age: asteroid collectors, thrusters
  • Other: labs, combinators, programmable speakers, lamps, fluid pumps

Entity types can be toggled on or off in the settings if you want to avoid affecting certain items.

Customization options


It's very configurable. Almost all settings can be enabled/disabled or min/maxed to fairly extreme levels.

Here are the main options:

Work hours needed

How many hours a machine must work for each upgrade attempt. The default of 3 hours means that an assembler with crafting speed 1 must work for 3 real-time hours in game to earn 1 upgrade attempt. If your savegame has 30 hours of gameplay and it's been working the whole time, it will attempt upgrades 10 times. It sounds slow, but speed modules, productivity bonuses, and faster assemblers end up earning upgrades pretty fast.

Upgrade chance
Chance of success per attempt (default: 1%)

Difficulty scaling
Higher quality levels can optionally require more work, expressed as a percentage at each level. Helps keep lategame entities more in check.

Luck
There is an optional luck parameter which increases the machine's chance to succeed after each failure.

Module Upgrading
Should modules in an entity also upgrade with it? This is pretty OP when turned on, by default it's off.

Continue Accumulating at Max Quality
Once an assembler hits max quality level, should it contribute upgrade credits to the general pool? This helps entities upgrade that don't have a way to generate attempts on their own (such as inserters or solar panels).

Some additional context: factorio's API doesn't have a way to track work completed for things like inserters, so instead, entities that produce upgrade attempts (assemblers) share those attempts out on a 1:1 basis. For each upgrade attempt generated by a producer, a random non-producer also gets an upgrade attempt.

Turrets

New for version 2.1.0 - turrets generate upgrade attempts by dealing damage. The default value is calculated as 36,000 damage, or 1 hour of piercing ammo production with no upgrades.

I tried with 10% of that (3600 damage) and found that railguns advance very fast, as well as gun-turrets on spaceships. Of course I left it on that way in my playthrough, it's great!

Other Features


Notifications

A silent map ping is on by default, which highlights entities that change. This is a non-obtrusive way to know that things are happening but it can be toggled off in player settings.

An aggregate report is available which will ping the console with a breakdown of how many entities changed. It is displayed once every 5 minutes to avoid spamming. The report is off by default. It makes a console notification sound and I didn't see a way to disable that.

In game commands

Inspect entity: control-shift-q will inspect the entity under the cursor and print out stats about its current progression.

If you need to rebuild the cache (shouldn't be needed, but just in case), there is a console command available: quality-control-init. This is helpful if you suspect something should be tracked by Quality Control but it isn't.

Optimized performance


Designed to run smoothly on massive bases. The mod processes a few machines each tick to avoid lag spikes, and includes settings (under the map tab) to tune the performance further.

Adding the mod to an existing save game may cause an initial lag spike as it scans everything. Once all the entities are scanned it will go back to normal.

Compatibility


Supported

This works well with mods that add extra quality tiers. If you find one that doesn't work please let me know as it's generally quick to add support.

Unsupported - but still fine to use alongside

Some modded entities don't do well with quality changes. This mod is generally safe to use along side them, but their entities are pro-actively filtered out to prevent issues. There may be some that are not discovered yet.

In general, this mod avoids altering hidden or indestructible entities in the game.

Unsupported Entity Types

There are a few entity types that are not supported: belts, pipes, rails, and storage containers.

It's very disruptive having mixed qualities on those kind of infrastructure items (makes it hard to copy/paste among other issues). Also not sure if there is a UPS impact if there are lots of quality changes on connected belts and pipes.

Localization


There are some AI generated localizations. Corrections are very welcome!

Supported languages: Belarusian, Catalan, Chinese (Simplified), Chinese (Traditional), Czech, Dutch, Finnish, French, Georgian, German, Greek, Hungarian, Italian, Japanese, Kazakh, Korean, Latvian, Norwegian, Polish, Portuguese (Brazil), Portuguese (Portugal), Romanian, Russian, Spanish (Latin America), Spanish (Spain), Swedish, Thai, Turkish, Ukrainian, Vietnamese.

Please share any corrections on the mod discussion page or to the github issues page.

Inspiration


This mod was inspired by a few others:

Factory Levels
Experience for Buildings
Level Up
Upgradeable Quality