# System Config

***

### General Config

```lua
targetSystem = 'qb-target',
    PrisonNoteBook = 'prison_notebook',
    ItemSystem = false,
    AddItems = {
        ['bread'] = 1,
        ['water'] = 1,
        ['cigarette'] = 5,
        ['prison_notebook'] = 1
    },
    Job = {'police', 'sheriff'},
```

* **`targetSystem`**: Choose between `qb-target` or `ox_target`.
* **`PrisonNoteBook`**: The item name for the prison notebook.
* **`ItemSystem`**: If `true`, players’ items are removed when jailed and returned on release.
* **`AddItems`**: Items given automatically upon entering prison.
* **`Job`**: Jobs with permission to access the prison system.

***

### Teleport & Zone Config

```lua
ReleaseTeleportCoords = {
        from = vector3(1855.6772, 2610.3850, 45.6720),
        fromHeading = 281.5382,
        to = vector3(1762.2449, 2489.4612, 45.8450),
        toHeading = 119.0463,
        visitCoords = vector3(1837.3680, 2578.2546, 45.8879),
    },
```

* **`from`**: Release location when leaving prison.
* **`to`**: Entry location inside prison.
* **`visitCoords`**: Visiting room teleport point.

```lua
PrisonZoneCoords = {
        vector2(1842.5515, 2593.2415),
        vector2(1824.5754, 2476.2856),
        ...
    },
    PrisonZoneMinZ = 35.0,
    PrisonZoneMaxZ = 70.0,
```

* Defines the polygon area for the prison zone and its vertical height range.

***

### Phone System (Visits)

```lua
PhoneSystem = {
        phoneModels = { `hei_prop_hei_bank_phone_01` },
        qbTargetOptions = {
            options = {
                {
                    event = "frkn-prison:interactWithPhone",
                    icon = "fas fa-phone",
                    label = "Using the Phone",
                }
            },
            distance = 2.5,
        },
        oxTargetOptions = {
            {
                event = "frkn-prison:interactWithPhone",
                icon = "fas fa-phone",
                label = "Using the Phone",
                distance = 2.5,
            }
        },
    },
```

* **`phoneModels`**: World models used for visit calls.
* **Target Options**: Both `qb-target` and `ox_target` configurations are supported.

***

### Prison Outfits

```lua
PrisonOutfit = {
        enable = false,
        male = {
            mask = { item = 0, texture = 0 },
            arms = { item = 4, texture = 0 },
            ...
        },
        female = {
            mask = { item = 0, texture = 0 },
            arms = { item = 4, texture = 0 },
            ...
        }
    },
```

* **`enable`**: Toggle prison uniforms.
* Separate configurations for **male** and **female** outfits using clothing component IDs.

***

### Electric Panel & Time Control

```lua
panelLocations = {
        { x = 1752.9846, y = 2721.7998, z = 45.5649, w = 107.4926, status = false },
    },
    TimeControl = false,
```

* **`panelLocations`**: Electrical panels used in escape plans.
* **`TimeControl`**: If `true`, panels can only be sabotaged at night.

***

### Tunnel Escape

```lua
digSpot = {
        coords = vector3(1671.8668, 2700.0352, 45.5649),
        heading = 72.9042,
        cleaned = false,
        progress = 0
    },
    TunelEntrance = { coords = vector3(1770.2507, 2829.3689, 20.6350) },
    TunelExit = { coords = vector3(1942.06921, 2687.84644, 32.8981743) },
    TunelOut = { coords = vector3(1947.5433, 2683.4050, 42.7956) },
```

* Fully controls digging spot, tunnel entry, exit, and post-escape spawn.

***

### NPC Dialogs

```lua
PrisonDialogs = {
        goodNpc = {
            greeting = "Hey, you new here?",
            firstOption = {
                type = "job_inquiry",
                ...
            },
            escapeOption = {
                label = "How can I escape from here?",
                ...
            }
        },
        badNpc = { ... }
    },
```

* **`goodNpc`**: Provides job hints.
* **`badNpc`**: Guides escape planning. Supports guard alert toggles (`alertsGuards`).

***

### Prison NPCs

```lua
PrisonNPCs = {
        { coords = vector4(1687.6576, 2565.9609, 45.5649, 176.9481), npc = "s_m_y_prisoner_01", animDict = "...", animName = "base", status = 1 },
        ...
    },
```

* Configurable NPCs with positions, animations, and behaviors.

***

### Basketball System

```lua
BasketballZones = {
        {
            label = "Basketball Court",
            points = { vector2(1682.5226, 2528.4807), ... },
            minZ = 44.5,
            maxZ = 47.0
        }
    },
    Limit = 5,
    PropModel = 'prop_bskball_01',
    Commands = 'basketball',
    PickUpBall = 38,
    PlayStyleBall = 303,
    ShootBall = 263,
    DribbleBall = 47,
    DetachBall = 73,
```

* Defines basketball courts, limits ball spawn count, and sets controls.
