Factorio

Factorio

View Stats:
Anna Nov 12, 2024 @ 7:15am
Combinators are very bad with quality
I'm trying to do the most obviouse things

I get "Irone plates of some quality" signal and I want to output this quality as a another signal - No way to do it.

I calculated some quality that I need and I want to set this quality level on a copper plates signal - No way to do it.

I want to output each signal with quality +1 - No way to do it.

This is the most basic stuff I expect to do with combinators. Not some bizzar mode of "quality transfer" that is terribly explained and exist for probably valid but unknown for me reason.

We work with recyclers but there is no way to produce "copper wire of quality X" signal from "copper plate of qualityX" signal without tonn of combinators and/or mandatory parametrised blueprints. Which is something one would expect from "quality TRANSFER"

All in all combinators just feels terrible right now especially if one try to automate recycling loops recepies.
< >
Showing 1-5 of 5 comments
Ozone Nov 12, 2024 @ 7:33am 
The two first are actually easy with the combinator, you can transpose the quality from a signal to another.

The only thing you can't do easily is the quality +1. You can achieve it with an index incrementation, but it implies you create a constant with all the quality levels for each corresponding items.
Anna Nov 12, 2024 @ 9:08am 
Originally posted by Ozone:
The two first are actually easy with the combinator, you can transpose the quality from a signal to another.

The only thing you can't do easily is the quality +1. You can achieve it with an index incrementation, but it implies you create a constant with all the quality levels for each corresponding items.
I admit I may be stupid, but I tried hard to solve it and can't see a way. I would appreciate some help a lot.

Say I have a chest with a random rare item. What should I do to receive a "rare" signal. Or rare A signal, or signal A with value of 2.

Same with second question I have some signal representing quality (whatever you like) and a chest with 5 random items of normal quality. How can I apply the quality from the signal to those items?

As far as I can see if those two are easy +1 should also be easy.
Last edited by Anna; Nov 12, 2024 @ 9:08am
Hurkyl Nov 12, 2024 @ 9:24am 
Interesting. I thought I had done something similar, but I hadn't. One problem is that you can't use a virtual signal as the source in quality transfer.

A hacky solution is that you could do a filter on "= uncommon" and then use a combinator that asks if any signal is nonzero, and if so output "uncommon A", or whatever other data you'd prefer. And repeat this for the other qualities. You should be able to use that to do other things, I think?
Last edited by Hurkyl; Nov 12, 2024 @ 9:26am
Anna Nov 13, 2024 @ 12:52am 
Originally posted by Hurkyl:
Interesting. I thought I had done something similar, but I hadn't. One problem is that you can't use a virtual signal as the source in quality transfer.

A hacky solution is that you could do a filter on "= uncommon" and then use a combinator that asks if any signal is nonzero, and if so output "uncommon A", or whatever other data you'd prefer. And repeat this for the other qualities. You should be able to use that to do other things, I think?

Yes it's not impossible at all, but this is 6-10 combinators that worth 30+ old combinators to achieve the most basic function. And I call it very bad for this reason.
Anna Nov 13, 2024 @ 1:31am 
Also, things like "Quality filter" could compare to "any" quality in the interface (which achieves nothing) and can't be adjusted because "any quality" in this case is manually selected. I would argue it's just bad design to add a function that can't do anything ever to an already confusing device. Yes, it has a tiny edge case of the "ignore" option for parameterized blueprints, but it's hardly worth it.

Quality transfer is also fairly useless because it can't operate on a target signal of unknown quality, either because of lazy implementation or because it was designed to solve one specific problem someone from the dev team faced during the game and not to provide a general solution. It feels like an arithmetic combinator that can't do +X but can do +74 for some reason.

If Quality transfer had a target signal that is quality-agnostic, it would have already solved a significant part of the existing issues, and it only takes one more combinator to convert a quality-agnostic Quality transfer to the existing version. However, switching it back from the existing to agnostic takes much more.

There is no option to "isolate signal X" with X inputted from the network, which has always been a pain and something I would expect from the SELECTOR combinator.

To properly solve it in a Factorio manner, all combinators should accept "any," "each," and "every" quality versions of any signals based on the mode of operation. This is a huge rework of the system, yes, but one that is required.

For now, combinators just don't work well with quality, either because no one tested it in the dev team or because the dev team switched hard to parameterized blueprints that allow bypassing some of the problems.
Last edited by Anna; Nov 13, 2024 @ 1:32am
< >
Showing 1-5 of 5 comments
Per page: 1530 50

Date Posted: Nov 12, 2024 @ 7:15am
Posts: 5