Action RPG Inventory System

Yes like overrated stated there is logic to toggle on and off the window drag in the widgets. When epic fixes their bug in 4.15 you can just set the default value to allow dragging by default. Or feel free to change the logic as dragging windows has nothing to do with the inventory system and this does not affect the drag and drop of items.

If you read the patch notes it explains what logic was added to toggle the drag and also points towards the epic bug report on answer hub for the reasons why the drag is disabled currently. You are free to turn it back on but please understand with the current engine bug it will cause issues when testing and these bugs are not Inventory related. So it’s better to just leave it off for now and continue to work on your project until the engine bug is fixed. You can reposition the default locations of windows by editing the UMG layout files.

Could this be the problem?



*Engine Bug Workaround Fix*
- Set Master Pose node on EquipmentCharacter's MainHand and OffHand Skeletal meshes can cause some imported art to flicker and disappear when attached to sockets.
Spoiler: 

[EquipmentCharacter]
- Simply remove the Set Master Pose node at the end of the logic in the OnRep_MainHandMesh() and OnRep_OffHandMesh() functions.
(It's really not needed on skeletal meshes that get attached to a socket. It's for syncing meshes to the same animation BP so they animate in sync but never caused issues in earlier engine versions)

Yes, I think it’s what makes it flash and disappear for some people.

hey guys, I’m having some really weird bug here.
I quit the project last time with a fully functioning system. Then after opening the project again (without changing anything) there are many errors when playing.

full log


