Events
External packages attach nexSys4 listeners through the Nexus
eventStream global. eventStream is the canonical listener interface for
cross-package integrations.
eventStream.registerEvent(
"nexsys4.aff.got",
(payload) => {
console.log(payload.name);
},
{ id: "my-package:aff-got", tags: ["my-package"] },
);
Every payload includes topic and at. Events with a scoped variant can
also be targeted by appending the payload value shown in angle brackets. For
example, nexsys4.aff.got.asthma listens only for the asthma affliction,
while nexsys4.aff.got listens for every gained affliction.
The list below is generated from the runtime topic registry. If an event is not listed here, it is not part of nexSys4's external EventStream contract.
Runtime and system
| Event | Scoped variants | Description |
|---|---|---|
nexsys4.runtime.started | none | Runtime startup completed. |
nexsys4.runtime.stopped | none | Runtime shutdown completed. |
nexsys4.raw.gmcp | none | Raw GMCP payload observed at the adapter boundary. |
nexsys4.system.vitals.changed | none | Character vitals changed. |
nexsys4.system.health.changed | none | Health changed. |
nexsys4.system.mana.changed | none | Mana changed. |
nexsys4.system.rage.changed | none | Rage changed. |
nexsys4.system.bleed.changed | none | Bleed changed. |
nexsys4.system.status.changed | none | Character status snapshot changed. |
nexsys4.system.class.changed | none | Character class changed. |
nexsys4.system.target.changed | none | Current target changed. |
nexsys4.system.room.changed | none | Current room changed. |
nexsys4.system.room_items.changed | none | Visible room items changed. |
nexsys4.system.pause.changed | none | Runtime pause state changed. |
nexsys4.system.paused | none | Runtime paused. |
nexsys4.system.unpaused | none | Runtime unpaused. |
nexsys4.system.loaded | none | Startup game-state initialization completed. |
nexsys4.system.death.detected | none | Death was detected from character state. |
nexsys4.system.mount.changed | none | Mounted state changed. |
nexsys4.system.wielded.changed | none | Wielded equipment changed. |
Afflictions, defences, balances, and limbs
| Event | Scoped variants | Description |
|---|---|---|
nexsys4.aff.got | nexsys4.aff.got.<name> | Affliction became active. |
nexsys4.aff.lost | nexsys4.aff.lost.<name> | Affliction was cured or removed. |
nexsys4.aff.stack.changed | nexsys4.aff.stack.changed.<name> | Affliction stack count changed. |
nexsys4.def.got | nexsys4.def.got.<id> | Defence became active. |
nexsys4.def.lost | nexsys4.def.lost.<id> | Defence expired or was removed. |
nexsys4.balance.got | nexsys4.balance.got.<id> | Balance became available. |
nexsys4.balance.lost | nexsys4.balance.lost.<id> | Balance was consumed or lost. |
nexsys4.balance.reset | nexsys4.balance.reset.<id> | Balance timing was reset. |
nexsys4.balance.duration.observed | nexsys4.balance.duration.observed.<id> | Observed balance recovery duration changed. |
nexsys4.eqbal.got | none | Balance and equilibrium are both available. |
nexsys4.limb.hit | nexsys4.limb.hit.<limb> | Limb damage was recorded. |
nexsys4.limb.reset | nexsys4.limb.reset.<limb> | Limb tracking was reset. |
nexsys4.limb.stage.changed | nexsys4.limb.stage.changed.<limb> | Limb damage stage changed. |
Items, cache, queue, rules, and serverside
| Event | Scoped variants | Description |
|---|---|---|
nexsys4.cache.amount.changed | none | Cached item counts changed. |
nexsys4.cache.inventory.list | none | Inventory cache snapshot applied. |
nexsys4.cache.rift.list | none | Rift cache snapshot applied. |
nexsys4.item.room.added | none | An item appeared in the current room. |
nexsys4.item.room.removed | none | An item left the current room. |
nexsys4.item.room.updated | none | A current-room item changed. |
nexsys4.item.room.list | none | Current-room item list snapshot received. |
nexsys4.item.inv.added | none | An item was added to inventory. |
nexsys4.item.inv.removed | none | An item was removed from inventory. |
nexsys4.item.inv.updated | none | An inventory item changed. |
nexsys4.item.inv.list | none | Inventory item list snapshot received. |
nexsys4.queue.sent | nexsys4.queue.sent.<queueName> | A queue submission was accepted by the server. |
nexsys4.queue.fired | nexsys4.queue.fired.<queueName> | A queue fire was acknowledged for a named queue. |
nexsys4.queue.fired.ack | none | Queue fire acknowledgement was recorded. |
nexsys4.serverside.aff.priority.set | nexsys4.serverside.aff.priority.set.<id> | Live serverside affliction priority confirmation was observed. |
nexsys4.serverside.def.priority.set | nexsys4.serverside.def.priority.set.<id> | Live serverside defence priority confirmation was observed. |
nexsys4.rule.activated | nexsys4.rule.activated.<id> | Serverside rule became active. |
nexsys4.rule.deactivated | nexsys4.rule.deactivated.<id> | Serverside rule stopped being active. |
Contract notes
- Base and scoped events receive the same payload object.
- Scoped events are available only where a scoped variant is listed.
nexsys4.raw.gmcpis emitted only whenpublishRawGmcpis enabled.- Adapter-local events such as
PromptEvent,NoticeEvent,TargetSetEvent, andTargetChangedare not nexSys4 events.