Running a proper league race weekend comes down to four things: a locked entry list so only your registered drivers can join, Balance of Performance to even up a mixed field, the right session structure, and a penalty plugin, since the base server can't enforce serious race rules on its own. This guide walks through each one.
Locking the Grid Without Booking Mode
The old-fashioned way to lock a grid is booking mode, but it's clunky and Kunos's own documentation recommends against using it. The modern approach keeps pickup mode on and locks the entry list instead:
LOCKED_ENTRY_LIST=1 restricts the server to the exact drivers you've listed by Steam64 ID in entry_list.ini. Combined with pickup mode, each registered driver connects and takes their assigned slot, giving you a fixed, known grid without the booking-session workflow.
Building the Entry List with Balance of Performance
Each [CAR_N] block in entry_list.ini pins a car and skin to a driver's Steam64 ID and carries that car's Balance of Performance (BoP):
The two BoP levers behave differently:
BALLASTadds weight in kilograms, which slows a car and changes how it handles.RESTRICTOR(0-100) cuts engine power without touching handling. Use it when you only want to blunt straight-line speed.
Set SPECTATOR_MODE=1 on a slot to mark it as a non-racing entry, useful for a broadcast camera or race control.
Structuring the Race Weekend
Sessions run in a fixed order: practice, then qualifying, then race. A typical sprint weekend looks like this:
For a mandatory pit stop, add the window to [SERVER]:
A stop only counts if the driver enters the pits and stops in their box inside that window. Full detail on every session and rule key is in our server configuration guide.
Enforcing Penalties
Real leagues layer a plugin on top for proper enforcement:
- KissMyRank — automated penalties for track limits, collisions, and speeding, plus safety ratings. The pragmatic choice for most sprint leagues.
- Real Penalty — the endurance standard, with automated stop-and-go, track-limit strikes, and driver-swap and minimum pit-time enforcement. It's a paid plugin that requires a client-side app.
For championship standings across multiple rounds, the community standard is assetto-server-manager (ACSM) by JustaPenguin, which integrates with KissMyRank, Real Penalty, and stracker.
🛠️ Troubleshooting League Server Issues
Random players still joining:ConfirmLOCKED_ENTRY_LIST=1is set and that every registered driver's Steam64 ID is entered correctly inentry_list.ini.A driver can't join their assigned slot:Double-check theirGUIDvalue for typos, and confirm they're connecting on the correct Steam account.Grid capped lower than expected:Most tracks cap out around 24 drivers by pit box count, regardless of yourMAX_CLIENTSsetting.Pit stop not counting:The driver must fully stop in their own pit box within theRACE_PIT_WINDOW_START/RACE_PIT_WINDOW_ENDrange.
With the grid locked, BoP applied, and a penalty plugin in place, you've got a championship-grade server. If you run into trouble setting any of this up, no worries! Just open a support ticket and our team will gladly help.