Skip to content

What's new

PATCH NOTES

Follow every update, balance change, and new feature as Unrealwatch evolves.

v3.3.1PATCH

UnrealWatch v3.3.1

A patch with the Overwatch 2 style HUD, a big Genji animation update, cloth physics and server improvements.

Highlights

  • Overwatch 2 style HUD with status effects, and HUD motion on jump, landing and dash
  • Genji's first and third person animations rebuilt to match Overwatch
  • Genji's feet stay planted and his head always looks where you aim
  • Cloth physics on Genji's default skin, also on death
  • The wakizashi sits on his back and his left hand holds the handle
  • Wall climb lasts as long as its animation, and the mantle is smooth
  • Deflect ghost arms, and Dragonblade timing matched to Overwatch
  • Shuriken magazine raised from 24 to 30
  • Overwatch-exact mouse sensitivity and snappier abilities
  • Game servers at 144 Hz, and matches start on your lowest-ping server
v3.3.0MAJOR UPDATE

UnrealWatch 3.3.0

We're back. It has been just over two months since the last build, and this one carries all of it. Genji has been rebuilt from his projectiles up. Hit registration now runs on real per bone hitboxes, so shots land where you aimed them, and his third person animations are new across the board, down to wall climbs and ledge mantles. The interface you play behind is new almost everywhere you look. Behind that, match results are being recorded again after a fault that had been quietly swallowing them since May, servers no longer leak memory, matches run at a higher tick rate, and there is now a second game server site in the United Kingdom. Your launcher will update itself. Open it, let it pull the build down, and go.

Highlights

  • Shurikens are true projectiles now. They travel, and the shuriken in flight is what deals the damage.
  • Hit detection rebuilt on per bone hitboxes, with projectiles sweeping their full path.
  • Genji's third person animations rebuilt, including turn in place, wall climbing and ledge mantling.
  • A new interface: radial ultimate meter, rebuilt health bar, world nameplates and team outlines.
  • Golden and jade weapon variants, equippable from a hero customization screen that finally works.
  • Match results and competitive rank are recording again after a fault dating back to May.
  • Servers stopped leaking memory, and a second site in the United Kingdom shortens the trip for players near it.

Genji

  • Shurikens are now true projectiles: they fly through the air and the flying shuriken is what deals the damage, with falloff measured over the distance it actually travelled.
  • Dragonblade swings now use a wide 110 degree arc that follows where you aim up and down, so slashes land where they look like they should. The old swing was far narrower at range than it appeared.
  • Dragonblade now carries the dragon on Genji's back and sends it flying when the blade is drawn, in both first and third person.
  • Swift Strike now passes through players instead of body-blocking on them, and no longer punts anyone it touches across the map.
  • Swift Strike now resets on any elimination or assist credited to you, including dash kills and kills from projectiles you deflected.
  • Fixed a bug where aiming at an enemy made Swift Strike stop short on them instead of travelling its full distance.
  • Fixed Swift Strike stopping early when it grazed flat ground, ramps or stair edges.
  • Deflect now shows Genji's ghost arms and slash trails to everyone watching, slashing in time with the ability instead of looping at random.
  • Deflect slashes and ghost arms are tinted per skin, and always read green on allies and red on enemies.
  • Fixed Deflect destroying whatever it touched. Players, health packs and capture points no longer disappear on contact with a deflecting Genji.
  • Fixed Deflect counting a hit and flinching when you simply walked into someone.
  • Deflecting with Dragonblade drawn no longer moves or hides Genji's weapons, and the first-person blade no longer swings through an arc it was never meant to follow.
  • Quick melee is always available and cancels a shuriken throw on the frame you press it.
  • Melee can no longer be used while wall climbing or mantling.
  • Wall climbing no longer works on players or corpses.
  • Crouching is now blocked while Dragonblade is active.
  • Fixed the first-person arms, katana and dragon clipping through walls, floors and props.
  • Fixed the first-person arms snapping to a broken pose when wall climbing with Dragonblade drawn.
  • Fixed the Dragonblade handle disappearing when held close to the camera.
  • You can now see your own shadow in first person, including in the Practice Range.
  • Fixed the shuriken fan in Genji's hand always reading as full to other players regardless of how much ammo he had left.
  • Genji's wakizashi and scabbard now stow to his back when he dies.

Combat

  • Teammates no longer block each other. Friendly players pass through one another with a gentle push apart, which also means you can no longer stand on a teammate's head.
  • An ability that does not go through now snaps back almost immediately instead of playing out in full on your screen.
  • Fixed lag letting a blocked ability slip through during a lockout.
  • Fixed a ghost dash animation playing every time Swift Strike was pressed while on cooldown.
  • Fixed the blocked crosshair marker flickering off for a beat during melee.

Hit Registration

  • Hit detection now uses proper per-bone hitboxes, so headshots and body shots match the shape of the character you are shooting.
  • Projectiles now sweep along their full path, so a fast shot can no longer slip past a target.
  • Swift Strike damage now uses a swept hitbox, so it stops missing targets it clearly passed through.
  • Shurikens are now consumed when they hit any living enemy, including one who takes no damage from the hit.
  • Shurikens pass cleanly through teammates instead of being silently eaten by them.
  • Fixed shurikens sticking into ragdolls. They now pass through and nudge the body instead.
  • Corpses no longer shield living players standing behind them.

Deaths and Ragdolls

  • Killing blows now push the ragdoll in the direction the shot came from.
  • Ragdolls now resist at the joints instead of flopping loosely.
  • Corpses now settle into a consistent pose instead of freezing on whatever frame was playing when they died.
  • Held shurikens now drop to the ground as physical debris when Genji dies.
  • Fixed corpses convulsing, crumpling into a ball, stretching out or falling through the map.
  • Fixed weapons sitting at wrong angles on corpses.

Animation

  • Rebuilt Genji's third-person animations across idle, running, crouching, jumping and every ability.
  • Third-person characters now aim properly up, down, left and right, including while moving.
  • Added turn in place: characters twist their torso and step their feet around instead of pivoting on the spot.
  • Added third-person wall climb and ledge mantle animations for Genji.
  • Dragonblade stance now has its own aim poses and turn steps.
  • Crouching now visibly lowers the body with the feet staying planted on the ground, and no longer sinks it far too deep.
  • Jump take off now plays in full, so a jump reads as launch, air and landing instead of skipping the launch.
  • Melee now plays over your aim instead of cancelling it.
  • Deflect flinches now replay properly when several shots are deflected in a row.
  • Fixed players getting stuck in a landing pose so idle, crouch and running never played.
  • Fixed idle jumps playing the last direction walked instead of the direction actually jumped.
  • Fixed running direction changes sweeping through the wrong strafe poses, and running now keeps its stride across brief stops.
  • Fixed the jitter on drawing and stowing weapons, which shimmered even while standing still.
  • Fixed the blade drifting away from the hand while drawing or sheathing Dragonblade, worst of all in mid air.

Heads Up Display

  • Added a new ultimate charge radial, replacing the old straight charge bar: a spinning ring of tick marks, a live charge number and a cast transition when the ultimate is used.
  • Added a full ready state for the ultimate radial, with a corona, shards, lightning arcs around the ring and a burst the moment charge hits 100.
  • Ultimate charge now counts up to 99 without the number jittering as it climbs.
  • Rebuilt the player health bar: taller blocks, a bar that stays the same width whatever your health pool, and a correct partial block on uneven health totals.
  • Health now drains block by block with staggered damage flashes instead of one flat cut, and a partly drained block reads as one shape rather than two rounded caps.
  • Added a pop flash on every 25 health lost, on both the health and the armour part of the bar.
  • Added a Dragonblade duration ring around the crosshair with a countdown in seconds.
  • The Dragonblade timer now appears only once the blade is actually drawn, instead of during the draw animation.
  • Ability icons now animate through press, cooldown and ready, with a burst when an ability comes back up.
  • Rebuilt the crosshair, fixing a centre gap that rendered several times too wide and correcting the arm size.
  • Fixed the damage flash playing at the wrong speed and ignoring pauses.

Nameplates and Outlines

  • Added world nameplates above players: name, health blocks and a friendly marker that reads through walls.
  • An enemy's name is always on their nameplate in enemy red. Their health bar is not: it appears for five seconds after you damage them, then fades again.
  • Teammates are outlined through walls. Enemies are outlined only where you can actually see them.
  • Nameplates are now cut by the walls and objects in front of them, pixel by pixel. The old version faded whole plates or chopped them into vertical slices and lagged behind cover.
  • Nameplates scale with distance and grow with a hero's health pool.
  • Nameplate health drains and flashes the same way the player health bar does.
  • Nameplates now sit at a fixed height above the character and no longer bob with breathing, lurch on dash or swing through a Dragonblade slash.
  • Nameplates now use the right font and size.
  • Fixed enemy nameplates looking pink and washed out instead of the enemy red, and fixed health bars on plates that showed the wrong backdrop, missed damage pops or froze mid animation.

Colours

  • Enemy, friendly, group and alert colours are now one palette across the whole game. Chat channels, party cards, party invites, the invite timer, the death screen killer name, the killfeed, the objective bar and nameplates all draw the same colours, and the launcher's chat channels match them.
  • Fixed colours rendering lighter than intended, which made group green look like two different greens depending on the screen.
  • Fixed party member names in the hero select roster still using the old green.

Skins and Weapons

  • Menu, Heroes, then a hero now opens a real hero customization screen instead of the coming soon placeholder.
  • Added weapon variants: golden and jade weapons you can equip from the hero customization screen.
  • Added a weapon variants grid with rarity labels and a collapsible category header, and any cosmetic tile or row can be equipped with a double click.
  • Equipped weapon variants now show everywhere, including first person, third person, hero select, the main menu stage, thrown and dropped shuriken, the death ragdoll and Practice Range dummies.
  • Golden and jade now read as real metal instead of a dark tint, and keep the scratches and wear of the base weapon.
  • Glowing parts of skins now sit at varied brightness levels instead of every strip glowing identically.
  • Added a weapon showcase stage to the customization menu with a drag-to-rotate turntable, showing each weapon in the skin you have equipped.
  • The three showcase circles are now buttons that open a weapon view on the stage, and clicking a skin or a variant re-dresses the hero live.
  • Weapon variants now open on the one you have equipped, and the preview swaps skins in a single step instead of flickering through an undressed state.
  • Fixed switching skins carrying the previous skin's weapon materials, so a new skin showed the old skin's weapon textures.

