Action RPG Inventory System

Yes it was a matter of broken functions after migration that needed to be pointed in the right direction. Thanks for taking the time to respond! :slight_smile:

This is an art export issue. Make sure your head asset is skinned to the skeleton headbone and exported out properly before importing into unreal.

Sounds like a bug with unreal and structs. You are using 4.10? I know in 4.11 a lot of struct issues were fixes (not all but it was a good start).

I will test with 4.12.5 when I get a chance and let you know if the bug still persists.

Thanks for taking a look. I was able to fix the issue by deleting ALL the references to the struct and then replacing ALL the references and then re-linking - not too crazy about doing that all the time so… I would be curious to find out if 4.12.5 works better.

I just encountered this problem and I am using 4.12.5. Could you elaborate on how you corrected this problem? It’s not clear to me what you mean by “deleting ALL the references to the struct”. In C++? Blueprints?

I add a new variable to the “InventoryItem” Struct - (if I compile and run, it works and plays great and I wont noticed any errors unless I try to cook and package it up)

so to fix…

  1. I go into InventoryComponent and find the “Inventory” variable (which is of type “InventoryItem” Struct)

  2. then go to Details panel (for the “inventory” var) and change the type to “bool” or something so it unlinks all instances

  3. then change it back to the correct “InventoryItem” Struct type (this somehow resets everything correctly)

  4. then relink all “Inventory” variables back correctly because once you change the var type it will unlink the variable from everything it was previously linked to

that seems to fix it…

Thanks! I’ll give that a go.

After I gave this some thought, I recalled another bit of advice that @Pirate had once given (I think in a tutorial) and simply re-compiled and saved each offending function in the components. This corrected the cook errors for me without having to change the types and reconnect.

Perhaps you might try this the next time this particular problem crops up for you.

In future, if I make any changes to Blueprint structs, I’m just going to automatically re-compile all the functions that use them.

There seems to be a few issues like this with structs in 4.12 from what I have heard.
Best to always report the bugs you find in unreal on answerhub so that hopefully Epic is aware of them and can fix them quicker.

I am glad that solution helped.

Hi,
I want to use your inventory system on a mobile game projet but I don’t know how and where to replace mouse input with touch input, I’m lost in all those files/directory. I added virtual joysticks and button so I can move, open inventory, interact, etc. but I can’t “clic” on icons to use/equip items nor drag them.
Any help please?

I haven’t done any touch input with unreal but if you edit the UI blueprints it should be pretty straight forward to convert it from a drag and drop system with right click use to a mobile friendly one as you will only need to edit the UI files.

Look in **
InventorySystem/UI/Blueprints
InventorySystem/UI/Blueprints/Inventory**

If you look at the event graph you will see how the UI is calling events on the inventory for things like Move and Use. Replacing some of that logic with your games touch control logic should get you started.

Thanks for your help. I edited your “InventoryPlayerController” to use touch input but I didn’t know where you called all mouse inputs. For you they are all in UI/Blueprints ( and player controller )? I will look there

Wow, that was so simple. In case someone need it, all I had to do was to go to “Inventory_slot” blueprint, open “OnMouseButtonDown” function and change “Drag Key” to " Touch 1". Know I need to find how to click through the HUD canvas so I can use virtual joysticks/buttons

Hello Im trying to get this to work with my Fps Kit and I had a quick question. In the tutorial im supposed to parent mycharacterbp to the equipmentcharacter, except mycharacterbp parent option is already set to ‘Soldier’ and I cannot switch this option to equipment character else my scene wont work. Soldier is a C++ script. So Soldier.h is pawn, the SoldierBP has this as its parent option. How may I add the equipment character to this? ty :confused:

Im not entirely sure but I think the problem is from the camera attatch script since the camera is now attached at the wrong position near the feet:

{
Camera = ObjectInitializer.CreateDefaultSubobject<UCameraComponent>(this, TEXT(“Camera”));
Camera->AttachParent = GetMesh();
Camera->AttachSocketName = FName(TEXT(“camera_socket”));
Camera->bUsePawnControlRotation = false;
FPostProcessSettings & PPS = Camera->PostProcessSettings;
PPS.bOverride_FilmSaturation = true;
PPS.bOverride_SceneFringeIntensity = true;
PPS.bOverride_VignetteIntensity = true;
//PPS.bOverride_MotionBlurAmount = true;
//PPS.MotionBlurAmount = 0.f;

CameraBoom = ObjectInitializer.CreateDefaultSubobject&lt;USpringArmComponent&gt;(this, TEXT("CameraBoom"));
CameraBoom-&gt;AttachParent = GetCapsuleComponent();
//CameraBoom-&gt;AttachSocketName = FName(TEXT("root"));
//CameraBoom-&gt;bUsePawnControlRotation = true;
CameraBoom-&gt;TargetArmLength = 100.f;
CameraBoom-&gt;SocketOffset = FVector(0.f, 30.f, 80.f);

CameraTP = ObjectInitializer.CreateDefaultSubobject&lt;UCameraComponent&gt;(this, TEXT("CameraTP"));
CameraTP-&gt;AttachParent = CameraBoom;
CameraTP-&gt;bUsePawnControlRotation = false;

Nvm I figured it out lol, with Solder->EquipmentCharacter->SoldierBp the default mesh was being used from inventory system which doesn’t have a camera bone. Now it works hopefully it doesnt cause any odd error in the future though :slight_smile:

It shouldn’t :), it’s just keeping all the equiplogic clean and separate from your other logic by having it in the EquipmentCharacter class :slight_smile:

Be pretty interested in getting this. But just a question I got.

I’ve got myself a sidescroller (3d) version. Is it possible to open the container when in proximity to it instead of having to look at it? So > character near container > hold E to open container. Obviously this would be done with a box collision but i’m wondering if its an easy thing to switch over and do?

anyway look forward to your answer and thanks!

Hi,
My windows disappear when I drag them. I can move them but once released, they disappear.

Hi Pirate,

I moved the RPG Inventory and Top Down Kit assets into my project. Thank you for the video on that! I did have one error I thought you might have some thoughts on. I’m getting the error messages off the world actor “Item not found in item list” and “Item has no world Mesh”. It’s being run in the construction script so the error is going all the time when I’m in the folder with the world actor. When I look at the imported items they have ID’s, and the ID’s are on the ItemList. It seems like it should all be working. Any thoughts on what that might be?

Thanks!

You could replace the RayCast in the InventoryPlayerController to use a volume overlap instead or any other method really.
Interacting with the containers is just as simple as telling the server to call that actors on used function.

Do you have any other UI elements that might be blocking the UI HIT when you drop the widgets? Make sure that when you drop the widgets that are hitting the InventoryLayout UI as that has the code to handle the “OnDrop”.
UMG UI can be a little confusing at first, but if you take a bit of time to learn and understand how the UI Hit Tests work and Z Order of widgets should help you solve this issue very quickly in your project.

Hrmmm that’s a little odd. Do the items in game have the correct meshes and when you pick them up the right stats? That error should only print out if it’s trying to load something that doesn’t exist in the ItemsList and then show a default mesh. please send me an email to support@vanguardinteractive.com