> For the complete documentation index, see [llms.txt](https://lt-studios.gitbook.io/lt-studios/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lt-studios.gitbook.io/lt-studios/general/publish-your-docs.md).

# Assets Configuration

## Configuring your assets

Many LT Studios resources are built with flexibility in mind, giving you full control over visuals, logic, and gameplay features through configuration files and utility functions.

***

### Understanding StateBags

Most of our systems rely on **StateBags** to manage live, synced data across the server and client. These are used to track key attributes like player callsigns, radio channels, mugshots, and more.

For example:

* `Player(source).state.callsign` is used to sync a player’s callsign across the UI and other players.
* `Player(source).state.radioChannel` holds a player's current radio channel and updates in real time.

This allows our scripts to remain lightweight while ensuring real-time updates without constant polling or server callbacks.

***

### Utilities and Attributes

In systems like the **10system**, we include utility tables (`Attributes`, `Events`, etc.) that help you dynamically define how data is displayed and updated within menus or interfaces.

#### `Attributes`

These are getter functions used to retrieve real-time values from players:

* **Mugshot** images
* Full name from character info
* Job grade/title
* Callsign (from state or metadata)
* Radio status

Each function gracefully falls back to a default if data is missing, ensuring the UI remains stable and informative.

#### `Events`

Event handlers allow you to hook into live changes:

* **Client or server-based** events trigger updates when specific data changes (e.g., callsign or radio).
* These events automatically update relevant UI components through StateBag changes.

You can expand or replace these events to match your own framework or communication methods.

***

### Customizing Configuration

Every asset includes a configuration file that allows for:

* Modifying UI structure (e.g., menus, labels, colors)
* Adding/removing data fields
* Defining filters (such as only showing players with certain jobs)
* Changing the behavior of getters and events

This gives you complete control over how each script behaves in your server environment without touching the core code.

***

### Need Help?

If you need help understanding how to configure a specific asset, or if you want to extend it with custom logic, feel free to reach out via Discord or email. We’re happy to guide you through your setup.
