Guide

Game frame data explained

Harbor Ruins' bridge duel boss killed 62% of first-time players on its overhead slam — not because damage was high, but because the recovery window was invisible. Internal telemetry showed players blocking the hit correctly yet eating a follow-up jab they could not react to. The combat team exported frame sheets for every boss move, discovered the slam was minus-two on block while the jab was plus-four, and lengthened slam recovery by three frames. First-attempt clear rate rose 28% without lowering damage. Frame data is the spreadsheet under fair combat: startup, active, and recovery counts; hitstun and blockstun; who acts first after a clash. Weapon feel lives in weapon systems; this guide covers the timing layer — how to read and author frame data, compute frame advantage, pair it with input buffering and hitstop, the Harbor Ruins refactor, a technique decision table, pitfalls, and a production checklist alongside our melee combat guide and fighting game design guide.

What frame data measures

A frame is one tick of the combat simulation, usually aligned with the game loop at 60 Hz (16.67 ms) or 30 Hz in some action RPGs. Frame data counts how many ticks each phase of an attack lasts and how long the defender is locked afterward. Designers express moves as compact notation — e.g. a light punch might be 5/3/8 meaning 5 startup, 3 active, 8 recovery — plus separate hitstun and blockstun values on connect.

Frame data is not cosmetic timing for animators alone. It is the contract between offense and defense. Players who learn a boss pattern are really learning frame advantage: “After I dodge the red telegraph, I have 12 frames before the next swing.” Without published numbers, tuning becomes guesswork and playtesters describe problems as “cheap” instead of “minus-six on whiff.”

The three attack phases

Phase What happens Designer lever
Startup Wind-up before hitboxes activate; player committed but not threatening Telegraph length; feint cancel points
Active Hitboxes enabled; damage and stun apply on overlap Hitbox duration, multi-hit spacing
Recovery Attack ends; attacker vulnerable until idle Punish window size; cancel routes into specials

Total move length is startup + active + recovery. Advantage calculations use recovery and stun, not startup alone. A 40-frame startup super is reactable; an 8-frame jab that is plus-four on block is oppressive even with short recovery.

Hitstun, blockstun, and frame advantage

When an attack connects, the defender enters hitstun (if unguarded) or blockstun (if guarded). During stun, most actions are disabled. The attacker recovers from their move while the defender is still in stun — that gap is frame advantage.

Compute advantage on block as:

advantage = blockstun − (recovery − active_overlap)

Simplified for single-hit moves: if recovery is 15 frames and blockstun is 11, the attacker is minus-four — the defender recovers four frames sooner and can punish with any move faster than four startup frames. Plus frames mean the attacker acts first; safe pressure and mix-ups depend on them.

On hit, hitstun is usually longer than blockstun, enabling combos. Combo systems chain moves when the next attack's startup is less than or equal to remaining hitstun — see our combo systems guide for scaling and juggle limits. Blockstun tuning controls whether a string is a true blockstring (no gaps) or reactable.

Common stun terminology

  • Safe on block — advantage ≥ −3 at 60 Hz; difficult to punish with fastest normals.
  • Punishable — advantage ≤ −8; clearly reactable with standard tools.
  • Frame trap — a gap in a blockstring where a defender button loses to a follow-up.
  • Meaty — timing an attack so active frames overlap the opponent's wakeup.

Authoring frame data in production

Treat frame data as data, not animation leftovers. Workflow that scales:

  1. Design intent first — “This heavy should be minus on block but plus on hit.”
  2. Prototype with placeholder boxes — gray capsules before final VFX.
  3. Export a frame sheet — CSV or spreadsheet per character with all moves, stun, and cancel flags.
  4. Sync animation — anim events mark active frames; do not let anim length drift without updating data.
  5. Regression diff — any balance patch shows changed advantage columns, not just damage.

Engines differ: fighting games often run fixed combat timesteps independent of render FPS; action RPGs sometimes tie active frames to animation notifies. Either way, document whether hitstop freezes the attacker, defender, or both — hitstop changes perceived advantage if only one side pauses.

Invincibility frames on dodges and supers are frame data too. A roll with 20 iframes but 30 recovery can still be minus on block if the attack whiffs into punish range — pair with our dodge and i-frames guide.

Input buffers and cancel windows

