Action RPG Inventory System

Fantastic job, Pirate. I picked up this and your social system, and I’m getting to grips with using them. I’ve been adding new item types to expand out for what I need. One of these is an editable book (which I’ve been having multiple issues with, but have almost finished work on.)
I’ve got one remaining issue…
I can’t seem to serialise the data back to the item in the inventory.

removing the wall of picture as part of the edit

EDIT
Heh. Well, to answer myself it’s a limitation of my knowledge. For anyone else running into this same issue… “SetInventoryItem” is the solution.

Is 4.12 updated?

I have been assured by Epic the most recent update I submitted will be updated tomorrow and this is when they will update it to download for 4.12. The current version will upgrade from 4.11 to 4.12 without issues.

I have a few questions.

  1. How do I get information how much amount of an item is in the inventory.
  2. How do I get information which item is on which equip slot equipt.
    3 How do I remove items from inventory that are inside inventory current with amount.
    4 How do I add items to the inventory that is an default item?

Hope you can answer me those questions because I really need these functions.

Cheers,
Bander

All the functions are through using events shown on the InventoryManagerComponent Event Graph. The only function called externally not through an event is “TryToAddItemToInventory”.

You most likely need to know what slot you want to read than you can simply get information from that slot. On the client the client UI is updated with the item info so you can read that data already from the client without having to request it again from the server. Again if you know what slot you want to look up you can read the item data from the client in the InventoryLayout Widgets InventorySlots array. IF you are editing items you will want to use the events in the InventoryManagerController that make changes and they update the clients UI.

Default items are setup in the Blueprints/Demo/ Classes Enum and Classes Starting Items DataTable. This determines the item loadout for the demo example.

A question:

When you start with an empty inventory and pick up a single item so that that item is shown in the first slot in the inventory, the index of that item in the Inventory array is 14?

I had assumed that it would be 0, but in my case, for whatever reason, it’s 14.

Is this correct and if not, might you have an idea what could be the cause of this error?

Your equipment slots are also apart of your inventory which is why you backpack slots start at 14 rather than 0.

Hi Pirate

Thanks for updating the RPG Inventory, much appreciated!

Oh? Hmmmm…

This is by design and if you look at games like world of warcraft and guild wars it has the same approach. You can get the number of equipmentslots from the enum so you aren’t using a magic number like 14. this way also if you end up modifying your equipment slot amount the logic will automatically work with the new count.

This is what also makes dayz type looting easy to do if you want as you can see on the demo NPC’s loot window equipped items as well.

I add all the system files into my project with manual. And play in editor they warning me ‘Accessed none trying to read property callfunc_array_get_item from function: AddInventorySlot from node set ItemInformation’. There are 57 runtime errors all from the Set ItemInformation. How do I fix that?
Help me out, please!

I received your email I will try and figure out what you might have missed in the merge to cause this error this weekend. As I am out of town for a few more days on business. Perhaps trying to merge over again might be a good idea as it’s possible something was missed.

Oh thanks!
Am trying to figure out the error too. Here is exactly what I found.
Location:InventoryManagerComponent>function>User Interface>Private>Inventory>AddInventorySlots.
If I don’t use the “Item Information” node, The error will be disappeared.
I check a few times for “Inventory Layout(widget)\Inventory Slots(widget)”. They are the same as your’s.

has anyone implemented this into generic shooter project?

im trying to

No and i wouldn’t recommend any one even using that as its a right mess.

I’ve worked at this for a week or so but have not been able to come up with an answer.

The value reported by the length node, the tooltip of which says “Get the number of items in an array.”, always shows zero for the Inventory Item Array in the editor.

The inventory is working properly in game.

I know that I can get a hack number by adding the number of Equipment slots to the number of backpack slots and use that as an iterator, but how can I programmatically derive the number of slots in the Inventory Item Array?

To get the number of the first inventory starting slot (after the allocated equipment slots) simply use get number of entries in EquipmentSlots and that will return the number you want to start your first backpack slot with.

b95e7fd6468c9729838595be145f07bd55dc9d03.jpeg
If you have not modified the Equipment Slots this node will return 14 because the Equip slots are 0-13.

This is helpful, but it only goes back to the “add the number of equipment slots to the number of backpack slots” plan, which appears to be my most straightforward option at this point.

I need to iterate through the entire Inventory Item array so that I can send the item ids (and perhaps some other things such as item quality, condition, and so forth) through a socket to a server which will in turn relay the inventory to MySQL and back again when necessary.

I had presumed that there would be a simple way to determine the number of items in the array without knowing anything about the array itself. I take it that this is not possible?

Oh, make sure you are doing this on the server you should be able to iterate through the array with no issue. If you are doing it on the client the array will be empty as the items exist on the server.