FolioTier 2
@headshake
Sway a sprite's head side to side - a beat of disagreement or disbelief.
@headshake plays a short side-to-side sway on a sprite, reading to the viewer as a no - a beat of refusal, skepticism, or quiet disbelief. Reach for it when a character's body language needs to carry emotional weight alongside or just after a line, or when you want the reaction visible before the next beat of dialogue arrives.
The defaults land somewhere between conversational and firm, which suits most scenes. Pull intensity down for a hesitant, uncertain gesture; push it up when the denial is sharp or the disbelief is genuine. Trim duration for a quick, throwaway brush-off and leave it longer when the moment deserves a pause.
Because wait defaults to false, the sway fires and the scene continues immediately - the animation and the next say will run at the same time. Set wait to true whenever the headshake needs to finish before anything else happens, such as a deliberate beat of silence after a refusal.
@headshake targets a single sprite tag, so if the same character appears under more than one tag, call the effect on each tag separately or only the tagged instance will animate. For reactions driven by impact or sudden fright rather than social disagreement, @shake is the closer tool - it rattles the full sprite and reads as physical rather than expressive.
Parameters
| Parameter | Kind | Required | Default | Notes |
|---|---|---|---|---|
| target | string | yes | "" | Sprite tag to target. |
| intensity | number | no | 0.7 | 0-1 × multiplier. Default 0.7. |
| duration | number | no | 0.45 | 0.2-1.5 seconds. Default 0.45. |
| wait | boolean | no | true | Block for the effect's duration when true; false fires and continues so effects can overlap. |
Canonical example
sprite show ada
say "Ada": "No way."
@headshake(target=ada)
@headshake sways the sprite that target matches from side to side,
then settles back to rest. It reads as disagreement or disbelief - the
"no" to @nod's "yes" - without swapping the
sprite's state image.
intensity scales how far the sway travels (0.7 is the everyday
default); duration is how long it runs. Keep both modest so the beat
reads as body language, not a glitch.
Notes
@headshake is a gesture effect - a one-shot reaction that returns the
sprite exactly where it started. Distinct from @shake,
which is a decaying jitter (impact tremble) rather than a deliberate
head movement. It runs on the Pixi stage.