Guide

Game pushback and hurtbox displacement systems explained

Harbor Brawl's pressure patch looked correct on paper. Light punch was +2 on block; medium was +4; the follow-up heavy was +1. Designers celebrated a textbook blockstring. In ranked matches, defenders trapped in the corner reported “no gap ever” while mid-screen players escaped the same string 31% of the time. The bug was not blockstun — it was pushback. Corner geometry zeroed out defender displacement on blocked hits, so plus frames never translated into a visible gap. Attackers stayed inside throw range forever despite frame data that promised escape windows.

Pushback and hurtbox displacement are the spatial half of combat timing. Frame advantage tells you when a defender can act; pushback tells you whether that action can reach. This guide explains hit vs block displacement, attacker recoil, per-move pushback curves, corner and wall interaction, clash and trade spacing, the Harbor Brawl refactor, a technique decision table versus frame-data-only tuning, pitfalls, and a production checklist — alongside our guides on blockstring pressure, rushdown spacing, and hitbox and hurtbox fundamentals.

Displacement vs stun: two independent axes

New combat programmers often bind pushback to damage or stun tiers in one formula. That coupling is why corner pressure feels wrong even when blockstun is balanced. Treat displacement as its own authored field on every move.

Axis What it controls Player-facing effect Typical data field
Blockstun / hitstun Frames defender cannot act Frame advantage (+/- on block) blockstun, hitstun
Block pushback Defender slides away while guarding Gap size at end of string block_pushback
Hit pushback Defender slides on connect Combo spacing, juggle drift hit_pushback
Attacker recoil Attacker slides backward on block/hit Whiff punish range, self-cornering attacker_pushback

A move can be +5 on block yet still trap in the corner if block pushback is zero and the attacker's hurtbox never retreats. Conversely, a -2 move with large defender pushback can create a real gap because the defender's hurtbox left throw range before stun ended. Always plot hurtbox distance at stun expiry, not frame advantage alone.

How hurtbox displacement is applied

Most 2D fighters move the defender's root position (or physics body) on connect while hitboxes remain anchored to the attacker's skeleton. Three implementation patterns dominate:

Instant displacement

On frame 1 of hitstop, add a fixed world-unit offset along the horizontal axis. Simple to tune; can look abrupt without easing. Common in arcade-style games where clarity beats smoothness.

Per-frame slide during stun

Spread total pushback across blockstun frames (e.g. 24 units over 15 frames). Produces smoother corner carry and lets designers shape pushback curves — fast start / slow finish for sticky pressure, or the reverse for reset points mid-string.

Hurtbox-only nudge

Root position unchanged; only the hurtbox capsule shifts. Rare in modern fighters but useful for feints and crossups where visual position must stay locked. Document clearly — netcode rollback must replay hurtbox offsets, not just root transforms.

Whichever pattern you choose, log distance between hurtbox centroids at stun end per move pair. That metric is what determines whether a 4-frame jab can interrupt a 10-frame startup after a blocked medium.

Block pushback curves and corner geometry

Stage boundaries clamp defender displacement. When pushback would move the defender past the wall, engines typically apply one of:

  • Clamp and absorb — extra pushback is discarded; attacker stays close. Classic source of infinite corner pressure.
  • Redirect to attacker — unapplied defender pushback pushes the attacker back instead, opening gaps in corner.
  • Wall splat threshold — accumulated corner hits trigger a stick state ( wall bounce systems ) that resets spacing.

Author mid-screen and corner pushback targets separately. Harbor Brawl's fix used redirect-on-clamp: when defender pushback was truncated by the wall, 70% of the remainder applied as attacker recoil. The same +4 medium that trapped mid-screen now left a 0.8-unit gap at corner stun expiry — enough for jab and throw tech.

Plot pushback as a function of distance-to-wall. Designers should see a curve, not a cliff at x=32. Sudden cliffs cause “this string works at pixel 33 but not 31” bugs that players describe as random.

Hit pushback, combos, and juggle drift

Hit pushback controls how far combos travel horizontally. Too little and every confirm stays point-blank; too much and links break because the next hit whiffs. Pair hit pushback with juggle gravity and stun decay so aerial routes drift predictably.

Common tuning bands (world units per hit, illustrative):

Move tier Ground hit pushback Design intent
Light normals Low (keeps links tight) BnB confirm routes, tick throw range
Heavy normals Medium-high Spacing checks, whiff punish windows
Specials Authored per move Corner carry, wall route setup
Supers Often minimal during freeze Cinematic control; reset after

In combos, some engines reduce per-hit pushback via a combo pushback scaler (e.g. multiply by 0.85 each hit) independent of stun decay. That lets you shorten horizontal drift without shortening stun — useful when damage scaling alone does not fix screen-carry infinites.

