Building an Inventory & Crafting System in Pure C++ for UE5

I recently finished an Inventory & Crafting System built entirely in C++.

One part that required more iteration than I expected was crafting probability.

My initial implementation treated batch crafting as a single probability check. While simple, it didn’t feel very intuitive from a player perspective. I eventually switched to independent probability rolls for every crafting attempt, allowing batch crafting to generate a final success/failure summary.

The inventory and equipment UI are fully event-driven with no Tick and no widget bindings, which helped keep the architecture simple and predictable.

A few screenshots are attached below.

I’m curious how others approach crafting RNG systems. Do you prefer flat probability, pity mechanics, guaranteed success after N failures, or something else?

If anyone is interested, it’s also available on FAB: MMO Inventory & Crafting System – Pure C++, RPG Framework, UE 5.4–5.7 | Fab