Guide

Game wall splat systems explained

Harbor Siege season three shipped corner carry and wall bounce on the same knockback table. Players routed opponents to the corner, but telemetry showed only 31% of wall contacts converted into meaningful damage — the rest were accidental bounces that reset spacing or dropped juggles. Attackers could not tell whether the next hit would stick or reflect; defenders mashed out during invisible recovery gaps. Corner damage per round lagged midscreen damage despite carry being a stated pillar.

The combat pass introduced an explicit wall splat state: qualifying hits pin the defender to geometry for a fixed stick window, shrink hurtboxes to a readable silhouette, expose tiered follow-up routes, and feed a shared wall break meter. Splat-to-damage conversion rose from 31% to 72%; intentional splats per round climbed from 0.6 to 1.4; mash-out support tickets fell 37% once escape windows were telegraphed. This guide covers splat entry conditions, stick FSM design, follow-up routing, escape and tech routes, break-meter coupling, the Harbor Siege refactor, a technique decision table versus bounce-only carry, pitfalls, and a production checklist.

What wall splat adds beyond bounce and corner carry

Corner carry moves fighters toward geometry through pushback and knockback vectors. Wall bounce reflects velocity and extends airborne combos. Wall splat is a third outcome: the defender sticks to the wall in a grounded or semi-grounded pin, granting the attacker a guaranteed follow-up window before physics resume.

Without a dedicated splat state, engines often fake stick behavior with extended hitstun near walls — invisible to players and nightmare to balance. An explicit splat FSM gives you:

  • Readable payoff — unique animation, SFX tick, and HUD cue when splat triggers instead of ambiguous bounce.
  • Tunable stick duration — frame-counted window independent of global hitstun decay.
  • Route branching — light follow-up stays in splat; heavy ender bounces or breaks; specials consume meter.
  • Defender agency — mash escape, hold down to fast-fall, or spend meter on wall tech before stick expires.
  • Break meter coupling — each splat adds fill toward terminal wall break without infinite loops.

Splat is the glue between carry and break. Pair with pushback routing so entry hits land defenders at consistent wall offset — splat at the wrong depth causes whiff follow-ups or cross-wall clips.

Splat entry triggers and wall proximity gates

Not every wall touch should splat. Define entry rules in a single data table per move class; mixed per-character flags without documentation produce “why did that bounce?” balance threads.

Proximity threshold

Most fighters require the defender's back hurtbox within N pixels of the wall plane (often 24–48 units in 2D duelists). Hits that would carry past the wall clamp position first, then evaluate splat versus bounce based on move flags.

Move splat eligibility

Tag each move with splat_on_wall, bounce_on_wall, or break_on_wall. Heavies and drive impacts typically splat; fast jabs bounce to preserve neutral; supers may force instant break. Launchers can splat only when the defender is grounded against the wall — air-to-wall often bounces instead.

Velocity and state gates

Common gates: defender must be in hitstun or juggle state; attacker must not be in blockstun; wall must be the primary collision plane (not floor-and-wall corner seam). Reject splat if defender already in splat stick (prevents re-stick loops without a bounce or break between).

Harbor Siege entry table (simplified)

Move class Wall within 32px Outcome
Light / medium normal Yes Bounce (carry extension)
Heavy normal / command normal Yes Splat (48f stick)
Drive impact counter-hit Yes Splat (72f stick, +20 break meter)
Launcher at wall Yes, grounded Splat into low-profile juggle route
Super (metered) Yes Instant wall break if meter full

Stick state FSM: duration, hurtbox and animation

Once splat triggers, transition the defender into a dedicated state machine. Document transitions in engine docs — QA should not guess whether mash escape is active frame 1 or frame 10.

Core splat phases

  1. Impact stick (0–8f) — freeze both characters; play wall impact VFX; apply break meter tick.
  2. Held pin (variable) — defender glued to wall offset; hurtbox width reduced ~30% vertically centered; attacker recovers to actionable frames.
  3. Escape window (last 12–20f) — mash or directional input rolls defender along wall or techs off; telegraph with subtle shake.
  4. Expire — slip to standing at wall, force bounce, or auto-break if meter capped.

Duration tuning

Standard stick lengths cluster around 40–80 frames at 60 FPS. Shorter sticks favor rushdown (tight meaty traps); longer sticks enable overhead/low mixups. Scale duration by move that caused splat, not globally — drive impact splat at 72f feels different from command normal at 48f.

Hurtbox and pushback during stick

Pin the defender's back plane to wall_x - splat_offset. Attacker pushback on block still applies on follow-ups; splat does not freeze spacing forever. If follow-up whiffs because stick depth was wrong, players blame the carry system — fix wall offset in data, not by extending stick time.

Follow-up routing and combo extensions

Splat exists to enable routes, not to pause the game. Define three follow-up tiers:

  • Tier A — re-splat safe — lights and command normals that refresh stick without bounce; caps at two consecutive sticks before forced bounce or break.
  • Tier B — route enders — heavies that bounce off wall into midscreen juggle or drain break meter to 100%.
  • Tier C — spend moves — meter supers, throws, or launchers that exit splat into aerial combo or immediate break.

