Action RPG Inventory System

Yes, that’s the intent.

How would I go about doing any of this? These statements are really vague. I tried looking at the inventory widget and I don’t see or understand how I could even loop or filter anything. “Set up logic here” I mean? What logic? Sorry, I don’t understand how to go about following this advice, solid as it clearly is.

Thanks for clarify that, I was worried it will slow my game.

Is there any recommendation for implementing functional melee weapons? Right now i would attach a collider on AddItem if Main-Hand slot is true, but scaling and positioning seems difficult, and you cannot add colliders directly from within Skeletal Mesh editor?

Thus, I thought to use static meshes for the main hand at least, positioning via hand/gun socket on the base skeleton.

Any ideas, would appreciate some input before i begin to tackle this. Thanks

Okay so i testing now a trace channel, and then on success apply damage. Next i will try to make a trace from a weapon skeleton socket, with a tiny continuously sphere trace. The thing is that i cannot use a target based damage mechanic, since the player can hit without targeting.

Update
Now with weapon socket trace, so not sure how good this approach is, still curious how others do melee weapons with skeletal meshes

@Pirate Could I have some help with the icons? When I follow the tutorial, I do not get the “capture thumbnail” option.

Why are you casting to the inventory component from the inventory component? you need to cast to the player controller then get the IMC from there if accessing from actor.

In the Inventory hud theres an array of inventory slots widget these are is what you’ll need to loop though to do your checks.

Can you send me a support email and we can cover more topics in depth. I’ll also be available this weekend to skype for a bit if you’d like to pick my brain.

I didn’t notice it before my phone viewing the forums makes it hard to see images. You don’t need the IMC cast. Just plug it directly into the TryToAddItem target node.

Also does your print string trigger? And does it say Server: or Client#: before your string you are outputting?

I would really appreciate any of your time. I’ll send you an email within the next day.

I revised my attempts on this entirely, based on the logic used to load inventories on initialisation.

&stc=1

So, this works. When called, this event will add items/currency and I can customise it with a list of what I want to add, and even using a filter to make multiple lists and choose which one to use or use a variable to filter - like class specific items even.

For the print string, it does not say either “Server:” or “Client#:” before the string, just the string itself.

It looks like in newer versions of the engine it is just auto generating thumbnails now so this shouldn’t be needed. You’ll want to just use the thumbnail maker just for creating UI Icons for your items.

Yeah that’s the problem. I don’t know how. Thanks for the reply btw.

There is a tutorial on the video channel for generating thumbnails.

Hey guys still having trouble when adding new items to the Inventory and tooltipinfo structs…

its a super big hassle each time I add a new variable… am I the only one having this issue?

Upgraded to 4.12.5 but Still having trouble with adding new variables to InventoryItems and Tooltipitems structs…

if I add a new variable such as “price” to the struct and then compile and run… it works great… but if I try to package the game… then I get these errors.

Code:
MainFrameActions: Packaging (Windows (32-bit)): UE4Editor-Cmd: [2016.08.01-14.20.07:777] 0]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/InventorySystem/Blueprints/Components/InventoryComponent.InventoryComponent_C:LoadInventoryItems.InventoryItems.InventoryItem
MainFrameActions: Packaging (Windows (32-bit)): s’. Unknown structure.
MainFrameActions: Packaging (Windows (32-bit)): UE4Editor-Cmd: [2016.08.01-14.20.07:779] 0]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/InventorySystem/Blueprints/Components/InventoryComponent.InventoryComponent_C:IncreaseInventorySize.Temp_struct_Variable’. Un
MainFrameActions: Packaging (Windows (32-bit)): known structure.
MainFrameActions: Packaging (Windows (32-bit)): UE4Editor-Cmd: [2016.08.01-14.20.07:779] 0]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/InventorySystem/Blueprints/Components/InventoryComponent.InventoryComponent_C:GetInventoryItemCount.CallFunc_Array_Get_Item’.
MainFrameActions: Packaging (Windows (32-bit)): Unknown structure.
MainFrameActions: Packaging (Windows (32-bit)): UE4Editor-Cmd: [2016.08.01-14.20.07:780] 0]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/InventorySystem/Blueprints/Components/InventoryComponent.InventoryComponent_C:GetEmptyInventorySpace.CallFunc_Array_Get_Item’
MainFrameActions: Packaging (Windows (32-bit)): . Unknown structure.
MainFrameActions: Packaging (Windows (32-bit)): UE4Editor-Cmd: [2016.08.01-14.20.07:781] 0]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/InventorySystem/Blueprints/Components/InventoryComponent.InventoryComponent_C:ClearInventoryItem.Temp_struct_Variable’. Unkno
MainFrameActions: Packaging (Windows (32-bit)): wn structure.
MainFrameActions: Packaging (Windows (32-bit)): UE4Editor-Cmd: [2016.08.01-14.20.07:781] 0]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/InventorySystem/Blueprints/Components/InventoryComponent.InventoryComponent_C:SetInventoryItem.InventoryItem’. Unknown struct
MainFrameActions: Packaging (Windows (32-bit)): ure.
MainFrameActions: Packaging (Windows (32-bit)): UE4Editor-Cmd: [2016.08.01-14.20.07:782] 0]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/InventorySystem/Blueprints/Components/InventoryComponent.InventoryComponent_C:GetInventoryItem.InventoryItem’. Unknown struct
MainFrameActions: Packaging (Windows (32-bit)): ure.
MainFrameActions: Packaging (Windows (32-bit)): UE4Editor-Cmd: [2016.08.01-14.20.07:783] 0]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/InventorySystem/Blueprints/Components/InventoryComponent.InventoryComponent_C:GetInventoryItem.CallFunc_Array_Get_Item’. Unkn
MainFrameActions: Packaging (Windows (32-bit)): own structure.
MainFrameActions: Packaging (Windows (32-bit)): UE4Editor-Cmd: [2016.08.01-14.20.07:784] 0]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/InventorySystem/Blueprints/Components/InventoryComponent.InventoryComponent_C:InitInventory.Temp_struct_Variable’. Unknown st
MainFrameActions: Packaging (Windows (32-bit)): ructure.

