Compatibility

Built-in compatibility layers allow drop-in replacement for existing vehicle key systems without modifying dependent resources.

Supported Drop-In Systems

The following resource names are defined directly in fxmanifest.lua:

  • ak47_qb_vehiclekeys
  • qb-vehiclekeys
  • wasabi_carlock
  • qs-vehiclekeys

QBCore Compatibility

The following QBCore exports and events are automatically intercepted and handled:

Client

-- Exports
exports['qb-vehiclekeys']:HasKeys(plate)
exports['qb-vehiclekeys']:addNoLockVehicles(model)
exports['qb-vehiclekeys']:removeNoLockVehicles(model)

-- Events
TriggerEvent('qb-vehiclekeys:client:AddKeys', plate)
TriggerEvent('vehiclekeys:client:SetOwner', plate)
TriggerEvent('qb-vehiclekeys:client:RemoveKeys', plate)

Server

-- Exports
exports['qb-vehiclekeys']:HasKeys(source, plate)
exports['qb-vehiclekeys']:GiveKeys(source, plate)
exports['qb-vehiclekeys']:RemoveKeys(source, plate)

-- Events
TriggerServerEvent('qb-vehiclekeys:server:GiveVehicleKeys', receiver, plate)
TriggerServerEvent('qb-vehiclekeys:server:setVehLockState', vehNetId, state)
TriggerServerEvent('qb-vehiclekeys:server:AcquireVehicleKeys', plate)

-- Server Callback
QBCore.Functions.TriggerCallback('qb-vehiclekeys:server:checkPlayerOwned', function(isOwned) ... end, plate)

Quasar Compatibility

The following Quasar vehiclekeys exports are supported:

Client

exports['qs-vehiclekeys']:GiveKeys(plate, model)
exports['qs-vehiclekeys']:RemoveKeys(plate, model)
exports['qs-vehiclekeys']:GiveKeysAuto()
exports['qs-vehiclekeys']:RemoveKeysAuto()

Server

exports['qs-vehiclekeys']:GiveServerKeys(source, plate, model)

Wasabi Carlock Compatibility

The following Wasabi Carlock exports are supported:

exports['wasabi_carlock']:GiveKey(plate)
exports['wasabi_carlock']:RemoveKey(plate)

Legacy & Dealership Events

-- Temporary vehicle key for rentals/test drives
TriggerServerEvent('keys:giveTemporaryKeys', plate)

-- Dealership purchase key
TriggerEvent('keys:addDealerKey', xPlayer, plate)

-- Admin temporary keys
TriggerClientEvent('keys:giveTemporaryKeys:admin', source, networkId)