Features
Broadcast Overlays (by @estem8 )
Five new widgets bring TV-style race coverage to iRacing streams, each with its own OBS Browser Source.
- Timing Tower: Choose IMSA, WEC or F1 themes, add a series logo, and rotate between intervals, position changes, pit and tyre information, with starting-grid and camera-car displays.
- Ticker: Scroll through standings, fastest laps and leading cars by manufacturer.
- Events: Show race-control cards for incidents, flags, fastest laps, pit stops and penalties.
- Weather: Display a card when rain, track wetness or track temperature changes.
- Podium: Show the top three in each class after the checkered flag, as steps or trophies.
- Configure all five modules on one Broadcast page with live previews, shared transitions, reset controls and individual show/hide shortcuts.
broadcast-widgets-demo-v2.mp4
Le Mans Ultimate (Beta) (by @Foribald)
Availability depends on the widget, car and session, and some values are estimated or unavailable.
- LMU now supports Delta Speed, Lap Timer, Garage Cover, Weather, Sector Delta and Shift Light.
- Show LMU rank plates, achievement badges, nationality flags, actual car numbers and team names in Standings and Relative, where available.
- Add tyre compounds, track-limit points, virtual energy and drive-through, stop-go or time-penalty badges; virtual energy falls back to fuel for cars without energy limits.
- Overlays follow the car selected by the LMU camera.
LMU setup, supported widgets and current limitations
.ibt and Garage 61 CSV files, with no native LMU telemetry-file import.
Widget Scaling (by @tariknz)
Scale each widget's content from 50% to 200% without changing its saved layout size, including desktop overlays, browser sources and Gantry panels. Copies of a widget can use different scales, and existing Standings scales are carried over.
Individual Overlay Windows (Experimental) (by @tariknz)
Enable General > Individual Overlay Windows (Experimental) to give each locked widget its own window and allow it to span monitors. Edit Layout temporarily returns to shared display windows.
Switching modes resets local chart history and any Lap Trace recording in progress. Shared display windows remain the default; early development measurements used more CPU and memory with individual windows and did not establish an FPS improvement.
Fuel History Table (by @tariknz)
Choose Fuel History > Display > Table to show 1 to 50 completed laps from the current session, newest first, with five selected by default. Fuel used is shown to two decimal places in litres or gallons, starting with your first completed lap.
Existing dashboards keep their current graph display.
Standings Appearance and Lap Intervals (by @MaegawaDaichi)
- Adjust driver-row backgrounds and your player highlight independently of the overall widget background.
- Choose Laps When Lapped to show whole-lap differences to the preceding car in class, including in final results; Time remains the default.
Gantry (by @23Kev)
Choose the built-in Gantry table, reuse your overlay's Standings settings, or create a separate Gantry-only standings layout. Overlay-style views retain camera selection, followed-driver highlighting and final results after the session ends.
Fit the graph to the player and pinned drivers, or include all drivers, so a car far behind no longer compresses the close battles. An optional gap cap limits the displayed range, while off-scale cars remain visible at the edge with their true values available on hover.
Stream Chat (by @creagel)
Twitch Chat becomes Stream Chat, combining Twitch and YouTube messages in one overlay with optional platform icons. Enter a YouTube channel handle such as @channelname to connect while it is live; existing Twitch layouts and settings are carried over.
YouTube currently displays ordinary chat messages, excluding paid items such as Super Chats.
Other Improvements
- Select Standings > Display > Gap Reference > Player to see negative gaps to cars ahead, positive gaps to cars behind and zero for your car; while spectating, gaps follow the camera car. Class Leader remains the default, and intervals keep their separate meaning. Race gaps are position-based estimates, while practice and qualifying compare best laps. (by @tariknz)
- When a lap cannot become a reference, Lap Trace now explains why instead of continuing a progress bar that ends without saving. Messages cover out-laps, joining mid-lap, pit entry, off-tracks, incidents, spins, resets, interrupted recording and simulator-invalidated LMU laps. (by @Foribald)
- Optionally flash the gear number in Input on upshifts and downshifts, with separate configurable colours. The effect is off by default and still recognises shifts that pass through neutral. (by @estem8)
- Radar now uses a pole side for each track's pace formation. Bind Radar: Flip Pole Side to correct the current track and remember the choice, with a separate correction for standing starts. (by @estem8)
- Reset the current track's learned pit entry and exit from Pitlane Helper > Calibration, leaving other tracks intact. Desktop Settings can also open the calibration file for editing and reload validated changes; learning pauses while you edit and resumes after a successful reload. (by @tariknz)
- Add Fuel Level, Last Lap, Best Lap, Top Speed, Manufacturer Position and Class Rank to the Information Bar. All six are optional and disabled by default. (by @tariknz)
- Optionally show humidity in Standings and Relative headers or footers and the Information Bar. 0% readings display correctly in iRacing; unavailable LMU humidity is omitted. (by @tariknz)
- Read the notes for your installed version directly in Settings, with a New badge for unread notes and an optional dialog after upgrades. First installs do not trigger the upgrade dialog, and previously fetched notes remain available offline. (by @tariknz)
- Enable or disable widgets directly from the Settings menu, with copied instances reflected in each switch and new settings defaults filled in across saved profiles. (by @estem8 and @tariknz)
- Unsupported widgets stay hidden by default, with a hidden-widget button to inspect them. (by @estem8 and @tariknz)
- Expand the website's interactive preview to fill your browser, then press Escape to return. (by @estem8 and @tariknz)
- When analytics is enabled, changes to saved pit-lane calibrations and Radar pole-side corrections are shared to help improve track data; the About page explains what is collected, and analytics opt-out is respected. (by @tariknz and @estem8)
Performance
- Restore intended iRacing update rates for timing, standings and other calculations, reducing unnecessary processing without a demonstrated app-wide FPS gain.
- Avoid preparing unused Telemetry Inspector data for ordinary browser and OBS clients.
- Reduce repeated trace-buffer creation and pedal-bar layout work in Input while preserving input precision; game FPS gains have not been measured.
- Load the current track's drawing as needed instead of loading the entire collection upfront.
- Keep more layout and drawing work local to each widget; Windows GPU and FPS gains remain unmeasured.
Bug Fixes
- Correct mirrored or unstable Radar formation columns, improve oval handling and spotter-side placement, reduce false crash warnings for slower classes, and keep closing-speed response consistent across update rates. (by @estem8)
- Use recorded start/finish crossings for Battle’s Prev gaps; Delta still depends on estimated live gaps, and Prev/Delta are unavailable in replays. (by @estem8)
- Standings and Gantry retain final gaps and intervals through cooldown and cars leaving the track, preferring official iRacing results when available. (by @tariknz)
- Keep collecting session history while an enabled Gantry is minimised or closed, and retain incident session names after the simulator exits. (by @23Kev)
- Copy the correct detected OBS server address and open each profile's separate browser layout through Actions > Edit Browser Layout. (by @tariknz)
- Include a signed Windows shortcut launcher in fresh installations and automatic updates. (by @tariknz)
- Prevent the reported keyboard lockup after returning from Remote Desktop; combined keyboard/controller button boxes may still be affected, and keyboard media or macro keys can no longer be bound as gamepad controls. (by @tonyshutov)
- Preserve uploaded player icons used by other profiles when replacing or removing an icon; unused uploaded files now remain on disk. (by @tariknz and @Foribald)
- Preserve the last valid fuel history and reference-lap files and show a Settings warning plus a notification when the disk is full; failed saves retry after another change or when quitting. (by @tariknz)
- Handle special characters in iRacing driver/team names and setup paths that could prevent session data from loading. (by @tariknz)
- Guard against crashes or invalid reads when iRacing's telemetry layout changes. (by @tariknz)
- Show oversized practice push-to-pass counts as
999+ swithout overflowing adjacent columns. (by @tariknz) - Suppress iRacing Shift Light cues in top gear and while braking or off throttle, including downshift blips. (by @Foribald)
- Prevent malformed Input traces when increasing Max Samples. (by @tariknz)
- Explain invalid, duplicate or OS-unavailable shortcuts beside the affected binding while retaining the saved shortcut after a rejected edit. (by @tariknz)
- Refresh iRacing series and car names, add Syria's flag mapping and update Sonoma Raceway's Cup Long map. (by @tariknz)
- Accept bracketed array indexes when inspecting session data in Telemetry Inspector. (by @Foribald)
- Restore performance-capture startup on Node 24 and replay launch when automatic simulator detection is enabled. (by @estem8)
- Improve diagnostic error details and installation/version attribution while respecting analytics opt-out and removing private path prefixes. (by @tariknz)
Changelog
- feat: TV-style Broadcast overlay for OBS streams: tower, ticker, events, weather and podium by @estem8 in #787
- feat: describe widget settings once with type-checked property paths by @estem8 in #797
- feat: show recent fuel history as a lap table by @tariknz in #801
- feat: expand site preview to fill the browser viewport by @tariknz in #805
- feat: add independent scaling to every widget by @tariknz in #814
- feat: show humidity in headers, footers and Information Bar by @tariknz in #816
- feat: add fuel, lap, speed and position options to Information Bar by @tariknz in #817
- feat: manage pit lane calibration from settings by @tariknz in #821
- feat: report changed pit lane calibration at startup by @tariknz in #822
- feat: announce merged pull requests in Discord by @tariknz in #823
- feat: show GitHub release notes after updates by @tariknz in #825
- feat: show standings gaps relative to the player by @tariknz in #826
- feat: control telemetry replay with an overlay scrubber by @tariknz in #827
- feat: flash the gear number on upshift and downshift by @estem8 in #829
- feat: add widget switches to Settings by @estem8 in #830
- feat: support youtube stream chat by @creagel in #833
- feat: add standings row opacity and optional lap intervals by @MaegawaDaichi in #837
- feat: see driver ranks, flags, penalties and per-car data in Le Mans Ultimate by @Foribald in #838
- feat: collect Le Mans Ultimate ranks, penalties and per-car data for the overlays by @Foribald in #846
- feat: see why Lap Trace can't record the lap in progress by @Foribald in #848
- feat: configure Gantry standings and keep the lap graph readable when cars fall far behind by @23Kev in #850
- feat: use Shift Light, Sector Delta, Weather and three more widgets in Le Mans Ultimate by @Foribald in #851
- feat: allow widgets to use individual overlay windows by @tariknz in #866
- fix: sync site preview widget list with app settings by @tariknz in #790
- fix: Battle widget Prev gap wrong on early laps by @estem8 in #795
- fix: radar shows formation cars on the wrong side and flips columns while the grid loads by @estem8 in #798
- fix: ship a signed Windows launcher in installs and updates by @tariknz in #802
- fix: processors ignore their update rates on iRacing since #706 by @estem8 in #806
- fix: npm run perf:run fails on Node 24 and never starts its replay by @estem8 in #807
- fix: smooth radar speeds per second, not per call by @estem8 in #809
- fix: prevent native telemetry buffer overruns during frame changes by @tariknz in #812
- fix: prevent large push-to-pass counts from overflowing by @tariknz in #815
- fix: make OBS browser layouts easier to configure by @tariknz in #820
- fix: retain final race gaps and intervals by @tariknz in #828
- fix: radar false crashes, wrong sides, and a pole side per track by @estem8 in #831
- fix: Gantry missing session data after being minimised or closed by @23Kev in #832
- fix: keyboard stops working after a Remote Desktop session while irDashies runs by @tonyshutov in #839
- fix: update iRacing series, car names and track assets by @tariknz in #858
- fix: explain unavailable keyboard shortcuts in settings by @tariknz in #859
- fix: preserve player icons across dashboard profiles by @tariknz in #860
- fix: make error telemetry actionable and attributable by @tariknz in #861
- fix: preserve lap data and explain disk-full save failures by @tariknz in #862
- fix: parse session names and setup paths with special characters by @tariknz in #863
- perf: shorten test runs by reducing startup overhead by @tariknz in #792
- perf: skip browser inspector serialization without subscribers by @tariknz in #813
- perf: isolate rendering between overlay widgets by @tariknz in #855
- perf: reduce repeated work in the Input widget by @tariknz in #857
- perf: load only the current track and simplify track update diffs by @tariknz in #870
- chore: update v2 README and release notes skills by @tariknz in #789
- chore: refresh site copy, fix previews, and document v2.0.0 features by @tariknz in #791
- chore: make repository skills usable in Codex and Claude by @tariknz in #793
- chore: let widgets register themselves through a manifest by @estem8 in #796
- chore: complete widget registration and saved-profile defaults by @estem8 in #800
- chore: remove unused native telemetry helpers that read the wrong offsets by @estem8 in #808
- chore: simplify site frontend imports by @tariknz in #810
- chore: complete Broadcast logo validation and replay-tool input handling by @tariknz in #811
- chore: attach PR review media without committing assets by @tariknz in #818
- chore: complete Radar formation corrections for oval tracks by @estem8 in #819
- chore: bring v2.0.0 features and screenshots up to date by @tariknz in #824
- chore: bump pillow from 12.3.0 to 13.0.0 in /tools/car_logos in the uv group across 1 directory by @dependabot[bot] in #841
- chore: bump storybook from 10.6.1 to 10.6.3 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #842
- chore: bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #843
- chore: finalize merged-PR Discord notifications by @tariknz in #844
- chore: update dependencies (electron 45) by @tariknz in #845
- chore: complete Broadcast tower rows and page transitions by @estem8 in #852
- chore: refine new Settings controls and window dragging by @estem8 in #853
- chore: keep dependencies current except TypeScript by @tariknz in #854
- chore: finalize Settings appearance and widget menu by @estem8 in #864
- chore: handle PR review feedback and CI through babysitting by @tariknz in #865
- chore: establish full-profile performance baseline by @tariknz in #867
- chore: complete safe player-icon uploads on Windows by @Foribald in #868
- chore: stop the release notes tests timing out on a busy CI runner by @Foribald in #869
- chore: finish Settings sidebar spacing by @tariknz in #873
- chore: run CI and site deployment on Node 26 by @tariknz in #874
New Contributors
- @tonyshutov made their first contribution in #839
- @MaegawaDaichi made their first contribution in #837
Full Changelog: v2.0.0...v2.1.0



