Page cover

πŸ’»Default Configuration

Below is the default configuration file should you need to reference it or ou have any issues and want to revert back to default

Config = {}


--
--β–ˆβ–ˆβ•—β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ•—β–‘β–‘β–‘β–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•—β–‘β–‘β–‘β–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–‘β–‘β–ˆβ–ˆβ•—β–ˆβ–ˆβ•—
--β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β•β•šβ•β•β–ˆβ–ˆβ•”β•β•β•β•šβ–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–‘β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘
--β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–‘β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β–‘β–ˆβ–ˆβ•‘
--β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β•šβ•β•β•β–ˆβ–ˆβ•—β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–‘β–‘β•šβ–ˆβ–ˆβ•”β•β–‘β–‘β–‘β•šβ•β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘
--β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ•‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β•šβ•β•β•β•β–ˆβ–ˆβ•‘
--β•šβ•β•β•β•β•β•β•β–‘β•šβ•β•β•β•β•β•β–‘β•šβ•β•β•β•β•β•β–‘β–‘β–‘β–‘β•šβ•β•β–‘β–‘β–‘β–‘β–‘β–‘β•šβ•β•β–‘β–‘β–‘β–‘β•šβ•β•β•β•β•β–‘β–‘β–‘β–‘β–‘β–‘β•šβ•β•



-- Thank you for downloading this script!


-- Below you can change multiple options to suit your server needs.


-- Extensive documentation detailing this script and how to confiure it correclty can be found below
-- https://lusty94-scripts.gitbook.io/documentation/paid/vehicle-shop