Harbor Siege grapplers needed a splat-specific throw with extended startup (22f) but plus frames on whiff outside throw range — otherwise zoners backdashed during stick every time. Document frame advantage on block for each splat follow-up; minus-on-block enders after long sticks feel like a bait when the defender mashes reversal.

Pair splat routes with damage scaling: hits during stick use a splat scaling bucket (often 0.85× per hit) so corner damage stays high without exceeding midscreen burst when break bonus applies.

Escape routes: mash, tech and meter spend

Defenders need answers or splat becomes a cutscene. Implement at least two orthogonal escapes:

  • Mash escape — rapid button input during escape window; success rolls defender to nearest open side with 8f throw invuln. Cap at one mash per splat to prevent infinite defense.
  • Hold down / crouch tech — avoids high follow-up and triggers fast-slide along wall; loses to lows and command grabs.
  • Metered wall tech — spend drive gauge to splat-tech into airborne state with air-reset rules; burns same resource as attacker offense.
  • Pre-splat prevention — not a splat escape but essential: reversals and corner escape tools before stick triggers.

Telegraph escape windows with animation shake and audio whoosh at window open. Hidden mash windows feel like random combo drops and generate unfairness reports even when frame data is fair.

Wall break meter coupling

Splat without a break backstop recreates infinite corner loops. Each splat entry adds meter (Harbor: +15 base, +5 per re-splat in same sequence). When the defender's break gauge hits 100%, the next qualifying wall hit triggers break animation, combo drop, and midscreen reset per the wall break spec.

Show splat and break meters separately on HUD: splat is local stick duration; break is persistent corner pressure. Players then read “one more splat route before break” and choose sandbag damage versus cash-out super. If break meter is hidden, splat feels arbitrary when the wall suddenly shatters.

Harbor Siege refactor results

Before explicit splat FSM: wall contacts were 2.8 per round but only 31% dealt follow-up damage; accidental bounces caused 19% of all whiff punishes in corner. After splat table, stick durations, and escape telegraphs shipped:

  • Splat-to-damage conversion: 31% → 72%
  • Intentional splats per round: 0.6 → 1.4
  • Corner damage share of round total: 38% → 51%
  • Mash-out / unfair splat tickets: −37%
  • Average combo length at wall: 9.2 hits (stable after break meter)

Spectator surveys improved on “I understand when corner combos end” because splat stick and break shatter are distinct readable beats in the same pipeline.

Technique decision table

Approach When it fits Splat / corner note
Bounce-only wall interaction Fast neutral, low combo depth, platform fighters No stick state; geometry extends juggles only; simplest netcode
Extended hitstun near wall (implicit splat) Retro 2D ports, minimal engineering budget Hard to telegraph; players cannot distinguish splat from heavy hitstun
Explicit splat FSM (this guide) Duel fighters, drive systems, grappler corner reward Best readability; requires HUD cues and escape design upfront
Splat-to-guaranteed-break chain High-stakes burst damage, short rounds Second splat always breaks; less meter UI, less route depth
Structural wall HP Tag brawlers, destructible arenas Wall HP depletes on any hit; splat optional overlay on low HP segments
No wall interaction Infinite stage duels, competitive purity focus Corner carry becomes positioning only; no geometry combo reward

Common pitfalls

  • Splat without escape — defenders quit corner engagement; ranked queue dodges rise on narrow stages.
  • Re-stick loops — allowing infinite splat refresh without bounce or break between sticks recreates pre-break infinite meta.
  • Inconsistent wall offset — same move splats at different depths depending on carry vector; follow-ups whiff randomly.
  • Hidden break meter — wall shatter feels RNG; show fill rate during splat stick.
  • Air vs ground splat ambiguity — same move bounces in air-to-wall but splats grounded; document in movelist.
  • Netcode stick authority — splat state must reconcile on rollback; desync during stick causes the worst bug reports.
  • Minus-on-block splat enders — attacker commits to stick then eats mash reversal because ender frame data was tuned midscreen only.

Production checklist

  • Author wall interaction table: bounce / splat / break flags per move.
  • Define proximity threshold and wall offset clamp per stage width.
  • Implement splat FSM with impact, hold, escape, and expire phases.
  • Publish stick duration per splat-eligible move in internal frame data sheet.
  • Build Tier A/B/C follow-up routes with scaling buckets.
  • Add mash escape and at least one metered tech with telegraphs.
  • Wire splat events to wall break meter with HUD fill animation.
  • Cap consecutive re-splats before forced bounce or break.
  • QA corner seam cases (floor + wall simultaneous collision).
  • Rollback test: splat enter, escape mash, and break on same frame edges.
  • Telemetry: splat entries, follow-up damage, escape success rate.
  • Movelist copy: which normals splat at wall versus bounce.

Key takeaways

  • Wall splat is a dedicated stick state — not just extra hitstun near geometry.
  • Entry requires proximity gates, move flags, and velocity/state checks.
  • Stick FSM phases (impact, hold, escape, expire) must be telegraphed.
  • Follow-up tiers (re-splat, ender, spend) define corner route depth.
  • Defenders need mash, tech, and meter escapes or corner meta collapses.
  • Couple splat to wall break meter so corner damage has a readable endpoint.
  • Harbor Siege splat pass raised corner damage conversion from 31% to 72%.

Related reading