Raw frame counts assume perfect input on the exact frame a move becomes actionable. Players rarely do that. Input buffers store button presses for N frames (often 3–8) and execute on the first legal frame. Buffers make minus-two feel fair and plus-two feel oppressive — always test advantage with the same buffer your shipping build uses.

Cancel windows let a move jump to another during specific frames — e.g. light → special on frames 8–12 of recovery. Cancels shorten effective recovery and raise pressure; flag them explicitly in frame sheets so balance passes do not miss hidden plus frames.

Coyote time and jump buffers are platformer cousins: grace frames after leaving a ledge or before landing. Combat buffers follow the same principle — fairness through a few frames of memory, not through hiding true advantage.

Frame data and multiplayer

Online play adds latency. A move that is plus-two locally may be minus-two online if the defender's inputs arrive before the attacker's follow-up is confirmed. Rollback netcode replays inputs against frame data; delay-based netcode smears advantage unpredictably. Publish whether combat uses fixed combat ticks and how rollback handles stun extensions.

Rules of thumb for networked fighters:

  • Keep fastest normals at or above 4–5 startup frames at 60 Hz.
  • Avoid single-frame active windows on critical anti-airs.
  • Server-authoritative hit detection; clients predict stun for feel, reconcile on mismatch.
  • Log desync when predicted advantage differs from server by more than 2 frames.

Harbor Ruins bridge boss refactor (worked example)

Problem. Bridge duel boss: overhead slam into instant jab string killed 62% of first attempts. Playtest notes said “unfair”; no designer had a single frame sheet. Slam blockstun was 14; recovery 20 (minus-six). Jab startup 6 with plus-four on block after the string — defenders who blocked slam still lost to jab before their fastest counter (7-frame poke) could fire.

Change. (1) Published internal frame wiki for all boss phases. (2) Extended slam recovery +3 frames (now minus-three, punishable with practice). (3) Added 2-frame visual flash on defender's first actionable frame after blockstun. (4) Reduced jab advantage to plus-one. (5) Training mode overlay showing live advantage counter.

Results. First-attempt clear rate +28%. Support tickets mentioning “unfair boss” down 41%. Speedrun times unchanged — skilled players already punished; the fix targeted learnability, not difficulty ceiling.

Frame data technique decision table

Game context Recommended approach Why
Traditional fighting game Full frame sheets; fixed 60 Hz combat tick Community expects lab tools and precise advantage
Action RPG boss Coarse phases + key punish windows documented Players learn patterns, not entire movelists
Soulslike enemy Telegraph-linked startup; generous i-frames on player dodge Readability over frame-perfect offense
Beat ’em up horde Shared hitstun; juggle decay instead of tight advantage Many targets; simplicity beats precision
Online PvP fighter Rollback + conservative plus frames on opens Latency eats narrow windows

Common pitfalls

  • Anim-driven hitboxes without data review — active frames drift when animators polish; re-export sheets each milestone.
  • Hitstop asymmetry — freezing only the defender makes minus moves feel plus; document hitstop rules.
  • Ignoring buffer length — playtest at shipping buffer settings, not frame-perfect lab tools.
  • Hidden cancels — animators add transition blends that shorten recovery without balance sign-off.
  • Variable game speed — slow-motion power-ups must scale combat tick or advantage math breaks.
  • Mixing 30 and 60 Hz systems — UI at 60, combat at 30 doubles perceived startup; keep one combat clock.
  • No training overlay — players cannot learn what they cannot see; expose advantage in practice mode.

Production checklist

  • Define combat tick rate (60 Hz recommended for precision fighters).
  • Maintain frame sheet per character/enemy with startup/active/recovery and stun columns.
  • Compute and review block and hit advantage for every move in competitive sets.
  • Sync animation notifies to data; diff sheets on every combat patch.
  • Document hitstop, buffers, and cancel flags alongside raw frames.
  • Test worst-case latency with rollback or target delay settings.
  • Add training mode advantage display and blockstun flash for learnability.
  • Flag boss moves with explicit punish windows in design docs.
  • Separate weapon DPS tuning from frame advantage tuning.
  • Log desyncs when client and server advantage disagree.

Key takeaways

  • Frame data is the timing contract between attack phases and defender stun.
  • Frame advantage = who recovers first; it drives fairness more than raw damage.
  • Author data first, animate second — not the other way around.
  • Buffers and hitstop change effective advantage; test with shipping settings.
  • Harbor Ruins raised first-clear rate 28% by fixing invisible minus frames, not HP.

Related reading