Action RPG Inventory System

Just bought this and as someone that has only been using unreal for a week with no c++ background this system is insane! My original inventory system was just a simple set of arrays, this taught me so much about the editor so major kudos.

That said I’m trying to solve an issue and its definitely user side. How are equipment slots counted in the inventory system? Is the helmet 1 and the offhand 14? The entire equipment part is a bit of a mystery to me.

I’m trying to un-equip an item using this:

So my guess is that equipment slots are inventory slots, I just don’t know where to start counting from. If helmet is 1 (which I have to guess would make sense), and my inventory is empty, it should simply unequip the helmet and put it in whatever inventory slot I told it to move to, correct? In this case that should be like the 7thish slot in my bag. The above image doesn’t work for me so I assume I also messed up the blueprint.

A second question is - In the equipment slots I can’t figure out how to make the offhand weapon slot accept non-off hand items. I just basically want to turn it into a storage slot for a currently equipped second weapon that can be swapped in. I assume it has to do with the file Equipment Slot Type, which I’ve compared to the file Equipment Slot and can’t seem to figure out the relationship. When I modify these lists I’ve gotten dozens of errors so clearly there is something going on that I’m missing!

Update: Okay I searched for the equipment icons and discovered the references. That took me to the ui widget for the equipment which definitely helped. The head is the first inventory slot, but it starts at 0. Derp! Of course it does, that was stupid of me. Still searching for slot dependencies. My image above didn’t work because my characters never had a slot 1 equipped because I was debugging so I only had a helmet on.

I’m still trying to figure out how slot dependencies work.

The inventory slots begin with the count of the equipment slots (equipment slots count as inventory slots eventually). You can see the equipment slots setup in the Equipment Inventory Component blueprint. Those are always counted first, then added, your bag slots.


Above the off-hand slot is either 13 or 14.


To circumvent certain types of weapon types for a specific slot, inside the Inventory Manager Component, i suggest to add to the Equip Item function, another branch check for the off-hand slot number against the newly dragged item equipment type.

Of course its located in the Inventory Management Component, thank you! I just assumed this entire time that the equipment by slot types was hidden someone in another part. This makes so much sense now as does your other explanation, I really appreciate the help.

Update:
Further Explenation

Okay so in case anyone else was confused by this I just want to share the two locations below in the Inventory Management Component that handles slot types. Local Equipment Slot Type will be the enumerator that handles what can be equipped there and currently its set to just match, but there are three locations in total that you need to change the logic if you want it to be handled differently. The screenshots below are all three locations on the Inventory Management Component that is currently handling this - specifically in the** equip item** and unequip item functions. Finally bringing this all together is that the enumerator called** EquipmentSlotType** is what indeed handles the equipment slot type.

This may have been obvious to most people but the differences in naming conventions of the slots (the other enumerator called Equipment Slots) really confused me.


1 Like

Does anyone now if Pirate will be available in the near future? (i read that he has some personal problems).I sent an e-mail to Vanguard and PM to him here but had no answer for more than 2 weeks.

Ask your question here. Others may be able to help.

This relevant function inside the InventoryLayout widget highlights how the inventory slots are counted/setup - assigned. This is also very important to have in mind when adding a store container.

I need to merge the ARPGIS and A.S.S and i saw that Pirate is kind enough to provide a clean merged project. Actually i want to use the 2 systems with VAREST for persistence.I started merging myself but i face some problems so I sent the proof of ownership to Vanguard hoping to receive that project. My problems now are related to the way i need to initialize the player and UI by taking advantage of A.S.S Game State setup vs PlayerControler Initialization on ARPGIS.If someone is familiar with both systems I am glad to take any advice.Thank you in advance.

You can either use the SocialGameMode (not too much content there), or manually add it to your existing gamemode blueprint. Post screenshots if you need more specific instructions. If you have trouble to setup structure variables, you might have to recreate the structure, sometimes if a node does not connect, remove a function and readd it anew. The social component goes into your existing playercontroller, and for the setup look into the social player and controller bps. There are also UMGs (widgets), which you can find via the search inside your HUD (basically a widget with your custom UI interface), add the chat window, player and party frames there too.

