Les ponts clés véhicule abstraient la façon dont les différents scripts de clés verrouillent et déverrouillent les véhicules.
Vos scripts appellent une fonction et TS-Lib route vers qb-vehiclekeys, qs-vehiclekeys ou une implémentation standalone.
-- Shared
Bridge.VehicleKeys
Bridge.VehicleKeys.Client
Bridge.VehicleKeys.Server
Statut et tests
| Système de clés | Statut | Testé par |
|---|
qb-vehiclekeys | Testé | Toine |
qs-vehiclekeys | Expérimental | en attente de retours |
lfKeys | Testé | Toine |
standalone | Testé | Toine |
Systèmes de clés pris en charge
TS-Lib embarque le support pour :
qb-vehiclekeys
qs-vehiclekeys
lfKeys
standalone (aucune ressource de clés externe)
Configuration dans ts-lib/config.lua :
Config.VehicleKeys = 'auto' -- 'auto', 'qb-vehiclekeys', 'qs-vehiclekeys', 'lfKeys', 'standalone'
Config.Data = {
VehicleKeys = {
['qb-vehiclekeys'] = 'qb-vehiclekeys',
['qs-vehiclekeys'] = 'qs-vehiclekeys',
['lfKeys'] = 'lfKeys',
['standalone'] = 'standalone',
},
}
Quand Config.VehicleKeys = 'auto', TS-Lib sélectionne la première ressource démarrée dans Config.Data.VehicleKeys.
API côté client
Bridge.VehicleKeys.Client.Functions.SetDoorStatus(entity, lockStatus)
Point d’entrée principal depuis vos scripts.
Bridge.VehicleKeys.Client.Functions.SetDoorStatus(vehicle, 2) -- verrouiller
Bridge.VehicleKeys.Client.Functions.SetDoorStatus(vehicle, 1) -- déverrouiller
Convention d’état de verrouillage (natives GTA) :
1 – déverrouillé
2 – verrouillé
4 – verrouillé pour tous les joueurs, etc.
Comportement par système
-
qb-vehiclekeys
Bridge.VehicleKeys.Client.Functions.SetDoorStatus = function(entity, status)
TriggerEvent('qb-vehiclekeys:server:setVehLockState', NetworkGetNetworkIdFromEntity(entity), status)
end
-
qs-vehiclekeys
Bridge.VehicleKeys.Client.Functions.SetDoorStatus = function(entity, status)
exports["qs-vehiclekeys"]:DoorLogic(entity, true, status, true, true, true)
end
-
lfKeys
Bridge.VehicleKeys.Client.Functions.SetDoorStatus = function(entity, status)
local netId = NetworkGetNetworkIdFromEntity(entity)
if not netId then return end
local isLocking = status ~= 0 and status ~= 1
TriggerServerEvent('vehicle:syncLock', netId, status, isLocking)
end
-
standalone
Bridge.VehicleKeys.Client.Functions.SetDoorStatus = function(entity, lockStatus)
local isLocked = (lockStatus ~= 1 and lockStatus ~= 0)
Entity(entity).state:set('isLocked', isLocked, true)
SetVehicleDoorsLocked(entity, lockStatus)
if lockStatus == 2 or lockStatus == 4 then
SetVehicleDoorsLockedForAllPlayers(entity, true)
else
SetVehicleDoorsLockedForAllPlayers(entity, false)
end
end
En mode standalone, l’état de verrouillage repose uniquement sur le state bag de l’entité et les natives, sans ressource externe.
API côté serveur
Pour l’instant TS-Lib n’expose pas d’helpers serveur supplémentaires pour les clés.
Le pont serveur (Bridge.VehicleKeys.Server) est un emplacement réservé pour de futures extensions :
- Octroi / révocation centralisés des clés
- Opérations de verrou avec prise en compte des permissions
- Traçabilité des événements de verrou
Vous pouvez l’étendre dans votre fork en suivant la même structure que les ponts existants.
Last modified on April 1, 2026