For the complete documentation index, see llms.txt. This page is also available as Markdown.

Matchmaking

Matchmaking is an automated way to create ranked races. Instead of an admin manually setting up an event, racers put themselves in a queue, and the server groups people of a similar skill level together and builds a race for them. Everyone gets to vote on the track, drives to the start line, and races for ELO and a server‑funded prize.

The whole point is to keep competitive races flowing without anyone having to organize them.

Matchmaking is disabled by default, make sure to read and configure everything before enable it.

General

Field
Default
What it does

Max Racers

30

Hard cap on how many racers a single lobby can hold.

Min Racers (read‑only)

2

Minimum racers required to lock a lobby. This value lives in the ELO config (server/editable/_elo.lua, Config.MinEloRacers) because it also decides when a normal race counts toward ELO. It is shown here for reference only — edit it in the ELO config.

Fill Min Core

1

How many racers must explicitly pick a class before wildcard ("Fill any lobby") racers are allowed to top that class up. 1 means as soon as a single racer wants that class. Raise it if you only want wildcards pulled into busier classes.

Tick Interval (s)

5

Seconds between matchmaking attempts — how often the server tries to form lobbies.

Queue Update (s)

3

Seconds between the live queue‑count updates pushed to waiting racers.

Track Cache (s)

60

How long the list of ranked‑eligible tracks is cached before it is re‑read from the database.

ELO Bracket

Matchmaking pairs racers of a similar skill level. The bracket starts strict and widens the longer a racer waits, so nobody is stuck in the queue forever on a low‑population server.

Field
Default
What it does

Initial ±

150

ELO range accepted the moment a racer joins the queue.

Widen Every (s)

30

Every N seconds a racer waits, the accepted ELO range grows.

Widen By ±

100

How much the accepted range grows on each widen step.

Max ±

2000

The range never widens past this. A high value effectively means "match anyone".

Example — with the defaults, a racer's tolerance is ±150 at 0s, ±250 after 30s, ±350 after 60s, and so on up to ±2000.

Invite & Vote

Field
Default
What it does

Invite Seconds

45

How long a racer has to accept a match invite before it expires.

Starts In (min)

10

Minutes until the race starts once the lobby locks — time for racers to reach the start line and check in.

No‑show Cooldown (min)

10

Minutes a racer is locked out of the queue if they accept a match but never check in.

Track Voting

On

When on, racers vote on which track to race. When off, a random eligible track is picked automatically.

Vote Candidates

3

How many tracks are put to the vote each time.

Vote Seconds

20

How long racers have to cast their vote.

If fewer eligible tracks exist than Vote Candidates, the vote simply offers all of them. If only one track qualifies, voting is skipped and that track is used.

Generated Race

These control the ranked race that matchmaking creates once a lobby locks.

Field
Default
What it does

Money Account

cosmo

Account the prize pot is paid from. Must be one of your configured money accounts (Config.MoneyAccounts).

Phasing

Full Race – Racers Only

Collision phasing used for the ranked race. Options come from Config.PhasingOptions, plus No phasing.

Prize Pot Min

25

Lower bound of the server‑funded prize pot.

Prize Pot Max

100

Upper bound. A random amount in the min–max range is used per race.

Laps Min

1

Fewest laps rolled for circuit tracks.

Laps Max

3

Most laps rolled for circuit tracks.

Reversed

Off

Enables backwards races (see note below).

There is no buy‑in in matchmaking. Racers are placed into a lobby whose class they may not own a car for, so charging an entry fee would be unfair. Ranked races are free to enter — ELO and the no‑show cooldown are the incentives. The prize pot is funded by the server using the Prize Pot range above.

Reversed is a chance, not a guarantee. With Reversed enabled, the server does not run every race backwards. For each race it rolls 1–5 and only reverses on a 2 — roughly a 20% chance — so the direction stays a surprise. With Reversed disabled, every race runs in the normal direction.

Two values that matchmaking depends on live elsewhere, in server/editable/_elo.lua:

Setting
Default
Why it matters to matchmaking

Config.MinEloRacers

10

The minimum racers needed to lock a lobby (shown as Min Racers in the tab). Also the threshold at which any race affects ELO.

Config.MinCheckpoints

50

A track needs at least this many checkpoints to be ranked‑eligible. Only ranked‑eligible tracks are offered in the vote and used for matchmaking races.

Last updated