# Framework Support

Tworst Scripts support multiple frameworks to ensure compatibility with your server setup.

## Supported Frameworks

| Framework               | Config Value   | Support Level | Notes               |
| ----------------------- | -------------- | ------------- | ------------------- |
| QBCore                  | `'qb'`         | ✅ Full        |                     |
| QBCore (older versions) | `'oldqb'`      | ✅ Full        |                     |
| QBox                    | `'qb'`         | ✅ Full        | Use `'qb'` for QBox |
| ESX Legacy              | `'esx'`        | ✅ Full        |                     |
| ESX (older versions)    | `'oldesx'`     | ✅ Full        |                     |
| vRP                     | `'vrp'`        | ✅ Full        |                     |
| vRP2                    | `'vrp2'`       | ✅ Full        |                     |
| Standalone              | `'standalone'` | ✅ Full        |                     |

***

## Framework Support by Script

Not all scripts support every framework. Here's the compatibility matrix:

### Job Scripts (Full Support)

All multiplayer job scripts support **all frameworks**:

| Script          |  QB | QBox | ESX | vRP | Standalone |
| --------------- | :-: | :--: | :-: | :-: | :--------: |
| Gardener Job    |  ✅  |   ✅  |  ✅  |  ✅  |      ✅     |
| Scrapyard Job   |  ✅  |   ✅  |  ✅  |  ✅  |      ✅     |
| Transport Job   |  ✅  |   ✅  |  ✅  |  ✅  |      ✅     |
| Electrician Job |  ✅  |   ✅  |  ✅  |  ✅  |      ✅     |
| Plumber Job     |  ✅  |   ✅  |  ✅  |  ✅  |      ✅     |
| Garbage Job     |  ✅  |   ✅  |  ✅  |  ✅  |      ✅     |
| Diving Job      |  ✅  |   ✅  |  ✅  |  ✅  |      ✅     |
| Fashion Job     |  ✅  |   ✅  |  ✅  |  ✅  |      ✅     |

### Other Scripts (Limited Support)

| Script    |  QB | QBox | ESX | vRP | Standalone |
| --------- | :-: | :--: | :-: | :-: | :--------: |
| Boss Menu |  ✅  |   ✅  |  ❌  |  ❌  |      ❌     |
| Garage    |  ✅  |   ✅  |  ✅  |  ❌  |      ❌     |

***

## Configuration

### Setting Your Framework

Open `config/config.lua` and set your framework:

```lua
-- Framework Selection
Config.Framework = 'qb'  -- Options: 'qb', 'oldqb', 'qbox', 'esx', 'oldesx', 'vrp', 'standalone'
```

### QBCore Configuration

```lua
Config.Framework = 'qb'
-- or for older QBCore versions:
Config.Framework = 'oldqb'
```

### QBox Configuration

```lua
Config.Framework = 'qb'  -- QBox uses 'qb' config value
```

{% hint style="info" %}
**QBox Users:** QBox is fully compatible with our scripts. Simply set `Config.Framework = 'qb'` to use QBox.
{% endhint %}

### ESX Configuration

```lua
Config.Framework = 'esx'
-- or for older ESX versions:
Config.Framework = 'oldesx'
```

### vRP Configuration

```lua
Config.Framework = 'vrp'
```

### Standalone Configuration

```lua
Config.Framework = 'standalone'
```

{% hint style="info" %}
Standalone mode runs without any framework dependency. Player data management is handled internally by the script.
{% endhint %}

***

## Database Compatibility

All Tworst Scripts support these database resources:

| Database Resource | Config Value     | Notes          |
| ----------------- | ---------------- | -------------- |
| oxmysql           | `'oxmysql'`      | Recommended    |
| mysql-async       | `'mysql-async'`  | Legacy support |
| ghmattimysql      | `'ghmattimysql'` | Legacy support |

```lua
Config.SQL = "oxmysql"  -- Options: 'oxmysql', 'mysql-async', 'ghmattimysql'
```

***

## Inventory Systems

| Inventory        | Config Value         |
| ---------------- | -------------------- |
| QBCore Inventory | `'qb_inventory'`     |
| ESX Inventory    | `'esx_inventory'`    |
| ox\_inventory    | `'ox_inventory'`     |
| qs-inventory     | `'qs_inventory'`     |
| tgiann-inventory | `'tgiann-inventory'` |
| codem-inventory  | `'codem-inventory'`  |

```lua
Config.Inventory = "qb_inventory"
```

{% hint style="info" %}
**Note:** Inventory systems only work with framework modes (not standalone).
{% endhint %}

***

## Target Systems

| Target System        | Config Value  |
| -------------------- | ------------- |
| DrawText (no target) | `'drawtext'`  |
| qb-target            | `'qb-target'` |
| ox\_target           | `'ox-target'` |

```lua
Config.InteractionHandler = 'drawtext'  -- Options: 'drawtext', 'qb-target', 'ox-target'
```

{% hint style="info" %}
If you don't use a target system, set `Config.InteractionHandler = 'drawtext'` to use the built-in interaction system.
{% endhint %}

***

## Vehicle Key Systems

| System              | Config Value            |
| ------------------- | ----------------------- |
| qb-vehiclekeys      | `'qb-vehiclekeys'`      |
| qbx-vehiclekeys     | `'qbx-vehiclekeys'`     |
| qs-vehiclekeys      | `'qs-vehiclekeys'`      |
| wasabi-carlock      | `'wasabi-carlock'`      |
| cd\_garage          | `'cd_garage'`           |
| Renewed-Vehiclekeys | `'Renewed-Vehiclekeys'` |

```lua
Config.Vehiclekey = true
Config.VehicleSystem = "qb-vehiclekeys"
```

***

## Fuel Systems

| System     | Config Value   |
| ---------- | -------------- |
| LegacyFuel | `'LegacyFuel'` |
| ox\_fuel   | `'ox_fuel'`    |
| cdn-fuel   | `'cdn-fuel'`   |
| ps-fuel    | `'ps-fuel'`    |
| x-fuel     | `'x-fuel'`     |

```lua
Config.FuelSystem = "LegacyFuel"
```

***

## Clothing Systems

| System              | Config Value            |
| ------------------- | ----------------------- |
| qb-clothing         | `'qb-clothing'`         |
| illenium-appearance | `'illenium-appearance'` |
| fivem-appearance    | `'fivem-appearance'`    |
| esx\_skin           | `'esx_skin'`            |
| rcore\_clothing     | `'rcore_clothing'`      |

```lua
Config.ChangeClothesSystem = true
Config.ClothingScript = "qb-clothing"
```

{% hint style="info" %}
**Custom Support:** The clothing system is fully open-source. You can easily add support for other clothing scripts by modifying the code.
{% endhint %}

***

## Need Help?

{% hint style="info" %}
Having compatibility issues? Join our [Discord server](https://discord.gg/tworst) and open a support ticket.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tworst.com/getting-started-installation/getting-started/framework-support.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
