Skip to content

Class: SystemScheduler ​

Owns every registered ISystem, bucketed by phase, run in registration order — except where systems declare an order (GetOrder; sorted in SystemOrder.ts, lazily before the phase next runs).

parallel: false (default) — system runs serially. Any Promise it returns is awaited before the next system in the phase runs.

parallel: true — the hook is invoked without awaiting and its Promise joins a batch. The batch is drained at the next non-parallel system or at the phase boundary. Useful for async I/O work (asset loads, fetches); pure-CPU work doesn't benefit since JS is single-threaded.

Also handles scene transitions (OnStart / OnStop fire when the active scene changes) and propagates backend swaps via OnRendererChanged to every registered system.

Constructors ​

Constructor ​

ts
new SystemScheduler(engine): SystemScheduler;

Parameters ​

ParameterType
engineIEngine

Returns ​

SystemScheduler

Methods ​

GetSystems() ​

ts
GetSystems(phase?): readonly ISystem[];

Parameters ​

ParameterType
phase?SystemPhase

Returns ​

readonly ISystem[]


IsSimulationEnabled() ​

ts
IsSimulationEnabled(): boolean;

Returns ​

boolean


NotifyRendererChanged() ​

ts
NotifyRendererChanged(renderer): void;

Parameters ​

ParameterType
rendererIRenderer

Returns ​

void


Register() ​

ts
Register(system): void;

Parameters ​

ParameterType
systemISystem

Returns ​

void


RunRenderPhases() ​

ts
RunRenderPhases(scene, renderer): Promise<void>;

Parameters ​

ParameterType
sceneScene | null
rendererIRenderer

Returns ​

Promise<void>


RunUpdatePhases() ​

ts
RunUpdatePhases(
   scene, 
   renderer, 
   dt
): Promise<void>;

Parameters ​

ParameterType
sceneScene | null
rendererIRenderer
dtnumber

Returns ​

Promise<void>


SetProfiler() ​

ts
SetProfiler(profiler): void;

Parameters ​

ParameterType
profilerPerfProfiler | null

Returns ​

void


SetSimulationEnabled() ​

ts
SetSimulationEnabled(enabled): void;

Parameters ​

ParameterType
enabledboolean

Returns ​

void


Shutdown() ​

ts
Shutdown(): void;

Returns ​

void


Unregister() ​

ts
Unregister(system): void;

Parameters ​

ParameterType
systemISystem

Returns ​

void

© 2026 PlayAdGentic