# Configuration

Complete configuration reference for the Multiplayer Transport Job.

***

## Configuration Files

The script uses multiple configuration files located in the `config/` folder:

| File             | Purpose                                           |
| ---------------- | ------------------------------------------------- |
| `config.lua`     | Main configuration (framework, settings, rewards) |
| `coordinate.lua` | Location coordinates for all job areas            |
| `GetCore.lua`    | Framework detection (usually don't modify)        |

***

## Basic Settings

### Framework & Core

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

-- Language (Available: 'en', 'tr', 'de', 'fr', 'pt', 'ru', 'ar')
Config.Locale = 'en'

-- Currency Display
Config.CurrencyUnit = '$'  -- Options: '$', '€', '₺'

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

{% hint style="info" %}
**QBox Users:** QBox is fully compatible. Set `Config.Framework = 'qb'` for QBox servers.
{% endhint %}

***

## Inventory Settings

```lua
-- Inventory System (ignored in standalone mode)
Config.Inventory = "qb_inventory"
-- Options: 'qb_inventory', 'esx_inventory', 'ox_inventory', 'qs_inventory', 'tgiann-inventory'
```

***

## Interaction Settings

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

***

## Job Settings

### Lobby & Players

```lua
-- Maximum Players in Lobby
Config.MaxPlayersInLobby = 4  -- 1-4 players per lobby

-- Job Cooldown (hours between jobs)
Config.jobCoolDownHours = 0  -- 0 = no cooldown

-- Level Requirement Check
Config.jobLevelCheck = false  -- true = check player levels before starting
```

### Commands

```lua
Config.Command = {
    jobReset = "jobresettransport",      -- Reset current job
    jobLeave = "jobleavetransport",      -- Leave lobby
    openTutorial = "openTutorialtransport", -- Open tutorial menu
}
```

***

## Vehicle Settings

```lua
-- Transport Vehicles
Config.Vehicles = {
    truck = "tolpounder",   -- Main transport truck
    forklift = "forklift",  -- Forklift for loading
}

-- Vehicle Key System
Config.Vehiclekey = true

-- Remove Keys on Job End
Config.Removekeys = true
```

The script **auto-detects** your vehicle key system:

* qb-vehiclekeys
* qbx-vehiclekeys
* qs-vehiclekeys
* wasabi-carlock
* cd\_garage
* Renewed-Vehiclekeys

***

## Forklift Attachment System

Configure forklift attachment to trucks:

```lua
Config.ForkliftAttachment = {
    attachBoneId = 72,
    positions = {
        -- 8 default trailer positions
        -- 1 forklift position with front/back markers
    },
}
```

***

## Police Alert System

```lua
Config.PoliceAlert = {
    enabled = true,           -- Enable police alerts
    alertChance = 75,         -- Chance of alert on illegal missions (%)
    cooldown = 120,           -- Cooldown between alerts (seconds)

    -- Dispatch System
    dispatchSystem = "ps-dispatch",
    -- Options: 'ps-dispatch', 'ls-dispatch', 'fl-dispatch',
    --          'bixbi_dispatch', 'cd_dispatch', 'linden_outlawalert', 'custom'
}
```

### Alert Types

```lua
Config.AlertTypes = {
    suspicious = {
        code = "10-66",
        priority = 2,
        label = "Suspicious Activity",
    },
    illegalTransport = {
        code = "10-71",
        priority = 3,
        label = "Illegal Transport",
    },
    speeding = {
        code = "10-11",
        priority = 1,
        label = "Speeding Vehicle",
    },
}
```

***

## Police Search System

```lua
Config.PoliceSearch = {
    enabled = true,
    searchTime = 8,           -- Time to search (seconds)
    illegalItemsChance = 65,  -- Chance of finding illegal items (%)
    searchDistance = 4.0,     -- Interaction distance

    -- Police job names that can search
    policeJobs = {
        "police", "sheriff", "state",
        "lspd", "bcso", "sahp",
        "park", "pd", "policia"
    },
}
```

***

## Clothing System

```lua
-- Enable Job Clothing
Config.ChangeClothesSystem = false  -- true/false

-- Clothing Script
Config.ClothingScript = "qb-clothing"
-- Options: 'qb-clothing', 'illenium-appearance', 'fivem-appearance', 'esx_skin', 'rcore_clothing'
```

### Job Uniforms

```lua
Config.JobClothes = {
    male = {
        { jacket = 97,   texture = 0 },
        { shirt = 59,    texture = 0 },
        { legs = 9,      texture = 6 },
        { shoes = 12,    texture = 3 },
    },
    female = {
        { jacket = 239,  texture = 8 },
        { shirt = 15,    texture = 0 },
        { legs = 35,     texture = 0 },
        { shoes = 26,    texture = 0 },
    }
}
```

***

## Debug Settings

```lua
-- Debug Mode (shows console messages)
Config.Debug = false

-- Debug Commands (enables testing commands)
Config.DebugCommands = false
```

{% hint style="warning" %}
**Production Servers:** Always set `Config.Debug = false` and `Config.DebugCommands = false` for better performance!
{% endhint %}

***

## Entity Optimization

```lua
Config.EntityOptimization = {
    enabled = true,
    updateInterval = 5,       -- Update interval in seconds
    scanDistance = 75,        -- Scan distance in meters
    movementThreshold = 50,   -- Movement threshold in meters
}
```

***

## Region & Rewards

Configure work regions and their rewards:

```lua
['regionData'] = {
    {
        regionID = 1,
        regionInfo = {
            regionName = "Region 1",
            regionMinimumLevel = 0,
            illegal = false,
        },
        regionAwards = {
            money = 5000,
            xp = 1000,
            onlineJobExtraAwards = 2,
            bonusExtraMoney = 500,
            bonusExtraXP = 200,
        },
        tasks = {
            boxLoading = { min = 2, max = 4 },
        },
    },
    {
        regionID = 4,
        regionInfo = {
            regionName = "Region 4 - Illegal",
            regionMinimumLevel = 6,
            illegal = true,  -- Police alerts enabled
        },
        regionAwards = {
            money = 25000,
            xp = 10000,
        },
    },
}
```

***

## Task Configuration

Configure tasks per region:

```lua
['transport_trailer_loading'] = {
    taskCount = { min = 2, max = 8 },  -- Boxes to load
},
['transport_delivery_truck'] = {
    taskCount = 1,  -- Truck deliveries
},
['transport_open_box'] = {
    taskCount = 1,  -- Boxes to open
},
['transport_delivery_furniture'] = {
    taskCount = 1,  -- Furniture deliveries
},
```

***

## Daily Missions

Configure daily missions for extra rewards:

```lua
Config.Job['dailyMission'] = {
    {
        name = 'jobtask_one',
        header = "Task 1",
        label = "Complete 50 transport tasks",
        count = 50,
        xp = 2500,
        money = 1000,
    },
    {
        name = 'jobtask_two',
        header = "Task 2",
        label = "Complete 10 missions",
        count = 10,
        xp = 1000,
        money = 3000,
    },
    {
        name = 'jobtask_three',
        header = "Task 3",
        label = "Earn $10,000",
        count = 10000,
        xp = 2000,
        money = 3000,
    },
    {
        name = 'jobtask_four',
        header = "Task 4",
        label = "Complete 20 missions with friends",
        count = 20,
        xp = 2000,
        money = 3000,
    },
}
```

***

## Level System

Configure XP required for each level (up to level 70):

```lua
Config.RequiredXP = {
    [1] = 1000,
    [2] = 1500,
    [3] = 2000,
    [4] = 2500,
    [5] = 3000,
    -- ... up to level 70
    [70] = 45500,
}
```

***

## Reconnection System

Configure player reconnection settings:

```lua
Config.Reconnection = {
    enabled = true,
    gracePeriodSeconds = 0,
    maxReconnectAttempts = 3,
    resetAttemptsAfterSeconds = 300,
    autoCleanupExpired = true,

    ownerTransfer = {
        enabled = true,
        allowRejoinAsMember = true,
        prioritizeByScore = true,
        minimumLobbyTime = 60,
    },
}
```

***

## Tutorial Videos

The script includes 6 tutorial videos:

| # | Tutorial                          |
| - | --------------------------------- |
| 1 | How to Load Boxes with Forklift   |
| 2 | How to Attach Forklift to Vehicle |
| 3 | How to Park Truck at Delivery     |
| 4 | How to Unload Boxes               |
| 5 | How to Open & Deliver Boxes       |
| 6 | How to Deliver Truck              |

***

## UI Positions

Customize UI element positions:

```lua
Config.DefaultUIPositions = {
    teamList = { top = '77.22vh', left = '85.94vw' },
    scoreList = { top = '2.64vh', left = '1.61vw' },
    inviteSide = { top = '2.85vh', left = '73.07vw' },
    notificationDiv = { top = '40.48vh', left = '81.54vw' },
    keyInfoSide = { top = '50%', right = '2.0833vw' },
}
```

{% hint style="info" %}
Players can also adjust UI positions in-game through the settings menu!
{% endhint %}

***

## Need Help?

{% hint style="info" %}
Having configuration 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/scripts/transport-job/configuration.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.
