What goes wrong most often, what it actually means, and what to do about it. Most of these are configuration, not faults. While you investigate, turn Config.Debug on: the script then explains in the server console and in F8 how far it got before it stopped.
Installation and Access#
The console says "You have renamed the script!" and the server freezes
The folder is not named qs-taxijob. Stop the server, rename the folder back to exactly qs-taxijob, fix the ensure line in server.cfg to match, and start again.
Nothing appears: no dispatcher, no blip
Taxi Job did not find a framework. es_extended, qb-core or qbx_core has to be running and has to start before qs-taxijob in server.cfg. Running a renamed core? See Integrations → Renamed Frameworks.
The dispatcher is there but the Taxi Services blip is not
Correct behaviour. The blip is only drawn for players with a job listed in Config.TaxiJob, so the map is not cluttered for everyone else. Give yourself the job, or check Config.EnableBlip. With Config.RequireJob off, everybody sees it.
"You don't have the taxi job" when starting a shift
The player's job name is not in Config.TaxiJob. On QBCore and Qbox the job must also exist in the core's shared jobs file. On ESX it is registered automatically on first start — if the console said Could not register the ESX job rows, your database has no jobs table yet.
The dispatcher never spawns
The model in Config.StartJob.ped.model does not exist. The client console (F8) says Ped model '…' never loaded — fix the name, or put back cs_manuel.
The leaderboard fails with "Illegal mix of collations"
The identifier columns could not be matched to your framework's collation automatically. The console printed the exact ALTER TABLE statement on start — run it once in HeidiSQL or phpMyAdmin and restart.
Shifts and Fares#
"Parking lot is full"
Every bay in Config.VehicleSpawnCoords has a vehicle within a couple of metres of it — usually cabs or cars left behind by other players. Clear them, or add more bays: one driver can start per free bay.
"Your level is too low to drive that cab"
The cab's levelRequired is above the driver's level. The panel shows locked cabs dimmed with the level they need; pick one that is unlocked.
No fare ever comes in
The radio waits between Config.CustomerCalls minTime and maxTime seconds (5 to 20) before each fare. If it never calls, check that Config.Rides.startLocation and finishLocation both hold at least one point — with either empty, shifts are refused.
There is no prompt at the pickup or the drop-off
The prompt only appears with the driver at the wheel of their own cab, the cab fully stopped, and within Config.InteractDistance (12 m) of the point. Pull up closer and come to a full stop. A cab taken from someone else does not count.
"There are no free seats available for the passenger"
Every passenger seat is taken — usually by friends riding along. The fare waits: free a seat and press E again.
"The fare could not be paid in" or "This item does not exist: black_money"
The money could not be credited. On ESX an illegal fare needs the black_money account; on QBCore and Qbox it needs a black_money item in your inventory's item list — stock QBCore only ships markedbills. A full inventory refuses the item too. The experience is still given; the leaderboard earnings are not.
The shift ended on its own
The driver lost the job, disconnected, or the resource was restarted — the server drops a shift it can no longer account for, and the client cleans up the cab, the blips and the meter. Another resource can also end a shift with the cancelShift export.
The cab has no keys, or no fuel
Keys are detected once, when the client loads, so the key script must start before qs-taxijob in server.cfg. Fuel is only filled with Config.Fuel on and Config.FuelExport pointing at a fuel resource that is running.
The police are never alerted on an illegal stop
Config.DispatchExport is empty by default. Fill it in with your dispatch resource's alert — see Integrations → Police Dispatch. It only runs when the stop is actually reported, which at level 1 is one stop in five.
Player Passengers#
A player got in but was never asked for a destination
The driver has to be on shift, and the two have to be within 10 m of each other. A cab carries one player fare at a time: a second passenger is turned away while the first fare is running, and offered again once it is over.
"You don't have enough money"
Player fares are paid in cash, up front — not from the bank. The map opens again so the passenger can pick somewhere closer.
"The cab did not cover that route, so the fare earned no experience"
The driver was paid, but the server did not see the cab drive the route: it covered less than 75% of the quoted distance, or arrived sooner than a car could have. Experience and leaderboard earnings are only given for a fare that was really driven.
The passenger was never asked to rate the driver
Only trips longer than 100 m can be rated, and the prompt has to be answered within three minutes. Each fare can be rated once.
"The driver is no longer available"
The driver clocked off, disconnected or lost the job before the ride was finished. If the fare had been paid, it has already been refunded in full.
Leaderboards and Rewards#
A driver is missing from the leaderboard
Each ranking only lists drivers with experience in that period, and refreshes every Config.UpdateLeaderboard minutes. A driver who has not finished a fare today is not on the daily board yet.
A winner was not paid
Prizes go out at the reset. A winner who was offline is paid on their next login — the prize waits in qs_taxijob_rewards until then.
The reset happened at the wrong hour
Resets follow the clock and time zone of the machine the server runs on, not the players'. Daily at 00:00, season at 00:00 on the first of the month.
The Statistics or Guide button is missing
Config.EnableLeaderboard or Config.EnableGuide is off. The button is hidden rather than left doing nothing.
Messages and What They Mean#
The messages drivers see, by translation key — useful when a player reports one in another language.
Key | Means |
|---|---|
| The player has no job listed in Config.TaxiJob — or lost it mid-shift. |
| A shift is already running for this player. |
| The chosen cab needs a higher level. |
| No free bay on the rank, or the cab could not be spawned. |
| The cab has no free seat for the fare. |
| The fare could not be credited — a missing account, or a full inventory. |
| The inventory has no such item — almost always black_money on QBCore. |
| The driver of a player fare left, clocked off or lost the job. |
| A player fare was paid but not driven, so it earned no experience. |
| The shift ended — clocked off, or no longer on file on the server after a restart. |
Still stuck? Open a ticket and include the server console from the start of the resource, the F8 output with
Config.Debugon, your framework and its version, and yourconfig/config.lua.



