This library helps with spreading science packs out through the tech tree, while also trying to ensure that the tree can be researched. This means:
- the mod won't add your packs to other sciences in a way that causes it to have no labs that can research it
- breaks loops so the game won't crash. This may still result in unpredictable behavior, but the game can boot.
- ensures that every prerequisite is there.
To use it, register this prototype (only register it if this mod is there else the game will crash):
{
type= "science-spread-rule"
name = "<unique name>"
starter_techs = { <list of technology names that should start the spread of this pack. Any technologies using this tech as a parent will have your pack> },
pack_to_spread = "<name of the pack that should be spread across the tech tree>"
pack_tech_name= "<name of the tech that spreads this technology, uses the pack's name if not present>"
}
For every technology you can also set the tech_spread_exclude field to true to make this mod not touch that technology, and you can also set the science_spread_exclude_<name of science pack> field on it to exclude one science pack.
Excluding a single pack is experimental, and not thoroughly tested.
You can use workshop science above version 1.1 as a reference implementation, it also contains a .
https://mods.factorio.com/mod/workshop-science
The mod tries to have a policy for not crashing, if something is missing check the logs. Should tell you which packs or technologies were missing.