Late Upgrades

by aster26

Having useless alien artifacts and redundant production lines after all researches are completed? This mod lets you spend excess resources to upgrades, such as bullet damage, logistic robot speed and inserter stack size (and many more), up to level 25. Now you have means to put your surplus goods away other than rockets! (And there will be benefit if you're patient enough!)

3 years ago
0.13 - 0.14
15518
Owner:
aster26
Source:
msakuta/Factorio-LateUpgrades-Mod
Homepage:
N/A
License:
MIT
Created:
4 years ago
Latest Version:
0.2.2 (3 years ago)
Factorio version:
0.13 - 0.14
Downloaded:
15518 times

This mod will add upgrade researches up to level 25 as resource sinks for late
game.

The resources required for each level increases exponentially, so it will be
harder and harder to finish researches as level goes up.

If you're wondering, this mod has existed since before FFF #161 Infinite research, https://www.factorio.com/blog/post/fff-161.
This mod is technically not infinite and not as balanced as the inifinite research will be in v0.15.
Therefore, I think the support for this mod will discontinue when v0.15 comes out.

This mod is inspired by another mod, Leon's Automatic Upgrade Generation.
Actually the concept is the same. But the mod had multiple problems, so I
decided to write my own version. The problems I wanted to address are:

  • The mod was not compatible with v0.13. Several entities have changed internal
    names, so you can't just rewrite info.json to make it compatible.

  • The mod altered existing (vanilla) research recipes, which makes introducing
    the mod to an existing save causes issues. My version respects existing
    recipes and do not touch them, which should make introducing into existing saves
    'fair'.

  • The mod blindly applied the same rule to recipes of multiple types of upgrades, but
    impact of an upgrade depends on what kind of benefit the upgrade provides.
    For example, Worker Robot Speed 1 increases the speed of robots by 35%,
    but Worker Robot Cargo Size 1 doubles cargo size, which increases throughput
    by 100%! My mod assigns different base of exponent to those upgrades to
    address this problem.

  • The codes in Leon's mod were so redundant and hard to maintain (by maintaining
    I mean adapting to new Factorio version). For instance, using previous variables
    in a loop iteration to determine next values is bad practice, because it's hard
    to predict the outcome until you actually run the code. Using closed form
    formula to compute the numbers is preferred method.

In order to keep vanilla research recipes intact, we need to somehow
'extrapolate' existing ingredient requirements to make the new recipes somewhat
continuous.

Now this mod supports Bob's tech mod's science pack 4. All extended upgrades have
science pack 4 as requirements, making going up the levels even more challenging.
If you do not want this feature, you can turn it off by assigning false to
EnableBobsSciencePack4 in config.lua.
Of course it does not take effect if Bob's mod is not introduced.

As you can see in an example plot (note the logarithmic scale), resources
required by upgrades increase radically, so you (hopefully) won't need to worry
about reaching max level.

Defined Upgrades

  • Bullet damage
  • Bullet speed
  • Combat robot damage
  • Combat robot followers count
  • Flamethrower Damage
  • Grenade Damage
  • Gun Turret Damage
  • Inserter Stacksize
  • Laser Turret Damage
  • Laser turret speed
  • Logistic character slots
  • Logistic character trash slots
  • Logistic robot speed
  • Logistic robot stacksize
  • Research effectivity
  • Rocket damage
  • Rocket speed
  • Shotgun shell damage
  • Shotgun shell speed
  • Toolbelt additional row

Exponential Function

Research counts C_i are computed with the equation

where i is level of the research, A proportional factor and d decay factor.

A and d are defined for each types of upgrades.
d has only two flavors which are 2 and 3.
"d = 2" means the cost becomes twice as the level increases by 2.
"d = 3" means twice as the level increases by 3.
So "d = 2" is more steep curve than "d = 3".

Version History

v0.2.2 - Full support of Bob's warfare mod (pull request from Doublespin)
v0.2.1 - Support Bob's warfare mod's turret damage (pull request from Doublespin)
v.0.2.0 - Support Factorio v0.14 (use v0.1.x for Factorio v0.13)
v0.1.2 - Support Bob's tech mod's Science Pack 4
v0.1.1 - Rewrite description in info.json because it wasn't too attractive
v0.1.0 - First version