Error Blueprint Runtime Error: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property? from function: 'ExecuteUbergraph_InventoryLayout' from node: Set InventorySlots in graph: EventGraph in object: InventoryLayout with description: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property?
Error Blueprint Runtime Error: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property? from function: 'ExecuteUbergraph_InventoryLayout' from node: Set InventorySlots in graph: EventGraph in object: InventoryLayout with description: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property?
Error Blueprint Runtime Error: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property? from function: 'ExecuteUbergraph_InventoryLayout' from node: Set InventorySlots in graph: EventGraph in object: InventoryLayout with description: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property?
Error Blueprint Runtime Error: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property? from function: 'ExecuteUbergraph_InventoryLayout' from node: Set InventorySlots in graph: EventGraph in object: InventoryLayout with description: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property?
Error Blueprint Runtime Error: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property? from function: 'ExecuteUbergraph_InventoryLayout' from node: Set InventorySlots in graph: EventGraph in object: InventoryLayout with description: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property?
Error Blueprint Runtime Error: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property? from function: 'ExecuteUbergraph_InventoryLayout' from node: Set InventorySlots in graph: EventGraph in object: InventoryLayout with description: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property?
Error Blueprint Runtime Error: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property? from function: 'ExecuteUbergraph_InventoryLayout' from node: Set InventorySlots in graph: EventGraph in object: InventoryLayout with description: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property?
Error Blueprint Runtime Error: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property? from function: 'ExecuteUbergraph_InventoryLayout' from node: Set InventorySlots in graph: EventGraph in object: InventoryLayout with description: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property?
Error Blueprint Runtime Error: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property? from function: 'ExecuteUbergraph_InventoryLayout' from node: Set InventorySlots in graph: EventGraph in object: InventoryLayout with description: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property?
Error Blueprint Runtime Error: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property? from function: 'ExecuteUbergraph_InventoryLayout' from node: Set InventorySlots in graph: EventGraph in object: InventoryLayout with description: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property?
Error Blueprint Runtime Error: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property? from function: 'ExecuteUbergraph_InventoryLayout' from node: Set InventorySlots in graph: EventGraph in object: InventoryLayout with description: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property?
Error Blueprint Runtime Error: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property? from function: 'ExecuteUbergraph_InventoryLayout' from node: Set InventorySlots in graph: EventGraph in object: InventoryLayout with description: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property?
Error Blueprint Runtime Error: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property? from function: 'ExecuteUbergraph_InventoryLayout' from node: Set InventorySlots in graph: EventGraph in object: InventoryLayout with description: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property?
Error Blueprint Runtime Error: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property? from function: 'ExecuteUbergraph_InventoryLayout' from node: Set InventorySlots in graph: EventGraph in object: InventoryLayout with description: Attempted to access missing property. If this is a packaged/cooked build, are you attempting to use an editor-only property?
Info Play in editor start time for /Game/InventorySystem/Maps/UEDPIE_0_InventoryExampleMap 0.567
Error Blueprint Runtime Error: Accessed None trying to read property CallFunc_Array_Get_Item from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Accessed None trying to read property CallFunc_Array_Get_Item
Error Blueprint Runtime Error: Attempted to assign to None from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Attempted to assign to None
Error Blueprint Runtime Error: Accessed None trying to read property CallFunc_Array_Get_Item from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Accessed None trying to read property CallFunc_Array_Get_Item
Error Blueprint Runtime Error: Attempted to assign to None from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Attempted to assign to None
Error Blueprint Runtime Error: Accessed None trying to read property CallFunc_Array_Get_Item from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Accessed None trying to read property CallFunc_Array_Get_Item
Error Blueprint Runtime Error: Attempted to assign to None from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Attempted to assign to None
Error Blueprint Runtime Error: Accessed None trying to read property CallFunc_Array_Get_Item from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Accessed None trying to read property CallFunc_Array_Get_Item
Error Blueprint Runtime Error: Attempted to assign to None from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Attempted to assign to None
Error Blueprint Runtime Error: Accessed None trying to read property CallFunc_Array_Get_Item from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Accessed None trying to read property CallFunc_Array_Get_Item
Error Blueprint Runtime Error: Attempted to assign to None from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Attempted to assign to None
Error Blueprint Runtime Error: Accessed None trying to read property CallFunc_Array_Get_Item from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Accessed None trying to read property CallFunc_Array_Get_Item
Error Blueprint Runtime Error: Attempted to assign to None from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Attempted to assign to None
Error Blueprint Runtime Error: Accessed None trying to read property CallFunc_Array_Get_Item from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Accessed None trying to read property CallFunc_Array_Get_Item
Error Blueprint Runtime Error: Attempted to assign to None from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Attempted to assign to None
Error Blueprint Runtime Error: Accessed None trying to read property CallFunc_Array_Get_Item from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Accessed None trying to read property CallFunc_Array_Get_Item
Error Blueprint Runtime Error: Attempted to assign to None from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Attempted to assign to None
Error Blueprint Runtime Error: Accessed None trying to read property CallFunc_Array_Get_Item from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Accessed None trying to read property CallFunc_Array_Get_Item
Error Blueprint Runtime Error: Attempted to assign to None from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Attempted to assign to None
Error Blueprint Runtime Error: Accessed None trying to read property CallFunc_Array_Get_Item from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Accessed None trying to read property CallFunc_Array_Get_Item
Error Blueprint Runtime Error: Attempted to assign to None from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Attempted to assign to None
Error Blueprint Runtime Error: Accessed None trying to read property CallFunc_Array_Get_Item from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Accessed None trying to read property CallFunc_Array_Get_Item
Error Blueprint Runtime Error: Attempted to assign to None from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Attempted to assign to None
Error Blueprint Runtime Error: Accessed None trying to read property CallFunc_Array_Get_Item from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Accessed None trying to read property CallFunc_Array_Get_Item
Error Blueprint Runtime Error: Attempted to assign to None from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Attempted to assign to None
Error Blueprint Runtime Error: Accessed None trying to read property CallFunc_Array_Get_Item from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Accessed None trying to read property CallFunc_Array_Get_Item
Error Blueprint Runtime Error: Attempted to assign to None from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Attempted to assign to None
Error Blueprint Runtime Error: Accessed None trying to read property CallFunc_Array_Get_Item from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Accessed None trying to read property CallFunc_Array_Get_Item
Error Blueprint Runtime Error: Attempted to assign to None from function: 'ClearInventorySlotItems' from node: Set ItemInformation in graph: ClearInventorySlotItems in object: InventoryManagerComponent with description: Attempted to assign to None
Error Blueprint Runtime Error: Accessed None trying to read property CallFunc_Array_Get_Item from function: 'SetInventorySlotItem' from node: Set ItemInformation in graph: SetInventorySlotItem in object: InventoryManagerComponent with description: Accessed None trying to read property CallFunc_Array_Get_Item
Error Blueprint Runtime Error: Attempted to assign to None from function: 'SetInventorySlotItem' from node: Set ItemInformation in graph: SetInventorySlotItem in object: InventoryManagerComponent with description: Attempted to assign to None
Error Blueprint Runtime Error: Accessed None trying to read property CallFunc_Array_Get_Item from function: 'SetInventorySlotItem' from node: Set ItemInformation in graph: SetInventorySlotItem in object: InventoryManagerComponent with description: Accessed None trying to read property CallFunc_Array_Get_Item
Error Blueprint Runtime Error: Attempted to assign to None from function: 'SetInventorySlotItem' from node: Set ItemInformation in graph: SetInventorySlotItem in object: InventoryManagerComponent with description: Attempted to assign to None
Error Blueprint Runtime Error: Accessed None trying to read property CallFunc_Array_Get_Item from function: 'SetInventorySlotItem' from node: Set ItemInformation in graph: SetInventorySlotItem in object: InventoryManagerComponent with description: Accessed None trying to read property CallFunc_Array_Get_Item
Error Blueprint Runtime Error: Attempted to assign to None from function: 'SetInventorySlotItem' from node: Set ItemInformation in graph: SetInventorySlotItem in object: InventoryManagerComponent with description: Attempted to assign to None
Error Blueprint Runtime Error: Accessed None trying to read property CallFunc_Array_Get_Item from function: 'SetInventorySlotItem' from node: Set ItemInformation in graph: SetInventorySlotItem in object: InventoryManagerComponent with description: Accessed None trying to read property CallFunc_Array_Get_Item
Error Blueprint Runtime Error: Attempted to assign to None from function: 'SetInventorySlotItem' from node: Set ItemInformation in graph: SetInventorySlotItem in object: InventoryManagerComponent with description: Attempted to assign to None


