Action RPG Inventory System

Unlike the other hacky inventory systems on the marketplace this uses properly setup art to demonstrate how things should be done in normal development. The reason why all the worn items are Skeletal Meshes is so that they can animate with the character and have their weights painted so they bend properly with the animations.

There are many tutorials online for rigging/Painting weights (both mean the same thing. Assigning bone data to the mesh for animation) and it is not specific to unreal. If your game is extremely basic like “Minecraft” style characters you can get away with only sockets.
In that case I would take a look at just changing the other slots logic to work like the MainHand/OffHand/Rings logic in the EquipmentCharacter.

And for reference the EquipmentCharacter gets manipulated by the EquipmentInventoryComponents->UpdateEquippedMeshes() function. This is where it sets and clears the meshes on the Character by updating the EquipmentCharacter class. So if you study that function and the EquipmentCharacter class it should be very obvious how it works.

Also I was able to get in touch with Epic directly today.
They said the 1.7 update should get out sometime tomorrow (Tuesday, December 20th) during their work day.

@Pirate
What could be the cause of

UATHelper: Packaging (Windows (64-bit)): UE4Editor-Cmd: [2016.12.20-00.06.21:874] 0]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/InventorySystem/Blueprints/InventoryPlayerController.InventoryPlayerController_C:ServerLoadPlayerItems.Temp_struct_Variable’. Unknown structure.
UATHelper: Packaging (Windows (64-bit)): UE4Editor-Cmd: [2016.12.20-00.06.21:878] 0]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/InventorySystem/Blueprints/InventoryPlayerController.InventoryPlayerController_C:ServerLoadPlayerItems.CallFunc_GetDataTableRowFromName_OutRow’. Unknown structure.
UATHelper: Packaging (Windows (64-bit)): UE4Editor-Cmd: [2016.12.20-00.06.21:889] 0]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/InventorySystem/Blueprints/InventoryPlayerController.InventoryPlayerController_C:ServerLoadPlayerItems.CallFunc_GetDataTableRowFromName_OutRow3’. Unknown structure.
UATHelper: Packaging (Windows (64-bit)): UE4Editor-Cmd: [2016.12.20-00.06.21:898] 0]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/InventorySystem/Blueprints/InventoryPlayerController.InventoryPlayerController_C:ServerLoadPlayerItems.K2Node_SetFieldsInStruct_StructOut’. Unknown structure.
UATHelper: Packaging (Windows (64-bit)): UE4Editor-Cmd: [2016.12.20-00.06.21:908] 0]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/InventorySystem/Blueprints/InventoryPlayerController.InventoryPlayerController_C:ServerLoadPlayerItems.CallFunc_TryToAddItemToInventory_OutItem’. Unknown structure.
UATHelper: Packaging (Windows (64-bit)): UE4Editor-Cmd: [2016.12.20-00.06.21:918] 0]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/InventorySystem/Blueprints/InventoryPlayerController.InventoryPlayerController_C:ServerLoadPlayerItems.LocalInventory.LocalInventory’. Unknown structure.

I think I only added a new variable (actually 3?) to the Item struct
Everytime I open the project I also have to compile the World_actor for some reason. I dont think I changed anything (didnt happen before)

Oh, and its the merged version of this and multiplayer topdown kit… It was working fine until I added the variable… mm

Seems somethign similar like this (except for the first issue)

Everytime I hit compile on World_actor
this shows up

BlueprintLog: New page: Compile World_Actor
LogBlueprintUserMessages: [World_Actor_C_0] None NOT FOUND IN ITEM LIST
LogBlueprintUserMessages: [World_Actor_C_0] Item Has No World Mesh
LogBlueprintUserMessages: [World_Actor_C_12] None NOT FOUND IN ITEM LIST
LogBlueprintUserMessages: [World_Actor_C_12] Item Has No World Mesh
LogBlueprintUserMessages: [World_Actor_C_0] None NOT FOUND IN ITEM LIST
LogBlueprintUserMessages: [World_Actor_C_0] Item Has No World Mesh
LogBlueprintUserMessages: [World_Actor_C_12] None NOT FOUND IN ITEM LIST
LogBlueprintUserMessages: [World_Actor_C_12] Item Has No World Mesh

(I dont have any item in the ground?)

The issue isn’t with the ARPGIS as I did not create structs. But with Epic continually trying to fix them in BP and it seems they can’t get their issues sorted.

It is always advisable to fix redirectors and delete your saved and intermediate folders when you are having issues cooking.

