Guide

Game unblockable attack systems explained

Harbor Brawl's post-launch telemetry showed a defensive collapse: after players learned optimal blockstring pressure, average block uptime in ranked duels climbed to 71%. Chip damage existed, but rounds dragged past the three-minute soft cap and spectators dropped. The design team did not want to nerf blocking — it is the readable backbone of neutral — but they needed attacks that change what blocking means without adding opaque 50/50 guess strings.

The fix was a layered unblockable attack toolkit: two overhead unblockables with 22–26 frame startup, one crouching low that beats stand-block, a single slow command grab per archetype, and one armor super per roster slot. Block uptime fell to 58%; average round length dropped 19%. This guide explains what “unblockable” means in engine terms, how overhead/low/armor/grab categories differ, implementation and telegraph rules, the Harbor Brawl mixup refactor, a technique decision table versus guard-break-only anti-turtle tools, pitfalls, and a production checklist.

What “unblockable” means in combat code

In most fighters, block is a binary guard state: incoming strikes tagged mid or matching high/low are negated and apply blockstun. An unblockable attack is any move that bypasses that negation under defined conditions. The bypass is not magic — it is a flag on the attack or a mismatch between attack height tag and defender block direction.

Three common implementation paths:

  • Height mismatch — overhead tagged high beats crouch-block; low tagged low beats stand-block. This is the standard high/low mixup layer, not a special “unblockable” flag, but players call overheads and lows unblockables because holding the wrong guard loses.
  • Explicit unblockable flag — move sets ignores_block = true for all or part of active frames. Used for command grabs, some EX overheads, and cinematic supers.
  • Armor / super-armor — move does not bypass block, but absorbs hits during startup so the strike connects anyway. Players lump armor with unblockables because blocking does not stop the threat.

Document which path each move uses. Mixing terminology in patch notes (“this overhead is now unblockable” when you only shortened startup) erodes trust.

Unblockable taxonomy

Category Beats Loses to Design role
Overhead (high) Crouch-block, low-profile crouch Stand-block, preemptive jab, backdash Mid-string mixup after lows; anti-turtle at range
Low (crouching attack) Stand-block, jump-in approach Crouch-block, low-profile duck Footsies check; sweep risk/reward
True overhead unblockable All block stances (explicit flag) Dodge i-frames, jump, long-range poke Rare, high-commitment breaker; boss attacks
Command grab Block, often projectiles at grab range Jump, backdash, fast strike Anti-shield; grappler identity
Armor / hyper-armor move Single or multi-hit trades Throw, multi-hit strings, guard break Comeback tool, armor-through pressure
Invincible reversal Meaty pressure on wake-up Bait, block, throw, safe jump Defensive unblockable — beats active offense

Strike unblockables vs command grabs

Strike unblockables (overhead/low or flagged) still use hitbox collision: they can whiff, be spaced out, or trade with faster attacks. See grab and throw systems for command grabs, which use grab boxes and different priority rules. Giving a rushdown character both a fast overhead and a command grab without shared cooldown often collapses defense into guessing.

Armor is not the same as invincibility

Armor absorbs N hits or X damage then breaks; the move may still lose to throws and guard breaks. Invincibility (full i-frames) ignores all collision for a window. Reversal supers with full invincibility on frame 1 are defensive unblockables; armor rush attacks are offensive. Confusing the two produces “why did my super lose?” support tickets.

Readable mixups: telegraphs, speed, and frequency

Unblockables fail when they are faster than human reaction time (~15–20 frames at fighting-game scale) and visually identical to blockable options. Harbor Brawl's design rules after the refactor:

  • Startup floor — non-grab unblockable strikes minimum 20 frames startup in neutral; 14 frames allowed only as the third hit of a blockstring with minus-on-block preceding strike.
  • Distinct animation silhouette — overheads use a two-phase wind-up (crouch then rise); command grabs share a red aura only on the active frame, not during startup.
  • Frequency cap — each character at most one neutral overhead unblockable and one command grab; duplicates live on meter or cooldown.
  • Damage trade-off — unblockables deal 85–95% of equivalent blockable normal damage unless meter-spent.

Pair with frame data so advanced players calculate risk: a 24-frame overhead is reactable at mid-range but scary after plus-on-block blockstring frames where defender must respect faster mids first.

