Driving School Job Installation
This gets vs-dmvjob running from a clean download. Do the steps in order.
Keep the folder named vs-dmvjob. Several items (the theory papers, the cone, the eyesight form) are usable through resource-scoped exports like vs-dmvjob.dmv_sheet_theory. Renaming the folder breaks those items.
Step 1: Install the dependencies first
Install and confirm these before the script. See Dependencies for details.
ox_lib,oxmysql,ox_target,ox_inventoryvs-npc-dialogue(the free companion resource that drives the reception and exam dialogue)
Step 2: Upload the script
Download from the Cfx.re portal with the Cfx account you purchased with, then upload the whole vs-dmvjob folder into your resources/ directory (a sub-folder such as resources/[vanguardscripts] is fine). Do not rename it.
Step 3: Order server.cfg correctly
Every dependency must start before the script.
ensure ox_lib
ensure oxmysql
ensure ox_target
ensure ox_inventory
ensure vs-npc-dialogue
ensure vs-dmvjob
Pairing it with the Driving School MLO? Ensure the map before vs-dmvjob, and remember wxmaps_commons before any WXMAPS map.
Step 4: Database
The tables auto-create on first start. Importing the seed files up front is recommended:
mysql -u <user> -p <database> < install.sql
mysql -u <user> -p <database> < add_dmv_job.sql
install.sql creates the resource tables (schools, settings, licenses, vehicle props, and the dmv_bookings appointment table). add_dmv_job.sql seeds the base job rows a player-run school builds on.
Step 5: Register the items
Register the driving-school items in ox_inventory and wire the usable ones to their exports. Copy-paste blocks are on the Items page. Item names are set in config.lua.
Step 6: Configure the essentials
Open config.lua (bootstrap only) and set:
Config.FrameworkandConfig.Target(both'auto'/'ox_target'by default).- Who may open the Creator. Add your admin identifier to
Config.CreatorIds, or rely on theConfig.CreatorAceACE (group.admin) orConfig.AdminGroups. Config.SchoolBank('internal'by default, which works with no banking script). Only change it if you deliberately use Renewed / qb-banking / esx.
Leave Config.DevOpenAdmin = false on a live server. When true it bypasses every admin gate and lets any player open the Creator, create or delete schools (and their framework jobs), and change server-wide settings. Use it only in a private solo test, then turn it straight back off.
Everything else (prices, opening hours, exam parameters, attempt limits, blips, the course flow) is a runtime setting edited in-game through the Creator and stored in the dmv_settings table. You should not need to edit shared/defaults.lua.
Step 7: Place a school and record routes
Open the Creator in-game with /dmvcreator (admin). Place a school, then record your road-test routes for the licenses you offer. Full walkthrough on the Creator page.
Shipping routes with a map? Record them on one server, run /dmvexportroutes, and bundle the generated seed_routes.sql. New servers import it after install.sql and the schools pick the routes up automatically.
Step 8: Go live
Confirm Config.DevOpenAdmin = false and Config.Debug = false, and that your admin gate (ACE / ids / framework group) is set. Then open to players.
Still stuck? See Troubleshooting & FAQ or open a ticket on Discord.