Implementation to your project

1. Add BPAC_CraftingManager to place of your choice (e.g Character, Controller or Player State) Preferably Player Controller.

2. Add Interface (BPI_GetCraftingManager) to PlayerController, and pass Crafting Manager.

3. Add Interface (BPI_Crafting) to PlayerController, and pass overlay in which CraftingWidget should be added.

3.1 Optional implement function, Set Inventory Visibility that is response for hiding player invnetory while playing BonusGame.

4. Add DataTable with GameplayTags to Project Settings/GameplayTags/Gameplay Tag Table List.



This crafting system allows players to create items and lets developers to choose which items players may create at each Crafting Station. The product is built on an Actor Component, which allows him to be modular and attachable to anything ("anything can be a crafting station"). The product is really simple to use, simply plug it in and it will function. This Crafting System will work flawlessly in any survival-style game, but not just!

Product support MULTIPLAYER.

UE Marketplace Product Link


Craft items

Bonus Crafting Game

Bonus Game



This section will shortly describe all important classes, as well as their public interface.


Crafting Manager job is responsibility to transfer crafted item in crafting station to player inventory. Crafting Item function is Server RPC, manager also refresh required ingridients in crafting station once inventory is replicated. Manager works as a middleman that is always owned by the player.


Actor that is 3D representation and interactable target as Crafting Station. It is holder for BPAC_CraftingStation component. His job is only initializing BPAC_CraftingStation on interaction and externaly closing Crafting Widget if player move too far away.


Crafting Station component is the main hero in this project. This component can be attached to actually anything, which makes him really modular. He is doing everything from creating widget, to managing them and cleaning up references. All calculation happens here. User can determine what kind of Items are allowed to craft in each instance. Bonus Game controller are here aswell.

IntRoundsNumer of rounds that bonus game should be played.
IntGameTimeLimitMaximum time (Seconds) that bonus game can be played.
FloatHitPointAcceptableRangeAccaptable range e.g ( 3 ) if Target hit is 50. ( values of 50 +/- 3 ) will be counted as hit.
FloatHitPointPositionMinDeltaHow far new hit location should spawn relative to previous position. e.g current Target Hit Location is 50. Next HitPoint Position will spawn not closer than this value.
FloatGameSpeedHow fast values changes in bonus game.
Array<DA>CraftableAvailableITemsItems that are available to craft.


DataTable connected with BPAC_CraftingStation

DataAssetItemToCraftItem to craft
Array<Struct>RequiredResourceStructure that contain Resource Type + its amount
IntChanceForBonusGameChances for bonus game that should appear for item to craft.
IntMaximumCraftAtOnceAmount of crafting amount allowed for ItemToCraft to be crafted at once.


Questions and answers

Important Notes


Inventory system in this project are only for presentation purpose

Product compatible with UE 5.0 +

Product design structure may change in time as i grow as developer and decide to remake the project, but the core idea will not change, just implementation