Implementation checklist for engineers

  • Attack tags — store height (high/mid/low/overhead) and block_policy (normal, ignore_block, grab) on each move.
  • Block direction — defender state: stand_guard, crouch_guard, or auto-guard with facing; crossups may invert high/low read.
  • Armor state machine — hits_remaining or damage_budget; emit break event for VFX and counterplay windows.
  • Grab vs strike priority — document same-frame resolution; see trade/clash guides for strike-vs-strike.
  • Training mode flags — show block direction wrong/right, startup frames, and unblockable active windows.
  • Rollback — armor and grab state must serialize; desync on unblockable active frames is a common netcode bug.

Harbor Brawl mixup refactor (worked example)

Before the patch, Harbor Brawl relied on chip damage and occasional guard break to punish turtles. Sentinel-type characters could hold crouch-block against 80% of mids and stand-block jump-ins. Offense had no mid-string threat that forced guard changes.

The refactor added per-archetype:

  1. One standing overhead (24f startup, mid damage) usable after light blockstring on plus frames.
  2. One crouching low sweep (19f, knockdown, minus on block) for footsies — beats stand-block at range.
  3. One command grab (28f, 1.2× grab range) on 8-second cooldown to answer pure block without spam.
  4. One armor super (2-meter) with 8 frames of startup armor absorbing two hits — loses to throw and safe jumps.

Metrics after two weeks: block uptime −13 pp, throw attempts +0.9 per round, overhead counter-hit rate stable (skilled players blocked or ducked). Low-tier Sentinel win rate rose slightly because armor super gave a comeback tool — acceptable trade for shorter rounds.

Technique decision table: unblockables vs alternatives

Problem Unblockable layer Alternative When alternative wins
Defender always blocks mids Overhead/low mixup Frame trap after plus frames Defender mashes; you want counter-hit, not guard break
Infinite block holding Command grab Chip + guard break meter You want gradual attrition, not burst opens
Passive turtle at range Slow unblockable overhead Projectile zoning You need space control, not guard stress
Opponent steals turns with fast mids Armor move Parry or counter system Skill expression on defense, not offense brute force
Wake-up meaty pressure Invincible reversal Delayed wake-up, roll, block You want oki mind-games without DP invincibility
Boss feels spongy True unblockable phase attack Stagger/poise break Action RPG with dodge focus, not guard

Common pitfalls

  • Too many unblockables per character. More than two neutral threats turns defense into lottery.
  • Identical animations. If overhead and mid share startup frames and silhouette, reactability is fake.
  • Armor without throw weakness. Armor supers that also throw immune remove counterplay.
  • Ignoring jump escape. Command grabs that outrange jump arcs feel inescapable.
  • Chip + grab + overhead on same string. Triple-layer offense with no minus frames is oppressive.
  • Netcode desync on grab flags. Test rollback with unblockable active frames at high latency.
  • PvE only tuning. Boss unblockables with 12f startup work in AI fights; importing them to PvP breaks ranked.
  • Unclear tutorial. Players must learn stand vs crouch block before overheads matter; teach in training, not patch notes.

Designer and engineer checklist

  • Tag every move with height and block_policy; audit for orphan flags.
  • Cap neutral unblockable count per character (typically 1–2 strikes + 1 grab).
  • Enforce startup floors for reactable overheads outside blockstrings.
  • Give command grabs distinct telegraph and longer recovery on whiff.
  • Pair armor moves with throw vulnerability and multi-hit break.
  • Expose block-direction feedback in training mode.
  • Log block uptime and unblockable attempt rates per archetype monthly.
  • Test mixups at corner vs mid-screen; pushback changes readability.
  • Document same-frame priority for grab vs strike vs armor.
  • Balance damage so unblockables are threat, not only damage source.
  • Review crossup rules — facing can invert high/low reads.
  • Playtest with new players at 10+ hours before adding true 50/50 strings.

Key takeaways

  • Unblockable attacks change guard math — via height mismatch, ignore_block flags, armor, or grabs — so holding block is not always optimal.
  • Readable design demands startup floors, distinct silhouettes, and limited frequency; speed without telegraph is guesswork, not mixups.
  • Strike unblockables whiff and trade; command grabs use different collision rules; armor trades hits but loses to throws.
  • Harbor Brawl cut block uptime 13 points by adding one overhead, one low, one cooldown grab, and one armor super per archetype instead of buffing chip alone.
  • Use the decision table: frame traps and zoning solve different problems than overheads and grabs; do not stack every anti-block tool on one character.

Related reading