Skip to content

Usage

Opening the Tablet

Use the racing_tablet item from your inventory to open the racing UI. The tablet is required to join or participate in any race - players without it are disqualified at the start countdown.

The tablet can also be opened programmatically from another resource:

lua
exports["prp-racing"]:OpenUI(source)

Race Modes

ModeDescription
UnrankedOpen race created by any player; no ELO change
RankedPlayer-created ranked race (allowlist), or auto Race of the Hour when SystemRaces.ranked = true (default); affects ELO and season standings
PrivatePassword-protected race; invite only
Pink SlipWinner receives a vehicle transfer claim for the loser's car

Creating a Race

  1. Open the tablet and go to the Races section.
  2. Select a track and click Create Race.
  3. Configure the race:
    • Name, vehicle class(es), min/max players, lap count
    • Bid (entry fee) and additional reward pool with currency
    • Ghost mode, reverse route, first person, password (for private races)
  4. The race appears in the active race list. Players can join by selecting their registered vehicle.
  5. The race creator starts the countdown when ready. Vehicles are frozen and a 15-second countdown begins.

Vehicle class check

Players must arrive at the start in the correct vehicle matching the race class and registration plate. Wrong vehicle = automatic DNF.

Ghost Mode

Ghost mode controls phasing during a race (players clip through other vehicles while active). It applies to player-created races (unranked, ranked via tablet, private, pink slip) and Race of the Hour system races.

Ghost mode values

ValueIn-game labelBehaviour
0DisabledNo phasing — full contact racing
1Enabled (Full)Phasing stays on for the whole race
230 secPhasing for 30 seconds after the countdown
360 secPhasing for 60 seconds after the countdown
490 secPhasing for 90 seconds after the countdown
5120 secPhasing for 120 seconds after the countdown

Timed phasing starts after the pre-race countdown (SvConfig.StartTime, default 15 s). The HUD shows remaining phasing time during the race.

In-game (race creator)

When SvConfig.AllowGhostModeInUI = true (default), the Ghost Mode dropdown appears in the race creator. The host picks None / Full / 30 s / 60 s / 90 s / 120 s before creating the race. This works for normal and Create Ranked races.

When SvConfig.AllowGhostModeInUI = false, the dropdown is hidden and replaced by a read-only label. The server always applies SvConfig.PlayerRaceGhostMode — players cannot override it from the tablet.

Server config

OptionDefaultApplies to
SvConfig.AllowGhostModeInUItruePlayer-created races — show ghost picker in tablet
SvConfig.PlayerRaceGhostMode5Player-created races when UI selection is disabled (05)
SvConfig.SystemRaces.ghostChance100Race of the Hour — chance (0–100) to apply ghostMode
SvConfig.SystemRaces.ghostMode5Race of the Hour — ghost mode when the roll succeeds (05)

Examples

lua
-- Hosts pick ghost mode in the tablet (default)
SvConfig.AllowGhostModeInUI = true

-- Server locks all player-created races to 30 s phasing
SvConfig.AllowGhostModeInUI = false
SvConfig.PlayerRaceGhostMode = 2

-- Race of the Hour: always no phasing
SvConfig.SystemRaces.ghostChance = 100
SvConfig.SystemRaces.ghostMode = 0

-- Race of the Hour: 50% chance of full phasing, otherwise none
SvConfig.SystemRaces.ghostChance = 50
SvConfig.SystemRaces.ghostMode = 1

Ranked vs Race of the Hour

Create Ranked (tablet, with allowlist) uses the same ghost rules as other player-created races (AllowGhostModeInUI / PlayerRaceGhostMode). Race of the Hour always uses SvConfig.SystemRaces.ghostChance and SvConfig.SystemRaces.ghostMode only. Whether it affects ELO is controlled by SvConfig.SystemRaces.ranked (default true).

Race of the Hour

Auto-generated system race (ownerStateId = -1). Server picks a verified track, vehicle class, laps, bid, rewards and ghost settings from SvConfig.SystemRaces.

Ranked vs unrankedSvConfig.SystemRaces.ranked (default true, same as before):

rankedBehaviour
true (default)raceMode = ranked, affects ELO and ranked track stats; rewards skip RewardValidation
falseraceMode = unranked, no ELO; casual track stats; rewards require RewardValidation
lua
SvConfig.SystemRaces.ranked = false

Only one active system race exists at a time. A new race is created when:

  • The resource starts (if none is waiting)
  • The current system race finishes
  • The current system race fails to start (not enough players)

Start time

SvConfig.SystemRaces.startDelayMinutes — minutes after generation before the race starts. Default: 60.

Testing example

lua
SvConfig.SystemRaces.startDelayMinutes = 1
SvConfig.SystemRaces.minPlayers = 1

