Sushi Packer

by dw3105

Inline belt box: sorts mixed belt items per lane into full stacks and releases them as stacked belt items.

Content
a month ago
2.0 - 2.1
230
Logistics

g Prerequisite can point to a disabled technology (tech stuck "Unavailable" with real-industrial-chemistry)

3 days ago

Symptom: the Sushi Packer technology shows "Unavailable" even though every prerequisite visible in the tech tree is already researched. The missing prerequisite is actually invisible.

What happens: in prototypes/tier.lua, tech_requirements() collects, for each recipe ingredient, every technology that unlocks it, and add_prerequisite() accepts technologies whose prototype has enabled = false. A disabled technology can never be researched, so the tech is blocked forever — and because that technology is hidden too, the tech tree shows nothing red.

Repro (quite common combination, I think): sushi-packer 0.2.25 + real-industrial-chemistry 1.1.0 on Factorio 2.1.24. RIC deliberately hides and disables vanilla steel-processing and, during data-updates, rewrites other technologies' prerequisites to ric-steel-processing. relink() runs in data-final-fixes, so it comes after that rewrite and re-adds steel-processing, because the recipe needs steel-chest. Final prerequisites end up as { logistics, steel-processing, ric-steel-processing, electronics }, with steel-processing permanently enabled = false.

One-line fix, in add_prerequisite() so both make() and relink() are covered:

local function add_prerequisite(name)
local tech = raw.technology[name]
if tech and tech.enabled == false then return end -- can never be researched
if not prerequisite_set[name] then ... end
end

Ignoring technologies that have neither unit nor research_trigger might also catch other overhaul mods doing the same thing.

Happy to test a build if useful — I can reproduce it on demand. Thanks for the mod either way.

New response