> For the complete documentation index, see [llms.txt](https://framestudio.gitbook.io/framestudio-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://framestudio.gitbook.io/framestudio-documentation/fs-graffiti/configuration.md).

# Configuration

| File                                 | Holds                                                                                                           |
| ------------------------------------ | --------------------------------------------------------------------------------------------------------------- |
| config/shared.lua                    | Access, tiers, items, placement, rendering, spray, cleaning, lifetime, studio, stencils, imports, limits, zones |
| config/client.lua                    | Keybinds, HUD hints, blips, camera shake, sound                                                                 |
| config/server.lua                    | Storage mode, webhooks, role provider, anticheat hook, maintenance                                              |
| config/functions.lua                 | Replaceable behaviour: permission overrides, paint cost, lifecycle hooks                                        |
| custom/client.lua, custom/server.lua | Empty hooks for your own scripts                                                                                |
| nui/theme.css                        | Colours, radii and fonts — five presets                                                                         |
| nui/stencils/                        | Stencil artwork                                                                                                 |
| locales/                             | Every player-facing string                                                                                      |

A tier bundles the caps a player gets: how many designs they may save, how many pieces they may have standing, how large, how often, how many layers, and whether they get text, stencils, image imports and vehicle painting.

```lua
Config.Tiers.artist = {
    jobs = { 'vagos', 'ballas' },   -- or grant with an ACE object
    maxPlacements = 40,
    maxWidth = 8.0,
    cooldownMs = 8000,
    allowVehicles = true,
}
```

A player gets the most generous tier they qualify for. Every cap is also editable live from the owner panel, and around fifty settings can be changed without a restart.

Artwork is owned by the account identifier by default so it survives a character wipe. Switch the owner key to character to tie it to one slot instead.