Restart prp-racing after changing config. If a system race is already waiting, cancel or wait for it to finish before a new one is generated with the updated delay.

Pink Slips

  1. Create a Pink Slip race and set the vehicles to be wagered.
  2. The winner receives a vehicle claim recorded in the database.
  3. Travel to the pink slip redemption point (configured in sv_config.luaSvConfig.PinkSlips.redeem).
  4. Pay 120 RACE (configurable) to complete the transfer and receive the vehicle.

Crews

  1. Open the tablet and go to Crews.
  2. Click Create Crew - costs $10,000. Set a name, tag and color.
  3. Invite players by nickname. You can define custom roles with specific permissions.
  4. The crew ELO is tracked per season alongside individual ELO.

Track Creator

  1. Open the tablet, go to Tracks and click Create Track.
  2. A free-cam mode activates. Place checkpoints along your route using the prop selection menu.
  3. Switch to Prop Mode to place decorative objects (tires, cones, barriers, lights, trailers).
  4. Save the track - it is saved as unpublished. Publish it to make it available for races.

Track flags

Admins can mark tracks as Verified, Official or Featured from the admin panel in the tablet.

Daily Rewards

Races completedReward
2RACING_CASE
5RACING_CASE
7RACING_CASE

Progress resets at midnight. Up to 9 races are tracked per day. There is also a 2.5 % (25/1000) random chance to receive an additional case after any race that qualifies for rewards.

Reward Validation

Player-created ranked races and Race of the Hour when SystemRaces.ranked = true skip these checks. Other unranked races (and Race of the Hour when ranked = false) must meet:

RequirementDefault
Minimum players4
Minimum race duration5 minutes
Minimum checkpoints0
Require verified trackNo

Configuration

config.lua

OptionDefaultDescription
Config.TrackCamEntityPreventiontrueIf the track creator prop is placed on another entity, should the camera be returned to it's original position, prevents props on top of each other
Config.TrackCreatorCamDist25.0How far ahead can the track creator prop go
Config.RacingItem"racing_tablet"Inventory item name
Config.RequireItemToOpentrueRequire item to open tablet
Config.LeaderboardTimeout15000Post-race leaderboard display duration (ms)
Config.ShowCreatorUsagetrueShow active track creator sessions to others

sv_config.lua

OptionDefaultDescription
SvConfig.StartTime15Race countdown duration (seconds)
SvConfig.AllowGhostModeInUItrueAllow ghost mode selection in the race creator tablet
SvConfig.PlayerRaceGhostMode5Ghost mode for player-created races when UI selection is off (0 = none, 1 = full, 25 = timed)
SvConfig.SystemRaces.ghostChance100Race of the Hour — chance to apply system ghost mode (0–100)
SvConfig.SystemRaces.ghostMode5Race of the Hour — ghost mode when chance succeeds (05)
SvConfig.SystemRaces.startDelayMinutes60Race of the Hour — minutes until start
SvConfig.SystemRaces.minPlayers4Race of the Hour — minimum players required to start
SvConfig.SystemRaces.rankedtrueRace of the Hour — ranked (ELO) when true; unranked when false
SvConfig.EloSettings.startingElo1000Starting ELO for new players
SvConfig.EloSettings.kFactor64ELO k-factor (how fast ELO changes)
SvConfig.CrewSettings.maxMembers20Maximum crew members
SvConfig.CrewSettings.createCost10000Crew creation cost ($)
SvConfig.DNFTime600Seconds until DNF is applied after last finisher
SvConfig.SeasonLength2678400Season duration in seconds (31 days)
SvConfig.CaseRewardChance25Case drop chance per qualifying race (0–1000)
SvConfig.PoliceDispatchChance0.50Probability police are alerted to a race
SvConfig.PinkSlips.process.amount120RACE currency cost to redeem a pink slip
SvConfig.UseBridgeAllowlisttrueUse prp-bridge allowlist system
SvConfig.UseAdminAllowlisttrueWhether admin checks use bridge allowlist also or just bridge.fw.isAdmin
SvConfig.UseRankedAllowlisttrueWhether rank allowlist is needed for ranked race creation
SvConfig.RequireALToCreateRacefalseDo they need the "create_race" allowlist to create a race
SvConfig.RequireALToCreateTrackfalseDo they need the "track_creator" allowlist to create a race
SvConfig.GenerateRaceOfTheHourtrueWill races of the hour generate
SvConfig.RequireItemToRacetrueWill the racing tablet be required to join a race

Allowlist keys

KeyPurpose
track_creatorPermission to open the track creator tool
create_racePermission to create races (if RequireALToCreateRace = true)
create_ranked_racePermission to create ranked races
racing_adminFull admin access in the racing tablet