Page 1 of 1

[2.0.77] Calling set_recipe() and writing to crafting_progress of an assembling causes a single craft to ignore quality

Posted: Tue May 26, 2026 5:02 am
by Thremtopod
Calling set_recipe() on an assembling machine LuaEntity, then writing (a non-zero value) to crafting_progress to it, causes the next craft to always be common quality, regardless of the recipe's actual quality. It's only for one craft, and the next one is always correct.

I've attached a scenario I made that demonstrates this:
set_recipe_bug.zip
Custom scenario
(2.34 MiB) Downloaded 10 times
Screenshots:
After script sets recipe and progress
After script sets recipe and progress
Screenshot_20260526_005352.png (68.6 KiB) Viewed 254 times
After finishing next craft
After finishing next craft
Screenshot_20260526_005410.png (68.38 KiB) Viewed 254 times

Re: [2.0.77] Calling set_recipe() and writing to crafting_progress of an assembling causes a single craft to ignore qual

Posted: Tue May 26, 2026 6:15 am
by boskid
Thanks for the report. I remember changing this behavior some time ago for 2.1, so it is already fixed for 2.1. By force starting the recipe by write to crafting_progress there is a shortcut that was not rolling result quality and as such this product was always of normal quality. You can workaround this issue by writing recipe's quality to https://lua-api.factorio.com/2.0.77/cla ... lt_quality after the crafting_progress was set. In 2.1 this workaround will not be needed because there will be a quality roll happening when crafting is force started this way even if no real ingredients were consumed.

Re: [2.0.77] Calling set_recipe() and writing to crafting_progress of an assembling causes a single craft to ignore qual

Posted: Tue May 26, 2026 12:45 pm
by Thremtopod
Awesome, and thanks for that workaround!