# Configuration

Complete configuration reference for the Multiplayer Fashion & Print 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'

-- Inventory Images Path (adjust based on your inventory)
Config.InventoryImagePath = "nui://qb-inventory/html/images/"
```

***

## Interaction Settings

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

***

## Server & Display Settings

```lua
-- Server Name (displayed in UI)
Config.ServerName = "TWORST"  -- Max 10 characters

-- Money Settings
Config.MoneyType = "$"        -- Currency symbol in UI
Config.MoneyType2 = "bank"    -- Payment type: 'bank' or 'cash'
```

***

## Job Settings

### Factory Settings

```lua
-- Maximum Clothes Waiting
Config.MaxWaitingClothes = 4  -- Max items in queue

-- Enable Script Sounds
Config.Sounds = true
```

### Commands

```lua
Config.Command = {
    jobReset = "jobresetfashion",      -- Reset current job
    jobLeave = "jobleavefashion",      -- Leave lobby
    openTutorial = "openTutorialfashion", -- Open tutorial menu
}
```

***

## Location Settings

```lua
-- Main Factory Location
Config.FactoryLocation = vector3(722.07, -976.57, 24.13)

-- Market Location
Config.MarketLocation = vector3(452.32, -787.34, 27.36)
```

***

## Vehicle Settings

```lua
-- Delivery Vehicle
Config.Vehicle = "burrito4"  -- Delivery van model

-- 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

***

## 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'
```

***

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

***

## Market Items Configuration

Configure items available in the market:

```lua
Config.MarketItems = {
    { item = "wool", price = 150, label = "Wool" },
    { item = "dye_darkblue", price = 250, label = "Dark Blue Dye" },
    { item = "dye_purple", price = 250, label = "Purple Dye" },
    { item = "dye_black", price = 250, label = "Black Dye" },
    { item = "dye_white", price = 250, label = "White Dye" },
    { item = "dye_blue", price = 250, label = "Blue Dye" },
}
```

***

## Available Colors

```lua
Config.Colors = {
    "darkblue",
    "purple",
    "black",
    "white",
    "blue"
}
```

***

## Region & Rewards

Configure work regions and their rewards:

```lua
['regionData'] = {
    {
        regionID = 1,
        regionInfo = {
            regionName = "Beginner",
            regionMinimumLevel = 0
        },
        regionAwards = {
            money = 5000,
            xp = 1000,
        },
        tasks = {
            tshirtCount = 1,
            sweaterCount = 1,
            colorCount = 1,
            deliveryCount = 2,
        },
    },
    {
        regionID = 2,
        regionInfo = {
            regionName = "Intermediate",
            regionMinimumLevel = 2
        },
        regionAwards = {
            money = 10000,
            xp = 2000,
        },
        tasks = {
            tshirtCount = 2,
            sweaterCount = 2,
            colorCount = 3,
            deliveryCount = 3,
        },
    },
    -- Regions 3-4 with increasing tasks and rewards
}
```

***

## Task Configuration

Configure tasks per region:

```lua
['tshirtCrafting'] = {
    taskCount = 2,      -- Number of t-shirts to make
    colorCount = 3,     -- Number of different colors
},
['sweaterCrafting'] = {
    taskCount = 2,      -- Number of sweaters to make
    colorCount = 3,     -- Number of different colors
},
['boxLoading'] = {
    taskCount = 4,      -- Number of boxes to load
},
['delivery'] = {
    taskCount = 4,      -- Number of deliveries to make
},
```

***

## Delivery Bonuses

Configure per-item delivery bonuses:

```lua
Config.DeliveryBonus = {
    perTshirt = 100,    -- Bonus per t-shirt delivered
    perSweater = 150,   -- Bonus per sweater delivered
}
```

***

## 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,                    -- Enable reconnection
    gracePeriodSeconds = 0,            -- 0 = unlimited until lobby closes
    maxReconnectAttempts = 3,          -- Max reconnection attempts
    resetAttemptsAfterSeconds = 300,   -- Reset after 5 minutes stable
    autoCleanupExpired = true,         -- Auto-remove expired players

    ownerTransfer = {
        enabled = true,                -- Transfer ownership if owner disconnects
        allowRejoinAsMember = true,    -- Owner can rejoin as member
        prioritizeByScore = true,      -- Highest score becomes owner
        minimumLobbyTime = 60,         -- Min time to be eligible for transfer
    },
}
```

***

## 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/fashion-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.