Hero Select and Menus

  • Rebuilt the hero roster tiles with correct geometry, a hover lift, a clear treatment for locked heroes, drifting embers and a sun glare behind the selected hero.
  • Added a pick and lock burst on the team bar when a player locks in, with a beam, a name wash and a rim that stays on the tile.
  • Fixed hero portraits in the roster being covered by an opaque white sheet.
  • Added a dynamic hex backdrop behind the menus, with a slow drift and a highlight that follows the cursor.
  • Menu background hexagons now ripple outward when a screen opens and inward when it closes, on every menu screen including login, career and the in-match pause menu, and the backdrop carries across screens instead of popping in and out.
  • Added a custom cursor, sized consistently across every display scaling.
  • Corner prompt buttons hover twice as fast and their text thickens on hover.
  • The FILTER button now highlights cyan on hover.
  • Fixed clicking the FILTER button also ticking a whole filter group in the panel that opened underneath the cursor.
  • Fixed the menu backdrop staying up over the menu scene after backing out of Career Profile.
  • Fixed the shuriken counter glyph rendering squashed.

Practice Range

  • Replaced the Practice Range with a new, larger version of the map.
  • Relit the Practice Range by hand, so the whole map reads as a single evening scene instead of a patchwork of imported lights.
  • Reworked Practice Range surfaces: flat looking walls, blown out highlights and over bright glowing panels are gone.
  • Fixed stretched and mismatched textures on walls and props in the Practice Range.
  • Practice Range target dummies are now full hero bots: the same skin, weapon, hitboxes, health pools and death behaviour as a real player.
  • One dummy stands still and one strafes and hops, so you can practise tracking a moving target.
  • Target dummies now track you with their eyes.
  • Dummies revive on their own a few seconds after you kill them.
  • A dummy knocked out of the map now respawns instead of disappearing for good.
  • Fixed target dummies floating above the ground and facing the wrong way.
  • The Practice Range now updates itself to the latest version, and only ever restarts when nobody is playing on it.
  • There is now a Practice Range hosted in the United Kingdom as well, so players closer to it connect at lower ping.
  • Fixed the Practice Range running out of memory and shutting down during long sessions.

Matchmaking

  • Quick play now forms a match after 10 seconds of waiting instead of 30, so two players in the queue get a game rather than a countdown.
  • A match that cannot start on its usual server now starts on another one instead of failing.
  • Fixed a bug where finished or failed matches could hold onto a server, which could stop new matches from starting.

Progression and Stats

  • Fixed match results not being recorded. Since May, finished matches had stopped saving player stats and had stopped updating competitive rank. Both work again from your next match.
  • Old matches that ended without any recorded stats no longer count as draws in your record.
  • Fixed playtime being under credited when a session ended without a clean disconnect.
  • Fixed a bug where a post match card vote could be counted twice.

Social

  • Fixed party updates, friend notifications and system messages arriving twice.
  • Fixed a rare bug where accepting a party invite at the same moment as another change to the party could go through when it should have been refused.
  • Added a live service status board in the Discord server status channel that updates itself every few minutes, so you can check whether sign in, matchmaking, the website, downloads and game servers are up before launching the game.
  • The status board is grouped by country, so you can see which region runs which services and how much of it is up.
  • Downloads, the website and sign in each get their own status line instead of being lumped together, and a service that is up but missing something reads as degraded with the reason instead of green.
  • Patch notes now post in the announcements channel as a short highlights post with the full notes in a thread underneath, instead of going somewhere most players never see.
  • The full patch notes can now be read, linked and quoted by anyone, where before the detailed version was only visible to whoever pressed the button.
  • Long patch notes no longer get cut off. A long category continues in a follow-up post instead of being truncated.
  • New member joins now post in the general channel, so the welcome channel can be a static intro page you read first.
  • Removed the Discord commands for creating accounts, linking, stats, cosmetics, profiles and match history. Accounts and linking live on the website now.
  • New members get a link to the website instead of an account creation form in Discord.

Accounts and Security

  • Sign up now finishes by choosing your BattleTag, and existing accounts without one are asked to pick one on the website or in the launcher.
  • Removed magic link sign in from the website.
  • Fixed account emails not being delivered. Nothing we sent by mail had been arriving since late August.
  • Changing your email to one that is already taken now tells you so instead of failing with an error.
  • A two factor code can now only be used once.
  • Repeated failed sign in attempts now lock an account even when they come from different places.
  • Tightened security around sign in, downloads and game server connections.

Launcher

  • The launcher can now download from several sources at once and falls back to the main server, with every piece checked against its hash on arrival.
  • Downloads are now checked against the trusted server list on every redirect, so a download can never be handed off to a server the launcher does not trust.
  • Your saved sign in is now stored encrypted on your PC, and is cleared rather than saved unprotected if encryption is unavailable.
  • The launcher now always opens on your primary monitor, so it can no longer come back on a screen that is switched off or disconnected.
  • Opening the launcher from the tray now restores it at the size you left it instead of maximizing.
  • Fixed a bug where the launcher could restore almost entirely off screen, leaving a window that could not be dragged back into view.
  • Fixed a bug where the launcher could stay signed in after your account signed in somewhere else.
  • Being removed from a match no longer signs you out of the launcher. You now get a notice and stay signed in.

Performance and Reliability

  • A game server that crashes is now brought back automatically, and a server that stops responding stops being handed new matches.
  • Fixed a fault that could take a whole server region offline for days after an update.
  • Fixed UK servers quietly becoming unreachable after about a week.
  • Fixed some matches on the UK server being impossible to connect to.
  • Fixed stalls where the game stopped responding for everyone at once.
  • Fixed a crash that could happen the first time a character spawned.
v3.2.4PATCH

Unrealwatch 3.2.4: Team Preview and Fixes

See your teammates' hero picks and skins live in Hero Select, wear your equipped skin in every mode, and get two important fixes: the Practice Range now works from outside your home network, and the pause menu reliably frees your mouse.

Highlights

  • Live team preview in Hero Select: watch your teammates' hero picks and skins update live while everyone chooses, with role badges and instant preview switching.
  • Your equipped skin now applies on spawn in every mode - Quick Play uses the same skin resolution as the Practice Range.
  • The Practice Range now works from outside your local network - players joining from another network timed out on a LAN-only address; prod servers now always advertise the public game address.
  • The pause menu now always releases your mouse (a full input-handling rework), and opening the menu flushes held keys so a held fire button can't keep firing behind it.
  • 3D in-game GUI icons for 13 heroes (Default and Classic variants), plus a chat visual unification pass with one consistent message style across all chat surfaces.
  • Practice Range: rejoining after a hard client close no longer blocks you for about two minutes, and team preview shows hero icons for heroes unavailable in the current mode.
v3.2.3PATCH

Unrealwatch 3.2.3: Account Tools Update

A big pass on your account: privacy controls, account standing, passwordless sign-in, stronger recovery, an in-account notification inbox, and the ability to merge two accounts into one.

Highlights

  • Privacy controls: choose who can see your profile and stats - public, friends-only, or private.
  • Account standing: a clear page showing your account status and any restrictions at a glance.
  • Passwordless magic-link sign-in: request a one-time email link to sign in without typing your password.
  • Stronger account recovery: add a backup recovery email, generate one-time recovery codes, and set a trusted contact.
  • Step-up re-authentication: sensitive actions now re-confirm your password.
  • Notification center: a new in-account inbox for security and social events.
  • Account merge: combine two accounts into one - cosmetics, currency, level, friends, and current-season rank carry over.
v3.2.2PATCH

Unrealwatch 3.2.2: One Skin Everywhere

Your equipped Genji skin now shows up the same way everywhere, and connected accounts on the website now show which account is linked.

Highlights

  • Your equipped skin now displays consistently across the whole game. Picking a skin actually equips it for your account, and the main menu Genji, hero gallery, hero-select icon, and your in-match model all show that same skin from one source of truth. Before, the menus kept showing the default while only the in-match model updated.
  • The hero-select icon updates live. Changing the skin in hero select immediately updates that hero's icon to the selected skin.
  • Connected accounts show who is linked. On the website Account Security page, your linked Google, Discord, and Steam accounts now show the email or name of the connected account.
v3.2.1PATCH

Unrealwatch 3.2.1: Skins Fix and Account Security Polish

A fast follow-up to 3.2.0. Fixes the Genji skins not showing in the Practice Range, cleans up the Account Security page, and fixes connecting Steam and Google to your account.

Highlights

  • Genji skins now apply correctly in the Practice Range. Pick Oni, Classic, or Dallas Summer and you spawn wearing it. The always-on Practice server was running an older copy of the game that did not know about the skins; it now serves the current build.
  • Genji Classic now has its own skin selection icon.
  • The Account Security page is reorganized into three clear tabs (Sign-in and security, Devices and activity, Your data) so you no longer scroll through one long page; connected accounts sit right under two-factor.
  • Connecting Steam no longer shows an authorization error, and connecting Google to an account you are already signed in to now links it to your existing account instead of bouncing you to the login screen.
v3.2.0MAJOR UPDATE

Unrealwatch 3.2.0: Genji Skins and Account Security

Our biggest update since 3.1.1. Three new Genji skins, two-factor authentication everywhere including in the game, and a brand new Account Security center for managing your devices, passkeys, and data.

Highlights

  • Three new Genji skins: Oni, Classic, and Dallas Summer, all on the same rig as base Genji so animations and weapons behave exactly as expected.
  • Two-factor authentication is live on the website, the launcher, and in the game, with backup codes.
  • New Account Security center: see and sign out your devices, add a passkey, review your security activity, trust devices to skip 2FA, get new-device email alerts, and download your data.
  • Hero Gallery rebuilt with animated tiles and clearer locked and coming-soon states, and ESC now reliably opens the pause menu in hero select.
  • Party and group invites got a live countdown, smoother updates, and cleaner chat messages, plus a menu polish and HUD crispness pass and match-flow stability fixes.
v3.1.1PATCH

Hero Select Roster

The hero select screen is cleaner and clearer: heroes are grouped by role, and you can now see at a glance which heroes are available, locked, or coming soon — with a reason shown when a hero is locked.

Highlights

  • Hero select is now a role-grouped roster (Tank / Damage / Support) instead of a flat grid.
  • Heroes show one of three clear states: available, locked, or coming soon.
  • Locked heroes are dimmed with a marker and show the reason they're currently unavailable.
  • Hero availability is controlled per game mode, so the picks you see stay in sync with the live roster.
v3.1.0PATCH

Practice Range Goes Global

Practice Range is now a real online server that everyone shares — open Play > Practice Range and connect to one always-up server, just like any other mode. Plus a Genji wall-climb rework with mantling and faster practice loading.

Highlights

  • Practice Range is now global — one shared, always-up dedicated server you can join any time from the Play menu (it used to be a local sandbox).
  • Genji wall-climb reworked for Overwatch-grade feel: smoother and reliable on online servers, climbs higher, follows sloped walls, and now mantles up and over ledges.
  • Faster practice loading: a 3-second minimum, with the Practice Range map's own loading screen, flag, and name.
  • Practice Range now uses the same universal flow as Quick Play and Competitive — connect screen, loading screen, hero select, and HUD are consistent across every mode.
v3.0.0MAJOR UPDATE

Unreal Engine 5.8

UnrealWatch now runs on Unreal Engine 5.8, up from 5.7. This is an engine and platform upgrade with no hero or balance changes, but because the engine and network protocol changed it is a mandatory update: you have to update through the launcher to keep playing, and older clients can no longer connect to the servers. Practice Range and core gameplay are verified working on 5.8.

Highlights

  • The whole game, the client and the dedicated servers, now runs on Unreal Engine 5.8, up from 5.7. That is the main change in this release.
  • Mandatory update. The engine and the network protocol both changed, so older clients can no longer connect to the servers. Update through the launcher before you play. The launcher does it for you.
  • No gameplay changes. No heroes, abilities, or balance were touched. Everything plays the same as it did before.
  • Practice Range and core gameplay have been verified on the new engine.
  • Why do an engine jump at all: staying on a current engine version keeps the project healthy, pulls in the latest engine bug and stability fixes, and unblocks newer rendering and performance features for later releases. This update is groundwork, not a big visible change on its own.
  • If something feels off after you update, report it in Discord. Engine upgrades can shake loose edge cases, so bug reports are extra useful right now.
v2.8.6PATCH

Genji Fixes

Genji fixes: Deflect now correctly extends Dragonblade, dashing resets the slash combo, Wall Climb works reliably in live matches, and the dash-during-wallclimb zero-gravity bug is fixed.

Highlights

  • Deflect now properly extends Dragonblade — using it near the end of your ult keeps the blade out for the full deflect, then sheathes cleanly instead of snapping back to shurikens mid-deflect.
  • Dragonblade combo reset: dashing now restarts your slash sequence at the opening (right-to-left) swing.
  • Wall Climb now works reliably in live matches — it previously could fail to grab on dedicated servers (worked only in Practice Range).
  • Fixed a Practice Range bug where dashing upward during a wall climb left you floating with almost no gravity.
v2.8.5PATCH

Match Flow & Reconnect Fixes

The Assemble Your Team timer now counts down properly and always runs its full 30 seconds, a new 60-second Prepare to Attack/Defend setup phase opens each match, Quick Play joins are smoother, and rejoining a match after leaving or closing the game no longer kicks you to the menu.

Highlights

  • The "Assemble Your Team" timer now counts down correctly and always runs its full 30 seconds (it could previously appear frozen at 30)
  • Added the "Prepare to Attack / Defend" setup phase - a 60-second window with a visible countdown for defenders to move into position before the match opens
  • Smoother Quick Play joins: the brief hitch while King's Row loaded has been moved up front and largely eliminated
  • Fixed reconnecting into your match after leaving or closing the game - you're no longer kicked back to the main menu
v2.8.4PATCH

Loading Screen & Reconnect Fixes

The King's Row match loading screen now stays visible for the full pre-match load instead of flashing away after a second, and re-queuing Unranked after leaving or quitting a match no longer kicks you to the login screen.

Highlights

  • The King's Row match loading screen now stays on screen for the full pre-match load (a minimum of 5 seconds, longer while players are still loading) instead of vanishing after a second
  • Fixed being booted to the login screen when re-queuing Unranked after leaving or quitting a match - you now rejoin your live match if it's still joinable, otherwise a fresh match is formed, and any genuine connection error returns you to the main menu with a reason
  • Loading-screen polish: a single curated tip, a lighter/regular tip font, and tidier logo / map-name spacing
v2.8.3PATCH

Menu Polish & Fixes

The menu background blur is now a single unified post-process effect across the Main Menu, Play and Hero Gallery, the hero customization screen is correctly un-blurred, and several menu bugs are fixed.

Highlights

  • Menu background blur is now one unified, sharper post-process effect across the Main Menu, Play and Hero Gallery screens, and it fades smoothly when moving between screens
  • The hero customization screen is now correctly un-blurred so your hero reads crisp and clear
  • Opening a hero's customization screen now moves the camera correctly in the live build (previously editor-only)
  • Fixed the top-right Career Profile and Social buttons becoming unclickable after leaving a screen with the ESC key
  • Play-screen game-mode card titles are larger with tighter spacing, and the Login screen's Manage Account / Exit to Desktop buttons are bigger
v2.8.2PATCH

Unrealwatch 2.8.2: Menu & UI Polish

Cleaner menus across the board - a stronger blur-and-dim backdrop on the Play and Hero Gallery screens, the proper UnrealWatch boot logo, smoother button and card animations, and a refreshed main menu.

Highlights

  • PLAY and HERO GALLERY menus now have a stronger background blur and dim so icons and text read more clearly over the 3D scene
  • The game now boots with the UnrealWatch logo and app icon instead of the default Unreal splash
  • Play-screen game-mode cards (Unranked / Competitive / Practice Range) now scale up smoothly on hover instead of snapping
  • Pause-menu buttons react faster on hover
  • Main menu: 'Heroes' is now 'Hero Gallery', with tighter, cleaner menu spacing
  • Lower menu reorganized to Social, Career Profile, Options, Exit Game
  • Login screen: Manage Account / Exit to Desktop buttons are now centered, equal-width and resized
v2.8.1PATCH

Unrealwatch 2.8.1: Wider View & Cleaner Menus

A wider default field of view with a rock-steady first-person view, a live FOV slider, clearer menu screens, and new buttons on the login and Hero Gallery screens.

Highlights

  • Default field of view raised to 103 for a wider, more open view (still adjustable down to 80)
  • Your first-person hands and weapon stay steady at any FOV - the slider no longer warps the viewmodel
  • FOV updates live while you drag the slider in a match - no need to leave to the menu and back
  • PLAY and HERO GALLERY screens have a soft blur-and-dim backdrop so icons and text read clearly over the 3D scene
  • ESC / BACK / CHAT buttons now sit in exactly the same spot on every screen
  • Login screen: new MANAGE ACCOUNT and EXIT TO DESKTOP buttons in the bottom-left
  • Hero Gallery and hero customization now have CHAT and BACK buttons, and the title shows the hero name (e.g. GENJI)
v2.8.0PATCH

Matchmaking & Stability

A big reliability update: rejoin your match, smoother backfill, crash fixes, and a major matchmaking reliability pass.

Highlights

  • Rejoin: re-queue after leaving a Quick Play match and you are slotted back if a seat is still open, otherwise the next available match
  • Smoother backfill - open seats fill cleanly and mid-match joiners get spawn protection
  • Fixed a fatal menu crash (ESC mashing) and a chat-window crash on load
  • Server-authoritative seat accounting + connection self-healing - no more disappearing players or matches
v2.7.0MAJOR UPDATE

Unrealwatch 2.7.0: Smoother Matches & a New Loading Screen

A new Quick-Play loading screen, automatic reconnect when your connection drops, clearer connection errors, and matchmaking reliability hardening.

Highlights

  • NEW: Quick-Play loading screen shows the map you are dropping into - real map art, the game mode, the map name, and a gameplay tip - instead of a generic screen
  • Auto-reconnect: if your connection drops while joining a match, the game gets you back in automatically instead of bouncing you to the menu
  • Clearer connection errors: a specific message when a server cannot be reached, instead of a silent return to the login screen
  • Fixed a connectivity issue that could stop players from joining matches
  • Longer reconnection grace in Competitive (180s)
  • Matchmaking reliability hardening and new server-health monitoring

New Content

  • Quick-Play loading screen - you now see the map you are dropping into (real map art, the game mode, the map name, and a gameplay tip) instead of a generic screen

Fixes & Improvements

  • Fixed a connectivity issue that could stop players from joining matches
  • Auto-reconnect: if your connection drops while joining a match, the game gets you back in automatically instead of bouncing you to the menu
  • Clearer connection errors: a specific message when a server cannot be reached, instead of a silent return to the login screen
  • Longer reconnection grace in Competitive (180s)

Behind the Scenes

  • Matchmaking reliability hardening and new server-health monitoring
  • Genji: Overwatch-shader skin cleanup
v2.6.4PATCH

Unrealwatch 2.6.4: Hero Gallery & Menu Polish

The Hero Gallery makes its debut, screen titles get the new fade treatment, and a batch of menu, chat, and Genji animation fixes land.

Highlights

  • NEW: Hero Gallery - click HEROES in the main menu for the three-role roster (Tank / Damage / Support) with your equipped skin's portrait on every tile
  • Selecting a hero zooms the menu camera to the customization set - the full customization screen is on the way
  • Screen titles across Play, Social, and the Hero Gallery now wear the fade art treatment
  • ESC-menu buttons: outlines are strictly hover-only and sit centered on the button edge
  • Closed chat shrinks just the message area toward the input row - the window and input no longer move
  • Genji: quick melee after throwing shurikens no longer snaps back to the throw pose - it settles to idle
  • Key hints now consistently read ESC everywhere (no more ESCAPE)

Menus & UI

  • Hero Gallery: three role columns (Tank 4-wide, Damage 6-wide, Support 4-wide), alphabetical tiles, equipped-skin portraits at native aspect ratio, white name bars
  • Hero detail page is a clean work-in-progress screen for now (the old placeholder skin grid was removed)
  • PLAY / HERO GALLERY / SOCIAL titles repositioned with the new bottom-fade text material
  • ESC pause menu: hover outline doubled in thickness, straddles the button edge, and never lingers after closing the menu
  • Social tabs: content containers moved down so CHANNELS / GROUP / ENEMY no longer overlap the header art
  • Friends-list button hover pulse reaches half as far

Chat

  • Closed chat now halves only the message area (top edge slides toward the input row) instead of squishing the whole window

Heroes

  • Genji: quick melee now properly interrupts the shuriken-throw linger - no more snap-back to the throw pose after the melee finishes
v2.6.3HOTFIX

Unrealwatch 2.6.3: Dialog & Button Polish

Highlights

  • Prompt dialog buttons (LEAVING GAME, announcements, and friends) are now always centered in the bottom bar - any number of buttons
  • Action buttons lost their outer hover rings - hover now draws a clean inner outline, 50% thicker than before, strictly inside the button
  • Applies across the board: prompt CANCEL/YES, SEND REQUEST, BACK, ADD FRIEND, the currency +, and announcement OK
v2.6.2PATCH

