Changelog

RLHUD

A customizable Rocket League HUD and replay analysis app that overlays live stats, highlights, and post‑match insights for players and streamers.

2026-05-14 14 May 2026

Add a self-learning replay analyzer that builds a SQLite corpus and generates per-player coaching notes

New
  • Add a self-learning replay analyzer that builds a SQLite corpus and generates per-player coaching notes
    Introduce a corpus database and learning pipeline that ingests processed replay analyses, computes percentile baselines per metric/team size, and emits per-player critique notes that show up alongside replay details in the UI.
  • Add a web 'Pro Replay Analyzer' SPA to upload, browse and review analyzed replays
    Ship a new React-based web UI (Upload, Replays list, Replay detail, Baselines pages) that lets users drop .replay/.zip files, follow parsing progress, view per-player critique cards, radar comparisons and baseline visualisations.
  • Add API endpoints to upload, batch-upload, list, view and delete replays and to read/recompute baselines
    Expose endpoints for single replay upload, batch upload (accepts .replay and .zip), listing ingested replays, fetching full replay+performances+notes, deleting a replay (which rebuilds baselines), and fetching or forcing recompute of baselines.
  • Add batch upload with .zip support and streamed NDJSON progress events
    Support uploading multiple files or a .zip in one request and stream structured NDJSON progress events (parsing, zip expansion, ingest/duplicate/failure events) so the front-end shows live per-file status.
  • Show a 'still learning' message and suppress unreliable notes when baselines are under-sampled
    Critique generation now checks sample counts and will suppress automated percentile notes for buckets with too few samples, showing a "still learning" notice in the UI until enough replays are ingested.
Improvements
  • Improve parser error messages to include rrrocket stderr/stdout and file size
    When rrrocket fails during parse the server now returns a clearer error that includes rrrocket stderr (or stdout), exit info and the replay file size to make failures easier to diagnose from the UI or API responses.
4 internal changes in this release
2026-05-13 13 May 2026

Add live looping preview for auto-switch transitions (including media and new media‑wipe types)

New
  • Add live looping preview for auto-switch transitions (including media and new media‑wipe types)
    The Editor now shows a small looping preview for Auto‑Switch rules so you can see the transition (fade, wipe, media, media+wipe) exactly as it will play on the overlay; media transitions also support a short hold so stingers are fully visible.
  • Add media 'Fit' option for CustomMedia/CustomImage and new Media+Wipe transitions
    You can now choose object-fit (cover / contain / fill) for media components and for media-based auto‑switch transitions so images/videos render how you expect in both the Editor preview and the overlay; two new transition types (Media + Wipe Left/Right) are available.
🐛Fixes
  • Fix Goal Replay start/end and goal event triggers so overlays receive them reliably
    GoalReplayStart/GoalReplayEnd events are now synthesized when needed and RL events are forwarded to overlay clients so Event Triggers and CustomMedia triggers reliably fire (fixes cases where replays or goal triggers were not firing in the overlay or OBS).
  • Fix Post‑match scoreboard container rendering in overlays
    The Post‑Match Scoreboard container now renders its background, border and corner radius correctly in the overlay so the scoreboard frame appears in OBS as it does in the Editor.
  • Apply Transparency (fillOpacity) to CustomShape so shapes respect the slider
    Custom shape components now respect the Transparency / fillOpacity setting in the overlay so preview and OBS output match design-time settings.
Improvements
  • Enable mouse‑wheel zoom on the editor canvas
    Zoom the canvas with the mouse wheel; the Editor now blocks page scroll while you zoom so wheel zooming is smooth and reliable.
  • Improve automatic replay detection on Windows (OneDrive/localised Documents)
    Replay detection now resolves the real Documents folder and checks common OneDrive/document paths, and ignores replay re‑opens (by using file creation time) so auto‑detection and uploads (e.g., Ballchasing) work more reliably on Windows with OneDrive or non‑English installs.
  • Show a clear native error if the overlay port is already in use
    If the overlay HTTP port is already occupied, RLHUD shows a native error dialog explaining the conflict and how to resolve it instead of crashing with a stack trace.
  • Add Best‑of‑1 and Best‑of‑9 series formats in Tournament settings
    Tournament series settings now include Best of 1 and Best of 9 options so you can pick 1, 3, 5, 7 or 9 game formats from the popout UI.
  • Scope animation previews to the specific widget being previewed
    Per‑widget Preview buttons now replay only the targeted widget (instead of replaying every animated widget on the canvas), while bulk/folder previews still support replaying multiple widgets.
  • Improve Editor ↔ Overlay parity so previews match OBS output
    Shared widget helpers and rendering fixes reduce visual drift between the Editor preview and the overlay (media paths are URL‑encoded, position labels render consistently, media/object‑fit and transparency now match), so what you see in the Editor is the same as what shows in OBS.
