> For the complete documentation index, see [llms.txt](https://docs.tworst.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tworst.com/getting-started-installation/scripts/transport-job/configuration.md).

# 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 %}