In my InventoryLayout Widget the referenced Equipment Widget looks like this.


By deleting and adding the Equipment Widget again it looks normal again. When I change the 3 variables that reference the old (buged) Equipment Widget to the new Equipment Widget reference, my game works fine again.
(The Equipment Widget is referenced 3 times: in the InventoryLayout Widget, and twice in the Open/Close Equipment Window function inside the InventoryManagerComponent).

But my game just works until I restart the editor again, then I’m getting the same errors again.
I already tried deleting Intermediate, Saved and DataCache folder, same problem.

Has someone experienced anything similar? Or does someone have a clue what’s happening here?

Yes, i have the same bug, already tried adding IsValid node.

So after further investigation I found the reason for this bug, at least in my case. I added something to the InventorySlot Widget which allows me to display Tooltip Information based on the actual item in the inventory. Currently the system gets the tooltip data from the global item database, but as I am implementing an ammunition system the user shall see the current number of cartridges in his clip, not the initial number from the item database.

Therefore I called the PlayerInventoryComponent of the current PlayerController and used the “GetInventoryItem” function for the currently hovered slot to get the ItemInformation from there, instead of the database. Somehow this bugs the references and something called “REINST” (there are many threads and answerhubs on this, just search for “umg widget REINST”) appears.
I solved my problem by removing my code and implementing the logic via a blueprint interface.
So note: references inside child widgets are bad, use interfaces or event dispatchers

Yes, this is why I had to add the blueprint interface because after 4.10 the blueprint compiler was getting stuffed up and giving reinst errors. If you are accessing information from a c++ class it should be fine to do things normally, but using an blueprint interface to access the data from blueprints was the workaround an engineer at epic told me to do.

After working with this for a long time, I could create a crafting system. I did a few tests and I didn’t see any problems. I don’t understand much about the blueprints so I could have kept the codes too long but I don’t think it will make a difference for the player. :smiley:

It looks like this.
07144322766079b520124fbb8115c314ddf2e22a.jpeg

4f3b8acb7a5a9e6296eb7e0d7437e5cc615c4a4b.jpeg

I had a good day I guess. :slight_smile:

Getting this error, recent changes include upgrading to 1.7 and adding a horizontal box with some buttons, to the hotbar widget, without calling any inventory functions or other informations. There is a cast to the player controller, and to the HUD reference. I could move the additions to their own widget, but i don’t think it is related to that error, which only recently begun to popup. Still investigating.

That’s not a bad start i recommend creating your crafting logic in its own component and just pulling from it from your player controller, try making a data table for your crafting list like mine below.
http://i.imgur.com/dw3Ffdvt.png

Here an example of comparing item stats using a tooltip.
http://i.imgur.com/qXEMcXHt.png

Still looking into this, the equipment window also does not show icons any longer. Sometimes i get this error as well (closing the window is np). Any ideas are welcome.

Are the slots showing a REINST when hovered over in UMG?

Hello, my friend. After packpage my project, ContainerWidget, InventoryWidget, and EquipmentWidget - don’t visible. But logic is work! Help please.
In Editor all good.
Thanks

Quick question, once again:

All usable items are child of World_Actor (well, at least the swords/cardboard items, shield). I made a struct with World_Actor Class Reference, so I can use this later on in a Spawn Actor from Class. The thing is, I also made a variable in the NPC so I can manually add which items to drop (to the ground) when the mob dies. If I do a Spawn Actor From Class I can see all the items just fine. However, if I go to the NPC variable (or in the struct) it will only show up the Shield, Sword(s) and Axe (4 items). I kinda also crashed when I tried to spawn it calling the SpawnActor From Class and in the class input putting the World_actor class reference from the NPC variable.
Side note: if I open the, for example, “Cardboard Boots” and compile->save, it will show up on the variable/struct (so that I could pick it), but still crashing :stuck_out_tongue:

So, Im just wondering if there is a difference between the Axe/Sword(s)/Shield and the Equipment Armors in general :stuck_out_tongue: if something changes on the inside so I can work my way around

Or

How would you recommend me to store the actor(s) (item) references in a struct so I can access them, to spawn it when a npc dies :stuck_out_tongue: (drop)

Thanks a lot for your suggestion. :slight_smile: I created a radio button for the crafting panel, and I connected it to the datatable so that the items automatically generated in the widget. In the same way, Crafting Informations come from the Data Table and Crafting progress starts when i press the button.

http://i.imgur.com/UqcQ4VR.jpg

How can I access the total amount value of item (example apple) that are scattered in different slots in the inventory?

There a few ways of handling this depending on what you want, the easiest way is to create a function and call it when the NPC dies and just loop its inventory and spawn a container actor like a backpack or something and move the NPCs items to that, another way is to set the NPC to usable when it dies but this can create problems because of its collision if your playing a death anim.

Nice looks good :slight_smile: are you going to add a create timer and item filters? , To get the total item amounts i created a function in the IMC that loops though your inventory to check if you have the req items this is all done on the client then when you actually craft a item it uses this same function but on the server for a finial check.

Have you made any changes to the UI? Are you working from a fresh version of 1.7?

Also please go into the InventoryLayout UMG widget and to the event graph. Then check the variables slot on the left and if you see the word component s expand that and delete the reference variable shown there. This will only be there in earlier versions and is not being used by any logic in the widget but may cause bugs because unreal is buggy.

**

** - No. I do not change this logic. I use 1.6 version. UE 4.14

Sup Dudes

I tried to give the armor of the character of the same abilities like the Assault_Rifle Blueprint.
I am sure it can be optimized but it is already working .:rolleyes: for both server and client.

every one is free to use this tutorial as they need or even use it as the 1.8 version of the ActionRPGInventory System :p:rolleyes:

Using actors for armor is a huge waste of bandwidth why would you even need a actor for a piece of armor?