1 internal change in this release
2026-05-12 12 May 2026

Add universal event triggers to widgets

New
  • Add universal event triggers to widgets
    Allow any widget to be shown or hidden based on game events (configurable Show on / Hide on lists), with options for Initially Hidden and Auto-hide after N seconds; the Editor preview and live overlay both honor these triggers and animate widgets in/out.
  • Add replay widgets (Goal Scorer, Goal Speed, Replay Background)
    Introduce a Replay category with Goal Scorer, Goal Speed and Replay Background components that auto-appear during goal replays and animate out when the replay ends.
  • Add folder-level animation override
    Add Folder Properties with an Animation Override so a single folder can impose an entrance animation and delay on all its member components, and the Editor preview plus live overlay apply that override.
  • Add multi-rule auto-switch and team-specific goal triggers
    Support multiple auto-switch rules per blueprint (each with its own event set, target blueprint and transition settings) and new team-specific triggers (Goal Scored (Blue) / Goal Scored (Orange)) so rules can target a single team's goals.
  • Add language support and in-app language selector
    Ship translations (English, Español, Français, Deutsch, Português), import localized flag assets, and add a language switcher so users can change the app language from the sidebar.
  • Add an update prompt for tray-only / Ballchasing mode and a manual Check for Updates menu item
    When running in Ballchasing-only (tray) mode the app will check the public version file and show a native update dialog; a new Check for Updates item was added to the tray so users can trigger a manual check.
  • Allow posting very long announcements by splitting into Discord-sized parts
    Announcement API now splits long messages into multiple Discord-friendly chunks (preserving and re-opening fenced code blocks when needed) and returns how many parts were sent; the Control Panel shows a parts-count confirmation.
Improvements
  • Improve overlay animations so exit mirrors entrance
    Widgets now animate out by reversing their entrance (slides slide back, fades fade out, pops scale down) both in the live overlay and the Editor preview, providing smooth exit animations instead of instant removal.
  • Add Animation Preview with temporary overrides
    Introduce a preview dispatcher and hook so Preview buttons replay an entrance animation (and can temporarily override animate/animDelay) in the Editor without changing saved settings.
  • Add file-sync team color and PlayerCard image overrides
    File-watcher now accepts Blue/Orange color text files and player-card image paths; dropping a color/text file (hex or rgb) or an image updates the overlay's team colors or PlayerCard team image live, and clearing the path reverts the override.
  • Make team colors resolvable and usable by widgets
    Introduce blueprint-level Team Colors (master toggle + per-team pickers) and a consistent precedence chain (file-sync override → blueprint override → RL Stats API → default) so widgets can reliably use CSS variables for team-aware styling.
  • Reduce minimum component size and increase editor zoom
    Lower the minimum component dimension from 8 px to 4 px and raise the Editor zoom cap to 250% so very small widgets and finer zooming are possible in the editor.
  • Make PlayerBadge and Boost visuals more configurable
    PlayerBadge gained a 'container only' mode (hides player name/content), a rounded corners toggle affecting badge and boost bar ends, and boost bar thickness/rounded settings; BoostVisual and other team-aware widgets now default to CSS team-color variables.
  • Improve Series Indicator and layout polish
    Add Center alignment and a Rounded Corners option for series indicators, make indicators auto-shrink to avoid clipping, and improve preview/overlay parity and resize handle visibility for a more consistent editor experience.
  • Make Player widgets optionally hide during replays or when no spectator target
    Add 'Hide when no spectator target' and 'Hide during replay' visibility toggles so player cards and other target-based widgets can automatically hide during flycam/replays/kickoff/demos and reappear after replay end.
  • Mirror folder click to multi-select members for immediate group edits
    Clicking a folder now opens Folder Properties and selects every member component (and children) so you can drag, scale, or apply bulk actions to the group immediately.
  • Editor: multi-select proportional scaling
    Resizing one component in a multi-selection proportionally scales the rest of the selected items (locked items and nested children are skipped), enabling group-scale workflows.
🐛Fixes
  • Use friendlier webhook fallback text and player list fallbacks
    Improve announcement/webhook payload fallbacks (e.g., use 'Player' or empty strings instead of '--' and 'No players' for empty player lists) so webhook messages read better when data is missing.
  • Fix PlayerCard offline-preview to respect file-sync image overrides
    Ensure the Editor preview branch and live overlay both prefer a file-synced PlayerCard team image when present so updates appear immediately in both preview and live output.
1 internal change in this release
2026-05-11 11 May 2026

Add a local parsed replay library and Parsed Replays tab

New
  • Add a local parsed replay library and Parsed Replays tab
    Save parsed replay analyses to a local library and browse them from a new Parsed Replays tab; saved analyses include lightweight summaries and can be opened or deleted from the UI.
  • Add multi-select batch parsing for local replays
    Select multiple local replay files and run a batch parse with progress tracking; successful parses are auto-saved to the parsed replay library and surface in the Parsed Replays tab.
🐛Fixes
  • Fix car→player linking to avoid invalid PRI assignments
    The parser now validates active car→PRI links before assigning them to players, reducing incorrect player/car mappings and improving the accuracy of derived stats.
Improvements
  • Expand replay analysis to include many new metrics
    Parsed analyses now include demolitions, a stat-event timeline (goals, saves, epic saves, etc.), network-level boost pickup events, aerial time, angular velocity, per-player speed/boost metrics, ball-possession heuristics and party/MMR/platform metadata, all saved into the parsed replay output.
  • Add richer replay visualizations (heatmaps and boost pickup maps)
    Player and ball position heatmaps and boost pickup maps are rendered on an accurate field with thermal colormaps and team-dominance indicators to improve visual analysis of saved parses.
  • Include saved parsed replays in backups and imports
    App backups now include the parsed-replays directory and imports restore parsed-replays from archives, so saved analyses travel with your backup/restore workflow.
  • Update README documentation describing editor presets and new widget types
    The repository README was expanded to document editor capabilities (multi-resolution presets, player/post-match presets, custom-code widgets, team presets, font uploads, folders and recovery behaviour) so users and contributors can see planned/advertised editor features.
  • Document Ballchasing token storage behaviour
    README now notes that the Ballchasing API token is stored encrypted at rest using Electron safeStorage (DPAPI on Windows).
  • Add file-watch mention for external team/logo syncing
    Documentation now describes a File Watch sync option that lets external tools update team presets/logos via a watched folder, enabling quicker tournament workflow updates.
1 internal change in this release
2026-05-10 10 May 2026

Add a Post-match scoreboard widget with editable presets

New
  • Add a Post-match scoreboard widget with editable presets
    Add a new PostMatchScoreboard container widget and five visual presets so users can insert a full post-match stat board (team headers, per-player stats and team comparison bars) into their layouts; the scoreboard renders both offline previews and live post-match data in the Editor and Overlay.
  • Add player card design presets and a visual preset picker
    Add a library of player-card design presets plus a visual preset picker in the Editor so users can quickly insert ready-made stat bars (editable after placement) and see a mini preview before adding them to a blueprint.
Improvements
  • Add team-aware CSS variables and per-team color options for widgets
    Widgets now expose --team-color and --team-color-dim on their wrapper so child elements and presets can automatically switch blue/orange styling, and PlayerBadge supports explicit blue/orange background and border overrides with sensible fallbacks.
  • Show and manage multiple Rocket League installations in Setup
    Improve the installer/checker to detect and list all config file locations (Steam, Epic, Documents and any custom paths), surface each installation's status in the Setup UI, and offer a single action to attempt fixing configuration across all found installs.
1 internal change in this release
2026-05-09 9 May 2026

Add font selector to text properties in the editor

New
  • Add font selector to text properties in the editor
    The editor's Text settings now include a Font dropdown so you can pick a fontFamily for text components, and the default CustomText component now uses the display font by default.
🐛Fixes
  • Fix team logo updates so replaced images appear immediately in overlays
    Filesync logos are now saved with a timestamped filename to bust browser/overlay caches and old temporary files are cleaned up, so replacing a team logo file updates the overlay image immediately instead of showing a stale cached image.
  • Fix series indicator width calculation for non‑pill shapes
    Series indicator rendering and preview now consistently compute indicator width so non‑pill shapes no longer render with the wrong width, fixing visual glitches in overlays and previews.
Improvements
  • Preserve folder membership and reorder folder contents when dragging components
    Dragging components between or into folders now avoids unnecessary removal, adds moved components into the target folder when appropriate, and updates the folder's component order to match the new visual order in the editor.
  • Always show Width control for series tracker and compute a sensible default
    The Series/Tracker settings always expose a Width field now and compute a sensible default based on shape and indicator size so adjusting tracker visuals is more predictable.
2 internal changes in this release
2026-05-08 8 May 2026

2026-05-08

1 internal change in this release
2026-05-07 7 May 2026

Add an "Add Component" action for folders in the Editor

New
  • Add an "Add Component" action for folders in the Editor
    Right-click a folder or use the small plus on a folder header to open an Add Component popover and insert a new component directly into that folder, with the new component selected for editing.
  • Add a Sponsor Rotator (SponsorCarousel) component
    Introduce a new SponsorCarousel component in the editor palette that cycles configurable images (interval, animation, fit), with an editor preview and overlay rendering that supports crossfades and slide animations; exported blueprints include the component's media.
  • Add Save and Demolition detection to the match timeline
    Detect Save and Demolition events from stat deltas and surface them as timeline events (with distinct icons/colors) so they appear in the coaching timeline even when the upstream plugin doesn't emit native statfeed events.
  • Add File Sync for Tournament Popout to auto-update team data
    Provide a File Sync section in the Tournament popout to watch external files (team name text files and logo images) and automatically sync team names/logos into the series when those files change.
  • Add custom font upload and use across editor and overlays
    Allow uploading custom font files in the app, pick uploaded fonts in the editor's grouped font selector (Custom section), and have overlays load embedded custom fonts so blueprints can use uploaded fonts at runtime; exported scene/blueprint packs include used custom-font files.
  • Add a ball possession meter to the Coach overview
    Show a possession meter in the Coach Overview computed from ball + player distances (samples aggregated over time) so you can see approximate blue/orange possession percentages during a recording.
  • Add a "Discord" copy button to export match stats to clipboard
    Add a header button on the Coach page that copies a Discord-friendly text summary of the current match stats (scores, per-player stats and possession) to your clipboard for quick sharing.
  • Add a local Rocket League Stats API reference to docs
    Publish a full Rocket League Stats API reference as part of the project docs so users and integrators can see message schemas, examples, and visibility notes for the local Stats API.
Improvements
  • Persist folder and component collapse state on blueprints
    Save folder and component collapsed/expanded state on the blueprint so those states survive save/reload and palette rendering adapts accordingly.
  • Improve coaching session handling and sampling behavior
    Automatically reset accumulated session stats when a new MatchGuid is detected, auto-save the previous session before a new match or replay reset, pause sampling while replays are paused, and adjust sampling to avoid idle-time inflation in boost/speed/movement metrics.
  • Include duration and possession in saved session metadata
    Show computed session duration and possession metadata in the Coach session list so saved sessions display match length and possession summary.
  • Add per-component animation delay support for overlays
    Apply a per-component animation delay (animDelay) when rendering overlays so component entrance animations can be staggered based on the component settings.
  • Add a Swap Teams action in Tournament Popout
    Add a Swap Teams button that swaps blue/orange team names, logos and match wins in the series state and updates blueprint logo placements and the active overlay so the UI reflects the swap immediately.
  • Bump app version to 0.3.0
    Update the application version to 0.3.0 for this release.
2026-05-06 6 May 2026

Add multi-select to the Editor

New
  • Add multi-select to the Editor
    Allow selecting multiple components in the Editor (Shift+Click range select, Ctrl/Meta toggle, folder-select), move/drag/reorder groups, and show multi-selection visual cues in the palette and canvas.
  • Add Backup & Restore in Setup
    Add a Backup & Restore UI that creates a ZIP of your blueprints, settings, coach sessions, planner presets, transitions and screenshots and lets you restore those files back into RLHUD from the Setup screen.
🐛Fixes
  • Fix selection outline and overlay preview to respect rotation and flip
    Selection outlines now rotate with components, overlay previews use the animation rotation so framer-motion no longer overwrites rotate, and shape flip/scale is respected in both editor previews and the overlay renderer.
Improvements
  • Watch local replay folders and detect new replays instantly
    Replace slow polling with an OS-level filesystem watcher that immediately detects when Rocket League saves a .replay file and triggers the app's ReplayUpload handlers and auto-uploads to Ballchasing, making post-match replay actions faster and more reliable.
  • Suppress overlay and webhook dispatch in 'ballchasing-only' mode
    When the app is set to the 'ballchasing-only' mode, overlay broadcasts and webhook dispatches are no longer sent so the app can be used solely for replay uploads without affecting overlays or webhooks.
  • Show only the app name (no version) in Windows Installed Apps
    Installer entries now display just "RLHUD" (the version value is removed) so the OS Installed Apps / Programs list shows the app name without the version number in the subtitle.
  • Serve the installer via /download on rlhud.com to improve download reputation
    Website download links and buttons now point to /download and the server/nginx proxy streams the installer from the configured storage backend (R2/CDN) through rlhud.com so browsers attribute the download to the site and reduce SmartScreen/third-party warnings.
  • Update site Open Graph preview image
    Replace the social/Open Graph preview image used for link previews with an updated og-preview image so shares use the new image.
2026-05-05 5 May 2026

Add a Variable reference wiki and an Editor button to open it

New
  • Add a Variable reference wiki and an Editor button to open it
    Publish a new /wiki documentation page that lists available overlay variables and examples, and add a 'Variable Wiki' button in the editor to open that page directly.
  • Add folders to group and organize components in the editor
    Introduce a folder system in the Editor allowing components to be grouped, renamed, collapsed and unfiled (drop-to-ungroup), and update previews/counts to ignore folder entries.
  • Add nine new Custom Shape types with stroke and radius options
    Extend the CustomShape widget with multiple shape types (Rectangle, Rounded Rectangle, Circle, Triangle, Wedge, Trapezoid, Parallelogram, Line, Arc) plus strokeWidth/strokeColor and radius controls so shapes render identically in the editor and overlay.
  • Add Post‑match Team Stat and Team Comparison widgets
    Introduce two new post-match widgets: a Team Stat widget that shows an aggregated team total, and a Team Comparison widget that visualizes a selected stat side-by-side with multiple design presets.
  • Add entrance animation options for components and editor preview
    Allow components to choose entrance animations (slide/fade/pop etc.) and preview them in the editor; non-self-animated components are wrapped with framer-motion-based entry animations.
