> For the complete documentation index, see [llms.txt](https://acestudios.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://acestudios.gitbook.io/docs/inventory-and-items/deployables/installation.md).

# Installation

Install ace\_deployables and generate items for your inventory.

{% stepper %}
{% step %}

### Place the resource

Copy `ace_deployables` into your `resources` directory. Don't rename it, because the generated item exports use the resource name.
{% endstep %}

{% step %}

### Add it to `server.cfg` after your inventory

The inventory is detected **when the resource starts**, so start your inventory (and framework) first:

{% code title="server.cfg" %}

```properties
ensure ox_inventory   # or your inventory / framework
ensure ace_deployables
```

{% endcode %}
{% endstep %}

{% step %}

### Configure

Edit `Config.lua` (settings, zones, notifications) and `ItemList.lua` (deployables). See [Configuration](/docs/inventory-and-items/deployables/configuration.md).
{% endstep %}

{% step %}

### Start once to generate items

With `Config.Settings.GenerateInventoryData = true`, the resource writes item definitions for the detected inventory to **`generated_items.txt`** in the resource folder. The console prints:

```
[Inventory Generator] Compiled template definitions -> generated_items.txt! Setup Profile: [OX]
```

{% endstep %}

{% step %}

### Copy the items into your inventory

Paste the contents of `generated_items.txt` into your inventory's item configuration, and copy the images from `ace_deployables/imgs/` into your inventory's image folder.
{% endstep %}

{% step %}

### Restart the server

{% endstep %}
{% endstepper %}

## Generated formats

The generator writes a different format for each detected inventory:

| Detected resource                                | Profile      | Output format                                                                           |
| ------------------------------------------------ | ------------ | --------------------------------------------------------------------------------------- |
| `ox_inventory`                                   | `OX`         | ox\_inventory `items.lua` entries with `client.export = 'ace_deployables.deploy_<key>'` |
| `qs-inventory`                                   | `QUASAR`     | qs-inventory item entries                                                               |
| `codem-inventory`                                | `CODEM`      | codem-inventory item entries                                                            |
| `tgiann-inventory`                               | `TGIANN`     | tgiann-inventory item entries                                                           |
| `qb-inventory` / `ps-inventory` / `lj-inventory` | `QB`         | QBCore shared item entries                                                              |
| `es_extended` (no inventory above)               | `ESX`        | `INSERT INTO items …` SQL statements                                                    |
| none of the above                                | `STANDALONE` | Generic `name = { label, export }` list                                                 |

Detection runs in the order shown.

{% tabs %}
{% tab title="ox\_inventory" %}

```lua
['ace_tent'] = {
    label = 'Tent',
    weight = 500,
    stack = false,
    close = true,
    allowArmed = true,
    client = {
        export = 'ace_deployables.deploy_tent'
    },
    consume = 1.0
},
```

{% endtab %}

{% tab title="qb / ps / lj" %}

```lua
['ace_tent'] = { name = 'ace_tent', label = 'Tent', weight = 1000, type = 'item', image = 'ace_tent.png', unique = false, useable = true, shouldClose = true, combinable = nil },
```

{% endtab %}

{% tab title="ESX" %}

```sql
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES ('ace_tent', 'Tent', 1, 0, 1);
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
The shipped `generated_items.txt` was created with **ox\_inventory**. It's overwritten on every start while `GenerateInventoryData = true`. Set it to `false` once your items are installed.
{% endhint %}

## Using commands instead of items

Set `Config.Settings.UseInventory = false` to use commands instead of inventory items. The command names aren't in the editable files. Contact support if you need them.
