Dependencies & Compatibility
Compatibility matrix
| Layer | Supported | Config key | Notes |
|---|---|---|---|
| Framework | ESX · QBCore · Qbox | Config.Framework | 'auto' detects all three. Qbox is read through qbx_core natively, so it works with or without the qb-core bridge. |
| Target | ox_target · qb-target · none | Config.Target | 'none' falls back to an E-key with 3D text. |
| Inventory | ox_inventory | Hard dependency. Items, the theory papers, the eyesight form, the cone tool, and school storage all run on it. | |
| Banking | internal · Renewed · qb-banking · esx | Config.SchoolBank | 'internal' (default) needs no banking script. The others are opt-in and you create each school's society account yourself. |
Required resources
Start all of these before vs-dmvjob.
| Resource | Purpose |
|---|---|
| ox_lib | callbacks, notify, shared init |
| oxmysql | persists schools, licenses, settings, bookings, fleet |
| ox_target | in-world interactions (or qb-target, or the E-key fallback) |
| ox_inventory | items, usable papers/forms, the cone tool, school stash |
vs-npc-dialogue | the reception and exam dialogue (free companion resource) |
Keep vs-npc-dialogue updated in lockstep with the script. The exam and reception conversations are driven through its exports, so a mismatched version can break the flow. See its docs.
Banking
School balances are held wherever Config.SchoolBank points:
'internal'(default) uses the resource's own account table. It is complete and works on a server with no banking script at all. This is the right answer unless you deliberately set up the alternative.'renewed'/'qb'/'esx'force an external bank. These are opt-in, and you must create each school's society account yourself (the naming differs per bank). On a missing account the school falls back to internal and warns once.
Pointing SchoolBank at a bank with no society account does not look broken. Credits silently no-op while the ledger keeps logging, so the school reads $0 next to "activity +$150". Set it in config.lua (not the Creator), and only if you have created the accounts.
Police / license integration
Any script can read a player's licenses through the script's exports, and a police script can revoke one. This is optional and covered on the Developers page.
Pairs with the Driving School MLO
The script places its schools in-game, so it does not hard-require a map. It pairs naturally with the Driving School MLO as a home for the school, and the two are offered together as a bundle.