Attacker recoil and self-cornering

Attacker pushback on block is the rushdown safety valve. Dash-in blockstrings need attacker recoil on blocked heavies or the attacker ends inside counterpoke range with no commitment cost. Zoners often have negative attacker recoil (slide forward on block) to maintain screen control at the cost of guard-break vulnerability.

Track self-corner distance: how many blocked hits until the attacker's back touches the wall. Rushdown characters might tolerate 4–5 hits; grapplers may want 2 before forced reset. Pair recoil tuning with corner escape tools so defenders have answers when spacing finally opens.

Clash, trade, and priority displacement

When attacks trade or clash, displacement rules decide who wins space. Document whether both players receive full pushback, half pushback, or winner-only displacement. Inconsistent trade pushback creates arbitrary footsies outcomes.

Priority systems ( trade and clash priority ) often pair with asymmetric displacement: higher-priority move applies 100% pushback to the loser and 0% recoil to the winner. Without that pairing, a winning trade can still leave the winner inside punish range — feels wrong even when HP trade is fair.

Harbor Brawl spacing refactor

Harbor Brawl's pushback pass treated spacing as measurable geometry:

  • Every move received separate block_pushback, hit_pushback, and attacker_recoil fields decoupled from damage and stun.
  • Training overlay showed gap at stun end in world units, not just +/- frames.
  • Corner clamp used 70% redirect-to-attacker rule instead of absorb-only.
  • Blockstring pushback curves normalized so mid-screen and corner gap targets differed by at most one jab reach (~1.2 units).
  • Combo pushback scaler (0.88 per hit) added independent of stun decay to cap screen carry at six hits without shortening combos.

Post-patch: corner escape rate after blocked strings rose from 12% to 31%; mid-screen escape unchanged (29%). Average round length increased 8 seconds as mid-screen footsies reappeared. Player surveys cited “finally see the gap” on previously “infinite” strings.

Technique decision table

Approach Best when Skip when
Frame-data-only tuning (stun without pushback fields) Prototype with fixed global pushback constant Shipping ranked fighters with corner carry or rushdown archetypes
Per-move pushback triplets (block/hit/attacker) Any competitive fighter with varied archetypes Single-button arena brawlers with no block
Pushback curves over stun frames Strings with intentional reset points mid-chain Games with instant-displacement only and no blockstrings
Corner redirect-on-clamp Corner escape must match mid-screen gap math Deliberate infinite corner pressure as genre feature
Combo pushback scaler Screen-carry infinites despite stun decay Single-hit burst damage with no chains
Gap-at-stun-end telemetry overlay Balance team without frame-step tools Internal-only QA with scripted visualizers

Common pitfalls

  • Coupling pushback to damage. Heavies push too far; lights trap in corner despite identical stun.
  • Ignoring corner clamp. Spreadsheets lie when wall absorption zeroes defender displacement.
  • No attacker recoil on plus blockstrings. Rushdown never pays for commitment.
  • Uniform pushback across characters. Same pushback on a 1.9-unit wide hurtbox and a 1.4-unit body breaks matchup spacing.
  • Rollback desync on hurtbox-only nudge. Root and hurtbox offsets must replicate identically online.
  • Trade pushback not documented. Arbitrary footsies outcomes after simultaneous hits.
  • Pushback without throw range reference. Gaps smaller than throw startup are invisible to players even at +frames.
  • Wall splat without spacing reset. Stick state without pushback policy still traps after splat ends.

Production checklist

  • Author block_pushback, hit_pushback, and attacker_recoil on every move independently of stun.
  • Plot gap-at-stun-end for each blockstring at mid-screen and corner.
  • Define corner clamp policy (absorb, redirect, or wall splat) in design doc.
  • Normalize pushback curves per tier; avoid single global constant in shipping.
  • Add combo pushback scaler if screen carry exceeds six hits in testing.
  • Expose gap distance in training mode overlay alongside +/- on block.
  • Verify trade/clash displacement rules match priority outcomes.
  • Test throw range against gap at stun end for every pressure string.
  • Log horizontal drift per combo in automated regression tests.
  • Replay pushback under rollback; confirm hurtbox offsets match root motion.
  • Balance self-corner distance per archetype (rushdown vs zoner vs grappler).
  • Review wall-splat and bounce interactions after pushback patch.

Key takeaways

  • Pushback and stun are independent — frame advantage does not imply a visible gap.
  • Corner clamp policy is what makes or breaks infinite pressure strings.
  • Gap at stun end, measured in hurtbox distance, is the spacing metric that matters.
  • Attacker recoil prevents free rushdown commitment on plus blockstrings.
  • Harbor Brawl corner escape rose from 12% to 31% after redirect-on-clamp pushback tuning.

Related reading