FolioTier 2

@hpunch

Snap the stage horizontally for a single beat of physical impact.

Demo

@hpunch

Hello.

A single horizontal recoil that damps back to rest — distinct from @shake's sustained jitter. Watch the stage snap right, oscillate with shrinking amplitude, then settle.

Parameters

ParameterKindRequiredDefaultNotes
durationnumberno0.3Seconds the punch plays for. Range `0.05`–`1.0`. The punch is a single recoil-and-return curve, not a sustained shake — keep this short.
amountnumberno12Peak horizontal displacement in CSS pixels. Range `1`–`32`. The stage snaps outward to ±`amount` along the x-axis once, then eases back to rest.

Canonical example

Folio
show liam-angry
@hpunch
say "Liam": "Say that again."
Ren'Py
show liam angry
with hpunch
l "Say that again."

@hpunch is the right tool for a single beat of physical impact — a slap, a gunshot, a slammed-against-wall reveal. The stage snaps horizontally once, returns to rest, and the next line runs.

Notes

@hpunch and @shake are not interchangeable even though both displace along the x-axis:

  • @shake is a sustained, decaying jitter. Use it for vibration — earthquakes, engine rumble, sustained tension.
  • @hpunch is a single recoil-and-return. Use it for impact — one hit, one snap-back, done.

The corpus signal is loud here: Acting Lessons uses with hpunch 113 times across episodes 2-8, almost always paired with a show of a reaction sprite (a character recoiling from a slap or shout). The defaults match that pattern; override amount upward (@hpunch amount=20) for heavier impacts.

A vertical variant — @vpunch — exists as a Ren'Py primitive and appears 15 times in Acting Lessons (mostly stomps and falls). It will land as its own page when the Phase 3 matrix-driven second batch ships; until then with vpunch falls through the importer's pattern or AI pass.

See also

  • @shake — sustained jitter, different shape entirely
  • @flash — pairs with @hpunch for "slap + white flash" reaction beats
  • transitiontransition hpunch is the no-parameters form