Unrealwatch 2.6.2: Stability & Style Patch

Fullscreen fixed on DPI-scaled laptops, fatal idle crashes on the Career Profile and Social pages eliminated, plus a big interaction-polish pass: smarter menu hover effects, the cyan outline family restored, a universal crimson action button, the new prompt overlay, and chat that stays out of your way.

Highlights

  • Fullscreen no longer renders out of bounds on DPI-scaled displays (125%/150% laptop scaling) - the game now detects your panel's real native resolution, snaps fullscreen picks to real display modes, and self-repairs older installs on next launch
  • Fixed fatal crashes when clicking after idling on the Career Profile or Social pages - a whole class of garbage-collection lifetime bugs was swept and hardened across the client
  • Menu polish: slightly smaller button text, a second outer hover outline, and buttons now subtly widen while hovered
  • The cyan hover-outline identity is back everywhere it belongs (menu buttons, profile and social widgets, friend rows, customization tiles) - corner key hints stay white
  • New universal crimson action button - ADD FRIEND, SEND REQUEST, the currency +, and EQUIP now share one style with a white pulsating hover outline; SEND REQUEST is finally the same size as its neighbors
  • Friend-row hover pulse is thinner, smoother, and breathes inward instead of ballooning
  • Leaving a game now asks 'LEAVING GAME. ARE YOU SURE?' through the new universal prompt overlay - announcements share the same letterbox look
  • Admin chat broadcasts now show as [SYSTEM] messages with correct custom colors, in normal chat order
  • Closing the chat shrinks its window to half height so incoming messages stay clear of menu items
v2.6.1PATCH

Unrealwatch 2.6.1: Menu & Style Update

A brand-new full-screen menu, an UnrealWatch crimson identity pass across game, launcher and website, a deeper online wall-climb fix, smarter chat placement, and a stack of input polish.

Highlights

  • All-new menu: press ESC in the main menu or mid-match for the full-screen UnrealWatch menu - Social, Career Profile, Options, Patch Notes, and quick exit
  • Wall climb online, round two: the server now accepts your climb instantly instead of fighting your client for the first split-second
  • First-person arms stay level while wall climbing - no more pointing into the wall when you look up or down
  • Hover highlights across the game, launcher, and website are now UnrealWatch crimson
  • In-match chat now sits vertically centered on the left and slides back to its corner spot in menus
  • Fixed: closing the pause menu left your camera dead until you clicked
  • ENTER/CHAT is now available on every main-menu screen, and the menu root shows an ESC/MENU hint
  • The main menu wears the new UnrealWatch text logo
  • Launcher & website: friends lists got crimson hover outlines and roomier rows
v2.6.0MAJOR UPDATE

Unrealwatch 2.6.0: Server Parity Update

Online matches now play exactly like the Practice Range. A deep netcode pass fixed every 'works in practice, breaks online' bug we could find - camera height, shuriken aim, wall climb, Dragonblade visuals, dash safety - plus consistent ESC navigation, smarter resolution handling, and a main menu that fits every screen.

Highlights

  • Camera no longer spawns at the wrong height in online matches
  • Shurikens now fly exactly to your crosshair online, at any pitch
  • Wall climb now works reliably in online matches
  • Dragonblade draw and sheathe show the blade correctly online (no more wakizashi stand-in)
  • Dashing into the ground can no longer make your character vanish
  • Stuck shurikens no longer keep their flight trail online
  • First-person model FOV and positioning now identical in practice and online
  • ESC now consistently opens AND closes the pause menu, and backs out of any screen
  • Chat no longer invisibly blocks the main menu buttons on first launch
  • Game starts at your monitor's native resolution on first launch, and the resolution list now shows your monitor's real modes
  • Main menu now frames correctly on ultrawide and any aspect ratio
v2.5.3PATCH

Unrealwatch 2.5.3: Friend Profiles & Add-Friend Polish

Viewing a friend's profile now opens as a full page in the launcher's main view instead of a cramped popup, showing the same public info as the website. The Add Friend screen got a matching clean redesign on launcher and website, and your match history is now private to you.

Highlights

  • Friend profiles now open as a full page in the launcher's main view - no more squished popup inside the friends panel
  • Friend profiles show public info only: overview with rank plus hero playtime - exactly what the website shows
  • Your match history is now private - only you can see your own matches
  • Add Friend redesigned to look identical on launcher and website: two clean attached panels, rounded corners, centered Send/Cancel buttons
  • Overwatch-style hover: buttons on the Add Friend screen now get a clean white outline
  • Searching for someone you already requested now shows SENT (and FRIENDS for existing friends) instead of a clickable Add button
  • Hovering a friend in your friends list now outlines their card exactly instead of an oversized highlight
  • Recent Players now lives as a tab on your own Career page
v2.5.2PATCH

Unrealwatch 2.5.2: Stay Signed In + Social Overhaul

No more random logouts. Launcher, website, and game sessions are now fully independent, 'Remember me' keeps you signed in for up to a year, and adding friends got a brand-new full-screen look on both the launcher and the website.

Highlights

  • Fixed random logouts - signing in on the website no longer signs you out of the launcher (or the other way around)
  • 'Remember me' on the launcher now truly remembers you for up to a year on your device
  • The website got the same 'Remember me' checkbox - stay signed in across browser restarts
  • Brief connection hiccups and server updates no longer log you out
  • All-new Overwatch-style Add Friend screen on launcher and website - full-width, with search, BattleTag entry, and Discord suggestions
  • Friends list reworked: favorites up top, one sorted friends list (in-game first), incoming requests flagged with a crimson badge
  • Recent Players moved into your profile as its own tab - grouped per match, click any player to view their profile
v2.5.1PATCH

Unrealwatch 2.5.1: Genji Combat Animation Fixes

A focused combat-feel patch for Genji. Holding the fire buttons now plays the throw animation for every shot instead of only the first, running dry automatically starts your reload, and the shuriken fan in your hand now tucks away properly while you deflect.

Highlights

  • Holding primary fire now plays the throw animation for every volley, in sync with the actual shots
  • Holding secondary fire restarts the fan-throw animation cleanly per volley instead of drifting out of sync
  • Firing on an empty magazine now starts the reload for you - including after your reload was cancelled by a melee or dash
  • Cancelling a reload with melee or dash now visibly stops the reload animation for everyone, not just you
  • Your held shurikens are now hidden while deflecting - in both shuriken and Dragonblade stance - and reappear when the deflect ends
  • Dashing or deflecting in the middle of a shuriken burst no longer leaves the throw animation playing over your new action
v2.5.0MAJOR UPDATE

Unrealwatch 2.5.0: The Big Hardening Patch

Our largest security and stability release yet. Genji's wall-climb now works properly in online matches, first-person actions feel instant on our servers, and accounts plus the whole platform got a deep security overhaul. The launcher will ask you to sign in once after this update.

Highlights

  • Genji wall-climb is now fully server-validated - no more rubber-banding, and other players finally see you climb
  • First-person fire, reload, dash and deflect respond instantly in online matches
  • Fixed several animation bugs: double-jump blade blend, hurt reactions while deflecting, alt-fire recovery snapping
  • Anti-cheat: server-side aim validation, hardened ability checks, connection flood protection
  • One-time sign-in after this update - your saved login is now bound even tighter to your PC
  • Website sign-in moved to secure httpOnly cookies; logging out now revokes the session everywhere
  • Behind the scenes: isolated service credentials, full rate limiting, encrypted automated database backups, admin tooling overhaul
v2.4.2PATCH

Server-side Security Hardening

A small server-side security patch. Match join tokens are now single-use, your saved login session is better protected in our database, and our internal services authenticate to each other more strictly. No client update needed and no gameplay changes.

Highlights

  • Match join tokens are now single-use, so a captured token cannot be replayed
  • Your saved login session is stored hashed in our database
  • Internal services now authenticate to the data cache

Accounts and Servers

  • Match join tokens are consumed on first use, so a token captured in transit cannot be replayed to hijack a match slot
  • Refresh tokens (your stay-signed-in session) are now stored hashed at rest, so a database read cannot reveal a usable session
  • Internal services now authenticate to the shared data cache, hardening against lateral movement if any one service were compromised
v2.4.1PATCH

Security and Privacy Hardening

A focused security and privacy release. Your saved sign in is now encrypted on your PC, downloaded game files are verified before they install, and your account details are better protected on our servers. No gameplay changes.

Highlights

  • Your saved sign in is now encrypted at rest on your computer
  • Downloaded game updates are verified before they install
  • Account email and password reset links are better protected on our servers
  • Tighter handling of sign in tokens and secrets across the board

Launcher

  • Your saved sign in is now encrypted with your Windows account, so it cannot be read straight off disk
  • Full game downloads are checked against a verified fingerprint before they install, so a tampered or corrupted download is rejected

Game Client

  • Your sign in token is wiped from memory and the process environment as soon as the game has read it
  • Session details written for crash reports are cleared on a normal exit

Account and Servers

  • One time email verification and password reset links are now stored hashed, so a database read cannot turn them into a usable link
  • Email delivery now verifies the mail server certificate for any non local relay
  • Discord login tokens remain encrypted at rest

Behind the Scenes

  • Closed a path where the Discord bot could have printed secrets into its own logs
v2.4.0MAJOR UPDATE

Genji First Person Overhaul, Respawn Rework, and HUD Fixes

A big one. Genji's first person view got a full animation overhaul, the death and respawn flow was rebuilt from the ground up for consistency, and we tracked down a HUD freeze that had been hiding for weeks. The launcher and website also got security passes.

Highlights

  • Genji's first person animations rebuilt on a brand new procedural system
  • Death and respawn fully reworked, every life now starts on a clean fresh character
  • Fixed the ability cooldown ring and health bar freezing during longer sessions
  • Quick melee now plays all the way through when you get hit
  • Security hardening passes on both the launcher and the website

Genji

  • Genji's first person view now runs on native first person clips for firing, reloading, melee, dashing, deflecting, and dragonblade, instead of borrowed third person animations
  • Pose transitions are smooth now, no more snapping between actions when you fire, dash, or change stance
  • Dragonblade shows the blade sheathing on your viewmodel, and deflect has its own dedicated first person state machine
  • Added wall climb, hurt reactions when you take a hit, and a cleaner shuriken idle stance
  • Quick melee plays fully when you get hit mid swing. Only a wall climb can cancel it now
  • The blocked markers on your abilities always match what you are actually allowed to do

