Compatibility
qb-vehiclekeys, qbx_vehiclekeys, tr_minigames and the open bridge.
qb-vehiclekeys & qbx_vehiclekeys
filo_vehiclekeys provides qb-vehiclekeys, qbx_vehiclekeys and filo_vehiclekey (v1), so
garages and job scripts that use them keep working without changes.
-- qb-vehiclekeys
TriggerServerEvent('qb-vehiclekeys:server:AcquireVehicleKeys', plate)
TriggerEvent('vehiclekeys:client:SetOwner', plate)
-- qbx_vehiclekeys
lib.callback.await('qbx_vehiclekeys:server:giveKeys', false, netId)
exports.qbx_vehiclekeys:GiveKeys(source, vehicle)
exports.qbx_vehiclekeys:RemoveKeys(source, vehicle)
exports.qbx_vehiclekeys:SetLockState(vehicle, state)
exports.qbx_vehiclekeys:HasKeys(vehicle) -- clienttr_minigames
Set Config.Minigames = 'tr_minigames' to use tr_minigames' physical lockpick and hotwire.
filo_vehiclekeys stays in charge of input and prompts; tr_minigames runs the minigame and decides
the outcome.
- Hotwire: the hotwire key (
H) and prompt start tr_minigames' hotwire. The prompt only shows when you have no key and carryConfig.TrMinigames.HotwireItem. - Lockpick: using the
lockpickitem starts tr_minigames' lockpick. A successful pick unlocks the car. - After a hotwire: the car is marked hotwired and runs without a key being handed out.
- Access checks: tr_minigames asks filo_vehiclekeys through
HasVehicleAccess. Keys, job keys and the police bypass all count.
The tr_core and tr_minigames folders in the download are pre-configured (keys = 'filo_vehiclekeys',
their own prompts, target option and keybinds off). Ensure them after filo_vehiclekeys:
ensure filo_vehiclekeys
ensure tr_core
ensure tr_minigamesIn this mode, difficulty, class tiers, alarms and lockpick/hotwire alerts come from tr_minigames'
own config. Config.Blacklist is still checked before a hotwire starts, but copy the models into
tr_minigames' excludeModels too. Keep Config.TrMinigames.HotwireItem equal to tr_minigames'
Config.hotwire.item (default wire_strippers).
Editing the bridge
Everything that depends on another resource lives in bridge/ and stays open when escrowed.
| File | What it contains |
|---|---|
bridge/framework/client.lua / server.lua | Player job, money, owned vehicles, usable items, vehicle names |
bridge/inventory/client.lua / server.lua | Item checks, adding/removing items, durability, inventory reads |
bridge/minigames/client.lua | Hotwire, lockpick, search and wiring minigames (each returns true on pass) |
bridge/minigames/server.lua | Syncs results from tr_minigames into the key state |
bridge/dispatch/client.lua | ps-dispatch, builtin and custom dispatch |
bridge/target/client.lua | Lock/unlock target options on vehicles |
bridge/compatibility/client.lua / server.lua | qb/qbx shims, plus HasVehicleAccess and StartEngineWithoutKeys for tr_core |
To support another framework or inventory, change the function bodies and keep the function names: the rest of the resource calls them by name.
Something broken after a third-party update? Open a ticket in the Discord.