I fixed it previously by setting Inventory variable to a bool(or anything else) and then switching it back to inventoryitems struct and relinking all the nodes

but obviously that is a lot of work to do each time I want to add a new var…expecially since I have to do it all over again for the “tooltipinfo” struct also

Someone mentioned simply “recompiling all the functions” that use those structs… but that doesn’t seem to be working for me (unless I am doing it wrong)

I am doing a search for “InventoryItems” struct variable and then re-compiling each Blueprint that has that variable in it (even though it already has a Green checkmark as if it’s already compliled - so not sure if that’s actually re-compiling the function)

I’m sorry to hear you are getting crashes packaging. Unfortunately that look like it’s caused by a bug with unreal. I also haven’t heard of anyone else getting that so I would recommend trying in 4.13 and posting a bug report to Epic.

I’m happy to try and help but not sure what I can do. I would suggest also deleting your saved and intermediate(and build) folders. Maybe it’s an editor caching issue when packaging in 4.12

Is anyone using this with codespartans mmokit?

Unreal Engine 4.14
------- 4.13 -> 4.14 Upgrade Notes -------

The 4.13 version of the Inventory System is compatible with the new 4.14 engine version. There is only 1 small issue but it’s an easy fix and doesn’t break anything.

ISSUE:
When upgrading from 4.13 to 4.14 you will see an error about the Set Input Mode needing a Player Controller Target.

This is because the new Set Input Mode nodes expect a Player Controller reference as the target and the node inside the InventoryHUD class does not provide a Player Controller reference for the target.
The InventoryPlayerController has logic that Sets the Input Mode during the clients InitializePlayer logic which makes this initial set Input Mode node in the HUD redundant anyways.

FIX:
As demonstrated in the image below simply remove the** Get HUDReference** and Set Input Mode Game And UI node from inside the InventoryHUD class.

I have submitted a version with this change to Epic and once that change goes live on the launcher I will the Inventory System as compatible with 4.14

I think some people have tried the main problem is that the codespartans mmokit is old and **** it was built on a old engine version and most of its logic is obsolete, you better off using the ARPG inventory and the topdownkit.

I know of people who have replaced the MMO kit with the ARPGIS but all you are really left with in the MMO kit is it’s VaRest example code and a bit of quest logic. Might be worth to port features from the MMO Kit into the ARPGIS demo. I can’t provide support for issues relating to the MMO kit though.

We have the MMO-kit and it’s a nice kit. As a learning project for people new to UE4 and interested in MMO games, it’s probably the best out there.

However, it hues to convention and we quickly determined that its framework would not be suitable for our game. For example, our quest system does not follow current convention at all.

It has proved much more productive to build our systems from scratch.

If we don’t run across a positional voice chat solution, we’re going to use the MMO-Kit’s separate chat server but in that case we are almost certain to use Pirate’s Social System front end.

The central pivot of our game at this point is the ARPGIS, though we have extended the internals considerably, and nearly every system we have interacts with it in some way.

Yes there are many plugins available to make interacting with a database through blueprints easy. You just need to understand basic database design and blueprinting.

I have toyed around with the idea of creating a code project that I would sell outside of the marketplace that features a lot of this stuff setup.
But I would not make it an “MMO” kit and I would not offer support for people trying to make an MMO with it.

Instead it would be more like a Arma/Rust/Ark type persistance framework kit where each server can read/write data to it’s own database so you can have persistence in multiplayer.