Config.CoreSettings = {
    Debug = {
        Prints = false, -- sends debug prints to f8 console and txadmin server console
        Zones = false, -- debug and displays shop zones
        Targets = false, -- debug and displays shop targets
    },
    Security = {
        MaxDistance = 15.0, -- max distance permitted for security checks - 15.0 seems reasonable
        KickPlayer = false, -- set to true to kick players for failed security checks
        Logs = {
            Enabled = false, -- enable logs for events with detailed information
            Type = 'fm-logs', -- type of logging, support for fm-logs(preferred) or discord webhook (not recommended)
            --use 'fm-logs' for fm-logs (if using this ensure you have setup the resource correctly and it is started before this script)
            --use 'discord' for discord webhooks (if using this make sure to set your webhook URL in the sendLog function in vehicleshop_server.lua)
        },
    },
    Misc = {
        CashSymbol = 'Β£', -- cash symbol used in your server
        FinanceTimer = 30, -- time in minutes to do a finance check and issue warnings or repossessions if not paid
        VIPItemName = 'vipcoin', -- define the payment item name if setting vehicle shop paymentType to 'item' for vip shops
    },
    Commands = { -- define settings for various commands
        Finance = { -- finane menu
            name = 'vehfinance', -- command name
            description = 'Check your financed vehicles and make a payment', -- command description
        },
        Admin = { -- admin menu
            name = 'vehshopadmin', -- command name
            description = 'Vehicle Shop Admin Menu (View/Adjust Stock)', -- command description
        },
        SellToPlayer = { -- sell a vehicle to a player
            name = 'sellvehtoplayer', -- command name
            description = 'Sell a vehicle to another player', -- command description
        },
        CancelMission = { -- cancel stock mission
            name = 'cancelstockmission', -- command name
            description = 'Cancels your current stock supply mission', -- command description
        },
    },
    DataBase = {-- define database information - SOME TABLE NAMES MIGHT BE DIFFERENT LIKE GARAGE_ID INSTEAD OF GARAGE ETC - CHECK THE FUNCTION registerVehicle IN VEHICLESHOP_SERVER.LUA
        Vehicles = 'player_vehicles', -- database table name for player vehicles
        CarGarage = 'pillboxgarage', -- garage name for cars
        BoatGarage = 'lsymc', -- garage name for boats
        AirGarage = 'intairport', -- garage name for planes
    },
    Target = { -- interaction type - support for qb-target, ox_target and darktrovx_interact
        Type = 'qb',
        --EDIT CLIENT/VEHICLESHOP_CLIENT.LUA TO ADD YOUR OWN TARGET SUPPORT
        --use 'qb' for qb-target
        --use 'ox' for ox_target
        --use 'interact' for darktrovx_interact
        --use 'custom' for custom target
    },
    Notify = { -- notification type - support for qb-core notify okokNotify, mythic_notify, ox_lib notify and qs-notify (experimental not tested)
        --EDIT CLIENT/VEHICLESHOP_CLIENT.LUA & SERVER/VEHICLESHOP_SERVER.LUA TO ADD YOUR OWN NOTIFY SUPPORT
        Type = 'qb',
        --use 'qb' for default qb-core notify
        --use 'okok' for okokNotify
        --use 'mythic' for mythic_notify
        --use 'ox' for ox_lib notify
        --use 'qs' for qs-notify (experimental not tested) (qs-interface)  -- some logic might need adjusting
        --use 'custom' for custom notifications
    },
    Inventory = { -- inventory type - support for qb-inventory, ox_inventory and qs-inventory (experimental not tested)
        --EDIT CLIENT/VEHICLESHOP_CLIENT.LUA & SERVER/VEHICLESHOP_SERVER.LUA TO ADD YOUR OWN INVENTORY SUPPORT
        Type = 'qb',
        --use 'qb' for qb-inventory
        --use 'ox' for ox_inventory
        --use 'qs' for qs-inventory
        --use 'custom' for custom inventory
    },
    Banking = { -- support for qb-banking, okokBanking, renewed-banking, wasabi_banking, tgg_banking, fd_banking,
        -- EDIT SERVER/VEHICLESHOP_SERVER.LUA TO ADD YOUR OWN BANKING SUPPORT
        Type = 'qb',
        --use 'qb' for qb-banking
        --use 'okok' for okokBanking
        --use 'renewed' for renewed-banking
        --use 'wasabi' for wasabi_banking
        --use 'tgg' for tgg_banking
        --use 'fd' for fd_banking
        --use 'custom' for custom banking
    },
    Keys = { -- vehicle keys type - support for qb-vehiclekeys and cd_garage - okokGarage and qs-vehiclekeys and jacksam-vehiclekeys (experimental not tested)
        Type = 'qb',
        --use 'qb' for qb-vehiclekeys (some other garage script have wrappers for the default qb-vehicle keys event so if its not listed below try leaving as qb)
        --use 'cd' for cd_garage
        --use 'okok' for okokGarage (experimental not tested)  -- some logic might need adjusting
        --use 'qs' for qs-vehiclekeys (experimental not tested)  -- some logic might need adjusting
        --use 'jacksam' for jacksam-vehiclekeys (experimental not tested)  -- some logic might need adjusting
    },
    Fuel = { -- fuel system type - support for LegacyFuel, ps-fuel, cdn-fuel, okokGasStation, Renewed-Fuel, rcore_fuel (experimental not tested)
        -- EDIT CLIENT/VEHICLESHOP_CLIENT.LUA TO ADD YOUR OWN FUEL SUPPORT
        Type = 'legacy',
        --use 'legacy' for LegacyFuel
        --use 'ps' for ps-fuel
        --use 'cdn' for cdn-fuel
        --use 'okok' for okokGasStation
        --use 'renewed' for renewed-fuel
        --use 'rcore' for rcore_fuel
        --use 'custom' for your custom fuel system
        
    },
}


