What goes wrong most often, what it actually means, and what to do about it. Most of these are rules of the race or configuration, not faults — the message on screen usually names the rule. For anything else, set Config.Debug = true and read the RACING lines in the server console and in F8.
Installation and Start-up#
The console repeats "Waiting for Framework to load..."
No framework was found when the resource started, so its bridge could not load — the first error above the repeated line says so. Make sure es_extended, qb-core or qbx_core is ensured before qs-advancedracing in server.cfg, and that its folder has that exact name. A renamed or different framework needs its own entry — see Adding a Framework.
Table 'racing_users' (or another racing_ table) doesn't exist
race.sql was not imported, or was imported into a different database than the one in your oxmysql connection string. Import it into the right one and restart.
Unknown column 'image' when a track is created
The last lines of race.sql use MariaDB's IF NOT EXISTS, which MySQL 8 refuses, so the picture column was never added. Run this once:
ALTER TABLE `racing_tracks` ADD COLUMN `image` TEXT NULL DEFAULT NULL;"Automated user not found"
The server writes the Automated organiser into racing_users on every start, and that write failed — the database error just before it explains why. Fix it and restart; automated competitions do not run without that row.
The console is full of RACING DEBUG lines
Config.Debug ships as true. Set it to false on a live server — that also removes the /race_cams test command.
"Locale xx does not exist" or "is missing key"
Config.Locale names a file that is not in locales/, or your file lacks a key added in an update. The script falls back to English for what is missing; copy the named keys from en.json into your file and translate them.
The Tablet#
F10 does not open the tablet
The key is a FiveM binding saved per player, so a player who rebound it — or who joined before you changed Config.AccessTabletWithKey — keeps their own key. Check Settings → Key Bindings → FiveM → Open Racing UI, or type /openracingui. If the command does not exist either, Config.AccessTabletWithKey is nil. Another script using F10 can also take the key first.
Using the tablet item does nothing
The item has to exist in your inventory under exactly the name in Config.TabletItem, and be marked usable where your inventory asks for it — see The Tablet Item. If another script also registers an item called tablet, only one of them wins: give racing its own item name.
The Competition race type is missing
It is shown only to drivers rated at least Config.CompetitionCreationMinElo (1250) and to admins. Lower the value to open competitions to more drivers.
A track cannot be added to a competition
Only verified tracks with no race scheduled on them are listed. An admin verifies a track with the tick on its card. A track that already has an upcoming race shows up again once that race is over.
There is no bin on a track
The bin on a track's page is shown to the driver who built it.
"This race is about to start. You cannot delete it"
A race cannot be cancelled in its last 5 seconds. Outside that window, only its organiser or an admin can cancel it; anyone else gets "Failed to delete the race".
The leaderboard or a track's best times are empty
Both come from competitions. Normal races change ratings but record no results, and the leaderboard lists only drivers whose competition ranking is above 0. Run a competition with two or more drivers and they fill up.
The map card shows the default picture, or none
The track has no Image Link, or the link does not lead straight to a picture. Use a direct https link to a .png or .jpg file, not to a page that shows one. Tracks without a picture use Config.DefaultBlipImage.
Building Tracks#
"You need vehicle" and nothing can be placed
The creator places everything relative to the car, so it only works from inside a vehicle. Get in one and the props preview appears.
"Too close to another checkpoint" or "to another object"
Checkpoints must be at least 5 metres apart, and so must props. Drive a little further before placing the next one.
"Track is too short"
The first and last checkpoints are less than 10 metres apart. On a circuit, end the route a little before the start line instead of on it: the lap closes through checkpoint 1 anyway.
"Please add at least 1 object"
A track needs at least one pair of props as well as its checkpoints. Press ENTER somewhere along the route — at the start line works well.
Joining and Racing#
There is no join prompt at the start line
The prompt shows to a player in a vehicle, within 30 metres of checkpoint 1, while entry is open. Entry closes at the start time, so a race that has started cannot be joined.
"Your vehicle class is not allowed to join"
The vehicle's racing class must be the race's class exactly — an X car cannot enter an S race. The message names your vehicle's class. If it reads nil, the vehicle's GTA class is missing from Config.VehicleClasses; open-wheel cars (GTA class 22) are the usual case:
Config.VehicleClasses = {
-- ...
[22] = 2, -- Open wheel → X
}"You don't have enough money to join this race"
The buy-in is taken from Config.MoneyType only — cash by default. A player with the money in the bank still cannot pay. Switch it to 'bank' if that suits your server better.
"Your ELO rating is too low"
The race is an automated competition with a minElo, and the driver is rated below it. Set minElo = 0 on that entry to let anyone in.
"Track is already in use"
A track holds one race at a time. Wait for the current one to finish, or pick another track.
The car will not move after joining
Correct behaviour: joined drivers are held on the line until the start, so nobody gets a head start. Press E to leave the race before it starts — the buy-in is refunded.
A race never ends and its track stays in use
A race closes once every driver who joined has finished or been eliminated. A driver who disconnects or crashes mid-race never reports either, so the race keeps waiting. Restarting the resource clears it; saved competitions and tracks are kept.
The winner was paid nothing, or less than expected
A race without a buy-in pays nothing. With a buy-in, each paid place receives its share of the buy-in amount from Config.Splits, into Config.MoneyType — see Payouts.
The rating did not change
Ratings change only in races with two or more drivers. The competition ranking — the leaderboard's number — changes only in competitions.
"You are already in a race. You cannot preview a track"
The GPS preview would mix its checkpoints with the race's. Leave or finish the race first.
Automated Competitions#
An automated competition never appears
It needs a verified track with no race on it; while there is none, the server tries again every minute. Verify a few tracks. Also check that startTime is a key of Config.PredefinedTimes — otherwise the console says "The defined time does not exist" — that each entry has its own id, and that tracks is left as nil.
A competition at a fixed hour ran once and stopped
Time-of-day entries are counted from the date the server started. On a server that has been up for more than a day the next date is already in the past and the console reports it. A daily restart keeps them on schedule.
Still stuck? Open a ticket and include the server console from the start of the resource with
Config.Debug = true, your framework and its version, and what was on screen. A screenshot of the F8 console helps for anything about the tablet or the race HUD.



