> 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/converting-from-another-inventory.md).

# Converting from another inventory

Move stashes, trunks and gloveboxes over from qb-inventory, ox\_inventory, qs, codem and more with one console command.

`strigaconvert` copies stashes, trunks and gloveboxes (and player inventories, where the old script kept them somewhere else) from your old inventory into Striga Inventory.

{% hint style="success" %}
**Your old data is safe.** The old tables are only read, never changed or deleted. A backup is written before anything changes, and one command rolls it back.
{% endhint %}

## Steps

{% stepper %}
{% step %}

### Install Striga Inventory

Follow [Installation & Configuration](/docs/striga-inventory/installation-and-configuration.md). Stop the old inventory, start Striga Inventory.
{% endstep %}

{% step %}

### Empty the server

The converter does not run while players are online (unless you add `force`).
{% endstep %}

{% step %}

### Try it first

In the **server console** (or the txAdmin console):

```
strigaconvert qb all dry
```

`dry` only writes a report to the `convert/` folder of the resource. Read it: unknown items, items that did not fit, broken rows.
{% endstep %}

{% step %}

### Convert

```
strigaconvert qb all
```

Running it again changes nothing: inventories that already exist are skipped.
{% endstep %}
{% endstepper %}

## Command

```
strigaconvert <source> [all|players|stashes|vehicles] [dry] [force] [overwrite]
strigaconvert restore <backup file>
```

| Option                                               | What it does                                                                    |
| ---------------------------------------------------- | ------------------------------------------------------------------------------- |
| `all` (default) / `players` / `stashes` / `vehicles` | What to convert                                                                 |
| `dry`                                                | Report only, nothing is written                                                 |
| `force`                                              | Run while players are online (open inventories are skipped)                     |
| `overwrite`                                          | Replace inventories that already exist in Striga Inventory (default: skip them) |

It only runs from the server console, never from the game.

## Sources

| Source   | Reads                                                                                                                | Notes                                            |
| -------- | -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
| `qb`     | qb-inventory 2.x `inventories`                                                                                       | Player items already live in `players.inventory` |
| `qbold`  | qb-inventory 1.x `stashitems`, `trunkitems`, `gloveboxitems`                                                         |                                                  |
| `ox`     | ox\_inventory stashes, `trunk` / `glovebox` of `player_vehicles` / `owned_vehicles`, `players.inventory` (ox format) | Personal stashes keep their owner                |
| `qs`     | `inventory_stash`, `inventory_trunk`, `inventory_glovebox`                                                           | `inventory_clothes` is not converted             |
| `codem`  | v1 `codem_new_stash`, `codem_new_vehicleandglovebox`, `codem_new_inventory`                                          |                                                  |
| `tgiann` | `tgiann_inventory_stashitems`, `_trunkitems`, `_gloveboxitems`, `_player`                                            |                                                  |
| `esx`    | ESX `users.inventory`                                                                                                | Comes with ESX support                           |

## What happens to items

* Names are made lower case. Items that are not in your item list are skipped and listed in the report.
* ox style fields (`count`, `metadata`, `durability`, `serial`) become ours. Ammo, attachments and tint are kept.
* `money` / `cash` items in stashes and vehicles become the cash item. Money in player rows is skipped: player cash comes from the framework.
* Items keep their slot when it is free. Others stack onto the same item or go to the first free slot.
* **Nothing is lost.** Items that do not fit go to `convert_overflow_1`, `_2`... Open them with `/openstash convert_overflow_1`.

## Files

In the `convert/` folder of the resource:

* `<source>-<date>.json` - the report.
* `backup-<source>-<date>.json` - written before anything changes.

## Rolling back

```
strigaconvert restore backup-qb-20261009-120000.json
```

Puts every changed inventory back and removes the ones the converter made (overflow stashes too). Run it with an empty server.

{% content-ref url="/pages/WXntBukbCJsIorHozvjx" %}
[QB Compatibility](/docs/striga-inventory/qb-compatibility.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/converting-from-another-inventory.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.
