Driving School Job Configuration

2 min read

View Driving School Job Script in the WXMAPS store

Configuration

config.lua is bootstrap only. It holds the few values that must be known before the database exists or the client finishes loading: which framework and target to use, who counts as an admin, the inventory item names, and where school money is held.

Everything else is a runtime setting (prices, ped models, opening hours, the course flow, attempt limits, exam parameters, blips). Their defaults live in shared/defaults.lua and you edit them in-game through the Creator, which stores your changes in the dmv_settings table. You should not need to edit either file.

Core

Config.Framework = 'auto'       -- 'auto' detects ESX / QBCore / QBox
Config.Target    = 'ox_target'  -- 'ox_target' | 'qb-target' | 'none' (E-key + 3D text)
Config.Debug     = false        -- console prints; keep false in production

Admin gating (who may open the Creator)

-- LEAVE false ON A LIVE SERVER. true bypasses every admin gate.
Config.DevOpenAdmin = false

Config.CreatorAce = 'group.admin'          -- ACE permission that passes the gate
Config.CreatorIds = { --[[ 'license:...', 'steam:...' ]] }  -- explicit identifiers
Config.AdminGroups = { 'admin', 'superadmin' }  -- framework groups that also pass
Config.CreatorPermission = 'dmv.creator'   -- ACE for the /dmvtrack editor

Config.DevOpenAdmin = true opens the whole Creator to every player: server-wide settings, creating and deleting schools (and their framework jobs), firing staff, and deleting routes. It exists only for solo testing without an ACE. Never distribute a build with it on.

Money and staff pay

-- Where a school's balance is held. An INSTALL decision, not a runtime one.
Config.SchoolBank = 'internal'  -- 'internal' | 'renewed' | 'qb' | 'esx'

-- Let a player-run school's boss edit their own job's grade pay. OFF by default.
Config.SalaryEditing = { enabled = true, min = 0, max = 5000 }  -- per grade, not per person

See Dependencies: banking before changing SchoolBank.

Items

Item names the resource registers handlers for. Full definitions on the Items page.

Config.TheorySheetItem  = 'dmv_sheet_theory'       -- blank theory paper
Config.TheoryDoneItem   = 'dmv_sheet_theory_done'  -- completed paper
Config.TheoryBookItem   = 'dmv_theory_book'
Config.EyeTestPaperItem = 'dmv_eyetest_paper'
Config.LicenceCardItem  = 'dmv_licence_card'
Config.ConeItem         = 'cone'
Config.EyeTestEmsJobs   = { 'ambulance', 'ems', 'doctor' }  -- who can sign off an eye test

Supplies and vehicle props

Config.Supplies = { --[[ theory papers, books, eyesight forms, cones, blank cards ]] }
Config.VehicleProps = {
    { id = 'sign',  model = 'wx_drivingschool_roof_sign',  label = 'Roof sign' },  -- STUDENT DRIVER
    { id = 'plate', model = 'wx_drivingschool_learn_sign', label = 'L plate'   },
}

Where each prop sits on a given car model is configured in-game with /dmvvehprops and stored per model.