Inventory System & UI - Inspired by Blue Prince
Inspired by the strategy puzzle adventure game Blue Prince, released on Steam Apr 10, 2025.
For my Blue Prince inspired project, I needed to create an inventory system with an integrated UMG widget to display item values. For the player, I created an actor component “BPC_Inventory” which keeps track of stored items as well as functions for adding/removing them.
BPC_Inventory - Actor Component | HUD containing inventory UI is assigned on Begin Play
Add Item - Function
Searches the inventory for the picked-up item given its key (name variable).
If true, get the item’s data (amount) and adds it to the inventory’s current amount.
If false, add the item to the inventory at a new index with its values.
Update UI with updated values and play the selected animation (type “enumeration”).
Find Item - Function
The way items are kept track of is the “Inventory” array within BPC_Inventory. This array is comprised of S_ItemData - the structure containing all relevant item data. Items (BP_Item) also contains this structure.
S_ItemData - Structure
BP_Item - Blueprint for items that can be picked up in the game world.
Contains S_ItemData which is fed to the player’s BPC_Inventory when picked up. Triggered by overlap event.
Adding new items is as simple as making a child blueprint of BP_Item and changing its static mesh and key name. As for displaying it in the player HUD, I made a video showing the quick process: