# new RezSystem()
Represents a game system in the Rez game engine. Systems are used to implement cross-cutting game mechanics that operate on events and game state. Systems have priority and enabled/disabled states, and may define handlers on two parallel paths:
Event path (originating browser events)
before_event(system, evt) and after_event(system, evt, result) are called by the
RezEventProcessor around the handling of the six originating events (click, input, submit,
timer, key_binding, window_event). These may modify the event and the result (they are
threaded/reduced across systems in priority order).
Lifecycle path (game-level transitions)
before_lifecycle_event(system, eventName, params) and
after_lifecycle_event(system, eventName, params, result) are called by
RezGame.broadcastLifecycle around the game's lifecycle broadcasts, letting a system
observe scene/card transitions and renders that never flow through the event processor.
before_lifecycle_event runs before the game's own on_<eventName> handler;
after_lifecycle_event runs after it, receiving that handler's return value as result.
This path is observe-only: return values are not threaded back into dispatch (handlers may
still mutate the shared params object). The lifecycle events delivered are:
scene_will_start, scene_did_end, scene_will_pause, scene_did_resume,
card_will_start, card_did_start, card_did_finish, will_render, did_render, and
game_did_start. (game_will_start reaches systems via the per-object broadcast instead.)
A system must define at least one of these four handlers.
Extends
Methods
# static constructor(id, attributes)
Creates a new game system instance
Parameters:
| Name | Type | Description |
|---|---|---|
id |
string
|
unique identifier for this system |
attributes |
object
|
system attributes from Rez compilation including priority and handlers |