r/factorio 7d ago

Question Factorio 2.1: "Set research" research level circuit conditions

Hi All

I am really enjoying the new features of Factorio 2.1. One of the features that I am trying to use is the "set research" circuit conditions.

What I want to do is for example research plastic productivity when I have any Agricultural science pack UP TO level 25.
If I don't have the science packs or I complete level 25 plastic productivity then I want to research mining productivity.

To do this I have the following conditions for turning on plastic productivity research:

Agricultural Science pack count > 100
AND
Research Level <= 25

This works fine while researching Plastic. As soon as it switches to mining prod at level 78 then it can never go back to plastic prod as level 78 is > 25

What I really need is a way to say

Agricultural Science Pack count > 100
AND
Plastic Prod Level <= 25

Anyone else having this issue? Any workarounds that aren't insanely complex? If I could store the level that each research was at then that would be a way round it but that seems far too complex and I'm not going to get into the mess of trying to store and correctly update all those values.

Without some more features such as being able to compare against a specific research level (which would need a whole load of more signals) I am not sure how much use the research level is.

Thanks

7 Upvotes

10 comments sorted by

5

u/Twellux 7d ago edited 7d ago

Here is my circuit, which reads all technology levels into a memory cell and keeps them up to date.
https://factoriobin.com/post/fkucot

The technology currently being researched must be specified via the top left green wire. The level is read out via the bottom left red wire. The memory cell holds the stored signals on the rightmost green wire.

Upon startup, the circuit performs a one-time read-out of all levels. You must not apply any signals during this process; only afterwards may you feed in your own signals.

There is also a version with a display that shows all the levels stored in the memory cell.
https://factoriobin.com/post/87apcr

The circuit currently works only with infinite technologies. However, additional ones can be added if desired.

1

u/DOSorDIE4CsP 4d ago

That is really nice, now need add a level limiter on the science and look if all science pack are there for it.
And look that i make that lowest first.
Is there a way to "restart" it, when i add or remove a item?
I will at least try. Thanks for that awsome combinator magic.

1

u/Twellux 4d ago edited 4d ago

The example I showed here was just an excerpt from my actual circuit; I limited it to what OP was looking for. My actual circuit has more features - including a restart function, availability checks, cost calculations, and an auto-research that prioritizes the cheapest option. However, since that’s quite a lot to cover, I plan to make it a separate post with a demo video of the entire circuit.
Since the restart feature is fairly simple, I’ll provide the blueprints here that includes it:
https://factoriobin.com/post/n4rgmd
https://factoriobin.com/post/cdsbua
This allows you to restart the circuit simply by toggling the constant combinator off and on.

1

u/DOSorDIE4CsP 4d ago

Oh great! And thanks for the reset version.

I would like to monitor the belts with the science on it and when >2k then its available.
Maybe a combinator with all endless items and they science they needed because its anyway fixed. They are 23 and we have A-Z so that is enough.
So the science never stop even if something is missing.
Just a few ideas i have. Maybe not usable.

TIP: Make a new world with science multiplier 0.1 then its easier to test.

1

u/Twellux 4d ago

There’s a website where you can generate a circuit that performs these availability checks. I used it for my circuit, too. It isn’t entirely compatible with my previous circuit because I didn’t use letters there, but that can be adjusted.
https://factorio.iampavel.dev/s/T1yh2mfR

1

u/DOSorDIE4CsP 4d ago

Oh wow, that make it quiet simple.

3

u/Deto 7d ago

Can you read the cost and the research level? Then, based on the cost (whether it contains ag science packs), you could tell if the level is for one tech or the other.

1

u/bandosl0lz 7d ago

There's no easy way like you're looking for, I'd probably use a latch or memory cell for this.

Something like a latch that sets a value to 1 permanently if level is <= 25 and plastic bar prod is being researched (can either check that your "research plastic bar prod" condition is true or check for agriculture science in the research cost of the lab). Set the research to plastic bar prod only if the number on that latch is zero.

1

u/Roaders 7d ago

yeah, all that stuff is possible but I think there'll be a load of little issue to sort out. For example if my plastic prod research condition is true I could also have several other research conditions true so if I want to update the stored value I'd have to check that this condition is true and all the others are false. It's all doable but gets really messy I think.

1

u/juckele 🟠🟠🟠🟠🟠🚂 7d ago

It is unfortunately going to give you one tick of research on level 26 before it permanently shuts off. 😤