Haha, thanks. I just wanted to make sure the update went through ok because sometimes they have issues on their end.
But considering its almost 9pm their time I’m going to assume it’s not happening today and take a bit of a break.
So any news on the update pirate? Did you get a chance to look at the file i sent you? Thanks
I can’t understand I have made own shield and added it and made it physics asset as that knife. but it don’t appears
Try exporting the demo shield from the inventory and match the rigging on that shield.
EDIT:
The update has just hit the marketplace , ill get to have a crack at it tomorrow after work.
Hello there, I bought the Inventory System today, and gotta say im really Impressed with it so far, made some adjustments and fixed up my own items to be used (mostly so it would recognize if the character was male or female and use the correct mesh) and going over intigrating it into my old UI.
One aspect however is a bit confusing, from the NPC Examples I was able to figure out how to give the player character a few starting things like already equipped basic clothes, however the UI does not see this when it generates, the item appears when you equip a looted item in that slot though so its definatly there, did you include any way for the Charactersheet and Inventory to check all Items on construct, I can’t seem to find anything like that.
Edit: Or if I need to place the loading someplace else, I had put it in the Controller Begin play loading chain, especially for loading inventory arrays from savegames it would be nice to know the best place to plug those in
Just an update, I have been able to merge this inventory system with the base weapon system from shootertutorial.com. Since each weapon has its own weapon blueprint that is a child of a base weapon blueprint, I added a Base Weapon Class variable to the ItemList that stores the class of the weapon (class not reference). Then in my character blueprint, I override OnRep_MainHand and either unequip and remove the weapon from Weapon Slot 1 if the new MainHand mesh is empty, or I spawn a new actor based on the Base Weapon Class of the item in the main hand slot in the inventory and set that to Weapon Slot 1. I also added an event on the number 1 key press event for the hotbar that calls my already created function to show weapon slot 1 and change animations. Everything works, including in multiplayer.
My next endeavor will be to duplicate this for the Off Hand slot and point it to Weapon Slot 2, as well as create a new slot (or just re-purpose an existing slot that I won’t use) and point it to Weapon Slot 3.
After I do that, I will try to override and change the hotbar functionality so it works similar to the H1Z1 hotbar. First hotbar slot is fists/unarmed, second is Primary weapon slot 1, third is Secondary weapon slot 2, fourth is Tertiary weapon slot 3, fifth and sixth maybe can be medkit/healing and grenades, and nothing can be dragged into the hotbar as each slot is set to specific equipment slots.
And then I need to add the ammo item. Yikes, this is a lot, lol.
Thanks for the wonderful system Pirate. It is very versatile and well commented so I know where things are and it doesn’t take too much work to merge with my own logic.
PS, sadly the most difficult thing I worked on last night was trying to create the inventory icon for my weapon. My weapon is grey so it is difficult to see with the dark grey background. I’m going to do more research and see if I can create an icon with alpha.
Amazing product, keep up the great work Pirate!
Would it be possible maybe in a future update, if you had said weapon equipped, and you hover your cursor over another weapon in your inventory, not only will it show the tool tip for the weapon, but also what’s currently equipped in that slot.
Rock on, and looking forward to your social system as well! Take my money!
Could you tell me what specific change you made to all of the UI assets? I tried just copying the new files over, but that breaks everything. (I migrated your files to my project via the Youtube tut.)
There are a few bugs with FBX importing in 4.10. I will put together a new video that will cover things in more depth. I haven’t had these issues in 4.9.2 and I’m getting similar problems in 4.10 when working with Art.
I am able to work around them and get it all working but I haven’t narrowed down exactly what all the bugs are. I’m going to try it in 4.11 and hope that is more stable for importing like 4.9.2 was.
I’m going to add some demo content to show how to give a player starting items for the next update. I just realized it’s not as easy as it should be so I have streamlined it a little in the InventoryComponentManager for the next update.
This will make it easier for games that require dynamically reloading player inventories on the fly with different inventory size changes between reloads. For example on death when they lose all their gear + additional slots. It will all be handled automatically when you call Client_LoadInventory() and it will refresh your inventory icons to show you are have after it recreates the inventory UI slots.
These are not drastic changes but simple additions.
To update people will be able to simply copy the new InventoryManagerComponent.uasset from the update into their project (When closed).
When you boot up your project just make sure to compile and save your PlayerController first and then Compile and save the new InventoryManagerComponent.
That should prevent the UI from having a few references unhooked. If that does happen i just takes a minute to fix.
The areas changed/functions added will be documented so you will be able to open the updated version and your version side by side and see where things have changed.
This will make it easy if you want to manually migrate the new changes instead of copying the whole InventoryManagerComponent over your existing one incase you have already started adding your own logic and changes.
I will be including screenshots of these changes when I have finished preparing the update notes and they will be linked in the post.
That way you can make these changes yourself easily if you don’t want to wait for epic to push the update and migrate then.
I fixed a bunch of elements and changed them from Visible to Self Hit Test invisible to avoid capturing drops where they shouldn’t have. I don’t have a specific list of that unfortunately.
But pretty much the only things that should be “Visible” are Buttons/Icons and the main widgets themselves. Everything else should be Self Hit Test Invisible so that it doesn’t get UI hits.
There were updates to the OnDrop() functions to not handle widget drops and pass them down to the InventoryLayout OnDrop() function.
There were changes also in the Inventory_Slot, Container_Slot for detecting mouse hover to fix issues with the sticky tooltips.
The problems you are having with copying the new UI are because it will have the “InventoryPlayerController” references still which now doesn’t exist in your own project.
You will have to remigrate the UI section since there were a lot of little fixes /tweaks or fix the errors it gives you.
Another alternative but more time consuming is to go through each UI file and compare the differences and add the new code.
**General Update **
The internet in my office is also out today and the technicians are coming to look at it tomorrow so I won’t be as available today as I would like to be.
There is also a known issue with the current version 1.1. This bug will be fixed in 1.2.
- If you drag and drop an Item in the Inventory and immediately try to right click it to use without moving the mouse off the slot first, you may have to click twice.*
I apologize for the growing pains from these week 1 updates that make changes to files after you have already integrated. I will do my best to not make big updates, but I feel if there is something that can be added or done better to help everyone I will be making those changes. I will provide documentation of the changes and enhancements to help with migration. I know it’s an inconvenience and I apologize for that, but these updates are a good thing.
I just really wish we could DIFF blueprints… But that is an engine limitation that we need to live with.
I just purchased it the other day, i’ve already changed quite abit with it. it’s a great system, i like it allot. i’m switching to this over my c++ implementation because, i just don’t have time messing with the slate code. one thing i noticed that i changed immediately was EquipmentSlotType and the other equipmentslot enum which was identical, i delete one and made it re-directors reference the un-deleted one, as i didn’t understand why there were two separate slot types maybe you had some insight on to why?
Also, i changed my system from using skeletal meshes to using static meshes attached to sockets only. as my game has no deform-able equipment. Was really easy.
one thing i cannot find is, where the heck are you setting the equipment icons in umg ? i see that the icons in umg are “bind” to iteminformation, but i cannot find anything about the icons. or where they are referenced.
I agree, hopefully the transitions from update to update won’t be to much work with each one so that we don’t have to spend a few days fixing it.
Hi pirate, I bought your project, um, I want to add more item options and ‘random’(like diablo style) options.
Could you update the process and tutorial?
thanks!
They look the same but one is used for the actual slots types and the other are the different equipment slots the character has, you will notice there are 2 ring slots in this one.
If you don’t want to handle 2 rings, or like 2 earrings or more than 1 slot type as an equipment slot the change you made will make things clearer.
But I would be very careful changing and removing the EquipmentSlots enum as that is used all over the code to figure out what number of your inventory slots are first used for equipment slots. ( The first X slots are treated as your equipment anything after [EquipSlotsEnum Size] is where the inventory slots index starts. In the demo the first 14 inventory slots (0-13) are equipment slots and the ones after are in the Inventory UI (14+).
In the inventory Manager when the server updates the client’s UI item it will generate a ItemInformation struct to send to the client and update that slot with it. It only pulls the required information from the servers InventoryItem to reduce bandwidth. (Ontop of the bandwidth reduction this is also because the client doesn’t own the item the server does, it just owns a visual representation so this makes that distinction even clearer in code.)
And that blueprint tool looks great, I’ll check it out
creating “random” stats on the item (like diablo) is fairly easy to add. It would also be fairly easy to do with just a little research.
The basics would be that when the item is “spawned” (or identified) it does a random roll using a random int in range options for the different stats.
so you could have it roll a determining stat roll between 1-100 on int, vit, AS, Crit etc and then the 3 stats with the highest rolls are the ones that are added to the item, then they each do there own stat rolls between an INT in Range of lets say 5-10 and then multiplied by a “item level” multiplier. So if a level 20 item rolled a 8, it would then be multiplied by the 20 = 160 int (min roll of 100 int and max roll of 200 int). this is very basic way you could do a system like this.
I fear that some people are under the impression that marketplace items are going to be tailored to their own game, this is an amazing inventory system but that’s what it is, a inventory system. You still need to build on to it with all the other systems you want for your game.
I mean the grey’d equipment icons in the character equipment menu. I tried looking at the reference viewer to find where T_ICON_Slot_* is referenced but i only found it referenced in the character umg bp, but i could not find it in either Inventory slot umg bp or the character umg bp
Version 1.2 - February 3rd 2016
------- Update Notes -------
I have included links to screenshots of the areas changed to make it easy to make the changes yourself instead of waiting and migrating manually.
Inventory System:
Added new logic to support easily loading/refreshing inventories when calling the existing Client_LoadInventory event.
This adds to the core inventory system but I think it was a necessary change because it would be a little harder for some people to figure out how to set this up. Now it’s done for you.
[spoiler]
[InventoryManager Component]
Updated Renamed Custom Event Server_LoadInventory to Server_InitInventory
- More clear since this event inits an empty inventory
Added Custom Event Server_RefreshInventorySlots & Function RefreshInventorySlots();
Added Custom Event Client_ClearInventorySlotItems & Function ClearInventorySlotItems();
Updated LoadInventory() function
- Added InventoryUI->Inventory->InventoryGridPanel->Clear Children before calling CreateInventorySlots
- Added Server_RefreshInventorySlots after creating the new UI slots.
Updated AddInventorySlot() function
- Added Local Variable LocalSlotReference.
- Logic now checks if slot already exists and resets it and then adds to Inventory Grid Panel.
**
Updated** IncreaseInventorySize() & DecreaseInventorySize() functions
- Added some new logic for Player Inventory and storing resize changes.
[InventoryComponent]
Updated SetInventoryItem() function
- Set Size to Fit on [Set Array Elem] to True.
[EquipmentInventoryComponent]
Added overriden LoadInventoryItems() function
- Added logic to add dynamic equipment slots number to in inventory size calculation.
[PlayerController]
Updated InitializePlayer() function
- Moved PlayerInventoryComponent->SetEquipmentCharacter reference to before calling InventoryManagerComponent->InitializeInventoryManager()
(You can also see here where I hooked up the new Load Player Items Demo function instead of initializing an empty inventory)
[/spoiler]
User Interface:
Fixed UMG Slot status hover not refreshing properly after a drag drop.
[spoiler]
[Inventory_Slot]
- Added Overridden function OnMouseMove() & added hover logic.
[Container_Slot]
- Added Overridden function OnMouseMove() & added hover logic. (exact same change as above)
[/spoiler]
Fixed A bug where Drag Dropping an equipped item into a container failed.
[spoiler]
[InventoryManagerComponent]
Updated UnequipItem() function.
- Added new logic to test if container is an equipment inventory before unequipping to it.*
- (Now you can unequip from the player and equip to another player/equipment inventory in one move :D)*
[/spoiler]
Demo Content:
Added Demo Example for Class Starting Equipment and loading Player Inventory.
[Spoiler]
*- Added Classes Enum blueprint to Demo folder
- Added ClassStartingEquipmentList to Demo folder
- Added Example function ServerLoadPlayerItems() in PlayerController to demo loading equipment on spawn.*
[/spoiler]
I will submit the update as soon as internet is restored at the office. It is a line issue outside and they will be working on it tomorrow.
I expect the update out on Thursday.
It might seem like a big update but it’s really not. Migrating the new enhancements shouldn’t take very long if you follow the notes and screenshots.
Oh, they are UI art added into the Equipment UI under the Inventory_Slots in each spot.
In Inventory_Slot I do a visibility check for the slot background and if the inventory slot number is one of the equipment slots (0-13 in the demo) I hide the background so it won’t cover the Equipment UI art.
Maybe, im missing something here, but i have tried everything i can think of to where these icon are referenced. i could delete them and redirect it to the new ones, but i’d rather not.
I love you for how quickly you have responded to everything. Thank you very much. I will definitely recommend you and your products.
I spend a lot of time in front of a computer
Hope this solves your problem, it’s tucked away under the border brush and hard to see until you expand it :inf:.
OH BORDER BRUSH OMG That’s ******* amazing i did not know borders could be images!!! Thank you so much for the support!!!
Hi Pirate,
If I update the InventoryItem structure with a new parameter, what else would I need to change in order for the new parameter to carry over if the item is dropped and re-picked up from the inventory?
It seems that picking up a freshly spawned item is fine, but if I drop it and re-pick it up, the new parameter is set to the default value and not the specific one set in the ItemList data table.
EDIT: Never mind, I found that you have to update the World Actor UpdateItemAmount() function.