Config.VehicleShops = {
    ['Premium Deluxe Motorsport'] = { -- the key is the shop name and must be unique for the menus
        info = { -- define shop information
            coords = vector4(-55.59, -1097.36, 26.37, 221.96), -- vehicle shop coords
            vehicleSpawn = vector4(-56.79, -1109.85, 26.43, 71.5), -- vehicle spawn coords when purchased
            prop = { -- choose to have a prop spawn at this location instead of a target zone
                enabled = false, -- set to true to enable a prop instead of a target zone
                name = 'prop_parkingpay', -- name of prop model
            },
            testDrive = { -- define test drive information
                enabled = true, -- enable test drives at this location
                duration = 60, -- in seconds
            },
            icon = 'fa-solid fa-car', -- target icon
            label = 'Open Vehicle Shop', -- target label
            ownerLabel = 'Sell Vehicle To Customer', -- target label if shop is owned
            distance = 3.0, -- target distance
            UseLicenseCheck = true, -- set to true to check for a driving license when buying a vehicle
            LicenseName = 'driver', -- metadata name of license type for this shop
            paymentType = 'both', -- type of payment allowed at this shop -- if InvType is set to ox it auto sets to cash and item only
            --use 'cash' for cash only
            --use 'bank' for bank only
            --use 'both' for cash and bank
            --use 'item' for item (vip coin or similair make sure you set the item name in Config.CoreSettings.Misc.VIPItemName)
        },
        owned = { -- define owner information
            enabled = false, -- set to true to enable an owner for this location -- make sure you set their citizen id below in 'owner' - if setting to false you must also set owner to nil
            owner = nil, -- CITIZEN ID of player that owns this shop -- set to nil for no owner
            commission = 5, -- what percent of each sale should the owner get commission on
            job = 'cardealer', -- jobs used for this shop set to nil for no job
            stock = { -- define stock supply information
                min = 1, -- min amount of stock that can be ordered at once
                max = 25, -- max amount of stock that can be ordered at once
            },
            collections = {
                enabled = true, -- set to true to make players collect vehicles they have ordered before being able to mark as in stock
                truck = 'hauler', -- truck spawn name
                trailer = 'tr4', -- trailer spawn name that is attached to the truck
                warpPlayer = true, -- set to true to warp the player into the delivery vehicle - set to false to make them go and get it from the spawn location
                locations = { -- define random spawn locations for ther truck and trailer
                    vector4(102.87, -2559.92, 6.22, 271.94),
                },
                delivery = vector4(-26.76, -1082.03, 26.64, 246.81), -- define a delivery locations (usually out the back of the shop or something)
            },
        },
        financing = { -- define financing information
            enabled = true, -- enabled finance at this location
            downPaymentPercent = 0.25, -- 25% upfront
            payments = 10, -- 10 payments after down payment
            repoWarningHours = 6, -- ⏰ after X hours, send warning
            repoTimeoutHours = 12, -- β›” after Y hours total, repo it
        },
        selling = { -- define selling information
            enabled = true, -- enable selling zone
            coords = vector4(-33.91, -1087.42, 26.42, 248.4), -- prop coords
            prop = 'prop_parkingpay', -- prop name
            icon = 'fa-solid fa-money-bill', -- target icon
            label = 'Sell Vehicle', -- target label
            distance = 3.0, -- target distance
            saleValue = 0.5, -- what percentage of the vehicles original price in vehicles.lua should be given back when selling e.g set to 0.5 will give 50k back from a 100k vehicle sale      
        },
        blip = { -- define blip information
            enabled = true, -- enable blip for this shop
            id = 326, -- blip id
            colour = 3, -- blip colour
            scale = 0.7, -- blip scale
            title = 'PDM', -- blip name
        },
        vehicles = { -- define vehicle objecst to spawn (these can not be interacted with they are purely decorative)
            enabled = true, -- enable vehicle objects to spawn here
            radius = 50.0, -- size of radius for display vehicles
            spawn = {
                { model = 'asbo', coords = vector4(-45.65, -1093.66, 25.44, 69.5), },
                { model = 'comet2', coords = vector4(-39.6, -1096.01, 25.44, 66.5), },
                { model = 'glendale', coords = vector4(-40.18, -1104.13, 25.44, 338.5), },
                { model = 'gauntlet', coords = vector4(-48.27, -1101.86, 25.44, 294.5), },
            },
        },
        categories = { -- define vehicle categories available to purchase here - ensure these are the same as your vehicles.lua
            ['sportsclassics'] = 'Sports Classics', -- the key is the category name in your vehicles.lua and the label is for the menu
            ['sedans'] = 'Sedans', -- the key is the category name in your vehicles.lua and the label is for the menu
            ['coupes'] = 'Coupes', -- the key is the category name in your vehicles.lua and the label is for the menu
            ['suvs'] = 'SUVs', -- the key is the category name in your vehicles.lua and the label is for the menu
            ['offroad'] = 'Offroad', -- the key is the category name in your vehicles.lua and the label is for the menu
            ['muscle'] = 'Muscle', -- the key is the category name in your vehicles.lua and the label is for the menu
            ['compacts'] = 'Compacts', -- the key is the category name in your vehicles.lua and the label is for the menu
            ['motorcycles'] = 'Motorcycles', -- the key is the category name in your vehicles.lua and the label is for the menu
            ['vans'] = 'Vans', -- the key is the category name in your vehicles.lua and the label is for the menu
        },
    },
    ['Marina Boats'] = { -- the key is the shop name and must be unique for the menus
        info = { -- define shop information
            coords = vector4(-735.0, -1337.51, 1.6, 53.01), -- vehicle shop coords
            vehicleSpawn = vector4(-718.1, -1348.33, 0.47, 136.12), -- vehicle spawn coords when purchased
            prop = { -- choose to have a prop spawn at this location instead of a target zone
                enabled = true, -- set to true to enable a prop instead of a target zone
                name = 'prop_parkingpay', -- name of prop model
            },
            testDrive = { -- define test drive information
                enabled = true, -- enable test drives at this location
                duration = 60, -- in seconds
            },
            icon = 'fa-solid fa-car', -- target icon
            label = 'Open Vehicle Shop', -- target label
            ownerLabel = 'Sell Vehicle To Customer', -- target label if shop is owned
            distance = 3.0, -- target distance
            UseLicenseCheck = false, -- set to true to check for a driving license when buying a vehicle
            LicenseName = '', -- metadata name of license type for this shop
            paymentType = 'both', -- type of payment allowed at this shop -- if InvType is set to ox it auto sets to cash and item only
            --use 'cash' for cash only
            --use 'bank' for bank only
            --use 'both' for cash and bank
            --use 'item' for item (vip coin or similair make sure you set the item name in Config.CoreSettings.Misc.VIPItemName)
        },
        owned = { -- define owner information
            enabled = false, -- set to true to enable an owner for this location -- make sure you set their citizen id below in 'owner' - if setting to false you must also set owner to nil
            owner = nil, -- CITIZEN ID of player that owns this shop -- set to nil for no owner
            commission = 5, -- what percent of each sale should the owner get commission on
            job = nil, -- jobs used for this shop set to nil for no job
            stock = { -- define stock supply information
                min = 1, -- min amount of stock that can be ordered at once
                max = 5, -- max amount of stock that can be ordered at once
            },
            collections = {
                enabled = false, -- set to true to make players collect vehicles they have ordered before being able to mark as in stock
                truck = 'hauler', -- truck spawn name
                trailer = 'tr3', -- trailer spawn name that is attached to the truck
                warpPlayer = true, -- set to true to warp the player into the delivery vehicle - set to false to make them go and get it from the spawn location
                locations = { -- define random spawn locations for the truck and trailer
                    vector4(102.87, -2559.92, 6.22, 271.94),
                },
                delivery = vector4(-761.47, -1485.25, 5.0, 108.01), -- define a delivery locations (usually out the back of the shop or something)
            },
        },
        financing = { -- define financing information
            enabled = true, -- enabled finance at this location
            downPaymentPercent = 0.25, -- 25% upfront
            payments = 10, -- 10 payments after down payment
            repoWarningHours = 6, -- ⏰ after X hours, send warning
            repoTimeoutHours = 12, -- β›” after Y hours total, repo it
        },
        selling = { -- define selling information
            enabled = true, -- enable selling zone
            coords = vector4(-709.18, -1353.83, 1.6, 102.85), -- prop coords
            prop = 'prop_parkingpay', -- prop name
            icon = 'fa-solid fa-money-bill', -- target icon
            label = 'Sell Vehicle', -- target label
            distance = 3.0, -- target distance
            saleValue = 0.5, -- what percentage of the vehicles original price in vehicles.lua should be given back when selling e.g set to 0.5 will give 50k back from a 100k vehicle sale      
        },
        blip = { -- define blip information
            enabled = true, -- enable blip for this shop
            id = 326, -- blip id
            colour = 3, -- blip colour
            scale = 0.7, -- blip scale
            title = 'Marina Boats', -- blip name
        },
        vehicles = { -- define vehicle objecst to spawn (these can not be interacted with they are purely decorative)
            enabled = true, -- enable vehicle objects to spawn here
            radius = 30.0, -- size of radius for display vehicles
            spawn = {
                { model = 'seashark', coords = vector4(-732.84, -1333.5, -0.50, 229.5), },
                { model = 'speeder', coords = vector4(-737.84, -1340.83, -0.50, 229.5), },
            },
        },
        categories = { -- define vehicle categories available to purchase here - ensure these are the same as your vehicles.lua
            ['boats'] = 'Boats', -- the key is the category name in your vehicles.lua and the label is for the menu
        },
    },
    ['LS Hangar'] = { -- the key is the shop name and must be unique for the menus
        info = { -- define shop information
            coords = vector4(-1026.88, -3015.71, 13.95, 330.83), -- vehicle shop coords
            vehicleSpawn = vector4(-1019.43, -2998.04, 13.95, 62.6), -- vehicle spawn coords when purchased
            prop = { -- choose to have a prop spawn at this location instead of a target zone
                enabled = true, -- set to true to enable a prop instead of a target zone
                name = 'prop_parkingpay', -- name of prop model
            },
            testDrive = { -- define test drive information
                enabled = true, -- enable test drives at this location
                duration = 60, -- in seconds
            },
            icon = 'fa-solid fa-car', -- target icon
            label = 'Open Vehicle Shop', -- target label
            ownerLabel = 'Sell Vehicle To Customer', -- target label if shop is owned
            distance = 3.0, -- target distance
            UseLicenseCheck = false, -- set to true to check for a driving license when buying a vehicle
            LicenseName = '', -- metadata name of license type for this shop
            paymentType = 'both', -- type of payment allowed at this shop -- if InvType is set to ox it auto sets to cash and item only
            --use 'cash' for cash only
            --use 'bank' for bank only
            --use 'both' for cash and bank
            --use 'item' for item (vip coin or similair make sure you set the item name in Config.CoreSettings.Misc.VIPItemName)
        },
        owned = { -- define owner information
            enabled = false, -- set to true to enable an owner for this location -- make sure you set their citizen id below in 'owner' - if setting to false you must also set owner to nil
            owner = nil, -- CITIZEN ID of player that owns this shop -- set to nil for no owner
            commission = 5, -- what percent of each sale should the owner get commission on
            job = '', -- jobs used for this shop set to nil for no job
            stock = { -- define stock supply information
                min = 1, -- min amount of stock that can be ordered at once
                max = 5, -- max amount of stock that can be ordered at once
            },
            collections = {
                enabled = false, -- set to true to make players collect vehicles they have ordered before being able to mark as in stock
                truck = 'hauler', -- truck spawn name
                trailer = 'docktrailer', -- trailer spawn name that is attached to the truck
                warpPlayer = true, -- set to true to warp the player into the delivery vehicle - set to false to make them go and get it from the spawn location
                locations = { -- define random spawn locations for the truck and trailer
                    vector4(102.87, -2559.92, 6.22, 271.94),
                },
                delivery = vector4(-1020.16, -2979.5, 13.95, 237.65), -- define a delivery locations (usually out the back of the shop or something)
            },
        },
        financing = { -- define financing information
            enabled = true, -- enabled finance at this location
            downPaymentPercent = 0.25, -- 25% upfront
            payments = 10, -- 10 payments after down payment
            repoWarningHours = 6, -- ⏰ after X hours, send warning
            repoTimeoutHours = 12, -- β›” after Y hours total, repo it
        },
        selling = { -- define selling information
            enabled = true, -- enable selling zone
            coords = vector4(-957.68, -3010.6, 14.1, 239.17), -- prop coords
            prop = 'prop_parkingpay', -- prop name
            icon = 'fa-solid fa-money-bill', -- target icon
            label = 'Sell Vehicle', -- target label
            ownerLabel = 'Sell Vehicle To Customer', -- target label if shop is owned
            distance = 3.0, -- target distance
            saleValue = 0.4, -- what percentage of the vehicles original price in vehicles.lua should be given back when selling e.g set to 0.5 will give 50k back from a 100k vehicle sale      
        },
        blip = { -- define blip information
            enabled = true, -- enable blip for this shop
            id = 326, -- blip id
            colour = 3, -- blip colour
            scale = 0.7, -- blip scale
            title = 'LS Hangar', -- blip name
        },
        vehicles = { -- define vehicle objecst to spawn (these can not be interacted with they are purely decorative)
            enabled = false, -- enable vehicle objects to spawn here
            radius = 1.0, -- size of radius for display vehicles
            spawn = { },
        },
        categories = { -- define vehicle categories available to purchase here - ensure these are the same as your vehicles.lua
            ['helicopters'] = 'Helicopters', -- the key is the category name in your vehicles.lua and the label is for the menu
            ['planes'] = 'Planes', -- the key is the category name in your vehicles.lua and the label is for the menu
        },
    },
    ['VIP Shop'] = { -- the key is the shop name and must be unique for the menus
        info = { -- define shop information
            coords = vector4(-1253.91, -349.49, 36.91, 303.43), -- vehicle shop coords
            vehicleSpawn = vector4(-1234.7, -344.41, 37.33, 25.79), -- vehicle spawn coords when purchased
            prop = { -- choose to have a prop spawn at this location instead of a target zone
                enabled = true, -- set to true to enable a prop instead of a target zone
                name = 'xm_prop_x17_xmas_tree_int', -- name of prop model
            },
            testDrive = { -- define test drive information
                enabled = true, -- enable test drives at this location
                duration = 60, -- in seconds
            },
            icon = 'fa-solid fa-car', -- target icon
            label = 'Open VIP Shop', -- target label
            ownerLabel = 'Sell Vehicle To Customer', -- target label if shop is owned
            distance = 3.0, -- target distance
            UseLicenseCheck = false, -- set to true to check for a driving license when buying a vehicle
            LicenseName = '', -- metadata name of license type for this shop
            paymentType = 'item', -- type of payment allowed at this shop -- if InvType is set to ox it auto sets to cash and item only
            --use 'cash' for cash only
            --use 'bank' for bank only
            --use 'both' for cash and bank
            --use 'item' for item (vip coin or similair make sure you set the item name in Config.CoreSettings.Misc.VIPItemName)
        },
        owned = { -- define owner information
            enabled = false, -- set to true to enable an owner for this location -- make sure you set their citizen id below in 'owner' - if setting to false you must also set owner to nil
            owner = nil, -- CITIZEN ID of player that owns this shop -- set to nil for no owner
            commission = 5, -- what percent of each sale should the owner get commission on
            job = nil, -- jobs used for this shop set to nil for no job
            stock = { -- define stock supply information
                min = 1, -- min amount of stock that can be ordered at once
                max = 5, -- max amount of stock that can be ordered at once
            },
            collections = {
                enabled = false, -- set to true to make players collect vehicles they have ordered before being able to mark as in stock
                truck = 'hauler', -- truck spawn name
                trailer = 'tr4', -- trailer spawn name that is attached to the truck
                warpPlayer = true, -- set to true to warp the player into the delivery vehicle - set to false to make them go and get it from the spawn location
                locations = { -- define random spawn locations for the truck and trailer
                    vector4(102.87, -2559.92, 6.22, 271.94),
                },
                delivery = vector4(-1020.16, -2979.5, 13.95, 237.65), -- define a delivery locations (usually out the back of the shop or something)
            },
        },
        financing = { -- define financing information
            enabled = false, -- enabled finance at this location
            downPaymentPercent = 0.25, -- 25% upfront
            payments = 10, -- 10 payments after down payment
            repoWarningHours = 6, -- ⏰ after X hours, send warning
            repoTimeoutHours = 12, -- β›” after Y hours total, repo it
        },
        selling = { -- define selling information
            enabled = false, -- enable selling zone
            coords = vector4(-957.68, -3010.6, 14.1, 239.17), -- prop coords
            prop = 'prop_parkingpay', -- prop name
            icon = 'fa-solid fa-money-bill', -- target icon
            label = 'Sell Vehicle', -- target label
            distance = 3.0, -- target distance
            saleValue = 0.4, -- what percentage of the vehicles original price in vehicles.lua should be given back when selling e.g set to 0.5 will give 50k back from a 100k vehicle sale      
        },
        blip = { -- define blip information
            enabled = true, -- enable blip for this shop
            id = 326, -- blip id
            colour = 3, -- blip colour
            scale = 0.7, -- blip scale
            title = 'VIP Super Cars', -- blip name
        },
        vehicles = { -- define vehicle objecst to spawn (these can not be interacted with they are purely decorative)
            enabled = true, -- enable vehicle objects to spawn here
            radius = 40.0, -- size of radius for display vehicles
            spawn = {
                { model = 't20', coords = vector4(-1263.9, -353.54, 37.18, 120.04), },
                { model = 'tyrant', coords = vector4(-1271.0, -358.48, 37.18, 250.94), },
                { model = 'torero2', coords = vector4(-1269.4, -364.71, 37.18, 31.72), },
                { model = 'zorrusso', coords = vector4(-1256.05, -366.95, 37.17, 340.41), },
            },
        },
        categories = { -- define vehicle categories available to purchase here - ensure these are the same as your vehicles.lua
            ['super'] = 'VIP Super Cars', -- the key is the category name in your vehicles.lua and the label is for the menu
        },
    },
    --add more vehicle shops as required
}



