Still getting reports of it randomly not responding to the hotkey numbers unfortunately
It would be nice if you added a container/storage feature for putting items in crates/boxes.
Will Satchel receive a UI update to match with roblox’s new user interface?
Yes, please refer to the below.
update on this, is chrome-topbar
version of satchel still experimental? or is it safe to use for games?
It’s stable but I’m looking forward to use TopbarPlus instead of UIShelf because I want to maintain compatibility with TopbarPlus including HD Admin.
I initially didn’t use TopbarPlus since the main repository has been dead for a while and it seemed like it was no longer getting updates but I’m seeing progress.
You can use it and it’s quite stable but no support for HD Admin and TopbarPlus.
I see, I understand the decision, I originally wanted to stay away from topbar+ because of the unsustainable bloat that v2 was, but it seems v3 has generally made good improvements overall
When will you be moving to support of TopBarPlus if you are looking forward to it?
(Or I guess I am confused, your last reply says no topbarplus support, but at the very top in your docs it says it is supported…)
Thanks
I will try to make sure that the next release will have TopbarPlus support, just like the current version.
I should been more specific but the development build of Satchel, with the new topbar support, doesn’t use TopbarPlus but the current stable version, released to the public, does.
Hello, thank you for this amazing resource! I plan to add it into my game and build off of it as Roblox’s default backpack is severely lacking controllability.
Apologies, I have no clue how to properly use git, so here you go:
While going around and modifying the script, I noticed you run
for _, gamepad: any in pairs(GAMEPAD_INPUT_TYPES) do
on line 1138 & similarly 1128 for mouse in v1.3, or keybindings branch, in order to detect the last used input type. However, you are checking the value of the table instead of the key which is where the input type is stored. This prevents the script from registering the proper inputs.
Additionally, on line 1434:
GuiService.SelectedObject = HotbarFrame:FindFirstChild("1")
This runs without regards to if the player is or isn’t actively using the controller. This causes the player to enter the selection state when opening the backpack via keyboard while a controller is plugged in and prevents all movement.
A simple fix but here's some updated code:
local controllerActive: boolean = false
local function OnUISChanged(): ()
local lastInput = UserInputService:GetLastInputType()
-- Detect if player is using Touch
if lastInput == Enum.UserInputType.Touch then
for i: number = 1, NumberOfHotbarSlots do
Slots[i]:TurnNumber(false)
end
controllerActive = false
return
end
-- Detect if player is using Keyboard
if lastInput == Enum.UserInputType.Keyboard then
for i: number = 1, NumberOfHotbarSlots do
Slots[i]:TurnNumber(true)
end
controllerActive = false
return
end
-- Detect if player is using Mouse
if MOUSE_INPUT_TYPES[lastInput] then
for i: number = 1, NumberOfHotbarSlots do
Slots[i]:TurnNumber(true)
end
controllerActive = false
return
end
-- Detect if player is using Controller
if GAMEPAD_INPUT_TYPES[lastInput] then
for i: number = 1, NumberOfHotbarSlots do
Slots[i]:TurnNumber(false)
end
controllerActive = true
return
end
end
...
local function enableGamepadInventoryControl(): ()
-- Other function code
if not controllerActive then return end
GuiService.SelectedObject = HotbarFrame:FindFirstChild("1")
end
I also replaced heartbeat with a BindableEvent if that interests you
-- Ensures the ModuleScript "owns" the controller binds in case the requiring script is ever destroyed.
local echo: BindableEvent = Instance.new("BindableEvent")
echo.Event:Connect(OnIconChanged)
-- Sets whether the backpack is enabled or not
function BackpackScript:SetBackpackEnabled(Enabled: boolean): ()
BackpackEnabled = Enabled
echo:Fire(BackpackEnabled)
end
Thanks for your suggestion and improvements. I’ll review the code and test it later but from the looks of it, it looks all good. Thanks again
Is there a way to only have the HotBar and remove the Inventory
How do you make it save so when the player has tools, and they place them in different slots and when you rejoin it saves, normally it isn’t like that.
At the top , can you list what devices Satchel supports? I assume PC, and you mention mobile… what about xbox, vr , etc… thanks
Currently no but I do plan later to be able to disable opening the inventory.
You can find all the platforms Satchel supports by viewing the Platform page on our documentation.
In short, we support computer, phone, tablet, console, and VR.
For more information about screen sizes and platform differences see the below documentation.
You can save in which order tools are assigned (or which order their stores in Satchel) and then when the player joins, assign the tools back in the same order.
Are you no longer updating the model with the latest fixes?
or is the opensourced game newer then the model?
also is it required to use topbar?
It’s still being updated, but it’s only with the stable releases which I haven’t released in a while. I plan to eventually move to packages so you can more easily update Satchel.
The open-source playground uses an experimental version, mostly so I can test with different platforms (mobile, console, VR, etc.) I don’t recommend using it since it can be unstable.
With how the code is structured, yes. I’m planning to move to TopbarPlus v3 instead of v2 so that should fix your errors. The main
on GitHub uses UIShelf which was just discontinued this week so that’s going to be fun to migrate again (TopbarPlus v2 > UIShelf > TopbarPlus v3.)
Not sure if this has been mentioned before, but there is a small chance that Satchel won’t load due to some issue with TopBarPlus not loading/being indentified. As such, Satchel does not load at all, and players of my game cannot access their inventory…
Again, rare bug, and it’s fixed by rejoining, but not ideal.
I do not have a screenshot at this time, I will be on the lookout for it and try to get you one.