> For the complete documentation index, see [llms.txt](https://duddzy-scripts.gitbook.io/duddzy-scripts-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://duddzy-scripts.gitbook.io/duddzy-scripts-docs/scripts/duddzy-jail-3/configuration-overview/shop-config.md).

# Shop Config

Shop locations are configured in:

```lua
Config.Shops
```

Each shop controls:

* Name
* Location
* Zone size
* Rotation
* Job restriction
* Marker visibility
* Blip settings
* Available customisation categories

***

### Basic Shop Example

```lua
{
    label = 'Los Santos Customs',
    coords = vec3(-337.38, -136.92, 39.01),
    size = vec3(5.5, 5.5, 3.0),
    rotation = 70.0,

    job = nil,
    marker = true,

    blip = {
        enabled = true,
        sprite = 72,
        colour = 3,
        scale = 0.8,
        name = 'Los Santos Customs'
    },

    categories = Config.DefaultCategories
}
```

***

### Shop Label

```lua
label = 'Los Santos Customs'
```

The shop label shown in the UI and optionally on the blip.

***

### Shop Coordinates

```lua
coords = vec3(-337.38, -136.92, 39.01)
```

The centre point of the shop zone.

Players must drive into this area to interact with the shop.

***

### Shop Size

```lua
size = vec3(5.5, 5.5, 3.0)
```

Controls the size of the interaction zone.

Format:

```lua
vec3(width, length, height)
```

Example larger shop:

```lua
size = vec3(8.0, 8.0, 4.0)
```

***

### Shop Rotation

```lua
rotation = 70.0
```

Controls the heading/rotation of the box zone.

If your interaction zone feels misaligned, adjust this value.

***

### Public Shops

Set `job` to `nil` to allow everyone to use the shop:

```lua
job = nil
```

***

### Job-Locked Shops

Set `job` to a job name to restrict the shop:

```lua
job = 'mechanic'
```

Only players with that job can use the shop.

Example:

```lua
{
    label = 'Mechanic Customs',
    coords = vec3(-211.55, -1324.55, 30.89),
    size = vec3(6.5, 6.5, 3.0),
    rotation = 0.0,

    job = 'mechanic',
    marker = true,

    categories = Config.DefaultCategories
}
```

***

### Shop Markers

Enable marker for a shop:

```lua
marker = true
```

Disable marker for a shop:

```lua
marker = false
```

Marker appearance is controlled globally by:

```lua
Config.Markers
```

***

### Shop Blip Override

Each shop can use its own blip settings:

```lua
blip = {
    enabled = true,
    sprite = 446,
    colour = 5,
    scale = 0.8,
    name = 'Benny\'s Original Motor Works'
}
```

Disable blip for one shop:

```lua
blip = {
    enabled = false
}
```

If `blip` is missing, the shop uses:

```lua
Config.Blips
```

***

### Shop Categories

You can use the default categories:

```lua
categories = Config.DefaultCategories
```

Or specify categories per shop:

```lua
categories = {
    performance = true,
    body = true,
    paint = true,
    wheels = true,
    lights = true,
    extras = true,
    liveries = true,
    plates = true,
    windows = true,
    horns = true,
    interior = true,
    misc = true
}
```

Set a category to `false` to hide it:

```lua
categories = {
    performance = false,
    body = true,
    paint = true,
    wheels = true,
    lights = true,
    extras = false,
    liveries = true,
    plates = true,
    windows = true,
    horns = false,
    interior = true,
    misc = true
}
```

***

### Adding a New Shop

Add a new table inside `Config.Shops`:

```lua
{
    label = 'Airport Customs',
    coords = vec3(-1155.25, -2007.85, 13.18),
    size = vec3(7.0, 7.0, 3.0),
    rotation = 315.0,

    job = nil,
    marker = true,

    blip = {
        enabled = true,
        sprite = 72,
        colour = 3,
        scale = 0.8,
        name = 'Airport Customs'
    },

    categories = Config.DefaultCategories
}
```

Restart the resource after editing shops:

```cfg
restart dz_customs
```
