Skip to content

Add Hush - #404

Merged
SunkenInTime merged 1 commit into
mainfrom
t3/add-hush-agent-assets
Oct 28, 2026
Merged

SunkenInTime merged 1 commit into
mainfrom
t3/add-hush-agent-assets

Conversation

@SunkenInTime

@SunkenInTime SunkenInTime commented Oct 28, 2026 •

Copy link
Copy Markdown
Owner

Placing Hush and her four abilities on Ascent in a release build

Agent grid before and after: Hush sits third row, between Harbor and Iso

VALORANT 13.09 shipped Hush, a new duelist, on Oct 27. Players will want her on their plans this week, and Icarus didn't have her.

What she draws

Abilities follow the key order the other agents use (C, Q, E, X):

Index Ability In Icarus From the 13.09 game files
0 Flow (C) icon a movement ability, drawn like Jett's Tailwind
1 Flashbulb (Q) icon flashes are icons for every agent
2 Displacement (E) 5.75 m circle pull area RangeRadius 575
3 Suspension (X) 7 m circle PlayerHitRadius 700 (its 900 ItemHitRadius only lifts dropped guns)

The wiki doesn't list these numbers yet, so I read them from the 13.09 paks (codename Paprika). Icarus circles use the gameplay radius, not Riot's minimap circle. I checked that against agents already in Icarus: Fade's Seize is 6.58 m and its scan radius is 658 (its minimap circle is 14 m across), and Gekko's Mosh Pit is 6.2 m against a 620 clamp. Displacement's minimap circle is 13 m across (a 6.5 m radius); I used the 5.75 m gameplay radius for the same reason. Astra's review caught that I'd first drawn Suspension at its 9 m item radius; players are lifted within 7 m. Her passive, Telekinesis, has nothing to place, so she keeps four abilities like everyone but Miks.

Circles use her own accent color from the game, #F47AC7. The agent and ability icons are valorant-api.com's, resized to 128 px WebP like the rest of assets/agents/.

Saved data

  • AgentType.hush goes last, so every saved index stays put. It is Hive index 29 and hush in JSON.
  • Desktop 4.6.3, the rollback layout, reads an unknown agent index as Jett. The rollback tests now decode with 4.6.3's real AgentTypeAdapter, copied from the tag the same way the Warden PR copied its weapon adapter. They show that a page with Hush still opens whole there: Hush and her four abilities come back as Jett's. A fifth ability would break that, because 4.6.3 looks abilities up by index.
  • The frozen v97 .ica fixture can't contain Hush, so its "every agent" check now leaves out agents added after it was frozen.

Replays

Her valorant-api UUID maps to Hush, and her 13.09 actors (GameObject_Paprika_*, Projectile_Paprika_*) are in the catalog. Those names come from the asset index and haven't been checked against a 13.09 replay. 13.09 replays will probably need a decoder port first, like 13.08 did in #299. That port is its own PR.

Checked in a release build

Windows release build of this branch, on an empty library:

  • Hush is in the agent grid, she places on Ascent, and her four abilities place from her ability bar with the sizes above (screenshot below).
  • Re-captured after the 7 m Suspension fix: the GIF and screenshot here are from the rebuilt branch.
  • I saved, quit, and relaunched: the strategy reopened from the local library with Hush and all four abilities where I put them.
  • I exported it to .ica through the app's save dialog. The file holds "type": "hush" for the agent and abilities 0 to 3. Launching with that file imported it as a second strategy that draws the same.
  • The before picture is a build of main from Oct 27.

All four abilities placed

Not checked: cloud mode. This build ran with offline cloud settings. Cloud payloads carry agent types as strings and the server stores them as is, so nothing server-side changes.

Older clients and shared strategies

Hush is the first agent added since cloud shipped. Builds already out (desktop 5.0.x, and web tabs opened before the deploy) handle her two ways:

  • A plain Hush agent or ability on a cloud page is skipped: they don't see it.
  • A Hush lineup fails the whole page. Those builds read lineup groups outside the per-element skip (lineUpGraphFromCloudRows throws FormatException), so the page won't load for them. Nothing is overwritten, because they can't open the page to edit it.

No change here can reach builds already shipped. What limits it is shipping a desktop release with this, so 5.0.x users get the update prompt. Making lineup hydration skip unknown agents, so the next new agent can't break pages, belongs in its own PR.

flutter test: everything passes. Three tests unrelated to agents timed out in the full run while a release build compiled next to it (page_screenshots_test, strategy_op_queue_provider_test, vision_geometry_map_test); all three pass when run alone.

ci: analyze test web desktop

@coderabbitai

coderabbitai Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 40 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: a29b4b9f-e46d-4964-8c9d-2e377db328c9
Commits

Reviewing files that changed from the base of the PR and between 696a5f2 and 5233f4e.

Files selected for processing: 16
  • assets/agents/Hush/1.webp
  • assets/agents/Hush/2.webp
  • assets/agents/Hush/3.webp
  • assets/agents/Hush/4.webp
  • assets/agents/Hush/icon.webp
  • lib/const/agents.dart
  • lib/const/json_converters.dart
  • lib/hive/hive_adapters.g.dart
  • lib/hive/hive_adapters.g.yaml
  • lib/replay/replay_ability_catalog.dart
  • lib/replay/replay_agents.dart
  • pubspec.yaml
  • test/agent_ability_names_test.dart
  • test/canvas_compatibility_fixture_test.dart
  • test/desktop_4_6_3_adapters_test_support.dart
  • test/hive_desktop_rollback_test.dart
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

VALORANT 13.09's new duelist (codename Paprika). She goes last in
AgentType so every saved index stays put (Hive index 29).

Abilities, in key order like the other agents:
- Flow (C) and Flashbulb (Q) draw as their icons, like the other
  movement abilities (Tailwind) and flashes.
- Displacement (E): a 5.75 m circle, the pull area's RangeRadius 575.
- Suspension (X): a 7 m circle, its PlayerHitRadius 700. Its 900 dome
  only lifts dropped guns.
Both radii come from the 13.09 game files, read the way Fade's Seize
(658 -> 6.58 m) and Gekko's Mosh Pit (620 -> 6.2 m) are. Telekinesis is
a passive with nothing to place, so Hush keeps four abilities.

Icons are valorant-api.com's, at 128 px WebP like the rest. Her circles
use her own accent color from the game, F47AC7.

Desktop 4.6.3 reads an agent index it doesn't know as Jett. The rollback
tests now use 4.6.3's own AgentType adapter and prove a page with Hush
still opens there whole, with Hush and her four abilities as Jett's.
The frozen v97 .ica fixture predates Hush, so its every-agent check
leaves out agents added after it.

Replays map her valorant-api UUID and her 13.09 actors; the actor names
come from the asset index and are unverified against a replay.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@SunkenInTime
SunkenInTime force-pushed the t3/add-hush-agent-assets branch from 41910b6 to 5233f4e Compare October 28, 2026 16:43
@SunkenInTime
SunkenInTime merged commit f1993e1 into main Oct 28, 2026
14 checks passed
@SunkenInTime
SunkenInTime deleted the t3/add-hush-agent-assets branch October 28, 2026 17:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant