Action RPG Inventory System

I was thinking of getting this too, hence my previous messages. Seems a bargain for a tenner! I’m hoping the new version he’s going to submit on Monday will allow us to use this?

You are over thinking it. I am not adding a Weapon System integrated into the InventorySystem so it does not need to be compatible with anything.
It is simply some extremely basic example actor replicated spawning logic done for people because a few people were destroying the abstract design of the InventorySystem by trying to create different gameplay systems all tangled inside of it.

It just takes a minute to turn the simple example logic provided (which all it does is let you pick a blueprint Weapon_Actor and spawn it attached to the EquipmentCharacter) to swap it out to your own system.
Or if you wanted to create your own weapon system it gives you a barebones starting place already hooked up to the InventoryItem.

To switch it to spawn a different type of actor class all you have to do is change the variables for the new Weapon_Actor class in 3 places to have it work with whatever blueprint weapon system you have.

1.) Change the Weapon_Actor class variable in the InventoryItem Struct to whatever blueprint is the base class of your weapon system.
2.) Change the EquipmentCharacter Weapon_Actor Reference variable to a reference of that same weapon system base class.
3.) In EquipmentCharacter you want to update the Weapon_Actor Class local variable to be your new weapon system base class and the UpdateMainHandWeapon input variable from Weapon_Actor class to your own weapon system base class.

Then you can delete the Weapon_Actor/Weapon_Rifle_Assault dummy blueprints.

1.) Upgrade notes are posted here. You can just delete the SetInputGameAndUI Node from the InventoryHUD event graph as that gets set in the PlayerController already. The error is because it’s expecting you to now feed in the PlayerController Reference. So you can either do that or simply delete it. More Info can be found here:
&p=623996&viewfull=1#post623996

2.) Looks like the struct issue where it updates all the structs in each BP when changes are made now. Try recompiling and saving the parent class Usable_Actor and the InventoryManagerComponent first.
If it’s still not working perhaps you can send me an email with a link to the project (delete the saved/intermediate folders first before zipping to reduce filesize) and I can try and see what’s happening so we can make sure Epic knows about the new struct bug.

Epic is doing a lot of changes to Structs to try and make them better. But really it’s quite sad how problematic they can be in blueprints.

Ok, awesome, and thank you for your continued input and work on this project. I am just about to approach this, looking now forward to your 1.7 update.

One more question, does this work same for the Off-Hand slot? And what do you suggest should be done, to have dynamically mount the weapon/shield, while the player is not, IsAttacking or InCombat?

Thanks

