Guide
Game low crush and high crush attack systems explained
Harbor Brawl's rushdown character had a forward-moving sweep that looked strong on paper: 9-frame startup, hard knockdown, plus frames on block. In ranked, players still lost neutral to standing jab checks because the sweep's hurtbox stayed at standing height for the entire approach — opponents mashed light punch and clipped the character mid-dash every time. Telemetry showed the move whiff-punished 58% of attempts within two body lengths. After tagging frames 3–14 with an explicit low-crush hurtbox phase that ducks under standing highs, adding a readable crouch silhouette, and pairing the sweep with a high-crush jump-in follow-up, forward sweep conversion rose from 42% to 71% and standing-jab check rate in footsies fell 34%.
Low crush and high crush are hurtbox-height mechanics that let specific moves evade attacks in the opposite vertical lane: low crushes duck under standing highs; high crushes lift the hurtbox over crouching lows and sweeps. They are distinct from crush counters (startup priority trades) and from full invincibility (complete hurtbox removal). Crush mechanics add a third axis to high-low mixups by making certain approach tools threaten two lanes at once. This guide covers crush taxonomy, hurtbox phase design, interaction with block and throw, mixup layering, the Harbor Brawl refactor, a technique decision table versus flat hitboxes, pitfalls, and a production checklist.
Crush taxonomy: low crush, high crush, and partial evasion
Designers use three related but separate concepts. Confusing them produces moves that feel random or unfair.
Low crush
A move whose hurtbox height drops during part of startup or active frames so standing normals and standing projectiles pass overhead. Common patterns: forward dash into low, snake-edge style slide, certain command normals with a crouch dip. The move still has a hitbox — it can connect — but the body evades highs. Low crush is the footsies answer to “just jab them out of dash.”
High crush
A move whose hurtbox rises or shrinks vertically so low-profile sweeps and crouching kicks whiff underneath. Jumping normals with lower-body invulnerability, certain rising kicks, and divekicks with head-only hurtboxes are high-crush patterns. High crush rewards opponents who default to down+jab anti-approach.
Partial vs full lane eviction
Partial crush shrinks hurtbox height but leaves limbs or extended weapons hittable — a low crush with an exposed forward fist can still be counter-poked. Full crush removes the entire standing hurtbox capsule for defined frames. Partial crush is more readable and counterable; full crush is stronger but needs longer recovery or higher risk on whiff.
Hurtbox phase design and frame contracts
Crush behavior is implemented as per-frame hurtbox overrides on the attacker's collision capsule, not as a global flag. Document phases in your movelist the same way you document startup, active, and recovery.
Phase timing
Typical low-crush sweep: frames 1–2 standing hurtbox (vulnerable to jab), frames 3–14 crouching hurtbox (crushes standing highs), frame 15+ active low hitbox with crouching hurtbox retained until recovery end. The vulnerable pre-crush window is intentional — it gives defenders a reaction test before the evasion window opens. Zero-frame crush (hurtbox drops on frame 1) feels unbeatable online; 2–4 frames of standing vulnerability is a common band.
Height bands and hitbox interaction
Define discrete height bands: standing, crouching,
airborne_low, airborne_high. A standing jab hitbox
tagged mid connects against standing and
crouching hurtboxes but misses airborne_low and
low-crush phases. Sweeps tagged low connect against
standing feet and crouching but miss
airborne_low and high-crush phases. Publish a matrix in your combat
bible so animators and programmers agree on silhouette expectations.
Movement coupling
Low crush often pairs with forward displacement. If crush frames outlast forward momentum, the character can slide under a jab and still be in sweep range on active — the classic dash sweep. Cap total forward travel during crush or tie crush end to a fixed distance so corner carry does not become infinite. High crush on jump-ins should align with jump arc apex so the evasion window matches the approach angle players read.
Mixup layering: crush as a third axis
High-low mixups ask defenders to block standing or crouching. Crush adds: this approach evades your default check. Layer crush routes with non-crush options so respect is never automatic.
Low crush vs standing check
Attacker threatens forward low crush. Defender's standing jab whiffs; crouch block is safe but gives initiative. Attacker can frame trap with overhead after blocked crush sweep or shimmy throw. Without a non-crush dash-in (normal walk, drive rush without crush), defenders always crouch and the crush layer dies.
High crush vs crouch check
Attacker threatens jump-in with lower-body crush. Defender's crouching medium whiffs under the hurtbox; standing anti-air or delayed uppercut is required. Pair with a same-timing empty hop that lands into low crush sweep so crouch blockers eat trip.
Overhead and universal overhead integration
Universal overheads cover the high lane on blockstrings; crush sweeps cover the evasive low approach. Do not stack full crush on every neutral tool — two crush routes plus overhead is enough for most characters. Save full high crush for committed jump-ins with landing recovery risk.
Block, throw, and priority interaction
Crush evades hits, not throws. A low crush forward dash is throwable during crush frames unless you add throw-invuln (usually you should not). This keeps shimmy throw relevant against crush spam.
Crush does not override trade priority unless you explicitly code crush-active moves to ignore certain hitbox types. If two active hitboxes overlap and only one side is crushing, the non-crushing hitbox still connects if its height band matches the opponent's hurtbox. Example: low crush sweep under standing jab — jab whiffs, sweep hits. Standing jab vs standing jab — both standing hurtboxes, normal trade rules.
Projectiles: low crush under a standing fireball works if the fireball hitbox is
mid and the crush phase is crouching. Low-profile
fireballs (GTFO-style) still hit low-crush hurtboxes if tagged low.
Document projectile height tags alongside move crush phases.
Harbor Brawl crush refactor (worked example)
Before the refactor, three rushdown normals shared identical standing hurtboxes during forward movement. Ranked data showed 61% of dash sweeps lost to 4-frame jabs. The combat team:
- Tagged dash sweep frames 3–14 with
crouchinghurtbox override and added a visible crouch dip in animation. - Added 2-frame standing vulnerability at startup so jab checks remained viable on reaction.
- Introduced a high-crush jump-in (lower-body invuln frames 5–18) as a complementary approach at the same dash timing.
- Reduced forward slide distance 12% so corner pin after crush did not loop into infinite pressure.
- Updated training mode overlay to show crush-active frames in cyan on hurtbox debug view.
Outcomes after two weeks of ranked play: dash sweep conversion 42% → 71%, standing jab check rate in neutral −34%, throw punishment on crush dash +8% (intentional — defenders adapted), overall rushdown win rate +6% without damage changes.
Technique decision table
| Design goal | Prefer crush mechanics | Prefer alternative |
|---|---|---|
| Beat standing jab checks on approach | Low crush on forward dash or slide | Armor or super-armor dash (higher commitment) |
| Beat crouch jab / sweep checks | High crush jump-in or rising normal | Empty hop into overhead only (slower, more readable) |
| Readable counterplay | Partial crush with exposed limb frames | Full crush with long whiff recovery |
| Online rollback fairness | Crush windows ≥ 3 frames, clear silhouettes | 1-frame height swaps invisible to opponent |
| Anti-zoning | Low crush under mid fireball, high crush over low beam | Reflect or invincible teleport (resource-heavy) |
| Beginner accessibility | One crush tool per character with training overlay | Every normal has crush phases (unreadable) |
| Throw mixup after crush | Crush sweep plus frames into throw OS | Crush with throw invuln (removes counterplay) |
Common pitfalls
- Crush on every approach. Removes the standing-check mindgame; defenders always crouch and footsies flatten.
- Zero-frame crush. No vulnerable startup means jab checks never work — feels oppressive especially online.
- Animation mismatch. Hurtbox crushes but sprite still stands tall; players call it a bug even when math is correct.
- Confusing crush with crush counter. Different systems; document both separately in movelists.
- Throw immunity on crush. Deletes shimmy counterplay unless throw is intentionally the answer.
- Unbounded forward slide. Low crush dash that crosses full screen into corner infinite pressure.
- Projectile height not tagged. Low crush works inconsistently across characters using the same visual fireball height.
- High crush without landing risk. Jump-in that evades lows and recovers instantly removes defender options.
Production checklist
- Document per-frame hurtbox height band overrides in movelist CSV.
- Define height-band vs hitbox-tag interaction matrix (mid, low, overhead).
- Budget 2–4 frames standing vulnerability before low crush opens.
- Match crush phases to animation silhouette dips and rises.
- Cap forward travel during low crush to prevent corner loop.
- Pair each crush route with a non-crush option at similar timing.
- Verify throw connects during crush frames unless explicitly invuln.
- Tag projectile hitboxes with height band for crush interaction tests.
- Add training mode crush-frame overlay (hurtbox color or icon).
- Test crush vs rollback at 2–4 frame delay.
- Telemetry: crush attempt rate, whiff punish rate, conversion after crush.
- Limit full crush tools to 1–2 per character for readability.
Key takeaways
- Low crush ducks under standing highs; high crush rises over lows — both are hurtbox-height mechanics, not startup priority trades.
- Crush adds a third mixup axis beyond stand block and crouch block, but only works when paired with non-crush options and vulnerable startup frames.
- Per-frame hurtbox height bands and hitbox tags must be documented and animated consistently or players perceive randomness.
- Throws, shimmies, and anti-air remain the counterplay layer — crush should not grant throw invulnerability by default.
- Harbor Brawl's dash sweep refactor showed crush tuning can shift neutral without touching damage numbers.
Related reading
- Game sweep and low-profile attack systems explained — trip attacks, footsies and knockdown setups
- Game mixup high-low combat systems explained — standing vs crouching offense layers
- Game universal overhead attack systems explained — macro overheads and anti-crouch design
- Game hitbox and hurtbox systems explained — collision capsules and combat detection