Satchel // Open-source backpack system

Thanks for helping out again. The GitHub now has the fix and will included in the next version of Satchel. :innocent:

In what script can the thickness and color of the icon border be changed? I grabbed the Satchel script from the playground test place and have been trying to change the border from white to red in the “BlueGradient” and “SatchelScript” module scripts for a while now but it seems like no matter what changes I do, it doesn’t change. I’m also trying to make the border a bit thinner but that also seems to not work. There’s quite a lot going on and so it’s a bit confusing for me.

You don’t need to modify the scripts at all to change the Equip Border Thickness or Color. Satchel supports attributes so just change the EquipBorderColor3 and EquipBorderSizePixel in the properties to your desired value.

And the BlueGradient script you stumbled upon is for TopbarPlus and not Satchel, so changing it will only affect the Topbar icon behavior and appearance.


I remember there being a bug in 1.0.0 that breaks it. You try using Rojo to sync the main branch of our GitHub repository for now.

Additionally you can just manually copy the changes in commit 831bae6 if you don’t want to go though the hassle of running Rojo.

1 Like





Full Changelog: Comparing v1.0.0...v1.1.0 · RyanLua/Satchel · GitHub


Satchel.rbxm (81.0 KB)
Satchel.rbxmx (228.0 KB)

GitHub Release


Dope, you should add a little feature too where when you equip a tool from your inventory, the tool icon slightly enlarges to indicate that you are holding it in your hand, and when you unequip it, the icon returns to regular size if this makes sense. Would be a cool addition besides just an equip border.

Not a terrible idea but quite an significant amount of code for a feature that will be barely used. Along with that we need to keep support for 5 different platforms.

You can implement it yourself if you want but this idea is out of the scope for Satchel.

1 Like

There’s an issue with Tool names disappearing after a Tool with an icon replaces it. This stays this way until the player resets. Could this be fixed?

Thanks for reporting this, I’m investigating the issue now.

1 Like

I am the last replay so yea try to beat that

I have never found a good open source system for backpacks/backpack modification systems like this. Appreciate the contribution!

What are you trying to say here? I’m a bit confused.

It looks really cool so yea but preety nice

I will be keeping an eye on this. Will credit you big time if I plan to do any modifications. Great job!

1 Like

Hey, I recently fixed this issue with commit 6a9cf5b. The fix will be included in the next release.

For now, you can review commit 6a9cf5b and copy the changes on your copy of Satchel. Or you can use Rojo to sync the main branch of Satchel.

Thanks for finding the bug for us.


Satchel is now on Wally

Satchel is now available to install from Wally. Manage Satchel now from your favorite Roblox DevOps tool.


Install Satchel by adding satchel = "ryanlua/satchel@1.1.0" to your wally.toml file.

Use wally update ryanlua/satchel to update Satchel.

For more information, see Wally.

Wally Package

1 Like

I love this module and, at the same time, i’m a bit confused since it’s too much coding.
I only have one question, how do you add sounds when you open the backpack and close?
Otherwise this is a great module and i super recommend it.

Keep up the work! @WinnersTakesAll :slight_smile:

I try to improve the code from Roblox’s default backpack so it’s more readable in Satchel but I can only go so far while maintaining compatibility and performance. Satchel is way more readable than default but still, I can understand how intimidating the module looks.

You can use GetStateChangedEvent() which will return an event that fires when the inventory is toggled to find when the player opens the inventory.

Additionally, you can use IsOpened() which returns a boolean for finding whether the inventory is open or not in case you would like to play specific sounds on opening and closing of the inventory.