---
description: Guide on how to add dealerships
---

# How to Add Custom Shop

## Add Shop data to `Shared.Shops`

```lua
pdm = { -- shop identifier (unique)
        -- polyzone pointers for shops
        poly ={
            vec3(-56.72, -1086.23, 25),
            vec3(-60.61, -1096.77, 25),
            vec3(-58.26, -1100.57, 25),
            vec3(-30.47, -1111.46, 25),
            vec3(-26.08, -1110.52, 25),
            vec3(-24.16, -1104.06, 25),
            vec3(-33.34, -1101.03, 25),
            vec3(-31.29, -1095.37, 25),
            vec3(-46.59, -1088.02, 25),
            vec3(-44.73, -1082.54, 25),
            vec3(-52.23, -1079.4, 25),
            vec3(-54.84, -1086.22, 25)
        },
         -- open(anyone can buy) or close(no one can buy only check and testdrive vehicles)
        type = 'open',
        id = 'pdm', -- same as shop identifier
        name = 'Premium Deluxe Motorsport', -- name of shop
        blip = { -- shop blip data
            coords = vector3(-45.67, -1098.34, 26.42),
            sprite = 523,
            color = 48,
            scale = 0.7,
            label = 'Premium Deluxe Motorsport'
        },
        jobManager = {
            job = 'cardealer', -- job name in core
            boss = vector4(-27.43, -1107.22, 27.27, 250.0), -- boss coords (not required* field remove if not needed)
            stash = vector4(-24.69, -1100.45, 27.27, 339.78), -- stash coords (not required* field remove if not needed)
            garage = { -- garage coords (not required* field remove if not needed)
                model = 'a_m_m_hillbilly_01', -- ped model (string)
                coords = vector4(-22.45, -1104.05, 26.05, 253.92), -- ped spawn coords
                spawnPoint = { -- vehicle spawn points (vector4)
                    vector4(-11.42, -1095.16, 27.1, 70.28),
                    vector4(-12.73, -1098.11, 27.02, 70.54),
                    vector4(-13.76, -1100.99, 27.01, 69.46)
                },
                vehicles = {
                    {
                        name = 'Vehicle Carrier', -- name to be shown on garage menu
                        model = 'packer' -- model to spawn (string)
                    },
                    {
                        name = 'Trailer',
                        model = 'tr2',
                        spawnPoint = vector4(-17.01, -1096.72, 26.97, 160.55)
                    },
                    {
                        name = 'PDM Neon',
                        model = 'neon'
                    }
                }
            },
            clock =  vector4(-26.55, -1104.61, 27.27, 250.0), -- clock in/out duty coords (not required* field remove if not needed)
            -- printer for making car documents, coords (not required*)
            printer = {
                vector3(-39.31, -1085.65, 27.3),
                vector3(-30.59, -1088.89, 27.27),
                vector3(-33.11, -1087.99, 27.27),
                vector3(-42.0, -1084.73, 27.27)
            }
        },
        directStockAdd = false, -- if true then vehicle stock will be added directly or else you need to collect it from dealer
        buyVehicleSpawn = vector4(-30.99, -1081.48, 27.02, 69.88), -- buy vehicle spawn coords (vector4)
        testVehicleSpawn = vector4(-56.79, -1109.85, 26.43, 71.5), -- test vehicle spawn coords (vector4)
        testDriveTime = 120, -- in sec
        showroomVehicle = {
            {
                id = 1, -- index of showroom vehicle (unique)
                coords = vector4(-42.14, -1101.5, 26.30, 19.46), -- coords of vehicle in showroom (vector4)
                accessPoint = vector4(-38.92, -1100.28, 27.45, 110.0), -- catalogue tablet coord for vehicle (vector4)
                camHeader = 80.0, -- camera header for vehicle on catalogue (float)
                currentVehicle = 'blista2', -- current vehicle model (string)
                vehNetId = 0, -- don't touch this always set to 0
                isBusy = false -- don't touch this always set to false
            },
            {
                id = 2,
                coords = vector4(-54.58, -1097.09, 26.28, 31.02),
                accessPoint = vector4(-51.84, -1095.15, 27.45, 120.0),
                camHeader = 80.0,
                currentVehicle = 'tezeract',
                vehNetId = 0,
                isBusy = false
            }
        }
    }
```

## Add data for importing vehicles in `Shared.Dealer`

How To Add drop zones for you custom custom on importing vehicle

```lua
dropZones = {
        pdm = { -- drop zone for pdm, each shop has own drop zone that need to be added while creating shop
            poly = {
                vec3(-21.80, -1081.04, 26),
                vec3(-3.95, -1087.28, 26),
                vec3(-1.69, -1081.67, 26),
                vec3(-19.49, -1075.20, 26)
            },
            thickness = 10,
        }
    }
```
