Skip to main content

Overview

vrs_bridge is a shared abstraction library for the vrs_ resource ecosystem. Write your gameplay code once against vrs_bridge and it runs on QBox, QBCore, or ESX, with every common inventory, target, UI, and vehicle-key system auto-detected underneath it.

3 frameworks

QBox, QBCore, and ESX, auto-detected on boot.

Inventory & target

ox / qb / qs / codem inventories, ox / qb targets.

UI systems

ox_lib, qb, or framework notify, menu, input, and progress.

10 vehicle-key systems

qbx, qb, Renewed, wasabi, qs, mk, MrNewb, jaksam, t1ger, F_RealCarKeys.
Instead of littering a resource with if QBCore then ... elseif ESX then ..., you call one stable API:
The bridge figures out what’s installed and routes the call.

Install

Ensure dependencies exist

QBox ships them: a framework, and ideally ox_lib (used for cross-framework notify, menu, input, progress, and callbacks).

Drop vrs_bridge into your resources folder

Place the resource in your server’s resources/ directory.

Start it before any resource that depends on it

server.cfg
No SQL and no config required. Detection results print on boot when Config.Debug = true.

Configuration

config.lua is escrow-open. Everything is 'auto' by default, override only if detection guesses wrong:
config.lua
Config.Detection is an ordered list per subsystem. The first started resource wins. Add a row to support a resource we didn’t list, this file, plus shared/detect.lua, stay open after escrow specifically so you can.

API reference

Every export is called with colon syntax: exports.vrs_bridge:Fn(...).
Returns the current bridge version string (e.g. '1.0.0').
Returns: string
Dependency check. Errors if the running bridge is older than min.
string
required
Minimum required version, e.g. '1.0.0'.
Returns the detected framework id ('qbox', 'qbcore', or 'esx').
Returns: string
Returns the full detection result table (framework, inventory, target, notify, menu, input, progress, vehiclekeys).
Returns: table

Vehicle keys

GiveVehicleKeys(src, vehicle) / RemoveVehicleKeys(src, vehicle), server-side, vehicle must be a networked entity.
The handler maps live in the open files server/vehiclekeys.lua and client/vehiclekeys.lua. Every handler is pcall-guarded, a wrong export logs a warning, never crashes, and adding a new system is one row in Config.Detection.vehiclekeys plus one handler entry. Systems with client-only exports are relayed to the player’s client automatically.

Depending on the bridge

In your fxmanifest.lua:
fxmanifest.lua
At runtime, guarantee a compatible version:
Last modified on August 12, 2026