SimBot Race Reports watches your drivers' iRacing results and posts a rich image race card to Discord the instant they finish an official race — podiums routed to their own channel, everyone else to the main feed.
Podium detection is top-3 finish position within car class, not overall — correct for multiclass series where P8 overall can still be a class win.
Every report is a rendered image: finish position, iRating and Safety Rating deltas, incidents, weather, and position/lap-time charts — one glance tells the story.
Adaptive polling and cross-driver discovery keep iRacing API usage low — one call per driver per poll, and busy drivers are found faster as your league grows.
Re-check frequency scales with how recently a driver raced: 5 minutes if active this week, up to a 2-hour ceiling if dormant.
Every fetched race is scanned for other tracked drivers in the same field, including across different Discord servers — no extra API call.
Inline SVG charts for position-over-laps (class vs. overall, dual axis) and lap-time trend with the fastest lap marked.
Podium finishes route to their own channel automatically, computed correctly for multiclass fields.
Team results show the full roster sorted by iRating, with each driver's laps, iRating change, and Safety Rating change.
An "all races" channel and a "podiums only" channel can both be set at once, independently.
Every post is claimed in a dedup table before sending — a restart mid-poll can never result in the same race posted twice.
If image rendering ever fails, the report still posts as a Discord embed — nothing gets dropped.
Simple, self-serve tracking — every member tracks exactly one iRacing customer ID per server, no juggling IDs.
An admin runs /racereports-admin setup to pick an all-races channel and/or a podiums-only channel. The bot verifies it can post there before saving.
A member runs /racereports track with their iRacing customer ID. Their watermark is seeded to their most recent existing race — no history spam.
Due drivers are checked based on their adaptive cadence and queried once through a shared rate limiter.
Any race newer than the stored watermark triggers a full results fetch — weather, splits, standings, and per-driver stats, all in one response.
Position and lap-time charts are added, then the card is rendered to an image. If rendering fails, an embed posts instead.
The report posts to every server tracking the driver — all-races channel always, podium channel on a class top-3 — with a dedup claim guaranteeing no double-posts.
Every image below was generated by the bot itself from a live iRacing result — nothing mocked up.

Gold accent, medal, and the "PODIUM" tag — routed to the podiums channel automatically.

Finish position, rating deltas, weather, and both charts, from a single API response.

Full roster sorted by iRating, with each driver's laps and rating changes.
SimBot Race Reports is self-hosted — point it at your own Discord app and iRacing credentials, then set your channels.
View setup instructions