Quick answer: Crafting bugs depend entirely on inputs: which recipe, what was in the inventory, and the exact combination attempted. The fix is to capture the full inventory snapshot, the recipe involved, and the materials consumed and produced at the moment of the report. With that state you can reproduce the exact craft and find why an item vanished, duplicated, or refused to combine.

A crafting system turns a pile of materials into something new, and the magic is also the menace. Recipes combine ingredients, inventories hold dozens of stackable items in varying quantities, and the rules for what combines with what create a combinatorial space far too large to test exhaustively. When a player reports that crafting ate their rare material without producing anything, or that an item duplicated, or that a valid recipe refused to fire, you are looking at a bug that depends entirely on the exact inventory and combination involved. This post covers reporting those bugs by capturing the recipe, the full inventory, and the precise combination attempted, so each craft is reproducible.

Crafting bugs are input dependent

A craft is a function: it takes an inventory and a chosen recipe and returns a new inventory. Like any function, its bugs depend on the inputs, and crafting inputs are unusually rich. The same recipe can behave differently depending on stack sizes, on whether the player has exactly enough materials or a surplus, on item quality tiers, and on what else is in the inventory competing for the same slots. A bug that only fires when the player has a partial stack of one ingredient is invisible until you reproduce that exact inventory.

This input dependence is why crafting reports are so hard to act on without state. A player says the recipe did not work, and on your test save with a clean inventory it works fine. The difference was their inventory: a full backpack with no room for the output, or a stack at its quantity cap, or a near identical ingredient that the matching logic confused. To reproduce the bug you have to reproduce the inventory, which means capturing it in full at the moment the craft failed.

Recipe matching and combination logic

The core of a crafting system is the logic that matches a set of inputs to a recipe. This is where the genre's most interesting bugs live. Ambiguous recipes that share ingredients can match the wrong one; an ordering dependency can mean the same ingredients craft differently depending on which slot they occupy; a recipe with optional or substitutable ingredients can fail to recognize a valid substitution. Players report these as the wrong thing got made or this should have worked, and the cause is buried in the matching rules.

To track matching bugs you need to know exactly what the player put in and what recipe the system selected, if any. Capturing the input set, including quantities and item variants, alongside the recipe the engine matched lets you see the divergence between what the player expected and what the logic chose. If they intended one recipe and the system matched another that shares ingredients, the report shows it plainly. Without the input set, every matching bug collapses into a vague complaint about crafting being broken.

Material loss and duplication

The bugs players care about most are the ones that gain or lose materials. Material loss, the craft consumed ingredients but produced nothing, feels like theft, especially with rare items, and it usually comes from a failure between consuming inputs and granting the output, such as an output that had nowhere to go in a full inventory and was silently dropped. To track it you need the inventory before and after, so you can see exactly what was consumed and what, if anything, was produced.

Duplication is the dangerous twin. A craft that grants the output without properly consuming the inputs, or that can be interrupted at the right instant to keep both, creates free materials, and in a game with any economy that is an exploit players will spread and abuse. These bugs are timing and ordering sensitive, so capturing the sequence, the inventory state before, the materials consumed, the output granted, is essential. A duplication report with a full before and after snapshot turns a rumor of an exploit into a precise sequence you can reproduce and close.

Inventory state is the missing context

Almost every crafting bug ultimately traces back to inventory state, which is exactly the context a plain report omits. Slot limits, stack caps, weight constraints, and item metadata like durability or quality all interact with the craft, and any of them can be the hidden cause. A craft that works with empty slots fails when the bag is full; a stack at its cap cannot receive more; an item with unexpected metadata fails an equality check the recipe assumed would pass. None of this is visible in the player's description of the symptom.

Capturing a full inventory snapshot at the moment of the bug is therefore the single highest value thing you can do. It should include every item, its quantity, and its relevant metadata, not just the ingredients the player thinks were involved, because the cause is often an unrelated item or a constraint they did not notice. With the complete inventory plus the attempted recipe, you can load the exact situation and watch the craft fail the same way, which is the whole battle. The snapshot is what converts an unreproducible report into a fixable bug.

Setting it up with Bugnet

Bugnet gives players an in game report button right in the crafting interface, so when a craft misbehaves they can flag it without losing the inventory that caused it. You configure the button to attach a full inventory snapshot, the recipe attempted, and the before and after material state as custom fields, so each report carries the exact inputs needed to reproduce the craft. If the crafting code throws, the report includes a full stack trace and platform context, so a slot overflow or a null recipe match lands with its precise location instead of a vague description.

Because a single broken recipe or a duplication exploit gets hit by many players, Bugnet folds the duplicate reports into one issue with an occurrence count. That count is especially valuable for duplication bugs, since a high count signals an exploit spreading through your economy that needs an urgent fix, not a backlog ticket. You can filter the dashboard by recipe, by item, or by any custom field you captured, so you can pull up every report involving a specific ingredient and spot a matching bug that no single craft would reveal on its own.

Testing the combinatorial space

No team can test every crafting combination by hand, so the ones that ship clean systems automate it. They write tests that drive crafts under awkward inventory conditions, full bags, capped stacks, partial quantities, items with edge case metadata, and they assert that materials always balance: nothing created or destroyed except by design. Property based tests that try many randomized inventories are especially good at flushing out the duplication and loss bugs that hand written cases miss.

Feed every reported crafting bug back into that suite. When a player finds a craft that loses a material under a specific inventory, encode that inventory as a test so the fix is locked in forever. Use the occurrence counts to prioritize, treating duplication exploits as urgent and rare edge cases as backlog. When your reports always carry the inventory snapshot and the recipe, reproducing a crafting bug becomes loading a save rather than interrogating a player, and the system you ship keeps its materials honest no matter how creatively players combine them.

A crafting bug is only as reproducible as the inventory behind it. Snapshot the full bag and the recipe, and the broken craft loads on demand.