> 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/installation.md).

# Installation

1. Start your framework and inventory if you use them, then start this resource. If you run MySQL, start the connector first so the bridge can detect it.
2. With MySQL, tables and indexes are created or upgraded on every start — there is no SQL file to import by hand. Without a connector, a JSON store is created on first save.
3. Register the items if you want item-gated spraying. On QBCore, ps-inventory and ESX this happens on start; ox\_inventory needs the supplied item definitions pasted into its own items file.
4. Copy the supplied inventory icons into your inventory’s image folder. The file names match the item names.

```server.cfg
ensure oxmysql
ensure es_extended
ensure ox_inventory

ensure fs_graffiti
```

Staff on your existing framework get the owner panel automatically: the ESX admin group, the QBCore and Qbox god or admin permission, ox\_core groups of those names, or an ACE object on standalone. You do not have to set up a second staff list.

```cfg
add_ace group.admin fs.graffiti.admin allow
```

{% hint style="info" %}
That extra ACE grant is optional and works on every stack. On standalone you can list licences in the access config instead.
{% endhint %}