When adding a new variable to the struct it will update any blueprint that uses the struct. A simple recompile and save is all it needs. You just need to compile InventoryComponent before you try and compile it’s child EquipmentInventoryComponent and that’s due to inheritance. If your blueprints start behaving strange it’s an editor bug.

I would recommend posting any struct related issues on answerhub so they can hopefully fix them and not keep creating news ones.

I’m not sure why it thinks there are two instances of World_Actor in your project. I would fix it by double checking your map, cleaning up redirectors and delete the saved and intermediate folders. Maybe they are temporarily created while compiling if that’s the case then the print strings aren’t anything to he worried about. But
It seems like there might be some bad references the editor is holding onto in your project after deleting/moving blueprints around or just regular development which is likely what’s causing your cook to fail.
(This is a common issue in unreal and again not caused by the ARPGIS)

As for the Messages themselves they are nothing to be worried about and are by design. I added in-case a user created an item but setup something wrong and was wondering why it didn’t show up. When you hit compile the construction script is run.

When the construction script runs for the World_Actor it tries to load the Item and Mesh.
But since the World Actor ID is set to None (these debug print strings I added show) where as the child classes of World_Actor with an ID specified that you place in the world have the ID set to the ItemID and won’t trigger this.

Hello
I did what you suggested, Fixing Redirectors, Deleting Intermediate/saved/bin/build folders (all that are created). After that I just had to re-wire some Inventory Structures in the World_Actor and InventoryComponent and Container_Actor… that did the trick…

man… the Engine’s crazy (well the Cooking?)

Anyways… if anyone happens to have these errors… ^
thanks Pirate-

Haha yes it is crazy. But that’s the problem when the focus is more on features than stability.

Glad you got it all working.

Hello there. When I send Line Trace in multiplayer, the beam passes through the character. I can write on the screen when the beam hits the wall, but it does not work on this character.

I want to reduce the HP of the character when the line trace hits the character. But the light passes through the character. It does not hit the character.

Looks like that
bf5071a4eaad9dcf5767d2bcbb3c579e84471798.jpeg

8543ee1ea00741daeed255ba4029087ddaace96b.jpeg

But, I do not have the same problem when I send it to the NPC.

f151ee2c1485e13ebc851bdefdcda1da3c3c9827.jpeg

By default in Unreal the PAWN preset does not block the Visibility Channel (The NPC Examples were set to block it). So for the player you will need to set the Collision preset to CUSTOM and then check the Block Visibility box if you are wanting to do a Visibility trace. There are many different types of traces you can do.

That being said you will probably want to do your trace abit differently for dealing damage then how the ARPGIS interact trace is setup as it’s designed simply for interaction with objects.
There should be plenty of information on the Unreal wiki about raycasts/traces in blueprint that will help you understand better what way is best for your needs.

I did what you told me and I solved the problem. Thank you for your help. :slight_smile:

Have you already posted the manual update steps?

it was updated today

The update notes are always linked in the first post.
You can find them here

Took them long enough!, I apologize for the delay everyone. I’m just happy they got it out before the holidays.

I will be on vacation for the holidays so if you need any support the best way to reach me is always by email as I will get those messages on my phone.

Just to let people know what possible with this inventory system and its logic, I based our games inventory off the ARPG inventory logic our game got greenlit a few weeks back, so i thought i would share some features people my want to add into there own inventory systems.

Equipment dependency’s
Having a single item occupy more than a single Equipment slot.

http://i.imgur.com/CsnJMRit.png

Item Durability
Items slowly degrade over time and use.

http://i.imgur.com/63FRb8at.png

Item Popup Menu
Offers Features like item amount splitting, Use, Dropping, Repairing, Scraping really any logical related to the inventory and the item should be added here to call.
http://i.imgur.com/ckyTFNgt.png

looks great

Any chance you are going to share those BP hacks?

Update: I previously asked for info about dynamic MainHand socket. However, the animations i have which use a different MainHand bone, are being updated (just got the info). So if you own Riko’s 2 Hand aniamtions, he will update those to work with Hand R bone.

Blueprint hacks? taking a template learning from it then building a new inventory system based on similar logic isn’t classed as hack lol, also people building upon this inventory system adapting it to there needs also isn’t hacks dude lol, and i’m sure you can learn these hacks your self.

The inventory and equipment window can not be moved any more, how can I fix it?

Can we have a trade example within this system? :rolleyes:

Window Drag has been disable until Epic fixes the UMG bug which breaks the inventory slots once the UI is dragged.