Multistage technology triggers

Place to ask discuss and request the modding support of Factorio. Don't request mods here.
User avatar
protocol_1903
Filter Inserter
Filter Inserter
Posts: 426
Joined: Fri Sep 09, 2022 4:33 pm
Contact:

Multistage technology triggers

Post by protocol_1903 »

I'm wondering if it's possible to have tech triggers have multiple stages to them. By stages, I mean you have to complete trigger A before trigger B before trigger C before unlocking the technology. This could be something like crafting 3 different items, or 3 different scripted triggers. A better method for this might be something with logic attached, like how the train scheduling works. You have to consume 200 item A or craft items B and C. Obviously it would need limits to recursion or how many different triggers can be used but having options would be nice.
Py and PyBlock developer, wielder of LUA in arbitrary ways. I make mods. Check them out, maybe.
https://mods.factorio.com/user/protocol_1903
eugenekay
Filter Inserter
Filter Inserter
Posts: 929
Joined: Tue May 15, 2018 2:14 am
Contact:

Re: Multistage technology triggers

Post by eugenekay »

Isn’t this exactly how the Vulcanus Trigger Technologies and Technology Prerequisites work? Eg, in order to craft a Big Mining Drill you must craft a Foundry; which requires Tungsten Carbide to be crafted; which requires a Big Volcanic Rock to be mined. This is a pretty clear sequential unlock in order to reach the Metallurgic Science Pack.

“Or” technologies can be implemented by having two different Technologies that grant the same effect.
curiosity
Filter Inserter
Filter Inserter
Posts: 720
Joined: Wed Sep 11, 2019 4:13 pm
Contact:

Re: Multistage technology triggers

Post by curiosity »

eugenekay wrote: Fri Jan 02, 2026 5:29 am “Or” technologies can be implemented by having two different Technologies that grant the same effect.
Not without scripting, since they can't unlock the same technology.

What the request appears to be aimed at is compactness (there's already a request for alternative prerequisites). But then you have to consider how this should be displayed, whereas the present system, while expansive, can't be said to be unclear.

Personally, I don't think this request is necessary. If the goal is a better-looking tech tree, then improving the technology browsing experience should take priority.
User avatar
protocol_1903
Filter Inserter
Filter Inserter
Posts: 426
Joined: Fri Sep 09, 2022 4:33 pm
Contact:

Re: Multistage technology triggers

Post by protocol_1903 »

The request is both for compactness, understandibility, and ease of use. No user is going to see two of the same tech side by side and immediately think that they can do either one, they're going to think its a bug. Rightfully so, who sees two identical things that should be merged but aren't and doesn't think thats a bug. It also has the issue that any subsequent technologies must be dependent on both techs which defeats the purpose of having both of them around.

The goal is not for a better looking tech tree, but one where you have multiple ways of unlocking something without bloating the tech tree. Not the same thing. It's adding new options, not making existing things look better.

This would need a new way to display this information but that should be fine. Even a limited form of this would allow for much greater mod tooling.

An example: Kovarex processing can be unlocked by consuming some high number of uranium ore (say, 25k) OR producing 50 U-235. This can't be done with two separate technologies because it's redundant and any mod with a prerequesite on what would normally be one technology would require both technologies to be unlocked to proceed. To expand on the example, say you need to produce 50 U-235 AND 300 U-238 instead of consuming 25k uranium ore. That would be even more infeasible than the current system and still look insane on the tech tree.
Py and PyBlock developer, wielder of LUA in arbitrary ways. I make mods. Check them out, maybe.
https://mods.factorio.com/user/protocol_1903
Post Reply

Return to “Modding interface requests”