Complex, slot-based inventory system

EDIT:
Started the series. Scroll down to get a link to the newest episode!

Introduction:

2 years ago i started using Unreal Engine 4 and learned a lot watching different tutorials and the livestreams. However, i noticed that there are many tutorials about basic stuff (e.g. navigating in the viewport) but few about the more complicated things like building a turn-based combat system or a dialogue system. I know that there are a lot of tutorials about inventories as well but i think that most of them are on a really basic level and therefore can’t be used in a real game. Because of that, i spent the last 3 weeks working on a complex inventory system which is both very functional and easily customizeable.
Knowing that the marketplace is full of such systems, i am not trying to get it in there but planning to create a tutorial series on how to do it from start to finish. Nevertheless i do not want to waste my time on creating something nobody wants to see so i decided to share my thoughts here and wait for some feedback before i start creating the videos.
So please, if you are interested in watching a tutorial series like that let me know by leaving a comment here or in the comment section of the showcase video :slight_smile:

** Showcase:**

List of features:

  • supports different functionality for stackable and non-stackable items

  • supports variables for the amount of slots in your inventory and the maximum stack size

  • open/close the inventory widget by pressing “i” on your keyboard

  • drag around the inventory widget to change its position in the viewport

  • move close to a pickup actor to obtain the assigned item

  • on receiving an item you will see a notification widget showing you which item and how many instances of it you picked up

  • receiving a stackable item will search for an already existing stack of the item and add it to it, receiving a non-stackable item will always fill out a new stack

  • pickup actors will be destroyed after receiving the item unless your inventory was full and the item could not be added

  • right click on an item to show a menu with all possible actions for it (e.g use it, throw it away or split the stack)

  • you can freely move the items in the inventory by dragging and dropping them on a free slot. If you drop an item onto another one they will swap their position

  • dropping an item outside of the inventory will throw it away if it is a non-stackable item, if it is stackable a widget will apear asking you how many instances of the item you want to throw away

  • supports different functionality for different item categories (e.g. quest items cannot be thrown away)

  • double-click on an item to use it (or right click and hit “use” in the action menu)

  • using an item will execute custom funcionality that is defined in the item class (the system includes a health potion that restores some of your health and shows a health bar)

  • hold shift while dragging a stackable item to split it to another slot (imagine you had 90 potions on one slot, you will then have two slots each with 45 potions)

  • drag a stackable item onto another slot of the same item to recombine the stack

  • supports a hotkeybar

  • drag around the hotkeybar to change its position in the viewport

  • drag an item on a slot of the hotkeybar to assign it to a button on your keyboard

  • you can then hit the button on the keyboard to use the assigned item

  • the whole system is totally customizeable. On spawning the inventory actor you can define:

    •  the amount of slots in your inventory
      
    •  the amount of slots per row in your inventory
      
    •  the maximum size of a stack inside the inventory
      
    •  whether or not to show a notification when receiving an item
      
    •  the amount of seconds for which the notification will be visible
      
    •  whether or not there should be a hotkeybar
      
    •  the amount of hotkeys in the bar (from 1 to a maximum of 9)
      
  • new item can be added easily by creating a child of the “Master_Item” class. You can then change:

    •  the name of the item
      
    •  its description
      
    •  its icon
      
    •  whether or not you can stack this item
      
    •  which category it belongs to (e.g. consumebale, equipment, readable, quest item, material, ...)
      
    •  whether it can be used or not (some quest items for example should never be used)
      
    •  what it does when it is used
      
    •  the name of the action when it is used (e.g. a letter is not used but read), this is diplayed in the action menu
      

Thank you for reading this and make sure to let me know if you want to see the series on Youtube :slight_smile:

2 Likes

I will for sure and people in future will look for these tutorials for sure so just do it

Thank you :smiley:

Hello over there :slight_smile:

The people who would be interested by your tutorial are likely not to come over here. Just pointing this out.

I clicked your link because I’m trying to do a clean inventory system with multiple sized items and when I read the word “Complex” I was hoping for this. But unfortunately no, you’re teaching what most inventory tutorials already teach out there. I’m not disregarding your work, doing tutorials and helping the community is amazing. But you wanted to know if it’s worth your time, I think this topic is already covered.

You added the notification feature but it’s just another system that you plugged in. You’re not necessarily looking for that when trying to make an inventory system.

Regarding the inventory system I’m making, I managed to got it working following this method. It’s not clean at all but at least it’s working.

The only inventory tutorial I’d be looking for is a clean diablo-like inventory system.

Good luck and have fun in your projects everyone :slight_smile:

Hi
the reason i opened this post was that i did not find any tutorials for inventory systems that feature stacks/Drag&Drop/proper tooltips/notification etc.
Also i do not understand why you think that a size-based system would justify the description “complex”: Doing a size-based system is not that hard to do, however it is simply not the system i was planning to do because im not interested in it.
Still thank you for your feedback,

There are tutorials about drag & drop and inventories but not about multiple sized inventory. I was just pointing this out.

I guess “complex” baited me to believe it was a diablo-like system because it was what I was looking for :stuck_out_tongue:

WOW this is amazing THANKYOU! this is what i been having an issue with! i made my own inventory system and couldn’t figure out how to make items stackable. THIS IS TOO COOL!!!
please release this in the market place ASAP!!! i totally want to buy this man! this is too freaking cool!
SELL IT PLEASE!

yea i thought its a release of content but still. this is really cool. he should sell it… and ill be the first buyer as long as its not overpriced like a lot of content :P.

I really appreciate your enthusiasm :smiley:
However you will not have to buy anything since it will be a free tutorial series. Just follow along and you will get the same result that is shown in the video as well as the knowledge to extend upon it or to modify it to your needs :smiley:

YES I know it will be free but dude you should sell this. i know it would make a killing. and i really don’t like any of the inventory systems on the market place.
NONE have this ability for stacking or this cool slide in “you recieved item” stuff or multi sized inventory. i think the coolest part of it is the look. most out there are dull looking(not to impune their work) but none have detailed item info tooltips… this system is better than most for me.

Question:
Will it support “trading items” with other players or just single player mode?

Honestly i am not that interested in making money :stuck_out_tongue:
Currently it only supports single player mode but after i finished the series i will probably add multiplayer support.

Community Content, Tools and Tutorials

IS the name of this forum BTW <------ Many come here for tutorials I’m one of them :stuck_out_tongue: Just saying

that will be amazing!

It’s a minority of users who come on the forum. But anyway looks like I was wrong on all sides and that the tutorial is interesting to lots of people!

Gg gl hf to all :slight_smile:

am in for the tutorial :smiley:

Alright, decided to do the series. First video will be uploaded on wednessday hopefully but i will also post it here. Stay tuned :smiley:

I am highly interested in your tutorial series, and I hope that will be able to see it through to completion.

I wish you luck and look forward to what you can do.

So here it is:
Just uploaded the first video of the series which is about creating our project and importing some textures to use later. I know it is a really short video but i want to keep the topics separated and the next ones will surely be longer and on a more advanced level. Part 2 will hopefully be published tomorrow and deals with building our item classes.
By the way i know my english sucks so please you do not have to tell me :slight_smile:

**Link: **

You sir, have a new subscriber :slight_smile:

Thank you and welcome :smiley: