Documentation
For league admins & stewards
You are the one who makes a result official. This covers the lifecycle from an uploaded session to published standings, the stewarding tools around it, and the access-control and audit machinery that keeps those decisions accountable.
Capture and upload a race
Results come from a telemetry capture. The F1 game broadcasts UDP telemetry while you race, the free Pits n' Giggles app records it on a PC, and you upload the JSON file it saves. Each session (qualifying, sprint, race) is its own upload.
1. In the game (F1 23, F1 24 or F1 25), open Settings → Telemetry Settings: UDP Telemetry On, UDP IP Address set to the PC running Pits n' Giggles (127.0.0.1 if it is the same PC), UDP Port 20777, UDP Send Rate 20Hz or higher, and UDP Format matching the game you actually race (a 2026 Season Pack race on the 2025 format exports its teams as numbers). Ask every driver to set Your Telemetry to Public as well: on Restricted, their tyre wear, damage and strategy arrive empty.
2. Install Pits n' Giggles (versions 4.2 and 4.3 are fully supported; other versions still upload, with a version warning) and start it through its launcher before the session begins. It listens on UDP port 20777 by default.
3. When the session ends, Pits n' Giggles saves it as a JSON file. Open Upload telemetry, pick the tier, season and session, and attach that file. Every upload gets a health scan that flags a capture that looks incomplete; it never rejects one.
4. Open Results to generate the provisional classification from the capture, apply any penalties, then make it permanent. Live race mode, which streams a race while it is running, is a separate and optional setup.
The results lifecycle
Uploading a capture makes the game's classification viewable, but nothing is scored yet. Generate results on the Results page (or enter them by hand) to get a provisional, scored classification. Provisional results are a draft: you can still correct and reorder rows.
Penalties come in while a session is provisional: stewards apply time, points or DSQ penalties and the classification is recomputed. Drivers see neither a penalty nor its effect until the session is published.
Make permanent publishes the session: its results become final and count in the championship standings. The race's telemetry page always shows the provisional, game-side picture; final positions after penalties live on the results and standings pages. To change a published session, reopen it first.
Stewarding & penalties
Penalties, protests and anomaly review live under Race Control. A penalty is a ruling — added time, a points deduction, or disqualification — and applying or editing one recomputes the affected results.
Penalty presets let you apply common rulings consistently.
Anomaly detection
Anomaly detection flags telemetry that looks unusual. Flags are advisory — a prompt for a steward to look closer — never an automatic penalty or a final verdict.
Roles & permissions
Access is permission-based. A role bundles permission keys (league.manage, stewarding.manage, members.manage, roles.manage, billing.manage, activity.view). Built-in roles can't be edited; custom roles let you tailor access per league.
A member's role decides what they can do and what the sidebar shows them.
Activity log
The activity log records every privileged change with a snapshot of who made it, so history stays readable. It's per-tenant and retention-bounded, viewable with the activity.view permission.
Plans & entitlements
A 🔒 badge means a feature isn't part of your league's current plan — it stays visible so you can see what's available, and upgrading unlocks it. Enforcement is fail-open: a league with no explicit plan has everything unlocked.
Live stream (Twitch)
League Settings → Integrations → Twitch channel embeds your Twitch stream automatically whenever it goes live — paste a channel login or a twitch.tv link. Every signed-in member sees it, not just admins.
Twitch embedding also needs deployment-wide credentials only your system administrator can set (TWITCH_CLIENT_ID / TWITCH_CLIENT_SECRET). If they're missing, a warning appears next to the field — your league's channel is still saved, it just won't be polled.
Already in a league?
The application carries this same guide inside it: the help panel on any page opens the Help Center, with the identical topics and glossary plus a guided tour for your role.
Keep reading
The rest of the documentation, and the product it describes.