Running Nexus 1.3.4 together with Krastorio2-spaced-out 2.0.0 (Factorio 2.0.77, Space Age) fails to load with:
Error ModManager.cpp:1767: Cycle in technology tree detected.
kr-singularity-lab
-> promethium-science-pack
-> kr-singularity-lab
Root cause is a circular dependency between the two mods:
-
Krastorio2-spaced-out (prototypes/updates/base/technologies.lua) does:
data_util.add_prerequisite("promethium-science-pack", "kr-singularity-lab")
i.e. the promethium-science-pack technology now REQUIRES the kr-singularity-lab
technology. (In current spaced-out, the singularity lab is the building you
research promethium science in, so promethium is gated behind the lab.)
-
Nexus (compatibility/Krastorio2-spaced-out/technology_fix.lua, under the
"FIX TECHNOLOGY PROMETHIUM" section) redefines the kr-singularity-lab
technology with:
name = "kr-singularity-lab",
prerequisites = { "promethium-science-pack" },
i.e. the kr-singularity-lab technology REQUIRES promethium-science-pack.
Each tech is now a prerequisite of the other, so the tech tree can't be ordered
and the game aborts.
It looks like the Nexus compat file assumes the older spaced-out ordering (lab
gated behind promethium), but spaced-out 2.0.0 reversed it (promethium gated
behind the lab).
Suggested fix: in technology_fix.lua, drop "promethium-science-pack" from the
kr-singularity-lab technology's prerequisites and gate it on something upstream
of promethium instead, e.g. { "kr-singularity-tech-card", "quantum-processor" }
(spaced-out's own prerequisites for that tech).
Workaround for anyone hitting this now: a tiny local mod that runs in
data-final-fixes after Nexus and strips promethium-science-pack from
data.raw.technology["kr-singularity-lab"].prerequisites lets the game load.
Happy to share full logs or test a patched build. Thanks for the mod!