Guide
Game counter-attack systems explained
Harbor Siege's one-on-one duel mode shipped with solid parry windows and readable attack telegraphs, yet high-level matches devolved into neutral poke trades. Players who blocked correctly still lost races because every hit dealt the same damage whether it was a blind mash or a read on recovery frames. Counter damage sat at 12% of total duel damage — mostly accidental.
The refactor introduced explicit counter-attack systems: a counter-hit flag when your active frames strike an opponent in startup or recovery, scaled whiff-punish windows on slow heavies, and frame-trap strings that catch button presses after plus frames. Counter damage share rose to 34% without lengthening time-to-kill. This guide covers counter taxonomy, detection pipelines, reward tuning, riposte vs raw counter paths, the Harbor Siege duel refactor, a technique decision table versus flat damage scaling, pitfalls, and a production checklist.
What counter-attack systems are
A counter-attack system rewards the attacker for landing hits during specific opponent vulnerability windows. It is broader than a parry riposte: ripostes require a successful defensive input first; counter systems pay out when you simply attack at the right moment against a whiff, slow move, or recovery state.
Common categories:
- Counter-hit — your strike connects while the opponent's attack is in startup or recovery (sometimes extended hitstun or damage).
- Whiff punish — opponent's attack misses; you strike during their recovery before they can block.
- Frame trap — a fast follow-up after a plus-on-block move catches opponents who mash buttons during gap frames.
- Riposte / counter-stance — entering a dedicated counter state after parry or perfect block, then launching a guaranteed or advantaged attack.
- Projectile counter — reflecting or batting projectiles back with bonus damage or stun.
These systems turn frame data from spreadsheet trivia into felt gameplay. Without counters, frame advantage only matters to lab players; with counters, neutral reads visibly pay off.
Detection pipeline
Counter detection runs in the hit-resolution step, after hitbox overlap but before damage application:
- Resolve hit — attacker hitbox intersects defender hurtbox; determine attack ID and current animation phase for both fighters.
- Classify defender state — idle, blocking, attacking (startup/active/recovery), knockdown, hitstun, counter-stance, invulnerable.
- Evaluate counter rules — match defender state against per-move counter tables (e.g. counter-hit if defender phase is startup or recovery).
- Apply counter flag — set
isCounterHit,isWhiffPunish, orisFrameTrapon the hit event. - Scale rewards — multiply damage, extend hitstun, grant meter, or unlock counter-only routes in combo systems.
- Emit feedback — VFX, SFX, UI badge, and combat log for training mode.
Keep detection authoritative on the server in PvP. Clients may predict counter VFX locally, but damage and stun bonuses must match server flags to avoid desync disputes.
Counter-hit rewards and tuning
Counter rewards should be noticeable but not fight-ending on a single read:
| Reward type | Typical effect | Risk if over-tuned |
|---|---|---|
| Damage multiplier | 1.2×–1.35× on counter-hit | One counter heavy deletes health bars |
| Hitstun extension | +2–6 frames extra stun | Infinite counter-hit loops in juggles |
| Meter gain | Bonus super meter on counter only | Meter snowball without defensive answers |
| Route unlock | Counter-only launcher or wall-bounce | Lab-only routes casual players never see |
| Crush / armor break | Counter ignores light super armor | Defense feels meaningless |
Harbor Siege uses a modest 1.25× damage multiplier plus +3 frames hitstun on counter-hit. Whiff punishes on moves with recovery longer than 22 frames grant an additional 1.1× multiplier if the punish connects within 8 frames of whiff end. Frame traps do not stack multipliers — they only apply the base counter-hit bonus if the trap catches a button press during the trap window.
Whiff punish and frame-trap design
Whiff punishes
Every slow move needs a published recovery value and a punish window tag. Moves
with recovery ≥ 20 frames should be punishable by at least one fast normal
at common spacing. Mark them in data as whiffPunishable: true and
surface the window in training mode when the opponent whiffs.
Design slow moves with a purpose: range, armor, or wall-splat — not as neutral pokes. If a move is unsafe on whiff, give it a clear telegraph so the punish is a read, not a reaction test at 60fps.
Frame traps
A frame trap is a string gap where the first move is plus on block and the follow-up is fast enough to counter-hit a mashed jab. Example: light slash is +3 on block; medium slash starts in 8 frames — opponent's 10-frame jab loses and eats a counter-hit.
Frame traps interact with wake-up okizeme: meaty timing plus frame traps pressure rise options. Document trap gaps in the same frame sheet as block advantage.
Riposte vs raw counter paths
Parry ripostes and raw counter-hits solve different skill expressions:
- Riposte path — defender commits to a timed parry, enters counter-stance with i-frames, then chooses from a small riposte menu. High reward, high risk if parry whiffs.
- Raw counter path — attacker watches recovery and strikes; no defensive input required. Lower peak reward, always available in neutral.
Games that overload riposte damage while ignoring counter-hit tuning feel defensive and passive. Games with strong counter-hit bonuses but weak parry payoffs make defense a tax. Harbor Siege targets a 60/40 split: most counter damage comes from neutral reads; ripostes finish rounds but require meter or perfect timing.
Harbor Siege duel refactor
Before counters, duel win rate correlated with who pressed heavy first in neutral. Blocked attacks still chipped stamina; there was no premium for catching recovery.
Changes shipped:
- Added
CounterHitResolverto hit pipeline with per-move phase checks. - Tagged 18 slow heavies and sweeps as whiff-punishable with training-mode overlay.
- Re-tuned three character strings to include documented frame traps (+2 to +4 gaps).
- Counter-hit VFX: brief gold flash on hurtbox, distinct SFX layer from normal hits.
- Telemetry: counter damage %, whiff punish rate, frame-trap success per character.
Post-patch on 10,000 ranked duels: counter damage share 34% (was 12%), average duel length unchanged at 38 seconds, Rage-quit rate down 9%. Players reported neutral felt “readable” rather than “random trade simulator.”
Technique decision table
| Approach | Best when | Skip when |
|---|---|---|
| Flat damage (no counters) | Horde shooters, stat-stick RPGs | Symmetric PvP duels, fighters |
| Counter-hit flag only | Fighters, action brawlers with frame data | Single-player power fantasy with no reads |
| Whiff punish tagging | Any game with slow committed attacks | All attacks are fast or homing |
| Frame trap strings | Plus-on-block pressure characters | Pure reaction test games (rhythm fighters) |
| Riposte-only counters | Souls-likes with parry focus | Need neutral depth without forcing parry |
| Projectile reflect counters | Hero shooters, arena fighters | No ranged toolkit in roster |
Common pitfalls
- Counter-hit on block. Counters should not trigger against successful guard unless you explicitly design guard-crush counters.
- Stacking multipliers. Counter-hit + whiff + counter-stance riposte on one hit deletes balance; cap combined bonus.
- Invisible punish windows. Players cannot learn without training-mode whiff timers and frame overlays.
- Every move counter-hit everything. Narrow windows to startup and recovery phases, not active frames.
- Frame traps without plus frames. Gaps that are not actually advantaged on block do not trap anything.
- Netcode ignoring phase. Lag-compensated hits must use rollback snapshots of defender animation phase, not present-frame only.
- Counter routes only in lab. If counter-hit unlocks a launcher, teach it in tutorial and show the badge in replay.
- PvE bots never whiff. Bots must occasionally throw punishable moves or counter systems never surface for most players.
Production checklist
- Document counter taxonomy (counter-hit, whiff, trap, riposte) in combat spec.
- Implement counter flags in authoritative hit-resolution pipeline.
- Publish recovery frames and whiff-punishable tags per move.
- Set damage and hitstun multipliers with combined bonus cap.
- Author at least one frame trap per pressure character; verify plus gaps.
- Distinct VFX/SFX for counter hits vs normal hits.
- Training mode: show punish window on whiff, counter badge on trigger.
- Telemetry: counter damage %, whiff punish rate, trap success per move.
- PvP: rollback or server-side phase check for counter detection.
- Playtest: can one counter loop infinite? Add scaling or stun decay.
- Balance riposte vs raw counter reward split for your genre.
- Regression-test after any hitstun or block-advantage patch.
Key takeaways
- Counter systems pay players for timing reads, not just execution.
- Counter-hit, whiff punish, and frame traps are separate detection rules with different design goals.
- Harbor Siege raised counter damage share from 12% to 34% without lengthening duels by tagging recovery and trap gaps explicitly.
- Rewards must be visible in training tools and capped to avoid one-read KOs.
- Frame data is only player-facing when counter flags connect advantage to outcomes.
Related reading
- Game frame data explained — startup, active, recovery, and block advantage
- Game parry and block systems explained — riposte paths and guard design
- Game combo systems explained — counter-only routes and juggle scaling
- Game wake-up and getup combat systems explained — okizeme frame traps on knockdown