In EquipmentCharacter->OnRep_MainHandMesh()](https://vanguardinteractive.com/storage/app/media/unreal/marketplace/arpginventorysystem/updates/1_7/onrep_mainhand_mesh.jpg) and OnRep_OffHandMesh()](https://vanguardinteractive.com/storage/app/media/unreal/marketplace/arpginventorysystem/updates/1_7/onrep_offhand_mesh.jpg) if there is a node called Set Master Pose in both those at the end of the logic delete it. This node is what started causing the flickering after an engine update.

For OffHand actors you would just want to setup another Reference in the EquipmentCharacter and then mimic the code in the EquipmentInventoryComponent->UpdateEquippedMeshes() function that fires off when the switch for OffHand logic is called. You would still use the same WeaponActor class logic but just be changing the MainHand variables to use OffHand ones instead.

As for mounting you equipped weapon/shield. I would create a function in the EquipmentCharacter that using the WeaponActorReference it Attaches the Actor to a different Socket (probably on the back, you will have to add this new socket which is very simple. You can add sockets in the editor when viewing the skeleton) when out of combat. Then when you are back in Combat have it attach it back to the hand MainHand socket. Then you can setup an AnimNotify to do this swap during a certain part of your Sheathe/Unsheathe animation.

Also I have thought about adding features like this into it. But then it will end up being an RPG Starter Kit I’d sell for $124.99 (Joking, but if his sells at that much… maybe :D) and no longer an Inventory System for $39.99.

Thanks Pirate!

Btw, i think it would help you, me and others if there would be 1 place to assess the update cycle. I did not bothered to update the Launcher content, but just did it, but i am not entirely sure which version is the current (probably 1.6), without opening the project and skipping through the code. Also 1 place for all updates, would help to better understand issues, like outlined above with the flickering. And is it possible to get the new update tonight? I already verified my purchase with Will.

I tested in a fresh project and filled up the inventory then added new slots. It worked fine please double check your logic in your project.

Haha yes your support emails had me thinking there is a better way to do it. The new tool tips are so much better.

Thank you :slight_smile:

All the update notes are in one place (and there are always links at the bottom of the initial post that point to the update notes) but as I am still working on the update the notes are constantly being edited and new steps provided.
I will post again letting everyone know when the update is finished and all the notes are final in this post:
&p=635726&viewfull=1#post635726

You can see the project version in the project settings. It will be 1.6 unless you the inventory before Summer/September.

I won’t be able to provide an updated version to you this weekend. I plan to submit on Monday so that would be the earliest I would be able to but you would need to message me Monday through our support email.

[FONT=Comic Sans MS]Changes to adapt the new approach for equipment (MainHand and Shield), with MeleeTracePlugin “MeleeClass”.

InventoryItem with additional (purple) “MeleeClass” for the MeleeTrace Plugin Melee Tracing Plugin in Code Plugins - UE Marketplace

The following changes affect EquipmentInventoryComponent

Additional LocalVariable for the Shield (with WeaponActorClass Reference). The MainHand uses the same, but with the MeleeWeaponClass (MeleeTracePlugin class variable), instead of the WeaponActorClass (ARPGIS class variable name). You have to delete the Spawn actor from class node, and some variables and the destroy actor node, because Unreal still refers to those based on the initial setup. So in case a node is broken, delete those nodes, and re-create the node, then you can connect nodes.
b14efdc9344b020c612ce621b8ed541346bc15a2.jpeg

Additional UpdateOffHandShield function, basically same as the newly introduced (ARPGIS 1.7) UpdateMainHandWeapon function, just with the shield variables. Notice for the MeleeTracePlugin the class is called “MeleeWeaponClass” we use here the “MainHand”, and for the Shield (OffHand) the new ARGIS WeaponActorClass.
32bfe3725f52e8053802c4d7dafaba4fd07d9768.jpeg

Important, set the new local variables, inside the existing UpdateEquippedMeshes function.
da488337fa1331d2ab90b086f85613086a22ad07.jpeg

Bottomline, it takes about 30-60 minutes to update per the ARGIS 1.7 Instructions (Launcher ready next week) &p=635726&viewfull=1#post635726 , which also include the bug issues from the past weeks. Those instructions work also for the TopDownMultiplayerKit - merged with ARGIS.

Update
This change does not work in the merged project - Updated Line Trace in InventoryPlayerController->GetUsableActor() to now trace by Channel Visibility instead of by Objects.

Glad you were able to get everything setup in your project :slight_smile:

Yes, and thanks to your excellent support Pirate! And the timing is just perfect, since i installed the TracePlugin this week, and was wondering the past days how to blend it into ARPGIS. Basically the TracePlugin is the same as your WeaponActor, but with some additional functionality for setting up traces and the On Hit logic.

ps. You might want to delete my quote, since i updated it a little and less image loading :slight_smile:

Well, there is a problem with the MeleeTrace, it crashes when casting a trace to the MainHandWeaponReference. Per default you directly get the MeleeWeaponClass reference with above setup, not directly the parent class. Will continue to look into this a little later …

The original code

OKAY, i fixed it, see below video, basically you need to plug the EquipmentCharacterReference into the SpawnActor Instigator node

[video]- YouTube

If someone needs more screens refer to the MeleePlugin forum post

@unit23 you should be setting the inventory actor class to just actor theres no reason to set it to a child, that way you can use the single variable for any type of actor you want to spawn using that inventory item, if you plan on having a lot of weapons i would look at a data table approach which doesn’t depend on adding any extra variables to the item list, PS i also picked up that plugin but it seems it only collides on pawn bone collision so its useless at the moment for me.

Hey Guy, I have been working on this yesterday and I am realy excited to show you this hover UI for the ActionRPGInventorySystem.
The movement of the UI adapts to your screen size and the wight and hight of the Tool Tip.

If you had read the update notes on a page back it would of saved you doing that hack approach, your better off waiting for the next update to drop because the tooltip logic has been overhauled.

Nice work :smiley:

I just spent the same day doing the same thing :D.

Hey, i have bought your project, and is working great so far, i managed to merge into my project, but for nothing i can make the client to work on it, hud spawns, everything, but i can`t press anything on client side, with server all good, and replicating to the client, what am i doing wrong? :frowning:

I have a new question :slight_smile: How can I make the crosshairs more accurate? Let me describe a little and maybe you can point me in the right direction - I created a Desk, the drawers of the desk are usable items, when you use them they open and close - pretty simple… but when the drawers are closed the area to click on them is very small and is not the whole face of the drawer (as you’d expect) - so where can I look to make that system work across the entire mesh of the object?

Thanks!

False alarm! I figured it out :slight_smile: - in the “GetUsableActor” in the “InventoryPlayerController” I set the “Trace Complex” of the “LineTraceForObjects” to true and that gives me exactly what I want!

When will the new update be published?