Reproduction mod with the following contents in data-updates.lua:
Code: Select all
local gear = data.raw.recipe["iron-gear-wheel"]
gear.results[1].quality_min = "uncommon"
gear.results[1].quality_change = 1
gear.can_set_quality = true
What actually happens is that it always outputs Uncommon gears (with or without the Uncommon quality unlocked):
Based on my understanding from the ItemProductPrototype docs and my own testing, quality_change always runs completely before any quality_min/max clamping.
I also shared this Lua algorithm on another thread, of how I think Quality adjustment currently works in the game.
Either the two tooltips (from the first two images) are misleading, or the adjustment implementation is incorrect.

