The scene-region → event-queue bridge (issue #593): a Foundry v14
RegionBehaviorType a GM drops onto a scene region to opt it into SoHL
triggering. Registered as the trigger RegionBehavior subtype; Foundry
auto-generates its config sheet from this schema.
This is the GM opt-in surface for the "automation only at a human's behest"
posture — nothing happens until a GM places the behavior on a region and
picks which events it forwards. When a curated event fires, the behavior:
forwards the event into SoHL's queue via
sohl.entity.event.fireSohlTrigger, so any actor/item subscription
on that trigger reacts (predicate-scoped to a region or character); and
if the GM authored an actionName, offers that action to the entering
token's actor — an owner-gated [Perform] reminder (the crypt-Fear-test
archetype). The queue reminds; the human performs.
Dispatch once. Foundry delivers a region event to the behavior on every
connected client (the triggering client plus a socket broadcast), so the
whole forward is gated to the active GM — the trigger dispatches exactly once,
not once per client. The entering token is resolved to its actor here, at the
Foundry boundary; the logic layer sees only the resolved UUIDs.
The scene-region → event-queue bridge (issue #593): a Foundry v14
RegionBehaviorTypea GM drops onto a scene region to opt it into SoHL triggering. Registered as thetriggerRegionBehavior subtype; Foundry auto-generates its config sheet from this schema.This is the GM opt-in surface for the "automation only at a human's behest" posture — nothing happens until a GM places the behavior on a region and picks which events it forwards. When a curated event fires, the behavior:
actionName, offers that action to the entering token's actor — an owner-gated[Perform]reminder (the crypt-Fear-test archetype). The queue reminds; the human performs.Dispatch once. Foundry delivers a region event to the behavior on every connected client (the triggering client plus a socket broadcast), so the whole forward is gated to the active GM — the trigger dispatches exactly once, not once per client. The entering token is resolved to its actor here, at the Foundry boundary; the logic layer sees only the resolved UUIDs.