Custom Inventory or Backpack

Custom Inventory System
This system was made by me for my project and I decided to release it to the public since exploiters could steal it anyways as it’s fully on the client, note that I won’t be updating this Model unless there are any bugs or major issues with it.

It supports all Roblox default backpack features such as:

  • ToolTip - It will show the ToolTip string as a description when you hover the tool frame.
  • TextureId - When there’s a TextureId the tool frame will show the image.

Additionally, it also supports a custom quantity feature, if you want it to display a certain quantity just change the tool attribute quantity to its value.
I will not go in-depth with this since this is a system you need to have some scripting knowledge to implement and this is not a Tutorial :wink:

To customize it to your liking you can change the Images and design yourself just make sure to not change any names if you aren’t familiar with scripting

Custom Inventory [MODEL]

Examples of the System


UPDATE 1 (November 18, 2022)

Added 4 new methods to the Inventory Handler module.
To get the new version just go to the link above and download the updated file.

module:lockSlots(unequipCurrentTool: boolean) -- locks the slots so they cant be equipped or unequipped
module:unlockSlots() -- unlocks the slots so they can be equipped and unequipped again
module:lockSlotsPosition() -- locks the slots position so they cant be moved around
module:unlockSlotsPosition() -- unlocks the slots positions so they can be moved again
module.SETTINGS.DRAG_OUTSIDE_TO_DROP = boolean




And a new option to make the tools drop if you drag them out of the inventory.

SETTINGS.DRAG_OUTSIDE_TO_DROP = false
UPDATE 2 (June 29, 2023)

Added 2 new methods to the Inventory Handler module.
To get the new version just go to the link above and download the updated file.

module:getToolPosition(tool: Tool) -- Returns the tool position on the hotbar (if in inventory retuns nil)
module:getObjectFromTool(tool: Tool) -- Returns the ToolObject of a Tool




And a new option to make the tool frames in the hotbar display even if the backpack or inventory is closed.

SETTINGS.SHOW_EMPTY_TOOL_FRAMES_IN_HOTBAR
UPDATE 3 (June 30, 2023)

Added a new option to enable you to scroll the HotBar with the mouse wheel + a few bug fixes

SETTINGS.SCROLL_HOTBAR_WITH_WHEEL

Check out the overhaul of this module by @VoltenNa as it adds a lot of nice features POST LINK

I stopped supporting this module a while ago so dont expect any more updates.

158 Likes

Wow, does this replace the roblox backpack? it seems cool

Plus, it has tool stacking :slight_smile:

10 Likes

It does! All you have to do is put the ScreenGui inside StarterGui and then customize it to your liking.

13 Likes

This is pretty cool, nice!
Really liking the tool stacking.

6 Likes

It was very easy to implement, this is underated

6 Likes

I have fixed a few issues with the Custom Inventory therefore if you want the newest version of it you will have to update it.
note that I only changed the local and module script.

2 Likes

looks poggers, i might try it out in the future

6 Likes

Is there a way to disable the GUI? Like there is with the default roblox inventory. I’m trying to make it so that the player can’t equip tools during a certain time.

3 Likes

Yeah it can be done if you disable all the tools the player has, and unequip any equipped tools.

update on this, I added a feature to do just what you asked so read the post UPDATE

3 Likes

This is exactly what I need! Is there a way to disable the inventory though? I just want the hotbar.

1 Like

Just wanted to say how cool this was. Appreciate you uploading it as a resource!

1 Like

Yeah there is, you can simply delete line 107 of the playerManager script which binds the key to the inventory so it wont open.
however when the hotbar is full it will automatically put the next tools in the Inventory so iam not sure how will you manage that it really depends on what you are trying to do.

4 Likes

Very sweet, thank you so much for this!

You rock!

1 Like

any plans on adding a setting to save tool slot positions? for example if i had a sword on slot 7, and then rejoin the game id see my sword still on slot 7

1 Like

No plans for that at all, this system only helps you show the tools the player has on the client but dosent touch the server side at all, you will have to do so via the server and then send the client where to show each tool and you can do so with this Inventory System, for example if you wanna put a tool on slot 1 forcefully just do module:addTool(myToolInstance, "HotBar", 1)

2 Likes

Any idea on how I can approach saving the tool order on death?

Well I actually have this feature in my own game and what I currently do is, in the server each time a tool is added or removed from the players backpack I add or remove that tool to the players StarterGear folder and then grab its position from the client and set it as an attribute on the server.

this can be done in various ways, in my case I update an attribute named position on the tool each time the client changes its position in the client and then when I want to I can just grab that attribute via a remote from the client

now that the player has all its tools “cloned” into StarterGear he will spawn with his tools and if they are in the hotbar they will have an attribute named position, so when a tool is added in the InventorySystem I just check for that attribute and set the tools position to the attribute.

this all sounds very confusing so if you got any further questions your welcome

1 Like
  • note that this is my way of making things and the way I found the best to use in my case, iam a 100% sure this can be done in at least 10 different unique ways so I suggest experimenting. after all its what makes scripting fun :face_with_hand_over_mouth:
1 Like

Check out the new features that were added !! and if you have the module make sure to update to the last version since some bugs have been fixed as well. :saluting_face:

2 Likes

Thanks for the updates! They are working sweet!

3 Likes