local inv = player:get_inventory() local inv_src = inv:get_list("craft") local inv_dst = inv:get_list("main") local index1 = 1 local index2 = 1 while (index1 <= #inv_src) and (index2 <= #inv_dst) do if inv_src[index1] and not inv_src[index1]:is_empty() then while (index2 <= #inv_dst) and not (inv_dst[index2] or inv_dst[index2]:is_empty()) do index2 = index2 + 1 end if index2 <= #inv_dst then inv_dst[index2] = inv_src[index1] inv_src[index1] = nil end end index1 = index1 + 1 end