Satchel // Open-source modern backpack system

You can disable the backpack using :SetBackpackEnabled() like below:

Satchel:SetBackpackEnabled(false) -- Disables Satchel

Unfortunately due to limitations you are needed to require the Satchel module and it is currently impossible to link Satchel directly to CoreGui.

4 Likes

Oh I see I’m not sure how I missed that. Thanks!

2 Likes

Contributors & Maintainers needed


Satchel is an open-source project which receives no direct compensation or monetization with its open free-to-use modal. Satchel’s goal is to provide a high quality resource for developers to both utilize and learn from.

We are looking for contributors and maintainers for Satchel to keep it in a bug-free and robust state.

All contributions are welcome. Learn to contribute on Satchel by visiting CONTRIBUTING.md.

If you would like to be a maintainer reply to the GitHub discussion or send me an email at ryan.luu@ryanluu.dev.


1 Like

Could you add a system to this where it saves where the players tool locations that are in the hotbar?

1 Like

Systems for doing so are already available for the default backpack and should work with Satchel with moderate modifications.

Adding systems to save tools and restore them would mean adding significant code to Satchel and utilizing data stores which is out of the scope for Satchel.

2 Likes

For those using TextChatService and are encountering the bug where entering numbers in the chat continues to select items from the Satchel toolbar, you can add a couple of lines to mitigate (and hopefully eliminate) the problem:

Add to the beginning of SatchelScript:

local TextChatService = game:GetService("TextChatService")
local ChatInputBarConfiguration = TextChatService:FindFirstChildOfClass("ChatInputBarConfiguration")

Modify the first if statement in OnInputBegan():

...
if
		input.UserInputType == Enum.UserInputType.Keyboard
		and not TextBoxFocused
		and not ChatInputBarConfiguration.IsFocused -- This line here!
		and (WholeThingEnabled or input.KeyCode.Value == DROP_HOTKEY_VA
then
...

That corrected the issue for me, anyways! :happy1:

3 Likes

Hey, thanks for reporting this. Expect a fix using your solution in the next release. See you in the release notes. :smiley:

v1.0.0


v1.0.0 is the first stable release of Satchel. This release refactors major portions of the code with the goal to make the code more readable and easier to contribute to. Changes include bug fixes and minor improvements.

Added

Changed

Fixed

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


Downloads

Satchel.rbxm (80.1 KB)
Satchel.rbxmx (223.6 KB)


GitHub Release

3 Likes

This is a really good module but I have one question.

Are you going to add type safety soon? (like removing the type warnings)

I plan to fix all the warnings at some point but it’s a bit difficult now since warnings from Roblox intellisense don’t show on Visual Studio Code.

Additionally fixing the errors requires a lot of refactoring with few benefits other than a clean error list.

1 Like

Great backpack system, started recently using this in one of my projects, I highly recommend it for anyone who stumps along this! :+1:

I love this alternative backpack system for roblox but I wanted to ask a question considering I don’t do much scripting is changing the position of the slots below the screen.

I didn’t see any configuration for changing its position in the attributes and it was difficult to find it in the main script.

1 Like

You can change the contents of BackpackGui on runtime if you would like to change the position.

image

Additionally, you can change HotbarFrame’s position in the code on line 1460 by adding the below code right under:

MainFrame.Position = UDim2.new(0, 0, 0, 0) -- Change this to your desired position.

Major Issue: Controller Bumper Buttons Not Selecting Tools

Hey, we are currently aware of a current issue relating to not being able to select tools on a controller using the bumper buttons. A temporary fix is now available in the 6-bug-controller-bumper-buttons-not-selecting-tools branch for Satchel.

Issue Tracking

Branch with Temporary Fix

Estimated time for a permanent solution is within about a week with the release of 1.1.0. If there are any issues or problems message me or create an issue on the GitHub.

Satchel internally uses .Draggable when looking through the code

@WinnersTakesAll I do recommend using this module instead of using an deprecated property called Draggable

I also have made a question that if I should remove the Icon module if there is already in the game

While Satchel does use the deprecated .Draggable internally, just like type safety, changing the dragging behavior to another which isn’t deprecated that high in our priority list. The current dragging system is fine now and poses no problems, rewriting or adding code to Satchel can add potentially add more bugs with little benefits.

If any issues with using the deprecated property do arise, I will definitely look to rewrite how dragging works.

With the current version of Satchel, you can’t remove the Icon module or Satchel will break. I just fixed this issue with Use Icon in ReplicatedStorage if possible so look forward to 1.1.0. Basically, what it does is if it detects Icon in ReplicatedStorage, it will use that instead and destory it’s Icon child.

Additionally, if you don’t want to wait for 1.1.0 you can just use the main branch of Satchel.

1 Like

Have you tried dragging things with the old backpack?



My framerate is quite high so it’s hard to reproduce it, but it’s a constant nagging on slower games.

3 Likes

can there be a animation to the backpack gui?

I agree, I play a game quite a bit where I have to rearrange my backpack on spawn, its very frustrating the way that property works. It drags slightly then stops, before teleporting to a random place after letting go of your mouse.

@WinnersTakesAll

I recommend creating a proper documentation site with moonwave, it will improve usage and most likely minimize client issues.

2 Likes

But the Draggable property used to actually function back in the day GUI was considered a recent technology for Roblox.

I guess it makes sense that they deprecated it.

1 Like