Bug Fixes

  • Fixed the ability cooldown ring and health bar freezing after you had been playing a while or died a few times. It turned out to be a garbage collection timing issue that quietly disconnected the HUD from its live data
  • Fixed a full input lockup that could happen after your second death on dedicated servers
  • Deflect animations now play reliably for everyone, not just when you are the one hosting
  • Dragonblade deflect plays its proper stop animation, and the blade returns to your hand only once you settle back to idle
  • You can no longer act for a brief moment while you are dead
  • Cosmetics load correctly again after you switch accounts

New and Improved

  • Rebuilt the death and respawn flow from the ground up. Every death now hands you a clean fresh character, which removes a whole family of inconsistent respawn bugs that showed up after a few deaths
  • Launcher security pass, tighter validation of where updates come from, stricter account data isolation when you switch accounts, safer external link handling, and a few dependency security patches
  • Website security pass, closed information leaks, tightened cross account checks, added security headers, and locked down rate limits, plus a performance and dead code cleanup
  • Discord login tokens are now encrypted at rest
  • Behind the scenes, chat moderation cleanup, a matchmaker refactor, and new alerting so we catch issues faster
v2.3.4PATCH

Unrealwatch 2.3.4 — Discord Friend Suggestions

Find the people you already play with. Unrealwatch now suggests players you're friends with on Discord, so you can add them in one click — and the old behaviour that auto-sent friend requests when you launched the game is gone. Discord friendships only ever *suggest* now; nothing is added without you choosing it.

Highlights

  • New 'From your Discord' section in the Add Friend menu — add Discord friends who play Unrealwatch in one click
  • A collapsible 'Discord Suggestions' list on your friends page, on both the website and the launcher
  • The old auto-add-friends sync is gone — no more surprise friend requests when you launch the game
  • Two new privacy toggles in Settings: hide yourself from others' suggestions, or turn suggestions off entirely
  • Link or re-link your Discord to turn suggestions on
v2.3.3HOTFIX

Unrealwatch 2.3.3 — Launcher: friends menu opens again

Highlights

  • Friend menu (view profile, message, favorite, remove) opens at your cursor again
  • Fixes the 2.3.2 regression where the menu mounted off-screen and looked like nothing happened
  • Pure hotfix on top of the 2.3.2 quieter-notifications release — no other changes
v2.3.2PATCH

Unrealwatch 2.3.2 — Launcher: quieter notifications

The launcher now stays quiet unless someone sends you a private message. Only direct messages play a sound and raise a Windows notification — every other alert has been turned off.

Highlights

  • Private messages are the only thing that plays a sound and raises a Windows notification
  • Friend-online, friend requests, party invites, and match events no longer pop a notification or play a sound
  • Game updates, downloads, crash reports, and copy-to-clipboard confirmations are silent too
  • In-app toasts still appear quietly while the launcher is open, so you don't lose context
v2.3.1PATCH

Unrealwatch 2.3.1 — Launcher friends list, refined

The launcher's friends list now matches the website. Click anywhere on a friend's card to open their actions menu — the separate favorite star and the ⋮ button are gone, so each namecard is bigger and the list sits tighter.

Highlights

  • Click (or right-click) anywhere on a friend to open their actions — View Profile, Copy BattleTag, Send Message, favorite, or remove
  • Favorite a friend straight from the menu — the always-visible ★ button is gone
  • Removed the ⋮ menu button; bigger, full-width namecards fill the reclaimed space
  • Tighter spacing between friends — more of your list on screen at once
  • Menu restyled to match the website's glass look; Remove Friend still asks for confirmation
v2.2.10PATCH

Unrealwatch 2.2.10 — Launcher: lighter, faster, stays signed in

A launcher update focused on memory use and login reliability. The launcher now uses far less memory while running in the background, and you stay signed in across updates and breaks.

Highlights

  • Much lower memory use — the launcher no longer keeps animating and redrawing while minimized to the tray, bounds its browser cache, and ships right-sized rank art.
  • Stay signed in — a new option on the login screen (on by default) keeps you logged in across launcher updates and long breaks.
  • Fixed a bug where a launcher update could log you out — updates now preserve your session.
v2.3.0PATCH

Unrealwatch 2.3.0 — Consistent friend presence, real Away, privacy hardening

Friend status is now accurate and consistent everywhere. Status is decided by the server from what you are actually doing — not guessed by whichever app shouted last — so a friend who is only on the website now shows as "Online (Website)" instead of "In Menus", and the in-game states read clearly: "In Menus", "Quick Play: In Queue", "Quick Play: In Game", "Competitive: In Queue/In Game", and "Practice Range: In Game". If you are in a party, your status cycles between "In Party" and what you are doing. "Away" now means genuinely away — the launcher marks you Away after five minutes with no keyboard or mouse input (like Discord or Battle.net), instead of the instant you minimise. Closing the website now removes your status from friends' lists promptly. This release also folds in the privacy and security hardening that went live after 2.2.9 (consent-gated Discord friend sync, no Discord-account exposure on public profiles, full personal-data scrub on account deletion) plus the practice-range parity, unified website/launcher look, Genji first-person viewmodel, and reworked legal pages from the same window.

Highlights

  • Presence — Friend status is now consistent everywhere. The server decides your status from what you are actually doing, so a friend who is only on the website shows 'Online (Website)' instead of 'In Menus'
  • Presence — Clear, specific in-game states: 'In Menus', 'Quick Play: In Queue/In Game', 'Competitive: In Queue/In Game', and 'Practice Range: In Game'
  • Presence — In a party? Your status now cycles between 'In Party' and what you are doing (queueing, in a match) so friends see both
  • Presence — 'Away' now means genuinely away. The launcher marks you Away after 5 minutes with no keyboard/mouse input — across your whole PC, like Discord or Battle.net — instead of the moment you minimise
  • Presence — Closing the website now removes you from friends' lists promptly instead of lingering as 'online'
  • Privacy — Discord friend sync now asks before adding. When you link Discord, friends you share who also play Unrealwatch receive a friend request to confirm, instead of being added automatically. You are always in control of who is on your friends list
  • Privacy — Your linked Discord account is no longer exposed through public BattleTag profile lookups (only a 'linked: yes/no' indicator is shared)
  • Privacy — Deleting your account now fully erases residual personal data from crash diagnostics (BattleTag, IP address, and system info), not just the account record
  • Fix — The in-game cosmetics catalog and the Discord bot's /cosmetics command failed to load; now fixed
  • Security — Crash reports submitted while signed in now carry your verified BattleTag (it can no longer be spoofed onto another player in the operator feed)
  • Practice — The Practice Range now runs on the same systems as real matches, so it behaves consistently with what you get in a game
  • Look & feel — Unified visual theme across the website and launcher (shared crimson accent and glass surfaces)
  • Genji — First-person viewmodel and first-person animations for Genji
  • Site — Reworked Privacy, Terms, and About pages

Friend Presence

  • Status is now server-derived from your actual state (which app you are connected from, whether you are queueing, in a match, or in a party) instead of being asserted by the client. This removes the long-standing inconsistency where a website-only login could appear 'In Menus' to friends
  • Connection source is shown distinctly: 'Online (Website)' when you are only on the site, 'Online (Launcher)' when you are in the launcher. If you are in the game, the game state takes priority over both
  • In-game states are specific and per-mode: 'In Menus', 'Quick Play: In Queue', 'Quick Play: In Game', 'Competitive: In Queue', 'Competitive: In Game', and 'Practice Range: In Game'
  • Party status coexists with everything else — when you are in a party your label alternates every few seconds between 'In Party' and your current activity, so friends can see both at a glance
  • When you are connected from more than one place at once (game + launcher + website), friends see a single, sensible status with the richest source winning (game over launcher over website)
  • Status colours on friend cards now match the state (online/menus green, queue amber, in-game red, away yellow, offline grey) consistently across the website, launcher, and in-game friends list

Away / Idle

  • The launcher now detects real inactivity (no keyboard or mouse input anywhere on your PC for 5 minutes) and reports you as 'Away', then back to online the moment you move — the same approach Discord, Teams, and Battle.net use
  • Minimising the launcher no longer marks you Away — only genuine inactivity does
  • The manual 'set your status' dropdown has been removed for now; your status is determined automatically

Status Clearing

  • Closing the website (or switching away from the tab) now drops your website presence promptly so you stop showing as online to friends
  • Presence is kept alive by your connection and expires quickly if a client disconnects uncleanly (e.g. sleep or network drop), instead of lingering for up to an hour

Privacy & Security

  • Discord friend sync is now consent-gated: linking Discord sends friend requests to shared players for them to confirm, rather than auto-adding them to your list. Fixes the reported 'a friend I never added'
  • Public BattleTag profile lookups no longer return your Discord account — only whether an account is linked
  • Account deletion now scrubs residual personal data (BattleTag, IP, system info) from crash diagnostics, not just the account row
  • Crash reports from signed-in players are tagged with the server-verified BattleTag so they cannot be spoofed onto another player
  • Fixed a server error that prevented the in-game cosmetics catalog and the Discord /cosmetics command from loading

Practice Range

  • The Practice Range now shares the same match systems (rules, ultimate charge, hero setup) as real matches, so practice behaves consistently with live play

Heroes

  • Genji now has a dedicated first-person viewmodel (arms + weapons) and first-person animations

Website & Launcher

  • Unified visual theme across the website and launcher — shared crimson brand accent and glass surfaces for a consistent look
  • Reworked Privacy, Terms, and About pages
  • Account dashboard and social panel polish on the website

Notes for this release

  • The server-side presence and privacy changes apply to everyone immediately. The launcher and game-client portions (the launcher's real-idle Away detection and the game's in-menus label refinement) take effect once you update to the matching client build
v2.2.8PATCH

Unrealwatch 2.2.8 — Multiplayer hardening: camera, dash, respawn, cooldowns, chat, death-cam

