Driving School Job Installation

3 min read

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_inventory
  • vs-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.Framework and Config.Target (both 'auto' / 'ox_target' by default).
  • Who may open the Creator. Add your admin identifier to Config.CreatorIds, or rely on the Config.CreatorAce ACE (group.admin) or Config.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.