← The API

Phaser AE

API docs

v3.0.0-1187 exports in 24 modulesreleased October 14, 2026

ContentsFrame graph

Need to get started? Install the Phaser AE CLI →

Time and flow

Frame graph

The render pass graph, the simulation list, and the before/after ordering both use

engine/kernel/src/frame.tsengine/kernel/src/order.ts

Types

FrameGraph

interface FrameGraph

From @phaser-ae/kernel

The render passes, walked once per frame after the worlds have built their tables.

  • addPass(name: string, order: PassOrder, run: (ctx: PassContext) => void): void — Add a named pass. Order is resolved lazily from every pass's constraints; a cycle throws at the next frame.
  • removePass(name: string): void — Remove every pass with this name; an unknown name is ignored.
  • readonly order: ReadonlyArray<string> — The resolved order of pass names, for a debug overlay and tests.

PassContext

interface PassContext

From @phaser-ae/kernel

What a render pass is handed each frame.

  • readonly alpha: number — Interpolation alpha for this frame (from the clock).
  • readonly layers: ReadonlyArray<InstanceTable> — The worlds' sorted instance tables for this frame, every world's in composed order and each world's in its layer order.
  • readonly backend: Record<string, unknown> — What the composed backend publishes for passes that draw after it (its device, this frame's encoder and target). Keyed by backend kind; absent = that backend is not composed.

PassOrder

interface PassOrder

From @phaser-ae/kernel

Where a pass or step runs relative to others, by name. Unknown names are ignored; a cycle throws order: cycle through "…" when the order is next resolved.

  • before?: string | ReadonlyArray<string> — Run before the pass or step with this name, or before every one in a list.
  • after?: string | ReadonlyArray<string> — Run after the pass or step with this name, or after every one in a list. A list is how a pass sits after an OPTIONAL pack's pass without failing when that pack is absent.

Simulate

interface Simulate

From @phaser-ae/kernel

The fixed-step simulation list: every step runs once per fixed step, zero to many times a frame, with the fixed dt.

  • add(name: string, order: PassOrder, step: (dt: number) => void): void — Add a named step; dt is the fixed step in seconds. A pack's step lives for the game; game.step is the scene-scoped form.
  • remove(name: string): void — Remove every step with this name. Safe mid-walk: a step removed during the step walk does not run again that frame.