Third-Party Integrations

Learn how to connect Quasar assets with external scripts such as esx_vehicleshop or other third-party systems. These integrations allow automatic compatibility, like assigning vehicle keys or synchronizing custom functions seamlessly.


chevron-rightIntegrating Key Management with Third-Party Assetshashtag

This guide explains how to integrate Vehicle Keys with other assets like esx_vehicleshop, so that keys are automatically given when a player buys or receives a vehicle.


1️⃣ Export Overview

Use this export to give keys to a vehicle:

exports['qs-vehiclekeys']:GiveKeys(plate, model, true)
  • plate: Vehicle license plate.

  • model: Vehicle model name.

  • bypassKeyCheck: (optional) Set to true to skip key validation.


2️⃣ Example Integration (esx_vehicleshop)

Place this code where the vehicle purchase is confirmed:

ESX.TriggerServerCallback('esx_vehicleshop:buyVehicle', function(success)
    if success then
        IsInShopMenu = false
        menu2.close()
        menu.close()
        DeleteDisplayVehicleInsideShop()
        FreezeEntityPosition(playerPed, false)
        SetEntityVisible(playerPed, true)

        -- Retrieve vehicle data
        local model = GetDisplayNameFromVehicleModel(GetEntityModel(vehicleData))
        local plate = GetVehicleNumberPlateText(vehicleData)

        -- Grant keys to the buyer
        exports['qs-vehiclekeys']:GiveKeys(plate, model, true)
    else
        ESX.ShowNotification(TranslateCap('not_enough_money'))
    end
end, vehicleData.model, generatedPlate)

When the vehicle is purchased, the player automatically receives the keys.


3️⃣ Key Points

  • Use GetDisplayNameFromVehicleModel and GetVehicleNumberPlateText to get model and plate dynamically.

  • Call GiveKeys with both values and set true if you want to bypass validation.

  • This method can be adapted to any third-party asset that needs vehicle key assignment.

By integrating this export, you ensure players automatically receive their keys upon purchase or vehicle spawn, improving gameplay and usability.

chevron-rightDebugging and Helper Tipshashtag

Debugging means checking your code to see what’s wrong and fixing it — the easiest way is by using print() to see what’s happening while your script runs.


Use print() To Check Values

print() shows what your variables contain in the console:

print(vehicleData.model, vehicleData.name)
print('Model:', vehicleData.model, 'Name:', vehicleData.name)

➡️ Helps you confirm if the data is correct.


Example While Buying A Vehicle

Add a print() inside your callback to check info when buying a car:

print('Model:', vehicleData.model, 'Plate:', generatedPlate)

This shows the model and plate to see if the code is working right.


Get Vehicle Info Quickly

local model = GetDisplayNameFromVehicleModel(GetEntityModel(veh))
local plate = GetVehicleNumberPlateText(veh)

Gets the vehicle model and plate easily.


Simple Tips

  • Add print() before/after big actions.

  • Label your prints → print('Plate:', plate)

  • Test small parts one by one.


In short: use print() to watch what your script is doing it’s the fastest way to find and fix problems.