Page 1 of 1

Disable quality chances per item in a recipes results

Posted: Sat Sep 27, 2025 10:00 am
by MrSmoothieHuman
I'd like to ask for a way to turn off the chance of getting a better quality item from a recipes outputs, because it can massively intefere with any item-based catalysts in mods.
09-27-2025, 10-54-42.png
09-27-2025, 10-54-42.png (56.66 KiB) Viewed 428 times
Using this recipe as an example - this is the only way to get barium nitrate (and by extension, barium) in my mod and as you can see, it takes a special catalyst item and has a chance to output the same catalyst or the container it uses. If someone puts quality modules in this recipe (for quality barium), they have a chance of getting unloopable quality catalysts; which either means they need to build a quality handler for the catalysts or just stuff them in a box until they start using an above common recipe that require catalysts.

This is why i'd like an `ignored_by_quality` parameter or something similar on the ItemProductPrototype that would force the item its on to only be produced as the same quality as the recipe itself. (so if its a common recipe, it can only output common products. if its a rare recipe, it can only output rare products, etc)

Re: Disable quality chances per item in a recipes results

Posted: Sat Sep 27, 2025 4:57 pm
by meifray
In currently version we can use "RecipePrototype::allow_quality" to disable it, tho I tend to agree it should also have a parameter in product entry...
I mean just like machine innative productivity is unaffected by "RecipePrototype::allow_productivity", machines with innative quality will be also unaffected thus create high quality trash version of catelyst.

Re: Disable quality chances per item in a recipes results

Posted: Sat Sep 27, 2025 8:05 pm
by computeraddict
https://lua-api.factorio.com/latest/typ ... otype.html

Seems like a ignored_by_quality property that defaults to the value set by ignored_by_productivity would solve this

Re: Disable quality chances per item in a recipes results

Posted: Mon Sep 29, 2025 5:19 am
by protocol_1903
+1, this would be a good usecase for the ignored_by_quality flag on results

Re: Disable quality chances per item in a recipes results

Posted: Mon Sep 29, 2025 5:28 am
by boskid
Proposed solution of "ignored_by_quality" being an integer has a fundamental flaw that makes it impossible to add: if a recipe would finish, due to value of this field it coukd happen that X items of better quality and Y items of original quality would be given but they would have to be both given through a single item stack, and that is impossible.

At most what i could make is a quality_behavior on item product prototype with 3 options: "default" (for current behavior), "no_bump" for product not affected by quality but preserving input quality, and "set_normal" that would always give normal quality product regardless of ingredients quality.

Re: Disable quality chances per item in a recipes results

Posted: Mon Sep 29, 2025 6:42 am
by protocol_1903
boskid wrote: Mon Sep 29, 2025 5:28 am Proposed solution of "ignored_by_quality" being an integer has a fundamental flaw that makes it impossible to add: if a recipe would finish, due to value of this field it coukd happen that X items of better quality and Y items of original quality would be given but they would have to be both given through a single item stack, and that is impossible.

At most what i could make is a quality_behavior on item product prototype with 3 options: "default" (for current behavior), "no_bump" for product not affected by quality but preserving input quality, and "set_normal" that would always give normal quality product regardless of ingredients quality.
That seems reasonable, tbh i thought the suggestion was a boolean for the "no_bump" you mentioned

Re: Disable quality chances per item in a recipes results

Posted: Mon Sep 29, 2025 8:10 am
by MrSmoothieHuman
boskid wrote: Mon Sep 29, 2025 5:28 am Proposed solution of "ignored_by_quality" being an integer has a fundamental flaw that makes it impossible to add: if a recipe would finish, due to value of this field it coukd happen that X items of better quality and Y items of original quality would be given but they would have to be both given through a single item stack, and that is impossible.

At most what i could make is a quality_behavior on item product prototype with 3 options: "default" (for current behavior), "no_bump" for product not affected by quality but preserving input quality, and "set_normal" that would always give normal quality product regardless of ingredients quality.
My suggestion was for it to be a boolean (and act identical to “no_bump” :lol:
(however having those options would be very nice)

Re: Disable quality chances per item in a recipes results

Posted: Mon Sep 29, 2025 10:36 am
by Osmo
boskid wrote: Mon Sep 29, 2025 5:28 am At most what i could make is a quality_behavior on item product prototype with 3 options: "default" (for current behavior), "no_bump" for product not affected by quality but preserving input quality, and "set_normal" that would always give normal quality product regardless of ingredients quality.
That would be great, "set_normal" too for some mods would be very useful to downgrade items (or "upgrade" them as is currently done by scripts in Inverted Quality)

Re: Disable quality chances per item in a recipes results

Posted: Mon Sep 29, 2025 4:33 pm
by curiosity
boskid wrote: Mon Sep 29, 2025 5:28 am At most what i could make is a quality_behavior on item product prototype with 3 options: "default" (for current behavior), "no_bump" for product not affected by quality but preserving input quality, and "set_normal" that would always give normal quality product regardless of ingredients quality.
Why only normal, not a specific quality? That would close another request too, IIRC.

Re: Disable quality chances per item in a recipes results

Posted: Mon Sep 29, 2025 6:01 pm
by boskid
Because i do not want to allow other qualities to be specified. I was already attempting that and it always creates issues near crafting queue which is unable to handle quality. I would have to add a lot of safeguards such recipes never appear in the crafting queue, not even indirectly through recipe decomposition.