Multiplayer RPG Inventory System

Hey everyone! New plugin is submitted to the Marketplace!

Recent version: 4.26.2

Check 2021 April UPDATE with ONLINE SERVICES!

The Multiplayer RPG Inventory System is great for Client-Server or Single player games, supporting picking-up, equipping, transferring, replacing, stacking, and dragging-dropping items.

Easy to follow Client / Server events and structure of the project (InventoryPlayerController, InventoryManager, Components)

Many example items (both Character equip-able Static, Skeletal Meshes and World Static Meshes)

It seems like another Inventory system like many already being published but there are some minor improvements which are making this plugin unique!


  • Xsolla Integration (register, login, profile, friends, online credit card transactions)
  • fully supported Multiplayer!
  • picked up items moved to the Inventory
  • move items between slots in one Container or a slot in another Container
  • move items from Slots to Containers (not a slot)
  • replacing non-stack-able items
  • stacking stack-able items
  • highlight for available Slots and Containers!
  • drag and drop functionality
  • fully supported pickup system
  • checking items with LineTraceByChannel
  • mouse over text on pick-able objects when specific distances are reached
  • outline effect for Items
  • attachments for the character

Documentation is available here: Multiplayer RPG Inventory System - Google Docs

Demo video available here:

Hi Tefel ,

Thank you for your support to the community ,appreciated…:slight_smile:

Interesting stuff ,great work ,especially the support for multiplayer …:slight_smile: although i’m still learning and not making a pro game yet , i’m thinking about purchasing this system to learn from its blueprint functionality …:slight_smile:

Here is the link to my question about your Chess game on answerhub also : Chess Set the Piece Turn and Allowed moves - Programming & Scripting - Epic Developer Community Forums

…and believe it or not right now i’m studying your chess game example blueprint functionality , and i wanted to add something to it , for instance how to decide whether it is black turn or white turn and preventing the click from the same piece color next turn …but i’m failing to achieve that …to keep your post about the inventory system clean and respecting you , i created a new topic about the situation here is the link :…e-instructions

please take a look and if possible i need some advice on how to go about doing it .

Thank you,
Best wishes.

Hey , thank you for interesting about tutorials and my UE4 works.

I got much positive feedback, but what I am thinking is also publishing in addition converted classes to code. Logic stays the same because was carefully designed, but some people prefers code instead of blueprints. What do you think? Thank you!

Plugin got update to 4.20! Hooray!

[FONT=comic sans ms]Plugin updated to 4.21!

Hey! I wonder if extending it with crafting system would be beneficial for you guys!
There is already fully supported multiplayer and trading. So there are not many things can be added to it. :confused:

Is the trading meaning multiple players can look at the same storage container at the same time or is there a trading interface where both parties have to accept an offer and then the items switch inventories? This is not anywhere in the preview video or images. I am going to find out either way because I am buying the it now!

DK Buzzin, it’s trading where you can move items to the shared components being observed by two players or to each other.
It’s just up to game designer and developer if game allows to trade items without additional checks.
Because everything is replicated adding additional “accept button” shouldn’t take long.

Hello! So I am using UE4 4.21.2; It says that it is supported on 4.19-4.21 and I am not if that includes the 4.21 patches, but I would assume so!
I have everything implemented and working seemingly well, but I am having one issue:

When I go to pickup an item I get these Runtime Errors:

Blueprint Runtime Error: “Accessed None trying to read property K2Node_DynamicCast_AsSW_Player_Character”. Blueprint: InventoryManager Function: Pickup Item Graph: PickupItem Node: Add Item

Blueprint Runtime Error: “Accessed None”. Blueprint: InventoryManager Function: Pickup Item Graph: PickupItem Node: Add Item

Blueprint Runtime Error: “Accessed None trying to read property K2Node_DynamicCast_AsSW_Player_Character”. Blueprint: InventoryManager Function: Pickup Item Graph: PickupItem Node: Server Add Slot

Blueprint Runtime Error: “Accessed None trying to read property K2Node_DynamicCast_AsWB_World_Container”. Blueprint: InventoryManager Function: Execute Ubergraph Inventory Manager Graph: EventGraph Node: Add Slot

I have attached photos.

This is what my SW_PlayerCharacter looks like:

And I’m not sure if this helps; sorry to spam the thread but I couldn’t post all of these photos in a single post because of size-limit! Here’s my reference viewer if it helps as well:

AHAA!!! I figured it out. Silly and simple answer, but important!! With my setup you can’t use “GetOwner” node to cast (or PureCast) to your PlayerCharacter in the InventoryManager. I had to use “GetPlayerCharacter” > cast to “MyPlayerCharacter” (SW_PlayerCharacter) > Convert to PureCast > InventoryComponent, etc.

Let me know if this helps anybody else or if you have questions!

I am glad that you figured it out!

I have another silly question…

I am having a hard time finding where the defaults are stored for what you start with in your inventory. When you first load in to the InventoryExampleMap there’s two rings, armor, boots and a weapon in your inventory. Where is it pulling that information from?
I’ve been looking through my player character and player controller with no avail. Maybe I’m blind?

But basically I want my character to start with a certain set of default clothes and when they equip something, hide those clothes, then when they unequip something show the default clothes again; like underwear.

I see that when you unequip from a slot it changes the index Item ID and Item Quantity to -1 so that there’s nothing in that slot (In the InventoryManager BP) Is this where I’d set default clothes?

Hope that makes sense! I appreciate any responses.

EDIT (Basically what I have going on is a system similar to Breath of the Wild. You can equip a torso and legs which complete full armor. So rather than making meshes that fit OVER my character mesh, I wanted to make meshes to REPLACE them. So when my character is “naked” they are actually wearing a Torso that looks naked and Legs that look naked. When they equip a Torso piece (Like plate armor) I want to hide the default “naked” Torso and show the armored Torso. Same with the legs.

I figure I could achieve this by making the default slots for the Torso and the Boots be already filled with my “naked” Torso and Legs but not show an image. When nothing is equipped in those slots then the “naked” pieces would automatically equip (otherwise my character would just be invisible.))

This would also be helpful for hair styles. So that when a helmet is equipped the hairstyle could disappear, when the helmet is unequipped it reappears. :slight_smile:

Hey Samohickey, one of the main actors -> PlayerController or PlayerCharacter should contain InanntoryManager (ActorComponent) which can be directly configures from BP.
From that point you can update list of items.

Ah! I don’t know why I had such a hard time finding that. Thank you so much Tefel! By the way, been watching your Minecraft UE4 stuff; VERY IMPRESSIVE! You are awesome. :slight_smile:

Anywho, thank you!

If anybody else has questions regarding this, let me know and I will do my best to help you out.

Thanks samohickey for such a great words, let me know if you need some assistance, you can check discord channel for Inventory System: TefelDev