Skip to content

Quick race

Quick race is a single race from the main menu, outside the career. The player picks a car, a track and a distance, then Easy, Medium or Hard. It pays a little XP and cash, gives no stars and puts no time on the leaderboards.

The rival is nameless (“Rival”) and drives a copy of the player’s car: the same model and the same parts, with less power and a driver who makes more or fewer mistakes (QUICK_RIVALS in player/quickRace.ts). Each level has its own paint, so the levels look different on the line.

Level Power Sloppiness Paint
Easy 72% 0.4 Toxic Lime
Medium 82% 0.3 Bayside Blue
Hard 90% 0.1 Jet Black

Because the rival copies the car, the difficulty follows the player’s progress in every class without a table per car. scripts/quickRaceCheck.ts measures it: a player at 85% of the car’s best run (the career check’s HUMAN_EFFICIENCY) wins 80 to 88% of easy races and 37 to 71% of medium ones, and hard needs a better driver (62 to 84% at 92% of the best run). Traction control (2026-11-08) made a full-power car worth more against a detuned copy, so easy went from 65% to 72% power and medium from 75% to 82% to keep those rates.

A quick race is a CareerRace without an event, with an id like quick~hard~harbor~half (quickRaceId). pickRace in race/EventRace.ts and the race server’s raceOf (party/src/api/raceApi.ts) build it from that id and the car raced, so the ticket, the replay and the result screens work as for a career race. The server rebuilds the rival from the car stored on the ticket, so the client cannot pick a weaker one.

judgeQuickRace (party/src/race/quickRace.ts) settles it with settleQuickRace (player/level/quickRaceRewards.ts) instead of the career’s prize and stars, and skips the leaderboards and the double prize. Results and the pause menu lead back to the quick race screen (race/raceHome.ts).

Tracks are those of the districts the career has opened, so a quick race shows nothing the career has not.

A win pays a share of the furthest open district’s average event prize (quickRaceCash, rounded to $50), the same base as the daily bonus, so quick races keep up with the career. Medium pays about a quarter, what replaying an average event pays (REPLAY_SHARE).

Level Win Finished loss
Easy 10 XP, 15% of the average event prize ($700 in Street) 5 XP
Medium 20 XP, 25% ($1,200 in Street) 5 XP
Hard 35 XP, 35% ($1,700 in Street) 5 XP

A race that does not reach the line pays nothing. Only the first 20 finished quick races of a UTC day pay (GarageState.quickRaces, the server’s clock), so an easy rival cannot be farmed for cash or levels. The screen shows how many prize races are left today.

tests/quickRace.test.ts covers the ids, the rival and the rewards with the daily cap. npx tsx scripts/quickRaceCheck.ts prints the win rates per level.