Customize Configuration File

This guide provides a comprehensive, step-by-step explanation of how to edit the configuration file for the vehicle shop script. You will learn what each setting does and how to configure it correctly

Table of Contents


General Settings (Customize Table)

This section contains global settings that control the overall behavior of the script.

Customize = {
    Locale = 'en',
    Framework = nil,
    NotifySystem = nil,
    NotifyStyle = 'top-center',
    TestDriveTime = 35,
    Currency = 'USD',
    DebugMessage = false,

    Finance = {
        Command = 'vfinance',
    },

    Client = {
        SetUI = function(value) -- ... end,
        GiveKeys = function(plate, vehicle, type) -- ... end,
    }
}

Locale

Determines the language for the UI.

  • Values: 'en', 'tr', 'de', 'es', 'fr' etc.

Framework

Specifies your server's framework.

  • Values: nil (for auto-detection), 'QBCore', 'ESX', 'Qbox'.

NotifySystem

Selects the notification system.

  • Values: nil (for auto-detection), 'ox_lib'.

NotifyStyle

Defines the on-screen position for notifications.

  • Values: 'top-left', 'top-center', 'bottom-right', etc.

TestDriveTime

Sets the duration of test drives in seconds.

  • Value: 35 (in seconds).

Currency

Sets the currency symbol used throughout the shop.

  • Values: 'USD', 'EUR', 'GBP', etc.

DebugMessage

Enables or disables debug prints in the console.

  • Values: true or false.

Finance.Command

The chat command for players to check their vehicle financing status.

  • Value: 'vfinance'.

Client.SetUI

A client-side function to manage UI visibility (e.g., hide the HUD) when the shop is open.

SetUI = function(value) -- true: hide, false: show
    if GetResourceState('uz_PureHud') == 'started' then
        exports['uz_PureHud']:SetHudVisibility(value)
    end
end,

Client.GiveKeys

A client-side function that handles giving vehicle keys to a player after a purchase or for a test drive. Configure this to match your server's key system.

GiveKeys = function(plate, vehicle, type) -- type: 'buy' or 'testdrive'
    if GetResourceState('qb-vehiclekeys') == 'started' then
        TriggerEvent("vehiclekeys:client:SetOwner", plate)
    end
end

Dealership Settings (Customize.DealershipLocations)

This section allows you to define multiple dealerships, each with its own unique properties.

name

The name of the dealership, which also appears as the map blip label.

name = 'Premium Deluxe Motorsport',

categories

A list of vehicle categories available at this dealership. These must match the keys in Customize.Vehicles.

categories = {'sports', 'super', 'muscle'},

coords

A table of coordinates for various interaction points.

  • openShowroom: vector3 - Where players open the dealership menu.

  • showroomVehicleSpawn: vector3 - Spawn point for vehicles inside the showroom.

  • buyVehicleSpawn: vector4 - Spawn point for purchased vehicles.

  • testDriveSpawn: vector4 - Spawn point for test drive vehicles.

  • alternativeSpawns: {vector4, ...} - Additional spawn points for purchased vehicles if the primary one is blocked.

blip

Map blip settings for the dealership.

  • hide: false

  • id: 326 (Blip ID)

  • color: 3 (Blip color)

  • scale: 0.6 (Blip size)

interactType & drawtextType

Defines the interaction method.

  • interactType: 'default' (marker), 'target' (qb-target/ox_target).

  • drawtextType: 'default' (native FiveM text).

setMarker

A function to draw a marker at the openShowroom location. You can customize the marker's appearance here.

setMarker = function(coords)
    DrawMarker(21, coords.x, coords.y, coords.z, ... )
end,

interaction

Enables in-showroom vehicle interactions (opening doors, turning on the engine, etc.).

interaction = {
    enabled = true, -- Enable/disable all interactions
    engine = { enabled = true, icon = 'fa-solid fa-gear' },
    boot = { enabled = true, icon = 'fa-solid fa-box' },
    bonnet = { enabled = true, icon = 'fa-solid fa-car-battery' },
    doors = { enabled = true, icon = 'fa-solid fa-door-closed' },
    lights = { enabled = true, icon = 'fa-solid fa-lightbulb' },
},

customRoom

Creates a virtual showroom.

  • enabled: true - Activates the custom room.

  • image: '1.gif' - Background image file (webp, jpg, png, gif).

  • roomDimensions: {...} - Defines the size of the room.

  • Wall: {...} - Toggles the visibility of each wall.

colourOptions

A list of hex color codes and their corresponding in-game vehicle color index, offered to players.

colourOptions = {
    { hex = '#000000', index = 0 }, -- Black
    { hex = '#e81416', index = 27 }, -- Red
},

finance

A list of available financing plans for this dealership.

  • paymentCount: Total number of installments.

  • downPaymentRate: The initial payment rate (e.g., 0.2 for 20%).

  • interestRate: The interest rate applied (e.g., 0.05 for 5%).

  • paymentIntervalHours: The time (in in-game hours) between payments.

  • repoGracePeriodHours: Grace period before repossession.

camera

Controls the showroom camera properties.

  • distance, height, angle, fov: Camera position and field of view.

  • sensitivityX, sensitivityY: Mouse sensitivity.

  • min/maxDistance, min/maxHeight: Camera zoom and height limits.


Vehicle Settings

This section is for defining vehicle categories and the vehicles within them.

Customize.CategoryLabels

Assigns display names to your vehicle categories.

Customize.CategoryLabels = {
    ['sports'] = 'Sports Cars',
    ['sedans'] = 'Sedans',
    ['super'] = 'Super Cars',
}

Customize.Vehicles

A list of all vehicles available for sale, organized by category.

Customize.Vehicles = {
    ['super'] = { -- Category key
        {
            name = 'Adder',      -- Display name
            brand = 'Truffade',  -- Vehicle brand
            model = 'adder',     -- Spawn model name
            price = 86065,       -- Purchase price
            hash = `adder`,      -- Model hash
        },
    },
}

💡 Tip: To add a new vehicle, add its table to the appropriate category. To create a new category, add it to both CategoryLabels and Vehicles.

Last updated

Was this helpful?