Purse - CoreGui decoupled default backpack

Next Gen Documentation with Zensical

Purse’s documentation site has been migrated from MkDocs to Zensical to enable higher-quality documentation to help you create. It’s available now when you visit, and I’d love to hear feedback on this. I’ve spent the past few weeks testing this with Purse and Satchel, and I’m confident with its current state.

The new docs site has been temporarily reverted due to technical issues. I’ll be back up once Zensical updates to a stable enough version to support Purse.

1 Like

v1.1.4


What’s Changed

Sandboxes Purse with script capabilities to ensure safety and prevent malicious code.

Full Changelog: v1.1.3…v1.1.4


Downloads

Purse.rbxm (98.3 KB)
Purse.rbxmx (251.4 KB)


GitHub Release

v1.1.5


What’s Changed

Implements a new version check warning and migrates usage of local keyword to const whenever possible. Changes script capabilities to be optional and fixes missing capabilities.

  • Add warning for outdated versions by @ryanlua in #30
  • Fix capabilities for equipping and unequipping tools by @ryanlua in #31
  • Use new const keyword by @ryanlua in #32

Full Changelog: v1.1.4...v1.1.5


Downloads

Purse.rbxmx (252.0 KB)
Purse.rbxm (98.6 KB)


GitHub Release

Functionality for sandboxing Purse with script capabilities is a bit in a weird state right now. It hinges on whether the Roblox team wants to sandbox tools equipped or reparented via scripts. Currently, sandboxing is disabled by default, but if anything changes, v1.1.6 will enable it again.

So what’s the benefit of using this versus Satchel that everyone seems to be using?

Purse is maintained and more stable than Satchel v1. Purse is the CoreGui backpack which developers may prefer.

Hello, could you add this function please?

This code sample will disable the Backpack GUI:

setbackpackenabled(false)
getbackpackenabled()

It would be useful for custom inventory systems and UI control.

1 Like

Unfortunately that is out of scope for Purse since I don’t want any API changes from the CoreGui backpack.

Fortunately though there is an method that’s in the code you can repurpose and expose for enabling/disabling the UI which already handles bindings and such.

When I import Purce via Wally and try to play the game, I get the error shown in the attachment.

There is no UIListLayout as a child of the ScrollingFrame in the holder. I checked, but there are no children in the ScrollingFrame itself.

That’s weird. Shouldn’t be happening but the issue is something with the TopbarPlus fork that Purse uses.

Could you send a place file or minimum reproduction?

The following are the libraries used in Wally

At first, I suspected that it might be conflicting with 1foreverhd’s TopBarplus, so I uninstalled 1foreverhd’s TopBarplus and tried reinstalling it, but the problem persisted.

[package]
name = "roblox/test"
version = "0.1.0"
registry = "https://github.com/UpliftGames/wally-index"
realm = "shared"

[dependencies]
Cmdr = "evaera/cmdr@1.12.0"
Component = "sleitnick/component@2.4.8"
Find = "sleitnick/find@1.0.0"
TableUtil = "sleitnick/table-util@1.2.1"
EnumList = "sleitnick/enum-list@2.1.0"
Log = "sleitnick/log@0.1.1"
Loader = "sleitnick/loader@2.0.0"
Timer = "sleitnick/timer@2.0.0"
Signal = "sleitnick/signal@2.0.3"

Bytenet = "ffrostflame/bytenet@0.4.6"
MockDataStoreService = "buildthomas/mockdatastoreservice@1.0.3"
Topbarplus = "1foreverhd/topbarplus@3.4.0"
ZonePlus = "mattschrubb/zoneplus@3.2.0"
Purse = "ryanlua/purse@1.1.5"
React = "jsdotlua/react@17.2.1"
ReactRoblox = "jsdotlua/react-roblox@17.2.1"

[server-dependencies]
ProfileStore = "2jammers/profilestore@0.1.0"

I’m unable to reproduce the error you are seeing with your Wally package manifest file using either TopbarPlus packages with Purse installed.

I have the current reproduction:
purse-topbarplus-fork.zip (4.6 KB)
purse-topbarplus-fork.rbxl (943.4 KB)

I tested Purse using the 1foreverhd/topbarplus, ryanlua/topbarplus, and no TopbarPlus package, and Purse works fine, and other scripts can access TopbarPlus normally (except when no TopbarPlus package is installed, which is as expected).

topbarplus = "1foreverhd/topbarplus@3.4.0"
topbarplus = "ryanlua/topbarplus@1.0.1"

Thanks for the reply!

I tried reinstalling using the Wally manifest file from the .zip file you sent, but the error still wasn’t resolved…

Just in case, I also tried placing the Purce model—which I got from the Creator Store, not via Wally—into ReplicatedStorage within the same project, but I got the same error, so it might be an issue with my project.

This time, I’ll use Satchel instead of Purce.

Thanks for your help!