Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ryanlua/satchel

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.
https://github.com/ryanlua/satchel

backpack collaborate github gui inventory lua luau open-source roblox system tool ui utility works-with-codespaces

Last synced: 2 months ago
JSON representation

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.

Awesome Lists containing this project

README

        





Satchel

 

[![GitHub release](https://img.shields.io/github/v/release/RyanLua/Satchel?include_prereleases&logo=robloxstudio&logoColor=white&color=00a2ff&style=for-the-badge)](../../releases)
[![GitHub top language](https://img.shields.io/github/languages/top/RyanLua/Satchel?logo=lua&color=00a2ff&style=for-the-badge)](../../search?l=lua)
[![GitHub license](https://img.shields.io/github/license/RyanLua/Satchel?logo=mozilla&color=00a2ff&style=for-the-badge)](LICENSE.txt)
[![Discord](https://img.shields.io/discord/1162303282002272359?style=for-the-badge&label=discord&logo=discord&color=00a2ff&logoColor=white)](https://discord.gg/N2KEnHzrsW)

[![Download](https://gist.githubusercontent.com/RyanLua/d507e8ad7581fe264deb91606954b920/raw/8013a784d7518ddd465512d31f4f51e18d35c06c/GitHubDownloadBadge.svg)](https://github.com/RyanLua/Satchel/releases/latest/download/Satchel.rbxm)
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/RyanLua/Satchel?quickstart=1)

Satchel 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.

Satchel on computer Satchel on computer with inventory open
Satchel on mobile Satchel on mobile with inventory open

## ⭐ Features

Satchel comes packed with much-needed features and changes that the default backpack doesn't have.

### Modernized Familiar Feel

Satchel completely remakes the backpack's UI to a uniform and vanilla feeling UI, blending in with other elements designed by Roblox.


Satchel on computer matching Roblox's UI design

### Highly Customizable & Versatile

Satchel is highly customizable & 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.


Satchel with a customized UI to have a red tint

### Improved Mobile Experience

Satchel expands on the mobile experience doubling the number of slots allowing players on mobile to not be at a disadvantage.


Satchel on mobile with 6 hotbar slots

### Topbar Plus Support

Satchel supports [Topbar Plus by 1ForeverHD](https://github.com/1ForeverHD/TopbarPlus) to allow users to easily and more quickly open the inventory.


Satchel inventory topbar button along with Roblox's topbar

## 🛝 Playground

> [!TIP]
> [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`.

We 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.

[![Satchel Playground Thumbnail 1](../../assets/80087248/e4c58793-05cc-4102-9d5e-a8b961915669)](https://www.roblox.com/games/13592168150)

## 🔽 Installation

Installation 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.

Install from Creator Marketplace

1. Get the Satchel module from the [Creator Marketplace](https://create.roblox.com/marketplace/asset/13947506401).
![CreatorMarketplace](assets/CreatorMarketplace.png)

2. Open Roblox Studio and create a new place or open an existing place.

3. Open or locate the [Toolbox](https://create.roblox.com/docs/studio/toolbox).
![View Tab Toolbox](https://prod.docsiteassets.roblox.com/assets/studio/general/View-Tab-Toolbox.png)

4. Open your [Inventory](https://create.roblox.com/docs/studio/toolbox#inventory) from the [Toolbox](https://create.roblox.com/docs/studio/toolbox).
![Inventory Tab](https://prod.docsiteassets.roblox.com/assets/studio/toolbox/Inventory-Tab.png)

5. Search for `Satchel` created by `WinnersTakesAll` and click on it.
![Toolbox](assets/MarketplaceCard.png)

6. 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).
![Explorer](../../assets/80087248/97d51886-08b6-40bb-b16b-90433dd7d2b7)

Install from GitHub Releases

1. Download the `Satchel.rbxmx` file from [Releases](../../releases).
![GitHubRelease](assets/GitHubReleases.png)

2. Open Roblox Studio and create a new place or open an existing place.

3. 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...`.
![InsertFromFile](assets/InsertFromFile.png)

4. Select the `Satchel.rbxmx` you downloaded from GitHub and click `Open`.
![UploadFile](assets/SelectFile.png)

5. Ensure that `Satchel`is in [StarterPlayerScripts](https://create.roblox.com/docs/reference/engine/classes/StarterPlayerScripts).
![Explorer](../../assets/80087248/97d51886-08b6-40bb-b16b-90433dd7d2b7)

## 👤 Acknowledgements

A special thanks to the following people for their contributions to Satchel.

| Roblox Username | Contribution |
| --- | --- |
| [@OnlyTwentyCharacters](https://www.roblox.com/users/28969907), [@SolarCrane](https://www.roblox.com/users/29373363) | Creating the original CoreGui script |
| [@thebrickplanetboy](https://www.roblox.com/users/525495863) | Allowing me to republish & modify his fork of the backpack system |
| [@ForeverHD](https://www.roblox.com/users/82347291) | Making Topbar Plus and open-sourcing it for everyone to use |

## 💖 Support

> [!NOTE]
> If you see an issue with Satchel and would like to report it, see [SUPPORT.md](.github/SUPPORT.md) for additional information.

Satchel fully supports all platforms which includes computer, tablet, phone, console, and VR. Satchel is also fully compatible experiences using TopbarPlus by 1ForeverHD.

## 📖 Documentation

> [!NOTE]
> Visit the [Satchel documentation website](https://ryanluu.dev/Satchel) to learn about Satchel.

Satchel has it's very own [documentation site](https://ryanluu.dev/Satchel) you can visit. Find guides on how to get started and documentation.

Attributes

Satchel 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.

| Attribute | Description | Default |
| :--- | :--- | :--- |
| 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]` |
| BackgroundTransparency: [`number`](https://create.roblox.com/docs/scripting/luau/numbers) | Determines the background transparency of the default inventory window and slots. | 0.3 |
| 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` |
| 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]` |
| EquipBorderSizePixel: [`number`](https://create.roblox.com/docs/scripting/luau/numbers) | Determines the pixel width of the equip border when a slot is equipped. | `5` |
| FontFace: [`Font`](https://create.roblox.com/docs/reference/engine/enums/Font) | Determines the font of the default inventory window and slots. | `Builder Sans` |
| 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 |
| 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 |
| 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]` |
| TextSize: [`number`](https://create.roblox.com/docs/scripting/luau/numbers) | Determines the size of the text in the default inventory window and slots. | `14` |
| 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]` |
| 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 |

Methods

Satchel offers access to some of its internal methods and events for scripting purposes. Below see a table with all the methods available.

| IsOpened(): [`boolean`](https://create.roblox.com/docs/scripting/luau/booleans) |
| :--- |
| Returns whether the inventory is opened or not. |

| SetBackpackEnabled(enabled: boolean): `void` |
| :--- |
| Sets whether the backpack gui is enabled or disabled. |

| GetBackpackEnabled(): [`boolean`](https://create.roblox.com/docs/scripting/luau/booleans) |
| :--- |
| Returns whether the backpack gui is enabled or disabled. |

| GetStateChangedEvent(): [`RBXScriptSignal`](https://create.roblox.com/docs/reference/engine/datatypes/RBXScriptSignal) |
| :--- |
| Returns a signal that fires when the inventory is opened or closed. |

## 🙏 Contributing

We 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.

When 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.

## 📃 License

Satchel is licensed under [Mozilla Public License 2.0](http://mozilla.org/MPL/2.0/). See [LICENSE.txt](LICENSE.txt) for details.