PR pixi-reels
All recipes

Anticipation teaser

Pair setAnticipation with a buffer-above prefill so the next cell to scroll into view on a slow reel is a caller-chosen symbol.

Loading recipe…

The idea

setAnticipation slows a reel so the player has time to feel the tension. On its own, the slow reel shows whatever random symbols happen to be wrapping onto the strip. sometimes the high-value lands, sometimes it doesn’t.

Pairing it with a buffer-above prefill (bufferAbove: ['COIN'] on the column’s ColumnTarget) turns the wait into a reveal: the COIN is the next cell to enter the visible area, so as the reel decelerates the player watches it slide into place. The effect is stronger than anticipation alone.

The minimum code

const promise = reelSet.spin();
await waitForServer();

const visible = await server.spin();
// Reels 3 and 4 are the slow reels. bufferAbove on those reels holds
// the symbol that slides into view as each reel decelerates.
const result: ColumnTarget[] = visible.map((col, i) => (
  i === 3 || i === 4 ? { visible: col, bufferAbove: ['BONUS'] } : { visible: col }
));

reelSet.setAnticipation([3, 4]);
reelSet.setResult(result);
await promise;

When to use which symbol

  • Same as the win: if reels 3+4 ARE landing on BONUS, prefill BONUS. The reveal is the win itself.
  • The “tease” variant: if reels 3+4 are NOT landing on BONUS, prefill BONUS anyway. the slow reel briefly shows the bonus passing overhead before it scrolls out and the actual (non-bonus) symbol lands. This is a near-miss effect. Caveat: some slot jurisdictions restrict deliberately engineered near-misses. Confirm with your compliance team before shipping this variant.

How the reveal works

  1. spin() starts → all reels accelerate
  2. setResult + setAnticipation arrives → reels 0–2 enter StopPhase first
  3. Reels 3 and 4 enter AnticipationPhase. they slow down, holding for anticipationDelay
  4. During that hold, the strip wraps slowly. The buffer-above cell (containing BONUS) is the next to enter view
  5. After anticipationDelay elapses, those reels enter StopPhase and land

The buffer-above prefill is read by the same FrameBuilder pipeline that landed the result. Pins, big symbols, and held reels all coexist with it.

Where to go next