Dedicated-server multiplayer playtest surfaced a cluster of bugs that never appeared in Practice (listen-server hides them). This release fixes all of them at the root: Genji first-person camera now derives its eye height the instant skeletal bones finalize on autonomous-proxy clients (no more belly-cam on remote players); the dash camera can no longer leave you with a frozen view if a destruction race orphans the view target (a 1Hz watchdog on the player controller snaps you back to your live pawn); multi-death stutter is gone because Revive now wipes accumulated character-movement residue (velocity, accumulated forces, prediction data, network-smoothing fields); ability cooldown bars on the bottom-right HUD now animate smoothly on dedi clients because cooldowns are driven by a replicated server-end-timestamp instead of a per-tick float; ESC reliably closes the pause menu on the second press (back-action routed via CommonUI's back-handler instead of relying on a flaky focus race); chat now renders on top of Career Profile / Friends / Settings / Pause Menu in-match; chat history no longer turns invisible after travelling between maps; duplicate "joined the match" lines are gone (idempotent backend + UE-server dedup); a new follow-killer death camera tracks the player who killed you for two seconds with cubic blend and smooth follow, then frees you to free-look — mouse movement breaks the lock instantly.

Highlights

  • Fix — Genji first-person camera no longer spawns at belly height on dedicated-server multiplayer. Camera height now re-derives the instant the skeletal mesh finishes its first bone transform on the autonomous-proxy client, so the cold-spawn race against PSO compile and skin streaming is closed for good
  • Fix — Dash no longer leaves you with a permanently frozen camera. A 1Hz view-target watchdog on the player controller snaps the view back to your live pawn whenever the view target becomes null or destroyed, regardless of which subsystem caused the orphan
  • Fix — Repeated deaths no longer cause progressive stutter. Revive now wipes accumulated character-movement state (velocity, accumulated forces, prediction data, network-smoothing fields) so deaths #3, #4, #5 feel identical to death #1
  • Fix — Ability cooldown bars on the bottom-right HUD now animate smoothly on dedicated-server multiplayer. Cooldowns are replicated as a server end-timestamp; the HUD computes remaining time locally every paint tick, so the animation is independent of network update rate
  • Fix — Second ESC press reliably closes the pause menu. Back-action is now routed through CommonUI's back-handler dispatch (which works regardless of Slate keyboard focus state) instead of relying on a key-down handler that could miss the press due to a focus race on dedicated clients
  • Fix — Chat now renders on top of Career Profile, Friends, Settings, and Pause Menu in-match (chat z-order bumped above the modal-stack)
  • Fix — Chat records no longer turn invisible after travelling between maps. The fade clock now uses a process-monotonic timestamp so map-travel can't accidentally push a row past its visibility window
  • Fix — Joining a match no longer produces duplicate 'joined' lines. The UE dedicated server now dedups its three connection-callbacks against a per-match set, and the backend 'player connected' API returns a no-op when the row is already connected so the event-feed only emits on real transitions
  • Feature — After you die, the camera smoothly follows your killer for two seconds (cubic blend in, then a soft-follow with separate position and rotation smoothing rates), then auto-releases to free spectator. Move your mouse during the follow to break the lock instantly. Handles killer-disconnect and killer-died-while-watching as graceful free-look transitions
  • Backend fix — Orphan 'match_players' reaper no longer crashes every 10 minutes on a missing-column SQL error. The reaper was referencing 'created_at' but the table has 'joined_at'; ghost match_players rows now actually get reaped

Multiplayer Stability

  • Genji first-person camera height now re-derives via the skeletal-mesh 'bone transforms finalized' delegate instead of a fixed 1.8s polling-with-retry budget. On dedicated-server autonomous-proxy clients, the cold-spawn race against PSO compile and skin streaming would routinely exhaust the retry budget and leave the camera at the ctor fallback (≈ belly height). The delegate fires the moment ComponentSpaceTransforms is freshly populated, so the camera lands at the correct eye height the very first tick the rig is valid — deterministic on every cold spawn
  • Player controller now runs a 1Hz view-target watchdog. If GetViewTarget() ever becomes null, destroyed, or points at a dead pawn that isn't the death-cam actor, the watchdog snaps the view back to GetPawn() with a 0s blend. Eliminates the entire class of 'camera-frozen-after-dash' bugs regardless of which subsystem caused the orphan (dash + simultaneous death, pawn destruction race, late-arriving 'bIsDashing=false' replication)
  • Character Revive now calls StopMovementImmediately(), zeros Velocity, ClearAccumulatedForces(), and ResetPredictionData on both server and clients; Multicast_OnRevive additionally restores engine-default NetworkSmoothingMode / NetworkMaxSmoothUpdateDistance / NetworkNoSmoothUpdateDistance from the CDO. The dedicated-server reuses the same pawn across deaths (Practice destroys + respawns a fresh pawn), so without this wipe the prior life's CMC state accumulated across 3-5 deaths until the server/client position delta grew large enough for the engine to snap-correct as visible stutter
  • Wired the previously-unreferenced OWRespawnLibrary::TickWatchdog() into the player controller's 10Hz interact tick. The library was documented as defense-in-depth for 'alive-but-locked' self-heal but had zero callsites — now it actually runs
  • Multicast_OnDeath is now guarded against double-application via a per-pawn flag (and Die() was already guarded by the bIsDead flip). The match log showed the RPC firing twice back-to-back on the same death; the duplicate ragdoll-and-collision-disable was a no-op but consumed bandwidth and could confuse downstream UI

HUD

  • Ability component now exposes UPROPERTY(Replicated, COND_OwnerOnly) ServerCooldownEndTime (server-time-domain) and a GetCooldownRemaining() accessor that computes 'end-time minus now' on the client every paint tick. Replaces the per-tick decrement of a Replicated CooldownRemaining float which the dedicated server replicated at the character's net update frequency (10-30 Hz) — the bar appeared frozen between snapshots on dedi clients. The new model is smooth at full HUD framerate regardless of net rate and has the same correctness invariant on listen-server (Practice) and dedicated server (multiplayer)
  • The bottom-right ability cluster now polls cooldown remaining via the new accessor instead of reading the raw field directly. The cluster also recovers cleanly across kill-reset and natural-expiry paths because both code paths now go through OnCooldownFinished() which zeros both fields and clears the cooldown timer
  • Server-side Server_UseAbility logging dropped from Log to Verbose for the canUse=0 reject case (the match log showed 9,771 rejections in a 21-minute match from primary-fire being held). The accept case still logs at Log so the audit trail is preserved

Chat

  • Chat overlay z-order moved above the modal stack (EUIZOrder::Chat 75 → 250) so chat renders on top of Pause Menu, Friends, Career Profile, Settings, and Confirm Dialog in-match. Matches the invariant 'chat always on top' that this overlay has always been advertised to satisfy
  • Chat message fade clock now uses FPlatformTime::Seconds() (monotonic process wall-time) instead of UWorld::GetTimeSeconds() at every stamp + read site. The chat subsystem is GameInstance-scoped and survives ClientTravel, but world time resets near zero in the new world — a row stamped before travel could be pushed past its visibility window the moment the new world advanced past the row's opacity-zero threshold. Monotonic time can't reset, so the invisibility class is eliminated
  • Backend mark_player_connected is now idempotent: when the row is already is_connected=TRUE and disconnected_at IS NULL, the SELECT short-circuits and returns transitioned=False without running the UPDATE. The route layer only emits the 'match.player_connected' feed event when transitioned=True, so duplicate-callback paths from the gameserver no longer multiply the join announcement
  • UE dedicated server adds a per-match TSet<FString> ReportedConnectedUserIds dedup gate around the three ReportPlayerConnected callsites (expected-player async, backfill, dev/reconnect fallthrough). On Logout the UserId is removed from the set so a true full-reconnect cycle re-emits exactly one join. Belt-and-braces with the backend fix

Pause Menu

  • OWPauseMenuWidget is now a CommonUI back-handler (sets bIsBackHandler=true in the constructor and overrides NativeOnHandleBackAction). CommonUI dispatches the back-action to the top activated widget regardless of Slate keyboard focus state, which eliminates the dedi-client focus-race that previously left the second ESC press unhandled. The legacy NativeOnPreviewKeyDown ESC interception and its frame-guard counter are removed
  • OWMatchPlayerController's BindKey(EKeys::Escape, ...) is unchanged on the open-side — it only fires when no menu is up, since CommonUI Menu mode is not yet active. So the open path keeps working exactly as before

Death Camera

  • New AOWDeathCameraActor — a lightweight local-only AActor with a single CameraComponent root. Spawned per-player on first death, recycled across deaths, destroyed on EndPlay. Never replicated, zero net cost
  • After death, the camera blends from your final pose to a behind-and-above third-person framing of your killer (offset (-350, 0, 150) by default, fully designer-tunable). The blend is cubic over 0.75s, then the camera soft-follows the killer for 2 seconds with separate position (6Hz) and rotation (8Hz) smoothing rates so the position reads as 'spring follow' and the rotation reads as 'snap-aim'
  • Move your mouse during the follow window and the lock breaks instantly — accumulated yaw + pitch above a small threshold flips the camera into free-look mode where the camera position is frozen at the handoff point and rotation is driven by raw mouse delta. After 2 seconds without a mouse break, the camera auto-releases into free-look the same way
  • Edge cases handled: killer disconnects mid-watch → freeze frame, enter free-look. Killer dies mid-watch → freeze frame, enter free-look. Self-elimination (fall damage, kill volume, no attributable killer) → free-look immediately at corpse location. Respawn during the 2s window → release death cam cleanly and snap view to the new pawn

Backend

  • Fixed src/reconnect/service.py:614 — orphan 'match_players' reaper was referencing a non-existent 'created_at' column on match_players. The table has joined_at (defined in migration 0010_queue_match_servers.sql:72). Aligned the column name with the sibling reaper cleanup_expired_reconnects which already followed the convention (match_players uses joined_at, matches uses created_at). The reaper had been crashing once every 10 minutes since deployment; ghost match_players rows now actually get reaped on time

Known Issues

  • Hitbox precision is inconsistent on some hero poses — sometimes you need to aim low to land a hit. Deferred to a focused hitbox-collision pass next release
  • KingsRow level is missing AOWSpawnRoom, AOWCapturePoint, and AOWPayload actors — server falls back to FVector::ZeroVector for spawns and the hybrid game mode skips the Assault and Escort phases. Will be addressed by a level-edit pass to add the missing actor instances; the gameplay code is already in place
v2.2.7PATCH

Unrealwatch 2.2.7 — V2 bottom-right HUD: ability cells + weapon block

The bottom-right of your in-match HUD is now the V2 ability + weapon cluster. Two ability cells with hotkey pills (Shift for Swift Strike, E for Deflect), a crimson cooldown fill that drains from the bottom edge with a white leading-edge line and a centered countdown, and a weapon block that shows your live shuriken ammo with the weapon icon — all sheared 4° to mirror the bottom-left HP cluster (same magnitude, opposite direction, so the two clusters read as a matched pair). Genji's primary-fire burst can now be cancelled mid-burst by Swift Strike, Deflect, or melee — no more being locked through the rest of the burst after starting one shot. Ammo and current HP also use the same big-noodle title font so the two readouts visually rhyme.

Highlights

  • NEW bottom-right HUD — Swift Strike + Deflect ability cells with hotkey pills and crimson cooldown countdown, plus a weapon block showing live shuriken ammo and the weapon icon. Matches the bottom-left HP HUD's style and pair-mirrors at +4° shear
  • Cancellable Genji primary-fire — Swift Strike, Deflect, or quick-melee now interrupt a primary-fire burst mid-shot so you can react instantly instead of waiting for the burst to finish
  • Big shuriken count — current shuriken ammo now uses the same large title font as your current HP, so the two readouts on either side of the screen visually rhyme
  • Hero + skin weapon icons — each skin can override its weapon icon (falls back to the hero default if the skin doesn't set one), so the bottom-right weapon block follows your equipped skin
  • Dragonblade lock — abilities cleanly grey-out (cooldown cell shows no countdown, fully blocked) while Dragonblade is active or while you're crowd-controlled

HUD

  • New bottom-right ability + weapon cluster. Two ability cells (Shift = Swift Strike, E = Deflect) with content-driven hotkey pills (LSHIFT fits the cell, E shrinks to its content), a 3px crimson outline that stays clean at the corners, a 50% crimson cooldown fill rising from rounded bottom corners with a thin white leading-edge line tracking progress, and a big white countdown number (BigNoodleTooOblique 30pt with black drop shadow) when an ability is on cooldown
  • Weapon block to the right of the ability cells — current/max ammo readout on top (BigNoodleTooOblique 28/20 with the same 8px gap that the HP HUD uses for HP/MaxHP), weapon icon in the middle with an 80% crimson edge line trailing it, and a bottom spacer that aligns the weapon icon's bottom with the ability cells' bottom while bumping the ammo + icon up 5% per the design spec
  • Cluster pair-mirrors the bottom-left HP cluster — both are sheared 4° but in opposite directions with opposite pivots so the two read as a left/right pair instead of two unrelated overlays. Sub-pixel anti-aliasing on the sheared geometry so the edges stay crisp
  • Current HP and current shuriken ammo now both use BigNoodleTooOblique (Title) so the two big numbers on the bottom-left and bottom-right rhyme visually instead of using different families
  • Per-skin weapon icon override — each skin can declare its own weapon icon; if the skin doesn't override, the hero's default weapon icon is used. The same fallback chain applies to ability icons

Genji

  • Primary-fire burst is now cancellable — starting Swift Strike, Deflect, or a quick melee interrupts the current burst mid-shot so you can respond instantly to a deflectable projectile or pop a Swift Strike out of a bad angle without waiting for the rest of your burst to finish
  • Ability HUD cells respect crowd control and Dragonblade — while Dragonblade is active or while you're stunned/silenced, Swift Strike and Deflect cells render as blocked (no countdown, fully grey) so you can see at a glance that they aren't available

Under the hood

  • Every hero's ability set drives the bottom-right cluster declaratively — heroes opt in by declaring their bottom-right ability slots (Genji = Swift Strike + Deflect), and the cluster spawns + wires automatically. Future heroes (Sigma, Reinhardt, Mercy, Hanzo, etc.) get the same cluster the moment they declare their slots
  • Ammo and external-blocked-state are now part of the ability component interface so any future hero with a magazine-based primary or with phase-gated abilities (Sigma flux, Reinhardt charge, Mercy resurrect) plugs into the same HUD without per-hero widget code
  • Old single-row ability bar in the match HUD is fully removed in the same release (no legacy slot-array code path left behind) so there's only one bottom-right renderer
v2.2.6PATCH

Unrealwatch 2.2.6 — Crash-on-launch hotfix

Hotfix for v2.2.5 — the game crashed on launch shortly after reaching the main menu. Cause was a version mismatch between the Intel XeSS upscaling DLLs shipped with v2.2.5 and the version the game binary was built against. v2.2.6 restores the correct DLL set so XeSS loads cleanly and the game starts normally. No gameplay changes from v2.2.5 — all HP HUD V2 + 4-pool health + passive regen behavior is identical.

Highlights

  • Crash on launch fixed — v2.2.5 shipped with mismatched XeSS DLLs that triggered a delay-load failure (Windows error 0xc06d007f) seconds after the main menu loaded. v2.2.6 ships the correct DLL set
  • No gameplay changes — HP HUD V2, 4-pool health (HP/armor/shield/overhealth), 20 HP/s passive regen, Practice nameplate fix, post-respawn regen fix are unchanged from v2.2.5

Stability

  • XeSS plugin DLLs (libxell.dll, libxess.dll, libxess_dx11.dll, libxess_fg.dll) restored from the v2.2.4 baseline to match the .lib files the game binary was linked against. The v2.2.5 release substituted DLLs from a different Intel SDK version that satisfied filesystem presence but failed symbol resolution at runtime
  • First user-visible symptom was the game opening, briefly reaching the main menu, then exiting with Windows exception 0xc06d007f (STATUS_DELAY_LOAD_DEPENDENCY_NOT_FOUND) typically right when something invoked an XeSS or Xe Frame-Generation path
v2.2.5PATCH

Unrealwatch 2.2.5 — HP HUD V2: portrait, 4-pool health, passive regen

The bottom-left of your in-match HUD is now the V2 player-status segment. Hex hero portrait on the left, a modular health bar on the right that shows all four damage pools (HP, armor, shield, overhealth) absorbed in the canonical Overwatch order, a blue accent line, and a nameplate with your real account name. Health now regenerates passively: 20 HP per second after 5 seconds out of combat, the same in Practice and in real matches. A small Practice-mode bug where the nameplate sometimes showed your Windows user instead of your account name is fixed, and a regen edge case where the post-respawn regen would refuse to kick in for up to 5 seconds after a quick re-spawn is fixed as well.

Highlights

  • NEW bottom-left HUD — hex portrait + multi-pool health bar (HP, armor, shield, overhealth) + blue accent + nameplate. Replaces the old plain progress bar
  • Passive HP regen — 20 HP/s after 5 seconds out of combat, same in Practice and Match
  • 4-pool damage absorption in canonical Overwatch order: overhealth → shield → armor → HP
  • Nameplate fix — Practice mode now reliably shows your real account name instead of falling back to your Windows user when /me arrives late
  • Respawn regen fix — passive regen now kicks in immediately after respawning instead of waiting for the pre-death damage timer to expire

HUD

  • New bottom-left player-status segment composed of four sub-widgets — portrait, multi-pool health bar, blue accent line, nameplate. Each sub-widget can be re-styled or replaced independently from a Blueprint subclass without touching C++
  • Centralised visual settings — colors (HP white, armor orange, shield blue, overhealth green, lost-EHP grey, backdrop, seams), sizes, paddings, and regen timings live on a single data asset so designers can re-skin without recompile
  • Hero portrait — static hex backdrop with cyan glow + dynamic player-icon brush driven by your equipped skin
  • Multi-pool bar — HP / armor / shield / overhealth render side-by-side at their correct ratios; lost EHP shows as a lighter grey overlay on the right of each pool; tile-mask seams every 25 EHP for readability; max HP number excludes overhealth (overhealth shows visually inside the bar but does not inflate the displayed max)
  • Nameplate reads from the first non-empty source in this priority chain: replicated DisplayName from match state, cached display name from the platform login response, BattleTag, platform user id, fallback player name, OS user, then a literal Player(local) so the slot never goes blank

Health system

  • Server-authoritative 4-pool absorption — incoming damage drains overhealth first, then shield, then armor, then HP. Each pool replicates separately so the HUD can animate them independently
  • Genji ships with 0 armor / 0 shield / 0 overhealth (single-track health). Future heroes (Reinhardt shield, Brigitte armor, Lúcio shields) will set non-zero defaults on their own class — the absorption logic is hero-agnostic
  • Passive regen — 20 HP/s, kicks in 5 s after the last damage event. Server-only timer, gated so it never runs on a dead pawn
  • Respawn arms regen immediately — fixed an edge case where the last-damage timestamp from your previous life would gate post-respawn regen for up to 5 s
  • Practice debug projectile deals 5 damage so a single shot is one tick against the 4-pool ladder (handy for verifying pool absorption visually)

Practice mode

  • Nameplate resolver — when /me has not yet returned by the time Practice spawns you in, the game now listens for the login response one-shot and re-stamps your nameplate with the correct account display name. No more transient OS-username flash
  • Strangler-fig cleanup — the old single-bar bottom-left HP segment is fully deleted in the same release (no legacy code path left behind a feature flag)

Under the hood

  • Behind the scenes: a shared respawn-helper library is now in the source tree. It does not yet run anywhere — the wiring to Practice and Match is staged for the next release once it has been validated in multiplayer. Mentioned only so changelog readers know the file landed intentionally
v2.2.4PATCH

Chat Input Lock Fix and Genji Camera Nudge

Hotfix. The big one: opening and closing chat in-match was silently killing WASD and ability inputs until you clicked the screen to re-focus. Fixed. The "Chat connected." line that appeared every login is now silent (the connection itself is the signal). Genji's first-person camera also gets a small nudge downward to sit at the proper eye line.

Highlights

  • Closing chat in-match no longer kills your WASD and ability inputs
  • Chat connected. system line is now silent on success (other connection states still surface)
  • Genji first-person camera nudged down to sit at the proper eye line

Chat

  • Opening chat and then closing it (Enter to open, Enter on empty to close) used to leave your inputs disabled until you clicked the screen. Fixed. Closing chat now correctly returns input focus to the game
  • Defense-in-depth: every close path (commit-then-empty, backdrop click, explicit close, Enter on empty) now routes focus back to the game
  • The Chat connected. system line that fired every login is now silent. Connecting, Reconnecting, and Disconnected still surface because those need your attention

Genji

  • First-person camera nudged 40 cm down on top of the v2.2.3 head-bone derive, so the eye sits at the proper line of the third-person silhouette
  • Per-skin overrides still work, and the live console-tune command keeps working as a session adjustment
v2.2.3PATCH

Currency Icons and Launcher Polish

The proper branded icons for UW Coins and Competitive Coins ship everywhere your balance is shown: launcher, website /account, and admin panel. Plus a couple of polish items: the home greeting is slightly larger, the redundant subtitle is gone, and friend rows pack a bit tighter.

Highlights

  • Real branded icons for UW Coins (gold spiral) and Competitive Coins (red diamond) across launcher, website, and admin
  • Website /account dashboard now shows your current balance
  • Home-screen greeting font 10% larger, redundant subtitle removed
  • Friends list rows packed half as tight so the list reads as one group
  • Admin can swap currency icons live without a code change

Launcher

  • Currency strip in the social panel uses real branded icons now (gold spiral for UW Coins, red diamond for Competitive Coins)
  • Separator placement matches the design: thin vertical line between the two currencies, no separator between the coin chip and the [+] shop button
  • Home greeting (Good morning / afternoon / evening) about 10% larger
  • Removed the Level + BattleTag subtitle from the home screen (still on the Career page)
  • Friend list vertical spacing reduced by half so the list reads as one connected group

Website

  • Account dashboard now shows your current currency balance in a glass card under the profile header
  • Same two-chip layout as the launcher, no [+] shop button (purchases stay launcher-only for now)

Admin Panel

  • Currency grant page renders both icons as real SVGs everywhere
  • New Currency Icons page lets an operator upload a replacement icon with a live preview
  • Currency nav moved from Content to Players (it's per-account state, not a catalog)
  • Grant goes through the backend API so a granted player sees their new balance instantly instead of after a manual refresh
v2.2.2PATCH

Genji Deflect Fix and Combat Polish

Genji bug-fix release. The big one: Deflect was silently failing to catch projectiles in real matches since v2.2.0. The bug only surfaced in real multiplayer and dedicated servers; Practice Range was hiding it. Deflect reliably catches shurikens again. Dragonblade unsheathes more smoothly, and Genji's first-person eye height now derives from the rig itself.

Highlights

  • Deflect now catches projectiles in real matches again (silent multiplayer bug since v2.2.0)
  • Dragonblade: the blade appears when your hand reaches grip pose, not on the Q-press frame
  • Closed a rare visual where remote players could see a blade on a non-active Genji after a quick cancel
  • First-person eye height now comes from the rig (about 163 cm, matches reference)
  • Capsule radius bumped to match the mesh, and shurikens cannot spawn inside walls when you're hugging geometry
  • Practice Range gets console commands for live camera and spring-arm tuning

Genji - Combat

  • Deflect catches projectiles again. The bug was a collision-flag regression from v2.2.0 that turned off the projectile's overlap detection. Practice Range happens to not surface this kind of bug because it is single-player; only real multiplayer and dedicated servers do
  • Dragonblade attaches the moment your hand reaches grip pose (about a tenth of a second after Q), not on the same frame Q is pressed
  • Closed a rare visual where pressing Q and immediately dying or being swapped could leave remote players seeing the blade on a non-active Genji

Genji - Camera and Body

  • First-person camera height is now derived at runtime from the rig's head bone, so the eye sits at the right place (about 163 cm above the feet for the default skin). Future skins with different proportions will adopt their correct eye height automatically
  • Capsule radius bumped slightly so Genji collides with geometry at the radius the mesh actually occupies

Combat Polish

  • Shuriken wall-spawn clamp: when you fire while pressed against a wall, the shot spawns just outside the wall instead of inside it (which used to cause some shots to be blocked at spawn)

Practice Range

  • New live-tuning console commands: adjust camera offset and spring-arm in real time without restarting
  • Spring-arm and shared-pivot first-person no longer fight during crouch
v2.1.9HOTFIX

Foundational HUD Crash Fix

Highlights

  • Mid-match HUD crash finally fixed at the proper layer
  • HUD widgets now pinned so the styles they depend on cannot be freed mid-paint
  • Reverted the v2.1.7 and v2.1.8 attempts at this crash, which were patching the wrong layer

Stability

  • Every HUD widget is now pinned as a strong reference on its container, so the visual styles it depends on cannot be freed while paint is in flight
  • Reverted the v2.1.7 and v2.1.8 attempts at this crash, which were nulling the wrong references and in some cases triggering the crash they were trying to fix
  • v2.1.6 font fix is preserved (it was the correct fix for its layer)
  • Test loop verified: three consecutive matches reach gameplay phase with zero crashes
v2.1.8HOTFIX

HUD Crash Investigation Continued (2)

Highlights

  • Second attempt at the mid-match HUD crash (foundational fix landed in v2.1.9)

Stability

  • HUD release tightened across 26 elements on teardown. Did not resolve the crash, and in some cases triggered it. See v2.1.9 for the foundational fix
v2.1.7HOTFIX

HUD Crash Investigation Continued

Highlights

  • Targeted attempt at the mid-match HUD crash (followed up by v2.1.8 and finally fixed in v2.1.9)

Stability

  • HUD now explicitly releases 18 of its internal references on teardown. Did not fully close the crash. See v2.1.9 for the foundational fix
v2.1.6HOTFIX

HUD Font Crash Fix

Highlights

  • Fixed a mid-match crash that was hitting Genji players (font asset GC)
  • HUD text now safe across long matches

Stability

  • HUD font assets are now pinned for the process lifetime, so they cannot be garbage-collected while text is being rendered. Closes a crash that was firing during long matches with heavy ability usage (especially Dragonblade)
v2.2.1PATCH

Faster Releases (Operator-Side)

Operator-side release. The game server image is now built locally and shipped to production as a tarball, instead of being built on the server itself. End-to-end release time drops from 8 to 15 minutes (with retries) down to about 5 minutes (clean). No player-visible changes from v2.2.0.

Highlights

  • Release pipeline rebuilt: 2 to 3 times faster, fewer recurring failure modes
  • No player-facing changes from v2.2.0

Operations

  • Game server image now builds on the workhorse PC and ships to production as a single tarball
  • Production tag is applied first (live ref atomic switch), then dev. If dev tagging hiccups, production is already serving the new image
  • Previous production image archived for one-step rollback
  • Preflight checks ensure Docker is ready before a build kicks off, so operators get an actionable error early
v2.2.0PATCH

Silent Updates, Smart GPU, and Crash-Class Closures

Big quality-of-life and stability jump. Launcher updates install silently in the background, no more popup interrupting your game. Hardware detection now picks your real GPU instead of whatever virtual driver Windows enumerates first. The cascade of HUD crashes from v2.1.5 to v2.1.9 is closed permanently. Genji's Dragonblade attaches visibly to remote players, and the alt-fire fan was rebuilt with stable math.

Highlights

  • Launcher auto-update is silent (no more wizard popup over your game)
  • Launcher hardware panel correctly identifies your real GPU on dual-GPU laptops
  • Virtual display drivers (Parsec, DisplayLink, GeForce NOW, etc.) no longer show up as your GPU
  • Genji Dragonblade is visible to remote players, not just local
  • Genji fan attack rebuilt with stable math (no more collapse at extreme pitch)
  • Cascade of HUD crashes from v2.1.5 to v2.1.9 closed permanently
  • Spectate camera releases cleanly after death (no more stuck death-cam)

Launcher

  • Auto-update is now silent: no wizard, no progress window, no focus steal while you're playing
  • GPU detection prioritizes discrete cards (NVIDIA RTX/GTX, AMD Radeon, Intel Arc) over integrated chips and virtual drivers
  • Virtual driver blacklist expanded to 24 entries: Parsec, DisplayLink, IndirectDisplay, WARP, GeForce NOW, RDP, VirtualBox, Spice/QXL, Aspeed/Matrox BMC chips, etc.
  • Crash reports now use the same GPU picker as Settings so the report reflects what you're actually running on

Genji

  • Dragonblade weapon attach is now visible to every player, not just the local one. The swap happens on the same frame for everyone so the visual is clean
  • Late-joiners who connect mid-Dragonblade still see the blade in the right hand
  • Alt-fire fan math rebuilt from the ground up so the spread stays correct at any pitch (closes four broken iterations from v2.0.7 through v2.1.5)
  • Quick melee, idle additives, off-hand wakizashi polish, and the Korean-parity dash from v2.0.1 are all retained

Stability

  • Documented the underlying rule that prevented the v2.1.5 to v2.1.9 crash chain from being fixed sooner. HUD widgets that hold visual styles must be pinned strongly while their visuals are in use
  • Scoreboard, leaderboards, and HUD overlays no longer crash on mid-paint teardown
  • Chat window is now safe against mid-paint teardown too

Match Flow

  • Death camera releases the view target back to your respawned pawn (no more stranding on the death-cam)
  • Rejoin button suppressed in unranked and casual modes where it should not appear
  • Rejoin authentication is more forgiving across crash recovery
  • Match camera restores cleanly on respawn, spectate end, and match end transitions

Combat

  • Dash flag is cleared via a safety timer when the dash ends, closing a ghost-dashing edge case
  • Projectile damage enabled as a hitscan-miss fallback so edge-of-range shots still register
  • Genji firerate retuned to 0.8s per shot, 3 second life after impact

Anti-Cheat

  • Per-IP rate limiting on authentication endpoints, in addition to per-email. Closes the email-knower lockout attack
  • Trusted-proxy allowlist so the real client IP is only honored when the request comes through a known edge
  • Crashed players get rejoin priority into their original match before the matchmaker tries to put them in a new lobby

Operations

  • Release pipeline is faster across four steps uncovered during the v2.1.9 and v2.2.0 deploys
  • Disk-pressure auto-reclaim widened so deploys do not stall silently
  • Operator alerts (Discord and admin dashboard) when the game server image is missing, so on-call gets paged before players see a connection error

Hardware Performance Panel

  • GPU detection unified between Settings and crash reports. One source of truth
  • VRAM detection reads the 64-bit registry value first, so RTX 4090 and 5090 cards no longer report as 4 GB
v2.1.5PATCH

Canonical HUD Teardown and Combat Fixes

Crash hardening pass plus six gameplay fixes. The HUD teardown approach was overcomplicated and was itself causing the crash it was trying to prevent. Stripped back to the engine's canonical pattern. Six gameplay fixes ride along: dash-lock fixed, fan attack rebuilt with stable math, projectile damage as a hitscan fallback, launcher Quit-button unstuck, login screen no longer the destination after a crash relaunch, and rejoin behaviour cleaner in unranked.

Highlights

  • Rewrote HUD teardown to the engine's canonical pattern (was making things worse, not better)
  • Dash + couldn't move bug fixed
  • Genji fan attack rebuilt with stable math at all pitch angles
  • Projectiles now do damage as a fallback when hitscan misses
  • Launcher Quit button stays responsive across page transitions
  • Crash relaunch no longer dumps you to the login screen if your refresh token was fine

Stability

  • HUD teardown stripped back to the engine's canonical pattern. 100+ lines removed. The complexity we layered across v2.1.2 to v2.1.4 was itself the bug
  • Scoreboard widget hardened with a destruct flag and pre-GC cleanup

Genji

  • Dash + couldn't move fix: the dash flag is now cleared locally when the safety timer restores movement, so input doesn't stay gated forever
  • Fan attack uses a clean rotation around the camera-up axis. Stable at any pitch. 3 shurikens at minus-10, 0, and plus-10 degrees
  • Projectile damage enabled as a fallback when hitscan misses, so the slow-traveling shuriken still does damage if the instant hitscan whiffed at extreme range

Launcher

  • Quit button no longer gets stuck after a page navigation
  • Stale-token cleanup on home page uses soft-fail so a stale token does not cascade into a logout

Match Flow

  • Unranked rejoin removed from the UI: your slot is auto-reserved server-side