Guide
Game on-the-ground attack systems explained
Harbor Brawl's grappler mains kept reporting “my sweep whiffed on a downed opponent” while rushdown players complained the opposite: standing normals clipped through bodies on the floor. Root cause: OTG eligibility lived on individual move scripts, knockdown hurtboxes shrank inconsistently during fall animations, and no shared clock defined when floor attacks were legal. After introducing a unified OTG window tied to knockdown state, standardized grounded hurtboxes, and a three-class OTG move taxonomy, legitimate OTG confirm rate in ranked duels rose from 23% to 41% and rollback desync tickets tagged “floor hit” dropped to zero in a 12,000-match soak test.
On-the-ground (OTG) attacks let the attacker strike a defender who has not yet completed getup — typically during soft knockdown floor time or after a juggle lands the opponent in a grounded state. OTG extends combos, layers okizeme before wake-up meaties, and creates mixups between sweeps, delayed jumps, and throw attempts. This guide covers OTG move classes, knockdown window math, hurtbox contracts, oki sequencing, the Harbor Brawl refactor, a technique decision table versus meaty-only knockdown pressure, pitfalls, and a production checklist.
What OTG attacks are
An OTG attack is any offensive move whose hitbox is allowed to connect with a defender in a grounded knockdown state — lying, crumpling, or sliding on the floor before standing animation begins. Without OTG rules, downed hurtboxes are often invulnerable to standing normals by design; OTG moves opt into a separate collision channel or flag that overrides the default “cannot hit prone target” rule.
OTG solves three design problems:
- Combo extension — convert a knockdown into extra damage or a reposition before the defender rises.
- Oki layering — force a block, hit, or throw read before wake-up reversal windows open.
- Route differentiation — reward characters with sweeps and OTG tools without giving every normal floor coverage.
| Term | Meaning |
|---|---|
| OTG window | Frame range during knockdown when grounded hurtbox is hittable by OTG-flagged moves |
| OTG move | Attack with can_hit_grounded (or equivalent) enabled for eligible knockdown types |
| Meaty oki | Timed attack that hits on the first wake-up frame — orthogonal to OTG but often sequenced after it |
| Hard knockdown | Knockdown type that closes OTG window early or denies OTG entirely |
| Ground bounce | Secondary state where OTG may re-open after initial knockdown — common in anime fighters |
OTG move taxonomy
Not every low attack is OTG. Classify offensive tools by how they interact with the floor state machine:
| Class | Examples | Typical use |
|---|---|---|
| OTG sweep | Crouching heavy kick, slide kick | Reliable floor coverage; often slow recovery, high reward on hit |
| OTG special | Dedicated ground stomp, drill, fireball on downed body | Character identity; may consume meter or have longer startup |
| OTG launcher | OTG into aerial juggle (e.g. ground bounce ender) | Extends combo route; must respect juggle budget and scaling |
| OTG throw / command grab | OTG throw, ground throw | Beats fuzzy jump and delayed mash; often slower than sweeps |
| OTG projectile | Low beam, mine on downed hurtbox | Sets up delayed oki; watch for projectile invuln on wake |
| Non-OTG low | Standing low that whiffs on prone targets | Intentional gap — defender learns which lows are true oki tools |
Harbor Brawl tagged every move with otg_class (none, sweep, special,
launcher, throw) instead of a single boolean. Designers could allow sweeps on soft
knockdown only while launcher OTG required a juggle-eligible grounded state
— eliminating the old pattern where one global is_otg flag
made launchers hit during hard knockdown by accident.
Knockdown window math
OTG feel is almost entirely timing. Define these frames on the defender state machine:
- Knockdown onset — frame the defender enters grounded state; hurtbox switches to prone capsule.
- OTG open — first frame OTG-flagged attacks can connect (may lag onset by 2–6 frames for fall animation clarity).
- OTG close — last frame before getup animation begins; after this, only meaty wake-up timing applies.
- Quick-rise branch — if the defender can tech roll early, OTG close may shorten dynamically.
A practical formula for sweep coverage:
otg_connect_frames = otg_close - max(otg_open, attacker_move_startup - travel_frames)
If otg_connect_frames < 0, the sweep cannot reach the downed
hurtbox before getup — players perceive this as “OTG doesn't
work.” Harbor Brawl exposed OTG open/close in the training overlay and
tinted the prone hurtbox green only during the legal window, cutting
“broken OTG” reports 78%.
Tie OTG close to knockdown advantage consistently: soft knockdowns should leave at least one OTG attempt window for mid-speed sweeps (startup 12–18f); hard knockdowns close OTG before any grounded attack recovers.
Grounded hurtbox contract
OTG bugs often come from hurtbox animation, not move flags. Standardize:
- One prone capsule per knockdown type — avoid per-frame mesh shrink that lets sweeps whiff on late fall frames.
- Head vs body zones — some games allow OTG lows only on legs; document which zones each OTG class checks.
- Pushback on OTG hit — slide the defender along the floor or leave them in place; inconsistent pushback breaks combo resets.
- Invuln tail — brief post-OTG invuln prevents infinite re-OTG loops unless juggle budget allows.
Rollback netcode requires deterministic hurtbox keys: serialize knockdown type, OTG open/close, and prone capsule dimensions — not just animation time.
Oki sequencing: OTG before meaty
Strong knockdown pressure stacks layers in time order:
- Immediate OTG — sweep or special on first OTG-open frame; catches delayed tech and fuzzy jump late.
- Delayed OTG — empty jump or walk forward then sweep; beats early mash and quick-rise.
- Meaty — attack active as defender stands; frame traps reversal buttons.
- Shimmy / throw — after respect is conditioned.
Each layer needs distinct frame data. If OTG sweep and meaty share the same startup, defenders cannot distinguish block-low from block-mid on wake. Harbor Brawl gave OTG sweeps +4f advantage on block into a safe jump option while meaties remained throw-loop threats — oki damage share rose without lengthening infinite throw loops.
Harbor Brawl refactor (worked example)
Before refactor:
- 47 moves had ad-hoc
hits_groundedbooleans; 12 conflicted with knockdown type tables. - Prone hurtbox height varied ±18% across knockdown animations.
- OTG window was animation-length-based — desynced under hitstop.
After refactor:
- Central
KnockdownProfileper type: OTG open/close offsets from state entry, independent of clip length. - Single prone hurtbox asset per profile; animation only visuals.
otg_classmatrix: which classes legal per knockdown type and juggle state.- Training overlay: OTG window bar + hitbox tint.
Metrics after two balance patches: OTG confirm rate 23% → 41%; average oki damage per round +6.2%; hard-knockdown routes unchanged (no OTG creep on HKD).
Technique decision table
| Scenario | Prefer | Avoid |
|---|---|---|
| Soft knockdown combo routes | OTG sweeps + launcher OTG with juggle budget | Meaty-only oki with no floor layer |
| Hard knockdown neutral reset | Close OTG window; meaty or spacing oki only | Global OTG flag on all lows |
| Grappler knockdown pressure | OTG throw plus sweep triangle | OTG throw with faster startup than sweep (removes sweep purpose) |
| Anime juggle enders | Ground bounce re-opens OTG with separate budget | Infinite OTG loop without scaling or juggle cap |
| Rollback fighters | State-entry OTG clocks + fixed prone capsule | Animation-normalized OTG timing |
| Teaching new players | Training overlay with OTG window visualization | Hidden per-move OTG flags with no UI feedback |
| Competitive balance | OTG reward tied to slow recovery or meter cost | Fast OTG special with full combo conversion every knockdown |
Pitfalls
- Boolean OTG on every low — removes knockdown type meaning; hard knockdowns feel identical to soft.
- Animation-based OTG windows — desync under hitstop, rollback, and slow-motion effects.
- Shrinking prone hurtboxes — sweeps whiff arbitrarily on late fall frames.
- OTG without oki follow-up — floor hit that leaves attacker minus on wake gives no payoff for learning OTG.
- OTG launcher without juggle cap — infinite aerial loops break damage scaling intent.
- Overlapping OTG and meaty active frames — defenders cannot parse low vs mid on wake.
- Inconsistent HKD enforcement — one move bypasses hard knockdown OTG denial and invalidates defensive routes.
- No debug visualization — OTG bugs become player superstition instead of fixable timing tickets.
Production checklist
- Define knockdown profiles with OTG open/close offsets from state entry, not clip length.
- Tag moves with OTG class (sweep, special, launcher, throw) and legal knockdown matrix.
- Standardize prone hurtbox per profile; decouple collision from visual animation.
- Verify sweep startup fits OTG connect window for each soft knockdown type.
- Enforce hard knockdown OTG denial in one central gate, not per-move exceptions.
- Stack oki layers: OTG, delayed OTG, meaty, throw/shimmy with distinct timings.
- Pair OTG hits with block advantage or juggle route so floor pressure has payoff.
- Expose OTG window in training mode; log OTG whiff reason (closed, wrong class, miss).
- Rollback test: serialize knockdown state, OTG clocks, and prone capsule each frame.
- Balance patch: track OTG confirm rate and oki damage share separately from neutral hits.
Key takeaways
- OTG attacks hit defenders in grounded knockdown before getup completes.
- OTG windows must be state-clock based, not animation-length based, for rollback safety.
- Classify OTG moves (sweep, special, launcher, throw) and tie each to knockdown type rules.
- Harbor Brawl OTG confirms rose from 23% to 41% after unified windows and hurtboxes.
- Layer OTG before meaty oki so knockdown pressure has multiple timed reads.
Related reading
- Hard and soft knockdown systems explained — which knockdown types allow OTG
- Okizeme, meaties and frame traps explained — sequence OTG into wake-up pressure
- Juggle and launch combo systems explained — OTG launcher routes and aerial budget
- Wake-up and getup combat systems explained — where OTG ends and reversal begins