{"id":19104061,"url":"https://github.com/RyanLua/Satchel","last_synced_at":"2025-04-18T19:33:00.021Z","repository":{"id":170856063,"uuid":"646589066","full_name":"RyanLua/Satchel","owner":"RyanLua","description":"A modern alternative to Roblox's default backpack. Satchel aims to be more customizable and easier to use than the default backpack while still having a \"vanilla\" feel.","archived":false,"fork":false,"pushed_at":"2025-03-26T20:23:15.000Z","size":17432,"stargazers_count":39,"open_issues_count":12,"forks_count":7,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-12T15:09:50.017Z","etag":null,"topics":["backpack","collaborate","github","gui","inventory","lua","luau","open-source","roblox","system","tool","ui","utility","works-with-codespaces"],"latest_commit_sha":null,"homepage":"http://satchel.ryanluu.dev","language":"Luau","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RyanLua.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":".github/SUPPORT.md","governance":".github/GOVERNANCE.md","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"RyanLua","patreon":"RyanLuu"}},"created_at":"2023-05-28T21:41:14.000Z","updated_at":"2025-04-11T09:11:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"fde5c91e-9a36-4b6f-8b36-7a591c1d89f3","html_url":"https://github.com/RyanLua/Satchel","commit_stats":{"total_commits":483,"total_committers":3,"mean_commits":161.0,"dds":"0.28778467908902694","last_synced_commit":"7121516cef233e3bd48a64662aa99162e37e6d20"},"previous_names":["ryanlua/satchel"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanLua%2FSatchel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanLua%2FSatchel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanLua%2FSatchel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanLua%2FSatchel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RyanLua","download_url":"https://codeload.github.com/RyanLua/Satchel/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249536303,"owners_count":21287576,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backpack","collaborate","github","gui","inventory","lua","luau","open-source","roblox","system","tool","ui","utility","works-with-codespaces"],"created_at":"2024-11-09T04:00:53.366Z","updated_at":"2025-04-18T19:33:00.013Z","avatar_url":"https://github.com/RyanLua.png","language":"Luau","readme":"\u003ch1 align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"assets/SatchelWhite.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"assets/SatchelBlack.png\"\u003e\n    \u003cimg alt=\"Satchel\" src=\"assets/SatchelBlack.png\"\u003e\n  \u003c/picture\u003e\n  \u0026nbsp;\n\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n  [![GitHub release](https://img.shields.io/github/v/release/RyanLua/Satchel?include_prereleases\u0026logo=robloxstudio\u0026logoColor=white\u0026color=00a2ff\u0026style=for-the-badge)](../../releases)\n  [![GitHub top language](https://img.shields.io/github/languages/top/RyanLua/Satchel?logo=lua\u0026color=00a2ff\u0026style=for-the-badge)](../../search?l=lua)\n  [![GitHub license](https://img.shields.io/github/license/RyanLua/Satchel?logo=mozilla\u0026color=00a2ff\u0026style=for-the-badge)](LICENSE.txt)\n  [![Discord](https://img.shields.io/discord/1162303282002272359?style=for-the-badge\u0026label=discord\u0026logo=discord\u0026color=00a2ff\u0026logoColor=white)](https://discord.gg/N2KEnHzrsW)\n\n  [![Download](https://gist.githubusercontent.com/RyanLua/d507e8ad7581fe264deb91606954b920/raw/8013a784d7518ddd465512d31f4f51e18d35c06c/GitHubDownloadBadge.svg)](https://github.com/RyanLua/Satchel/releases/latest/download/Satchel.rbxm)\n  [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/RyanLua/Satchel?quickstart=1)\n\u003c/div\u003e\n\nSatchel is a modern open-source alternative to Roblox's default backpack. Satchel aims to be more customizable and easier to use than the default backpack while still having a \"vanilla\" feel. Installation of Satchel is as simple as dropping the module into your game and setting up a few properties if you like to customize it. It has a familiar feel and structure as to the default backpack for ease of use for both developers and players.\n\n\u003cimg alt=\"Satchel on computer\" src=\"assets/SatchelThumbnail1.png\" style=\"width: 49%;\"\u003e \u003cimg alt=\"Satchel on computer with inventory open\" src=\"assets/SatchelThumbnail2.png\" style=\"width: 49%;\"\u003e\n\u003cimg alt=\"Satchel on mobile\" src=\"assets/SatchelThumbnail3.png\" style=\"width: 49%;\"\u003e \u003cimg alt=\"Satchel on mobile with inventory open\" src=\"assets/SatchelThumbnail4.png\" style=\"width: 49%;\"\u003e\n\n\u003chttps://github.com/RyanLua/Satchel/assets/80087248/2cd3f164-6bf3-4c3b-a682-67a386f576d5\u003e\n\n## ⭐ Features\n\nSatchel comes packed with much-needed features and changes that the default backpack doesn't have.\n\n### Modernized Familiar Feel\n\nSatchel completely remakes the backpack's UI to a uniform and vanilla feeling UI, blending in with other elements designed by Roblox.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg alt=\"Satchel on computer matching Roblox's UI design\" src=\"../../assets/80087248/2bbe27e8-2f8e-4305-b968-635316551395\" style=\"width: 49%;\"\u003e\n\u003c/div\u003e\n\n### Highly Customizable \u0026 Versatile\n\nSatchel is highly customizable \u0026 adjustable with instance attributes support allowing you to customize the behavior and appearance of over 10+ attributes. Change the color, transparency, behavior, and more of it's elegantly designed UI.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg alt=\"Satchel with a customized UI to have a red tint\" src=\"../../assets/80087248/a115e388-de55-4cfa-9c41-63b117df4b74\" style=\"width: 49%;\"\u003e\n\u003c/div\u003e\n\n### Improved Mobile Experience\n\nSatchel expands on the mobile experience doubling the number of slots allowing players on mobile to not be at a disadvantage.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg alt=\"Satchel on mobile with 6 hotbar slots\" src=\"assets/SatchelThumbnail4.png\" style=\"width: 49%;\"\u003e\n\u003c/div\u003e\n\n### Topbar Plus Support\n\nSatchel supports [Topbar Plus by 1ForeverHD](https://github.com/1ForeverHD/TopbarPlus) to allow users to easily and more quickly open the inventory.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg alt=\"Satchel inventory topbar button along with Roblox's topbar\" src=\"../../assets/80087248/95d22c15-0eec-4862-8f1c-8407fd325729\" style=\"width: 49%;\"\u003e\n\u003c/div\u003e\n\n## 🛝 Playground\n\n\u003e [!TIP]\n\u003e [Satchel Playground](https://www.roblox.com/games/13592168150) has place copying enabled, allowing you to edit your own copy from the Roblox website by clicking the ellipsis (`...`) and selecting `Edit`.\n\nWe provide an open-source playground of Satchel where you can test and play with Satchel before deciding to use it. See [Satchel Playground](https://www.roblox.com/games/13592168150) on Roblox. Feel free to use the playground as a reference for how to use Satchel. Please download and modify it to your liking.\n\n[![Satchel Playground Thumbnail 1](../../assets/80087248/e4c58793-05cc-4102-9d5e-a8b961915669)](https://www.roblox.com/games/13592168150)\n\n## 🔽 Installation\n\nInstallation of Satchel is easy and painless. Satchel is a drag-and-drop module that works out of the box and with easy customization. Below are different ways to get you to download and install Satchel.\n\n\u003cdetails\u003e\n\n\u003csummary\u003eInstall from Creator Marketplace\u003c/summary\u003e\n\n1. Get the Satchel module from the [Creator Marketplace](https://create.roblox.com/marketplace/asset/13947506401).\n![CreatorMarketplace](assets/CreatorMarketplace.png)\n\n1. Open Roblox Studio and create a new place or open an existing place.\n\n1. Open or locate the [Toolbox](https://create.roblox.com/docs/studio/toolbox).\n![View Tab Toolbox](https://prod.docsiteassets.roblox.com/assets/studio/general/View-Tab-Toolbox.png)\n\n1. Open your [Inventory](https://create.roblox.com/docs/studio/toolbox#inventory) from the [Toolbox](https://create.roblox.com/docs/studio/toolbox).\n![Inventory Tab](https://prod.docsiteassets.roblox.com/assets/studio/toolbox/Inventory-Tab.png)\n\n1. Search for `Satchel` created by `WinnersTakesAll` and click on it.\n![Toolbox](assets/MarketplaceCard.png)\n\n1. Insert `Satchel` into the [Explorer](https://create.roblox.com/docs/studio/explorer) and drag it into [StarterPlayerScripts](https://create.roblox.com/docs/reference/engine/classes/StarterPlayerScripts).\n![Explorer](../../assets/80087248/97d51886-08b6-40bb-b16b-90433dd7d2b7)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003eInstall from GitHub Releases\u003c/summary\u003e\n\n1. Download the `Satchel.rbxmx` file from [Releases](../../releases).\n![GitHubRelease](assets/GitHubReleases.png)\n\n1. Open Roblox Studio and create a new place or open an existing place.\n\n1. Go to [Explorer](https://create.roblox.com/docs/studio/explorer) and right click on [`StarterPlayerScripts`](https://create.roblox.com/docs/reference/engine/classes/StarterPlayerScripts) and click on `Insert from file...`.\n![InsertFromFile](assets/InsertFromFile.png)\n\n1. Select the `Satchel.rbxmx` you downloaded from GitHub and click `Open`.\n![UploadFile](assets/SelectFile.png)\n\n1. Ensure that `Satchel`is in [StarterPlayerScripts](https://create.roblox.com/docs/reference/engine/classes/StarterPlayerScripts).\n![Explorer](../../assets/80087248/97d51886-08b6-40bb-b16b-90433dd7d2b7)\n\n\u003c/details\u003e\n\n## 👤 Acknowledgements\n\nA special thanks to the following people for their contributions to Satchel.\n\n| Roblox Username | Contribution |\n| --- | --- |\n| [@OnlyTwentyCharacters](https://www.roblox.com/users/28969907), [@SolarCrane](https://www.roblox.com/users/29373363) | Creating the original CoreGui script |\n| [@thebrickplanetboy](https://www.roblox.com/users/525495863) | Allowing me to republish \u0026 modify his fork of the backpack system |\n| [@ForeverHD](https://www.roblox.com/users/82347291) | Making Topbar Plus and open-sourcing it for everyone to use |\n\n## 💖 Support\n\n\u003e [!NOTE]\n\u003e If you see an issue with Satchel and would like to report it, see [SUPPORT.md](.github/SUPPORT.md) for additional information.\n\nSatchel fully supports all platforms which includes computer, tablet, phone, console, and VR. Satchel is also fully compatible experiences using TopbarPlus by 1ForeverHD.\n\n## 📖 Documentation\n\n\u003e [!NOTE]\n\u003e Visit the [Satchel documentation website](https://ryanluu.dev/Satchel) to learn about Satchel.\n\nSatchel has it's very own [documentation site](https://ryanluu.dev/Satchel) you can visit. Find guides on how to get started and documentation.\n\n\u003cdetails\u003e\n\n\u003csummary\u003eAttributes\u003c/summary\u003e\n\nSatchel supports instance attributes allowing you to change and customize many aspects including various behaviors in a friendly easy-to-use interface without having to touch any code. Below see all attributes.\n\n| Attribute | Description | Default |\n| :--- | :--- | :--- |\n| BackgroundColor3: [`Color3`](https://create.roblox.com/docs/reference/engine/datatypes/Color3) | Determines the background color of the default inventory window and slots. | `[25, 27, 29]` |\n| BackgroundTransparency: [`number`](https://create.roblox.com/docs/scripting/luau/numbers) | Determines the background transparency of the default inventory window and slots. | 0.3 |\n| CornerRadius: [`UDim`](https://create.roblox.com/docs/reference/engine/datatypes/UDim) | Determines the radius, in pixels, of the default inventory window and slots. | `0, 8` |\n| EquipBorderColor3: [`Color3`](https://create.roblox.com/docs/reference/engine/datatypes/Color3) | Determines the color of the equip border when a slot is equipped. | `[255, 255, 255]` |\n| EquipBorderSizePixel: [`number`](https://create.roblox.com/docs/scripting/luau/numbers) | Determines the pixel width of the equip border when a slot is equipped. | `5` |\n| FontFace: [`Font`](https://create.roblox.com/docs/reference/engine/enums/Font) | Determines the font of the default inventory window and slots. | `Builder Sans` |\n| InsetIconPadding: [`boolean`](https://create.roblox.com/docs/scripting/luau/booleans) | Determines whether or not the tool icon is padded in the default inventory window and slots. | True |\n| OutlineEquipBorder: [`boolean`](https://create.roblox.com/docs/scripting/luau/booleans) | Determines whether or not the equip border is outline or inset when a slot is equipped. | True |\n| TextColor3: [`Color3`](https://create.roblox.com/docs/reference/engine/datatypes/Color3) | Determines the color of the text in default inventory window and slots. | `[255, 255, 255]` |\n| TextSize: [`number`](https://create.roblox.com/docs/scripting/luau/numbers) | Determines the size of the text in the default inventory window and slots. | `14` |\n| TextStrokeColor3: [`Color3`](https://create.roblox.com/docs/reference/engine/datatypes/Color3) | Determines the color of the text stroke of text in default inventory window and slots. | `[0, 0, 0]` |\n| TextStrokeTransparency: [`number`](https://create.roblox.com/docs/scripting/luau/numbers) | Determines the transparency of the text stroke of text in default chat window and slots. | 0.5 |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003eMethods\u003c/summary\u003e\n\nSatchel offers access to some of its internal methods and events for scripting purposes. Below see a table with all the methods available.\n\n| IsOpened(): [`boolean`](https://create.roblox.com/docs/scripting/luau/booleans) |\n| :--- |\n| Returns whether the inventory is opened or not. |\n\n| SetBackpackEnabled(enabled: boolean): `void` |\n| :--- |\n| Sets whether the backpack gui is enabled or disabled. |\n\n| GetBackpackEnabled(): [`boolean`](https://create.roblox.com/docs/scripting/luau/booleans) |\n| :--- |\n| Returns whether the backpack gui is enabled or disabled. |\n\n| GetStateChangedEvent(): [`RBXScriptSignal`](https://create.roblox.com/docs/reference/engine/datatypes/RBXScriptSignal) |\n| :--- |\n| Returns a signal that fires when the inventory is opened or closed. |\n\n\u003c/details\u003e\n\n## 🙏 Contributing\n\nWe welcome all contributions from the community. If you would like to contribute, please see [CONTRIBUTING.md](.github/CONTRIBUTING.md) to get started on how to contribute to Satchel.\n\nWhen you contribute to Satchel you will be accredited for your contribution for everyone to see on this repository along with supporting the open-source community.\n\n## 📃 License\n\nSatchel is licensed under [Mozilla Public License 2.0](http://mozilla.org/MPL/2.0/). See [LICENSE.txt](LICENSE.txt) for details.\n","funding_links":["https://github.com/sponsors/RyanLua","https://patreon.com/RyanLuu"],"categories":["Modules"],"sub_categories":["Backpack"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRyanLua%2FSatchel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRyanLua%2FSatchel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRyanLua%2FSatchel/lists"}