Thank you for your info unit23, this is the error i get after merging ( chatwindow widget moved/created into HUDLayoutWidget)

Error Blueprint Runtime Error: Accessed None trying to read property CallFunc_GetSocialComponent_SocialSystemReference from function: ‘ExecuteUbergraph_ChatInput’ from node: Client Create Message in graph: EventGraph in object: ChatInput with description: Accessed None trying to read property CallFunc_GetSocialComponent_SocialSystemReference

I think there is an issue with the focusing on windows but i cannot pinpoint it, everithing seems to be ok :frowning:

You followed the merge tutorial, and added the social component to your player controller? You also need to move the chat line and chat input widget, and fix any errors inside those (part of the chat window).

I watched the tutorial for learning purpose but my project is a clean ARPGIS ( no other content or code whatsoever) on top of witch I migrated A.S.S.I Use Inventory GM ,Inventory Char,Inventory Controller, Social Game/Player State and Inventory HUD (with just the chat window added from A.S.S).All the Inventory BPs have Social Bps code with the proper references replaced.Yes the IPcontroller has the social component and interface added.Why and where do I need to move the chat line and chat Input widgets?.I tested each BP in both systems, no compiling errors.

LE: I found where the problems came from and solved them. I forgot to edit the social interface functions in Inventory player controller. (Get social component)

Great you figured it out, you can now display all messages (damage, xp, level up etc) from everywhere with a cast to your player controller, the social component message node (interface), and a receive system, local, or network message node.

I do check my emails everyday but sometimes some addresses end up in my spam box. I am glad you were helped by others on the thread and got it sorted out (thank you again for everyone who continues to share their experience and knowledge in this thread). I do have merged projects available to people who have purchased multiple assets. I know I have not been so active recently on the forums but the assets will always be updated and maintained. Email is always the best way to reach out for support (But also this thread because so many great users have a wealth of information to share).

I have recently moved back to north america from Europe to help take care of my father so some days and weeks I am a bit preoccupied. But I am passionate about helping people make their games and achieve their goals. I will always do my best to answer emails and offer advice when asked in a timely manner.

No worries Pirate,thank you for the answer and maybe you can send me that project when you have time.

Please send screenshots with proof of purchase from your epic account to support@vanguardinteractive.com and I will get you a download link :slight_smile:

Hope you don’t mind me following up on this. Spent a couple of days trying to figure out all the relationships and I’m not 100% with whats going on. If I alter any of those slots, the inventory stops working altogether. I even tried ensuring the UI matched, I’m trying to drop to a much smaller amount total. I set the inventory variable down from 28 to I believe about 15.

Is there a proper location for me to be shrinking down the inventory? Also when I remove the slots from the ui, I got a ton of errors that are coming from the InventoryManagerComponent - so I know the problem is probably in there but I just can’t find it.

Those slots are the equipment slots, you can set the inventory size in the player controller and they will be created at run time, if you want to remove equipment slots you will also need to reduce the emu for them aswell and editor the getters for the slots.

Hey everyone,

the ARPG Inventory is awesome!
However, I am running into a problem I can’t get fixed. When I try to start the game the character wont move or spawn. When I disable autopossess and possess the character after 1 seconds the character spawns and I can move it.
I really have no clue how I can fix this.
267e26b4ec229b811665061fe3a0ba96744ce72a.jpeg

Make sure you don’t have a character dropped in the world. By default the editor will override the spawn and posses. You should just have a spawn point. Since the initialization is running off the node BeginPlay It’s not getting called if you possess a placed character.

Thanks again!

@Pirate I’d like to thank you again for this excellent system. It has proved perfect for our needs and has vastly simplified development of our game.

We’ve just started online testing with a prototype using the ARPGIS hooked through sockets to a java server and the system is working without a glitch. We haven’t yet changed the default interface style, but here are a couple of in game (and online!) screenshots of the system at work.