diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 8d617c29117..a7b365b3e29 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -475,12 +475,13 @@ if(isstack(created)) var/obj/item/stack/crafted_stack = created - if(recipe.res_amount > 0 && recipe.req_amount != recipe.res_amount) - var/scale = recipe.req_amount / recipe.res_amount - for(var/mat in result_mats) - result_mats[mat] *= scale - crafted_stack.mats_per_unit = SSmaterials.get_material_set_cache(result_mats) - crafted_stack.update_custom_materials() + if(crafted_stack.amount) // If our stack's been emptied, it means another stack's already eaten it, and that stack'll deal with materials + if(recipe.res_amount > 0 && recipe.req_amount != recipe.res_amount) + var/scale = recipe.req_amount / recipe.res_amount + for(var/mat in result_mats) + result_mats[mat] *= scale + crafted_stack.mats_per_unit = SSmaterials.get_material_set_cache(result_mats) + crafted_stack.update_custom_materials() else created.set_custom_materials(result_mats, recipe.req_amount * multiplier)