Config.Language = {
    Notifications = {
        Busy = 'You are already doing something!',
        Cancelled = 'Action cancelled!',
        CantCarry = 'Cant give item!',
        TooFar = 'You are too far away to do that!',
        NoAccess = 'You dont have access to that!',
        NoLicense = 'You do not own the correct license for this shop so you can not test drive or purchase a vehicle here!',
        NoPaymentOptions = 'No valid payment options available!',
        InvalidID = 'You have entered an invalid ID!',
        SeekOwner = 'Ask the shop owner to assist you with purchasing this vehicle!',
        NoVehicles = 'You dont own any vehicles!',
        CantSellHere = 'You do not have any vehicles that can be sold here!',
        TestDriveStartedBuyer = 'you have started a test drive. Time remaining: ',
        TestDriveStartedOwner = 'Test drive started for: ',
        TestEnded = 'Test drive ended!',
        NoFinance = 'You dont have any active finance plans!',
        InvalidAmount = 'Invalid amount!',
        CantAffordBuyer = 'You cant afford to do that!',
        CantAffordOwner = 'The customer cant afford to do that!',
        DownPaymentGiven = 'Down payment received, vehicle has been financed!',
        PaidOff = 'Finance paid off for: ',
        PaymentMade = 'Payment successfull. Remaining balance: ',
        NoSaleHere = 'This vehicle shop does not accept sales here!',
        DontOwn = 'This vehicle is not registered to you!',
        DontOwnShop = 'You dont own this shop or work here!',
        CantSellFinanced = 'You cant sell a vehicle with outstanding finance!',
        VehicleSold = 'You sold your vehicle for: ',
        OrderedTooMuch = 'You can only order a maximum of %s per transaction!',
        DeliverTrailer = 'Deliver the trailer to your shop to restock!',
        ActiveDelivery = 'You already have an active stock delivery!',
        DeliveryCreated = 'Stock order created, go and collect it!',
        DeliveryComplete = 'Delivery completed, stock levels have been updated!',
        NoMission = 'You dont have an active stock order!',
        MissionCancelled = 'Your current stock order has been cancelled!',
        MissionFailed = 'Delivery failed. A 25%% penalty was applied for damages! Refuned %s%s to society.',
        NoShopFunds = 'Your society does not have the funds to cover that cost!',
        VehicleOutOfStock = 'This vehicle is currently out of stock!',
        TooFarFromShop = 'You are too far from the shop!',
        TooFarFromCustomer = 'You are too far from the customer!',
        TooFarFromBuyer = 'You are too far from the buyer!',
        StockUpdated = 'Stock updated for %s to %d',
        NotOwnedNoJob = 'This shop is not owned or does not have a job set!',
        CantSellToSelf = 'You cant sell a vehicle to yourself!',
        NotEnoughSeller = 'The buyer does not have the funds for that!',
        NotEnoughBuyer = 'You dont have the funds for that!',
        VehicleSoldSeller = 'You sold the vehicle for %s%s',
        VehicleSoldBuyer = 'You bought the vehicle (Plate: %s) for %s%s',
        VehicleRepod = 'Your financed vehicle (%s) has been repossessed!',
        PaymentOverDue = 'Your payment for (%s) is overdue, Make a payment soon or risk repossession!',
    },
}

Last updated