The current Bus Driver Job is a rework of the old one rather than a patch on top of it: one dispatcher instead of a job ped and a leaderboard board, a bus picker, solo routes with passengers that really board, and every payout decided on the server. Your drivers' levels and experience carry over and the database upgrades itself — what needs your attention is the config file.
What Changed#
Everything an older install had, and what took its place:
Before | Now |
|---|---|
A leaderboard board in the depot with its own ped, placed with | A Statistics button inside the job panel. The board, its ped and |
Crews: invitations, a party leader and crew slots in the panel | Routes are driven solo — a bus has one driver. Other players ride along as paying passengers. |
One bus for everyone, |
|
The panel only opened for the job | It opens for everyone. |
Pay, experience and progress sent by the client | Worked out on the server from |
A "pay the fare" prompt for player passengers | The fare is charged automatically when a player sits in the bus — |
Passenger numbers that ignored how many were aboard |
|
|
|
A daily ranking that only reset when the server restarted | Daily reset at 00:00 and season reset at 00:00 on the 1st, each on its own schedule, with a catch-up for a midnight the server was down for. |
An SQL file to import | Tables created and upgraded on start; the ESX job registered automatically. |
New options worth a look while you port: Config.PedName and Config.PedGreeting, Config.PedMarker, Config.SpawnFade, Config.StopReachDistance, Config.DeliverReachDistance, Config.MaxBonusLevel, Config.MaxCrashesPerRoute, Config.MaxLeaderboardPlayers, Config.PlayerNameSource, Config.Webhooks and Config.Debug. Each one is explained in the config reference.
Removed events#
These events accepted a price, an amount of experience or a crew roster from the client, so they no longer exist:
Event | Replaced by |
|---|---|
| The server pays the route from the config once the bus is handed back. |
| Experience comes from the route that was actually completed. |
| Progress is recorded when the server confirms a stop. |
| One server-side fare transaction that charges the passenger and pays the driver together. |
| The scheduled daily reset. |
| Removed with the crew system. |
Any script of your own that triggered these has to move to the exports in Commands and Exports.
Updating Step by Step#
Stop the server
So no route is running and nothing writes to the database while you copy.
Back up
Export the whole database with HeidiSQL, phpMyAdmin or your host's panel, and copy
config/config.lua,config/translations.luaandclient/clothing.luasomewhere outside the resources folder.Replace the folder
Delete the old
qs-busjobfolder completely and put the new one in its place, under the same name. Do not copy the new files over the old ones: files that no longer exist would be left behind, and anything left inconfig/still runs, because every file in that folder is loaded.Port your config
Open the new
config/config.luaand copy your values across — the dispatcher's position, the spawn bays, the hand-back point, your routes inConfig.Tasks, the pay, level and leaderboard settings. An oldConfig.VehicleModelbecomes the first entry ofConfig.Vehicles. Copy values, not the old file: options were renamed and removed, and an old file is missing every new section. Do the same with your outfit inclothing.luaand any lines you changed intranslations.lua.Start the server
On start the resource creates any table that is missing and adds the leaderboard columns to an older
qs_busdriverjob— one Added missing column line per column. Nothing needs importing.bash [qs-busjob] Added missing column qs_busdriverjob.total_experience [qs-busjob] Added missing column qs_busdriverjob.total_earnings [qs-busjob] Added missing column qs_busdriverjob.season_experience ...
What Changes for Your Drivers#
Before | Now |
|---|---|
Walked to a separate board to see the rankings | Press Statistics in the job panel. |
Formed a crew to take a route | Drive solo; friends ride along and pay the ticket to the driver. |
Always drove the same bus | Pick from the buses their level has unlocked; bigger buses pay more. |
Passengers popped into their seats | Passengers queue at the front door and board one by one; the bus is held at the stop until they are seated. |
No help in game | A Guide in the panel walks through the whole job. |
Levels and experience carry over unchanged. On an install that never had the leaderboard columns, the rankings start empty and fill up as drivers finish their first routes after the update.
Checking It Went Well#
Start the server. The console shows the Added missing column lines once if your table needed them, and nothing on the next restart.
Walk past the depot: one dispatcher with a floating marker, and no leaderboard board.
Open the dispatcher's panel. Your level and experience are what they were before the update, and the bus picker shows the buses that level has unlocked.
Finish a route and open Statistics. You appear on the daily, season and all-time boards within a minute.



