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

# Adding Deployables

Define new deployable objects in ItemList.lua.

Deployables are defined in `ItemList.lua`, in the `ItemConfig.Deployables` table.

```lua
ItemConfig.Deployables = {
    campfire = {
        label = "Campfire",
        itemname = 'ace_campfire',
        model = `prop_beach_fire`,
        maxPerPlayer = 2,
        globalLimit = 50,
        pickupable = 'destroy',
        interactable = 'campfire',
        lifeTime = 1.0,
        ownership = true
    },
}
```

## Options

| Field            | Description                                                                                                                                                      |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| key (`campfire`) | Unique deployable key. It's also used in the export name `deploy_<key>`.                                                                                         |
| `label`          | Display name.                                                                                                                                                    |
| `itemname`       | Inventory item name. If left out, the generator uses `ace_<key>`.                                                                                                |
| `model`          | Prop model hash. Use backticks: `` `prop_name` ``.                                                                                                               |
| `maxPerPlayer`   | Maximum of this deployable one player can have placed.                                                                                                           |
| `globalLimit`    | Maximum of this deployable on the whole server (optional).                                                                                                       |
| `pickupable`     | `true` (pick up), `false` (can't be picked up) or `'destroy'`.                                                                                                   |
| `interactable`   | Name of a function in `Interactables`, or `false` for no interaction. See [Custom Interactables](/docs/inventory-and-items/deployables/custom-interactables.md). |
| `lifeTime`       | Auto-delete timer, or `false` to turn it off.                                                                                                                    |
| `ownership`      | `true` = only the owner can interact. `false` = anyone can.                                                                                                      |

{% hint style="warning" %}
The unit of `lifeTime` isn't documented in the editable files. Test it on a development server before using it on your live server.
{% endhint %}

## Steps

{% stepper %}
{% step %}

### Add the entry

Add a new table to `ItemConfig.Deployables` with a unique key:

```lua
toolbox = {
    label = "Toolbox",
    itemname = 'ace_toolbox',
    model = `prop_tool_box_04`,
    maxPerPlayer = 2,
    pickupable = true,
    interactable = false,
    lifeTime = false,
    ownership = true
},
```

{% endstep %}

{% step %}

### Regenerate items

Make sure `GenerateInventoryData = true` and restart the resource. `generated_items.txt` now contains an entry for `ace_toolbox`, and the ox\_inventory entry uses the export `ace_deployables.deploy_toolbox`.
{% endstep %}

{% step %}

### Install the item

Copy the new entry into your inventory's item list, add an image named after the item (`ace_toolbox.png`), and restart the server.
{% endstep %}
{% endstepper %}
