Rigor Module


New type of module: Rigor modules. Rigor modules increase the probability of a recipe returning its most valuable product.

Content
11 hours ago
2.0 - 2.1
11.5K
Manufacturing
Owner:
thremtopod
Source:
https://gitlab.com/jfletcher94/factorio-mods
Homepage:
https://discord.gg/WKgXHPdj77
License:
GNU LGPLv3
Created:
5 months ago
Latest Version:
1.1.9 (11 hours ago)
Factorio version:
2.0 - 2.1
Downloaded by:
11.5K users

Rigor Module

Rigor

Rigor is a new module effect, provided by rigor modules. Rigor increases the odds a recipe will produce its most valuable output. Rigor can only affect a product with a probabilistic output; for example, rigor increases the odds of getting uranium-235 from uranium processing, and holmium ore from scrap recycling.

Rigor modules scale from +30% rigor for common-quality tier 1 modules, to +200% rigor for legendary-quality tier 3 modules. Filling a recycler with tier 1 commons will boost holmium ore yield from 1% to 1.73%. Filling it with tier 3 legendaries will boost the yield to 5.4%.

Compatibility Mode

You can enable "compatibility mode" in Rigor Module's mod settings to help with mod compatibility and clutter, especially with many mods installed. Compatibility mode disables rigor modules and the rigor effect for all recipes unless explicitly whitelisted by another mod.

At present, compatibility-mode-whitelisted recipes come from:

Notes

  • Rigor only affects a single output per recipe.
  • Rigor cannot be used for recycling recipes except for scrap recycling (some additional recycling recipes added by other mods, such as spaceship scrap recycling from Secretas&Frozeta, can also use rigor modules).
  • Rigor increases the odds of a recipe producing the given output. To convert to probability: for probability p, odds = p/(1-p); for probability p and rigor r, probability is scaled using the formula: rp/(rp - p + 1).
  • I designed rigor modules for my modded planet, Crucible, and Crucible's recipes are designed to utilize rigor. However, it also works as a standalone mod.
  • For recipe result that utilize shared probability instead of independent probability:
    • Rigor modules will also decrease the probabilities of the other products.
    • The rigor effect is scaled by the net probability of the recipe producing any result.

Compatibility

If you encounter compatibility issues with other mods, you can try enabling compatibility mode in the mod settings (also, please let me know).

Rigor modules should generally integrate smoothly with other mods; however, that does not mean they are balanced!

Tested compatible and balanced mods:

Mods with compatibility/adjustments:

Ongoing Development and Known Issues

Now that Rigor Module has been released with version 1.0, new major features are not planned. I will continue to fix bugs, optimize performance, and improve compatibility.

In Progress or Planned:

Not Feasible or Not Planned:

  • Due to how rigor modules are implemented, a crafting machine's total rigor has to be effectively rounded to the nearest 25%.
  • Due to how rigor modules are implemented, if an assembling machine is using rigor modules, it's not possible to set its recipe with a circuit condition.
  • The mod can behave inconsistently while the game is paused in the map editor.

For Other Modders

  • I've done my best to make this mod as robust and easily compatible as possible.
  • This mod should be able to handle everything automatically; there's also an API for customization.
  • Adding additional tiers of rigor modules should work automatically.
  • For recipes with multiple probabilistic products, you can specify which product should be affected by rigor.
  • You can exclude recipes and recipe categories from using rigor modules.
  • See prototypes/mod-data.lua for details on how to configure and customize compatibility.
  • New RecipePrototype field: rigor_sensitivity(float); scales the effective rigor for that recipe.
  • 'Rigor' is not an actual module effect, as it relies on runtime scripting to work; rigor modules therefore cannot work in beacons, mining drills, or any other non-crafting-machine entity type. Even if you enable rigor modules for other entity types like beacons or mining drills, the 'rigor' effect will do nothing.

Contributors

Code

  • MeteorSwarm: rigor_sensitivity field, many optimizations.

Localization