← The API

Phaser AE

API docs

v3.0.0-2206 exports in 26 modulesreleased October 19, 2026

ContentsTimers

Need to get started? Install the Phaser AE CLI →

Time and flow

Timers

after and every: timers on the game clock, owned by a scene

engine/kernel/src/scheduler.ts

Types

AfterOptions

interface AfterOptions

From @phaser-ae/kernel

How a delayed call repeats.

  • repeat?: number | boolean — Fire more than once: true repeats for ever, a number is that many EXTRA firings. Default 0 — one shot.

Scheduler

interface Scheduler

From @phaser-ae/kernel

Timers on the game clock: they count simulation time, so they pause with the clock, slow with its time scale and fire inside fixed steps, in due order. Each is scoped to the scene that was current when it was made: it holds while that scene is suspended and is cancelled when the scene exits. One made before any scene lasts for the game.

  • after(seconds: Seconds, fn: () => void, opts?: AfterOptions): TimerHandle — Run fn once, seconds of clock time from now, or repeat times more. Throws on a negative or non-finite interval.
  • every(seconds: Seconds, fn: () => void): TimerHandle — Run fn every seconds of clock time, never more than once per fixed step, until cancelled. Throws on a negative or non-finite interval.

TimerHandle

interface TimerHandle extends Cancel

From @phaser-ae/kernel

A pending timer. It is a Cancel, so nothing that only cancels needs to change — but a game that wants to hold one open, read how long is left, or re-arm it has all of that here.

  • paused: boolean — Freeze this one without stopping anything else. The clock keeps running; this timer does not.
  • readonly delay: Seconds — The wait as given. A repeating timer re-arms with this period.
  • readonly remaining: Seconds — Seconds until the next firing; 0 once finished.
  • readonly progress: number — 0→1 through the current wait — drive a countdown bar with this rather than tracking elapsed time.
  • readonly done: boolean — True once it has fired for the last time, or been cancelled.
  • readonly repeatsRemaining: number — Firings still to come after the next one; Infinity while repeating for ever.
  • reset(seconds?: Seconds): TimerHandle — Restart the countdown from the top; seconds sets the wait from here on. Works on a live timer — a combo window each hit re-opens — AND on one that has already fired, including from inside its own callback, which is how a variable interval is written: t.reset(1 + game.rng.between(0, 2)). A cancelled timer stays cancelled. Throws on a negative or non-finite wait.