Improvements
  • Revamp blueprint card actions and button layout
    Rework the Blueprints page action area: primary actions are grouped, secondary actions moved to compact ghost buttons, icons and labels updated and an OBS/Display quick‑setup button added for easier workflow.
  • Add customizable grid and snap settings with a popover
    Expose gridSize and snapThreshold settings in the Editor and add a gear popover so users can tune snapping strength and grid spacing for precise placement.
  • Improve drag-and-drop visuals and add rotation handles
    Enhance the editor's DnD feedback with explicit drop zones, highlighted 'drop to ungroup' areas, and add Photoshop‑style rotation handles for easier transform editing.
  • Add a 'silent' option when publishing the site version (skip webhook)
    Add a toggle in the Control Panel to update version.json without firing the configured version webhook so admins can publish a version silently when desired.
  • Improve color picker handling in post-match settings
    Normalize non‑hex color values for color inputs (convert rgba to #rrggbb) so the color picker reflects the current value instead of rejecting non-hex strings.
🐛Fixes
  • Fix tray Exit not fully quitting the app (force close on Exit)
    Ensure the tray 'Exit' action clears the tray interval and force‑destroys the main window (app.exit(0)) to avoid the renderer beforeunload prompt blocking shutdown.
1 internal change in this release
2026-05-04 4 May 2026

Add Share Overlay modal to Blueprints

New
  • Add Share Overlay modal to Blueprints
    Open a Share modal from the Blueprints page to copy an overlay URL, view blueprint resolution and component count, and get step‑by‑step OBS/Browser Source setup instructions; the modal also recommends 60 FPS when animated components are present and shows a copy button with copy state feedback.
  • Add Custom Code component with full editor and live rendering
    Add a Custom Code component to blueprints that lets users write HTML, scoped CSS and JavaScript with Mustache-style variable interpolation, includes a full-screen CodeMirror editor with presets, and runs sandboxed user code in both preview and the live overlay.
  • Add 'Close to Tray' setting to control X button behavior
    Add a Close to Tray toggle in Settings so clicking the window X either hides RLHUD to the system tray (when enabled) or performs a full quit and cleans up tray/services (when disabled).
  • Add Usage Analytics toggle and details in Settings
    Add a Usage Analytics opt‑in toggle in the Setup/Settings screen with an expandable explanation of what the app collects (feature usage, versions, crashes, settings changes) and what it never collects; the setting is persisted and respected at runtime.
🐛Fixes
  • Fix Content Security Policy so fonts and external assets load in overlays
    Update the overlay server CSP to explicitly allow Google Fonts, Font Awesome and common external style/font sources so overlay pages and custom code stop producing CSP console errors and fonts load correctly in both preview and live overlays.
4 internal changes in this release
2026-05-03 3 May 2026

Add per‑blueprint auto‑switch rules with custom transitions

New
  • Add per‑blueprint auto‑switch rules with custom transitions
    Allow each blueprint to define an auto‑switch rule (trigger event → target blueprint) and select a transition type; users can upload custom media to use as a transition between blueprints.
  • Add post‑match snapshot support and post‑match widgets
    Capture a final match state snapshot when a match ends and expose it to overlays so new post‑match widgets (team score/name, player stat, and a stats table) can display final stats after the live state clears.
  • Add a Blueprint Settings panel with visibility controls
    Add a new Blueprint Settings panel in the editor so users can configure blueprint visibility (Game Only) and a new Show on Countdown option that keeps overlays hidden until the match countdown begins.
  • Add Post‑Match Stats Table widget
    Add a PostMatchTable widget that renders a styled per‑team table of final player stats suitable for post‑match blueprints and previews.
  • Update website content and showcase images
    Refresh website copy (hero, feature list, SEO meta) and add new showcase images to reflect the expanded feature set and target audience (streamers, casters, coaches).
🐛Fixes
  • Fix wipe transition name mismatch so wipe transitions run correctly
    Resolve naming mismatches and animation timing so wipe‑left / wipe‑right transitions are recognized and run as two‑phase enter/exit animations instead of falling back to fade.
Improvements
  • Remap media paths and include transition files when importing/exporting blueprints
    Fix import/export so all known component media keys are remapped from the old blueprint ID to the new one and transition media files referenced by auto‑switch rules are extracted and included in scene pack imports/exports.
  • Improve overlay transition behaviour and asset caching
    Make blueprint switches two‑phase (cover enter → swap content → cover exit) and add no‑store cache headers for overlay assets so updates to assets and transitions appear reliably.
  • Treat post‑match state as distinct from live state to avoid stale UI
    Stop showing live match data after a match ends for normal blueprints and rely on the captured lastMatchState for post‑match components so scores and player cards do not display stale live values in menus.
  • Expose upload and lastMatchState hooks to the renderer
    Add preload APIs so the editor can upload AutoSwitch transition media and listen for lastMatchState events from the main process.
🔒Security
  • Harden updater, overlay server and sensitive tokens
    Verify OTA updates using a server‑published SHA‑256 before applying updates, bind the overlay HTTP server to localhost, add CSP headers, enable sandboxed renderer windows, encrypt Ballchasing API tokens at rest, and move the bug‑report webhook URL into an environment variable.
2 internal changes in this release
2026-05-02 2 May 2026

Add automatic replay uploads to ballchasing.com

New
  • Add automatic replay uploads to ballchasing.com
    Automatically upload completed match replays to ballchasing.com; configure your API token and preferred visibility in Settings and choose app mode (Full or Ballchasing Only) to control behaviour.
  • Add local Replays browser to upload and analyze .replay files
    Add a Replays page that scans your Steam/Epic replay folders, lists recent .replay files (deduplicated), and lets you open or upload them for parsing and analysis from the app.
  • Add Webcam/iframe overlay widget and game-only visibility option
    Add a Webcam component (iframe-friendly, VDO.Ninja / OBS.Ninja presets) with user-gesture gating and permissions support, plus a per-blueprint "Game Only" option to hide overlays outside active Rocket League matches.
  • Add coaching overlay widgets for live tactical overlays
    Introduce eight coaching widgets (boost bars, demo tracker, MVP indicator, player rating, possession meter, shot accuracy, team boost average, team stats) and wire them into the editor palette and the overlay runtime.
  • Add Tactical Planner to the Coach dashboard
    Add a 2D tactical planner with draggable Octane cars, ball, drawing tools, snapshot-to-clipboard, and save/load preset support integrated into the Coach tab.
🐛Fixes
  • Exclude spectators from parsed replay stats
    Mark players not present in header PlayerStats as spectators and exclude them from per-player statistics shown in the UI so replay stats reflect only active players.
  • Fix sub-component visibility so Editor and overlay stay in sync
    Ensure child components render the same in the Editor and overlay by switching parent→child inheritance order and allowing parent containers to expose children when appropriate.
  • Improve replay upload reliability by polling for saved replay files
    After match end RLHUD now polls local replay directories for the saved .replay (with retries for up to ~2 minutes) before attempting Ballchasing upload, improving success when the game saves replays slightly after match end.
Improvements
  • Recover automatically from renderer crashes and guard IPC sends
    Add a render-process-gone handler that auto-reloads the renderer after a short delay, add logging for unresponsive/responsive states, and guard webContents.send calls with webContents.isDestroyed() to reduce 'render frame disposed' errors.
  • Prevent running multiple app instances and focus existing window
    Use a single-instance lock so launching the app twice focuses the already-running window (restores if minimized) instead of starting a second instance.
  • Improve system tray behaviour for full package mode
    Enhance the tray menu to support the full app (show/hide window, double-click toggle, connection status, overlay port) and make mode switching (Full / Ballchasing Only) available from the tray.
  • Use bundled preview video and tidy hero layout on the website
    Load the hero preview video as a bundled asset and adjust hero styling so the video fills the hero area and content stays centered across screen sizes.
5 internal changes in this release
2026-05-01 1 May 2026

Add boost pickup map to replay analysis

New
  • Add boost pickup map to replay analysis
    Replay parsing now detects boost-pad pickups and the Replays page includes a Boost Pickup map that shows aggregated pickup locations per team so you can visualise where players collected boost during the match.
  • Add Player Card component with team-specific images
    New Player Card widget lets overlays show different images for Blue/Orange teams (with cover/contain/fill fit, border radius and border options) and is supported in the editor, live preview and overlay renders.
  • Add tournament team name and logo overrides with upload
    You can now set custom team names and upload team logos from the Tournament popout; overlays can use TournamentTeamName/TournamentTeamLogo and the overlay server will serve uploaded logos so popout/controller and overlay stay in sync.
  • Add in-app bug report that attaches logs and sends to Discord
    Help now includes a Report a Bug dialog that sends a bug report (with the application log file attached) to the configured Discord webhook so you can file issues from the app without manually collecting logs.
  • Add Replays page to desktop app for uploading and viewing parsed replays
    The desktop app includes a Replays page where you can upload .replay files to the parsing API and view analysis results (overview, stats and heatmaps) directly from the app.
Improvements
  • Speed up heatmap rendering and show a loading skeleton
    Heatmaps now use a cached Gaussian kernel and defer heavy rendering to avoid blocking the UI; a compact loading skeleton appears immediately while the heatmap paints, improving perceived load time on the Replays heatmaps tab.
  • Improve Event Feed styling with team-specific backgrounds and transparent banners
    Event Feed items can use separate Blue/Orange background images (falling back to a shared image) and a transparent-background toggle so banner items can render cleanly over OBS overlays.
  • Improve editor: nested child components, inherited settings and snap fix
    Editor updates add proper parent/child support (children inherit relevant parent settings and are editable in-place), fixes the "snap on click" behaviour by adding a small movement threshold, and improves copy/paste and deep component operations for nested components.
  • Update BoostVisual with new styles and options
    Boost visuals gained a new symmetric 'circle' style, left→right / right→left bar direction, a transparent-track option and cleaner remount behaviour when switching styles to avoid rendering glitches.
  • Add SEO, OpenGraph and sitemap for the public website and switch download links to CDN
    The website now includes enhanced SEO meta tags, JSON-LD structured data, an OG preview image, robots.txt and sitemap.xml; download links and CTAs were updated to point directly to the CDN-hosted installer.
  • Rename 'Coach' to 'Coaching' across the UI
    Small UX wording updates rename the 'Coach' section to 'Coaching' in the app navigation and pages for clearer wording.
🐛Fixes
  • Hide player name when no player is selected in Player Badge
    PlayerBadge no longer renders an empty name when no player data is available, avoiding a visual glitch in overlays and editor preview.
16 internal changes in this release
2026-04-30 30 April 2026

Add coach overlay with live drawing and session save/load

New
  • Add coach overlay with live drawing and session save/load
    Open a persistent coach overlay on a chosen display and draw directly on-screen with a small toolbar (pen toggle, color, three sizes, clear, screenshot, and a hotkey), and save/list/load/delete coach sessions to disk for later review.
  • Add replay upload webhook support with file attachments
    Automatically locate recent Rocket League .replay files and send them as a ReplayUpload webhook (multipart file attach), and allow testing ReplayUpload webhooks from the app; webhook embeds and template variables include replay filename and related replay metadata.
  • Add Player Badge and Event Feed overlay widgets
    New overlay widgets are available for Blueprints: a PlayerBadge (styled name badge with demolished state, optional boost bar and image) and a compact Event Feed widget that shows animated, auto-dismissing game events in-overlay.
  • Add live coach analytics sampling
    Collect live per-player analytics during matches (boost distribution, movement brackets, speed timeline, key touches tied to goals) for the coach UI and charts via a new runtime sampling hook.
  • Add editor Icon Picker modal and overlay-ready components
    Add a reusable FontAwesome Icon Picker modal in the editor and several overlay-ready atomic components (eg. EventFeedWidget, PlayerBadge) so designers can pick icons and drop these widgets into Blueprints.
  • Add new public website content (home, hero, features, footer, showcase)
    Publish the website's initial public pages and components including a hero, features section, how-it-works, overlay showcase, footer and side menu so visitors can learn about RLHUD and download the client.
  • Improve mobile navbar and expand advertised features
    Redesign the website's mobile navigation with animated, staggered menu items and add new feature entries to the Features list (Coach Analytics, Live Overlay, Live Drawing, Player Compare, Stat Cards) to better surface RLHUD capabilities.
🐛Fixes
  • Improve goal detection to identify scorers/assisters and avoid duplicate events
    Goal detection now compares per-player Goals/Assists to identify the likely scorer and assister and debounces synthetic goal detection when a native GoalScored event was recently received, reducing duplicate or anonymous goal events in overlays and webhooks.
Improvements
  • Recommend higher PacketSendRate and warn about low values
    The app now recommends a PacketSendRate of 120 for better overlay fidelity and will surface a configuration warning if your Rocket League PacketSendRate is below the 60 minimum recommendation.
7 internal changes in this release