Skip to main content
Version: 5.0

Class: ObsUtilsApi

Defined in: api.ts:95

Constructors

Constructor

new ObsUtilsApi(): ObsUtilsApi

Defined in: api.ts:104

Returns

ObsUtilsApi

Properties

directorTabs

directorTabs: Map<string, DirectorTabRegistration>

Defined in: api.ts:102


obsRemoteEventTypes

obsRemoteEventTypes: Map<string, OBSRemoteEventTypeRegistration>

Defined in: api.ts:100


overlayTriggers

overlayTriggers: Map<string, OverlayTriggerRegistration>

Defined in: api.ts:101


overlayTypeNames

overlayTypeNames: Map<string, string>

Defined in: api.ts:97


overlayTypes

overlayTypes: Map<string, OverlayType>

Defined in: api.ts:96


singleInstanceOverlays

singleInstanceOverlays: Set<Component>

Defined in: api.ts:98


singleInstanceOverlaysSvelte5

singleInstanceOverlaysSvelte5: Set<Component>

Defined in: api.ts:99

Methods

buildLegacyRollOverlayCanvas()

buildLegacyRollOverlayCanvas(config): OverlayData

Defined in: api.ts:199

Build a wysiwyg (canvas) overlay that emulates the 4.x roll overlay. Shared by the v4 migration (5.0 type: 'roll' entries) and the docs snippet that pulls the user's legacy flat settings out of the world.

The returned overlay is a 250×250 layer with tileBy: 'players', a core.onPlayerRoll transition out of the idle track, and the pre / roll / post phases chained through transition-on-end.

Push the result into streamOverlays (or import it through the composer) — this helper is data-only and does not touch settings.

Parameters

config

LegacyRollOverlayConfig

Returns

OverlayData


fireOverlayTrigger()

fireOverlayTrigger(key, payload): void

Defined in: api.ts:149

Public — modules call this when their in-system event fires (e.g. a chat message is created, a roll is made). Dispatches via Foundry's Hooks bus so any number of overlay renderers can react without tight coupling.

Parameters

key

string

payload

Record<string, any>

Returns

void


getDirectorState()

getDirectorState(): DirectorState

Defined in: api.ts:134

Public — snapshot of Director state (tracking modes, combat, focused user). Subscribe to obs-utils.director.stateChanged to react to changes; the hook payload is (next: DirectorState, prev: DirectorState | undefined).

Returns

DirectorState


getOBSWebsocketClient()

getOBSWebsocketClient(): Promise<any> | undefined

Defined in: api.ts:245

Returns

Promise<any> | undefined


getSelectedActors()

getSelectedActors(): any

Defined in: api.ts:213

Returns

any


isOBS()

isOBS(): any

Defined in: api.ts:253

Returns

any


playPreset()

playPreset(preset): void

Defined in: api.ts:266

Public — play a camera preset on the OBS client. The DM that calls this claims active-GM control, swaps the current tracking mode to cloneDM, pauses their outgoing viewport stream, and broadcasts the preset so it runs locally on every OBS client. The DM's own view does not move.

For previewing a preset in the editor (no broadcast, no state changes), call playSequence directly from cameraSequencePlayer.

Parameters

preset

CameraPreset

Returns

void


previewPreset()

previewPreset(preset): SequenceController

Defined in: api.ts:274

Local-only preview play. Use this from the preset editor when scrubbing or auditioning — doesn't touch tracking state and doesn't broadcast.

Parameters

preset

CameraPreset

Returns

SequenceController


registerDirectorTab()

registerDirectorTab(reg): void

Defined in: api.ts:125

Public — modules call this to register a tab in the Director window.

Parameters

reg

DirectorTabRegistration

Returns

void


registerOBSRemoteEventType()

registerOBSRemoteEventType(reg): void

Defined in: api.ts:115

Public — modules call this in their init hook to expose a new event type.

Parameters

reg

OBSRemoteEventTypeRegistration

Returns

void


registerOverlayTrigger()

registerOverlayTrigger(reg): void

Defined in: api.ts:120

Public — modules call this to expose a new overlay trigger type.

Parameters

reg

OverlayTriggerRegistration

Returns

void


registerOverlayType()

registerOverlayType(key, readableName, type): void

Defined in: api.ts:182

Register a new overlay type. Surfaces in the Stream Composer's "+ new" menu and elsewhere the type list is consumed.

Parameters

key

string

Stable key written into OverlayData.type (e.g. 'wysiwyg').

readableName

string

i18n key for the display label. Resolved via game.i18n.localize() at render time. Pass a literal string only if you intentionally ship a single-locale module.

type

OverlayType

The OverlayType instance with the renderer and editor wired up.

Returns

void


registerStarterOverlays()

registerStarterOverlays(overlays): void

Defined in: api.ts:241

Public — system modules call this in their init hook to register their own starter overlay set. The burger menu in the overlay editor imports whichever set is registered (or the generic default if none). Last writer wins.

Parameters

overlays

OverlayData[]

Returns

void


registerUniqueOverlay()

registerUniqueOverlay(overlay): void

Defined in: api.ts:204

Parameters

overlay

Component

Returns

void


registerUniqueOverlaySvelte5()

registerUniqueOverlaySvelte5(overlay): void

Defined in: api.ts:209

Parameters

overlay

Component

Returns

void


setAVData()

setAVData(actorValueArray): void

Defined in: api.ts:221

Parameters

actorValueArray

ActorValues

Returns

void


setAVDataGrouped()

setAVDataGrouped(groups): void

Defined in: api.ts:231

Public — system modules call this with a hierarchical layout. The picker UI renders groups in the dropdown. Group labels are i18n keys, localized at flatten time. Calling this replaces any previously-set AV data (grouped or flat) — last writer wins, same as setAVData.

Parameters

groups

ActorValueGroup[]

Returns

void


setSelectedActors()

setSelectedActors(actorArray): Promise<void>

Defined in: api.ts:217

Parameters

actorArray

string[]

Returns

Promise<void>


setTrackingMode()

setTrackingMode(slot, mode): Promise<void>

Defined in: api.ts:139

Public — set one of the tracking-mode slots. Mirrors the Controls tab UI.

Parameters

slot

"inCombat" | "outOfCombat"

mode

string

Returns

Promise<void>


triggerOBSRemoteEvent()

triggerOBSRemoteEvent(key, context?): Promise<void>

Defined in: api.ts:163

Public — modules call this when their in-system condition fires (e.g. on updateActor with system.attributes.hp.value changed). Looks up every configured instance for the type, runs the matcher, and executes the configured OBS actions for instances that pass.

Safe to call from any client; the actual OBS action execution is already gated to the OBS-mode client by triggerOBSAction.

Parameters

key

string

context?

Record<string, any> = {}

Returns

Promise<void>