Driving School Job Changelog

2 min read

Changelog

All notable changes to vs-dmvjob. Newest first.

2.0.0

The player-run half of the job, made real. Licenses that mean something, staff who can serve candidates, a school fleet that costs money, and course authoring for every license.

  • Licenses that mean something. Server exports (HasLicence, GetLicences, CategoryForVehicle, IsLicensedToDrive), police revocation (/dmvrevoke, /dmvchecklicence, and a dmv:licenses:revoke event), an optional one-way mirror into a framework license store, and per-category expiry.
  • Player-run schools. Hire, fire, promote, and demote staff; a reception terminal (Calendar, Serve, Payments) that serves everyone in player mode; and a staff PC for actions that must not depend on a target being present.
  • The reception till. A point-of-sale so a receptionist can charge enrolment (cash or bank) straight into the school account.
  • Consumable supplies. Staff serve from the school stash; the owner restocks papers, books, forms, cones, and blank cards for money.
  • The school fleet. Buy, repair, and sell vehicles; a road test spawns the school's own car and each exam wears it down; accreditation checks the fleet.
  • Owner pricing. The business owner sets candidate-facing prices, so schools can run promotions.
  • Course authoring for every license. License A cone circuits are editable point-by-point; B and C run recorded routes through one shared stage builder, including a reverse-bay manoeuvre for C.
  • Road-test appointment scheduler. Bookings are made for a real date and time and stored in the new dmv_bookings table.
  • The examiner is spawned by the server, so the whole server sees him, while only the candidate can interact with him.
  • Security. Bank withdrawals are now balance-checked on QBCore and Qbox before they run (both cores allowed a bank charge to take a player negative and still report success).
  • Config.DevOpenAdmin defaults to false (production-safe), and /rifai and /dmvreset are admin-gated.

Found something to improve? Report it on Discord. Here is how to report a bug.