> For the complete documentation index, see [llms.txt](https://striga.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://striga.gitbook.io/docs/striga-inventory/installation-and-configuration.md).

# Installation & Configuration

Install Striga Inventory and set every config option.

{% hint style="info" %}
**Coming from another inventory?** Player inventories on QBCore stay in the `players` table, nothing to move. Stashes, trunks and gloveboxes are moved over with one console command after the install. See [Converting from another inventory](/docs/striga-inventory/converting-from-another-inventory.md).
{% endhint %}

{% stepper %}
{% step %}

### Remove qb-inventory

Move the `qb-inventory` folder **out of** your `resources` folder (do not only remove the `ensure` line).

Striga Inventory takes its place. It answers every `exports['qb-inventory']` call, so qb-core and your qb scripts keep working. See [QB Compatibility](/docs/striga-inventory/qb-compatibility.md).

{% hint style="warning" %}
If the `qb-inventory` folder is still in `resources`, Striga Inventory prints a red error and turns its qb-inventory support **off** until you remove it.
{% endhint %}
{% endstep %}

{% step %}

### Remove qb-shops and qb-weapons (optional)

* **qb-shops:** Striga Inventory has its own shops in `editable/shops.lua` (same shops as qb-shops). Move `qb-shops` out, or both offer the same shops.
* **qb-weapons:** Striga Inventory has its own weapon pack. While `qb-weapons` runs, the inventory leaves weapons to it. Move it out to use the built-in pack. See [Weapons](/docs/striga-inventory/weapons.md).
  {% endstep %}

{% step %}

### Add the resource

Put the `striga-inventory` folder in your `resources` folder.

Copy the item images (for example `qb-inventory/html/images`) into `striga-inventory/images/`.
{% endstep %}

{% step %}

### Start it in server.cfg

Start `striga-core` **first** (after ox\_lib, oxmysql and your framework), then Striga Inventory:

```
ensure ox_lib
ensure oxmysql
ensure qb-core

ensure striga-core
ensure striga-inventory
```

{% hint style="warning" %}
Striga Inventory needs **striga-core 0.1.0 or newer**.

* No striga-core: Striga Inventory does not start.
* striga-core too old: striga-core stops Striga Inventory and prints a red error in the server console. Update striga-core.
  {% endhint %}
  {% endstep %}

{% step %}

### Check striga-core

In `striga-core/config.json`, keep:

```json
"inventory": "auto"
```

Core finds Striga Inventory by itself and uses it.
{% endstep %}

{% step %}

### Restart the server

Restart the whole server (not only the resource) and you are done.

The database table `striga_inventories` (stashes, trunks, gloveboxes) is made by itself on the first start. No SQL file to import.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
**Updates.** striga-core checks for new versions on start and prints a red `UPDATE` line with the download link. Turn it off with `"versionCheck": false` in `striga-core/config.json`. See [Updates & Versions](/docs/updates-and-versions.md).
{% endhint %}

***

## Player settings

Players change the look in two places:

* The **gear** in the inventory.
* The **Inventory** section of the Tokyo HUD `/hud` menu (when Striga Tokyo HUD runs). See [Settings Menu (/hud)](/docs/striga-tokyo-hud/settings-menu.md).

Both change the same settings: color, slot size, opacity, dim, box opacity, vignette, item names, blur, 3D character and where the item pop-ups show.

The color follows the **HUD theme** unless the player picks their own color.

{% hint style="info" %}
To lock the settings for everyone, set `Config.Ui.Settings = false`. The gear is hidden and the `/hud` section is read only.
{% endhint %}

***

## Config

File: `editable/config.lua`. More files in `editable/`: `shops.lua`, `stashes.lua`, `clothing.lua`, `weapons.lua`, `crafting.lua`, `autome.lua`, `textui.lua` and the language files in `locales/`.

### General

| Option               | Default                                        | What it does                                                                                                                                                   |
| -------------------- | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Debug`              | `false`                                        | Extra lines in the server console / F8                                                                                                                         |
| `Compat`             | `'auto'`                                       | `'qb'` = QBCore mode, `'ox'` = Qbox / ESX mode, `'auto'` = picks by itself. See [Qbox & ESX](/docs/striga-inventory/qbox-and-esx.md)                           |
| `Locale`             | `'auto'`                                       | `'auto'` follows the striga-core server language. A code (e.g. `'tr'`) pins this script to `editable/locales/<code>.json`. See [Languages](/docs/languages.md) |
| `Keys.open`          | `'TAB'`                                        | Key to open the inventory                                                                                                                                      |
| `Keys.openSecondary` | `'F2'`                                         | Second open key (`nil` = none)                                                                                                                                 |
| `Keys.hotbar`        | `'Z'`                                          | Key to show the hotbar                                                                                                                                         |
| `Keys.throw`         | `'G'`                                          | Key to throw the item in your hand                                                                                                                             |
| `Character3D`        | `true`                                         | `false` = no 3D character at all                                                                                                                               |
| `Preview`            | -                                              | Place of the 3D character: `distance`, `height`, `side`, `light`, `lightIntensity`                                                                             |
| `WalkWhileOpen`      | `true`                                         | Players can walk with the inventory open (camera and weapon keys stay blocked)                                                                                 |
| `TrunkAnimation`     | `true`                                         | Turn to the car, open the boot and play an animation when a trunk opens                                                                                        |
| `ToastPosition`      | `'bottom-center'`                              | Where item pop-ups show: `bottom-center`, `bottom-left`, `bottom-right`, `top-right`                                                                           |
| `Ui.Settings`        | `true`                                         | `false` = players cannot change anything                                                                                                                       |
| `CashItem`           | `'cash'`                                       | Item used as cash                                                                                                                                              |
| `Currency`           | `'$'`                                          | Money sign in shops                                                                                                                                            |
| `ImagePath`          | `'https://cfx-nui-striga-inventory/images/%s'` | Image URL. `%s` = the item's image file name                                                                                                                   |

### Ground items and throwing

| Option                       | Default        | What it does                                                     |
| ---------------------------- | -------------- | ---------------------------------------------------------------- |
| `Pickup.HoldTime`            | `1.5`          | Seconds to hold `E` to pick an item up                           |
| `Pickup.Distance`            | `1.6`          | Metres for the full prompt                                       |
| `Pickup.ShowDistance`        | `6.0`          | Metres where only the key shows                                  |
| `Pickup.Anim`                | pick up low    | Animation while `E` is held (`false` = none)                     |
| `Throw.Enabled`              | `true`         | Right click > **Throw**                                          |
| `Throw.Force` / `Throw.Lift` | `18.0` / `3.0` | Throw speed and arc                                              |
| `Throw.MaxDistance`          | `35.0`         | Furthest landing spot (checked by the server)                    |
| `Throw.Block`                | `{}`           | Items that cannot be thrown                                      |
| `Throw.Props`                | -              | Prop per item. Others use `DefaultProp`, weapons their own model |
| `MaxDrops`                   | `20` / `1000`  | Ground drops alive per player / on the server                    |
| `DropLifetime`               | `15`           | Minutes an untouched drop stays on the ground                    |

### Automatic /me

`Config.AutoMe` writes a `/me` line when a player opens a trunk, picks something up and more. With **Striga Chat** the player's own `/me` runs. Without it, `SendAutoMe` in `editable/autome.lua` shows a 3D text (connect your own `/me` script there).

| Option           | Default | What it does                                                                                                     |
| ---------------- | ------- | ---------------------------------------------------------------------------------------------------------------- |
| `AutoMe.Enabled` | `true`  | Turn it all off                                                                                                  |
| `AutoMe.Kind`    | `'me'`  | `'me'` or `'do'`                                                                                                 |
| `AutoMe.Range`   | `15.0`  | Metres (built-in 3D text only)                                                                                   |
| `AutoMe.Actions` | -       | `trunk_open`, `trunk_close`, `glovebox_open`, `weapon`, `give`, `drop`, `throw`, `pickup`. `false` turns one off |

The texts are in the language files (`game.me_*`).

### Sizes (weights in grams)

| Option            | Default             | What it does                                  |
| ----------------- | ------------------- | --------------------------------------------- |
| `PlayerSlots`     | `120`               | Player slots                                  |
| `PlayerMaxWeight` | `120000`            | Player max weight                             |
| `DefaultMaxStack` | `1000`              | Stack size when an item is not in `MaxStack`  |
| `MaxStack`        | `cash = 1000000000` | Stack size per item, e.g. `weapon_pistol = 1` |
| `Sizes.stash`     | `50` / `1000000`    | Slots / max weight of a stash                 |
| `Sizes.drop`      | `30` / `1000000`    | Slots / max weight of a ground drop           |
| `Sizes.glovebox`  | `5` / `10000`       | Slots / max weight of a glovebox              |
| `Sizes.trunk`     | `30` / `300000`     | Slots / max weight of a trunk                 |

Unique items always stack to 1. Keep `cash` in `MaxStack` big: all the framework cash must fit in one stack.

### Vehicles

* `Config.VehicleTypes` sets the trunk and glovebox size per vehicle type: `automobile`, `bike`, `boat`, `heli`, `plane`, `submarine`, `trailer`, `train`. `false` = that vehicle has none (bikes have no trunk).
* `Config.VehicleClasses` makes the trunk **smaller** for a GTA class (sports cars 5 slots, vans 15 slots by default).
* `Config.VehicleModels` sets the size for one model. It wins over the type and the class:

```lua
Config.VehicleModels = {
    rumpo = { trunk = { slots = 60, maxWeight = 600000 } },
}
```

A locked vehicle cannot be opened.

### Distances and timers

| Option                | Default | What it does                                                                                                    |
| --------------------- | ------- | --------------------------------------------------------------------------------------------------------------- |
| `InteractionDistance` | `1.5`   | Metres for the `[E]` prompt at shops, stashes, workbenches                                                      |
| `PedSpawnDistance`    | `30.0`  | Shop peds spawn when a player comes this close                                                                  |
| `MaxDistance`         | -       | Metres before an open inventory closes: `drop` 3, `stash` 4, `trunk` 6, `glovebox` 3, `otherplayer` 3, `give` 3 |
| `SaveInterval`        | `5`     | Minutes between database saves                                                                                  |
| `EvictAfter`          | `15`    | Minutes an unused stash / trunk / glovebox stays in memory                                                      |

### More options

| Option                                                               | Page                                                                                        |
| -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| `Decay`, `Uses`, `Bags`, `BackpackBonus`, `Rarity`, `HiddenMetadata` | [Items, Shops & Stashes](/docs/striga-inventory/items-shops-and-stashes.md#item-life-cycle) |
| `Carry`, `DeathDrop`, `Trash`, `Vending`                             | [Items, Shops & Stashes](/docs/striga-inventory/items-shops-and-stashes.md#world)           |
| `Snowballs`, `SnowballMax`                                           | qb-weapons snowballs (off by default)                                                       |
| `Commands`                                                           | [Admin commands](/docs/striga-inventory/items-shops-and-stashes.md#admin-commands)          |
| `editable/weapons.lua`                                               | [Weapons](/docs/striga-inventory/weapons.md)                                                |
| `editable/clothing.lua`                                              | [Clothing & Character](/docs/striga-inventory/clothing-and-character.md)                    |
| `editable/crafting.lua`                                              | [Crafting](/docs/striga-inventory/crafting.md)                                              |

{% content-ref url="/pages/6fPjVc92f8uGfpcGbiPM" %}
[Items, Shops & Stashes](/docs/striga-inventory/items-shops-and-stashes.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://striga.gitbook.io/docs/striga-inventory/installation-and-configuration.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
