Skip to main content
Version: 5.0

OBS Remote

OBS Remote lets you tie Foundry events to OBS actions — switch scenes when combat starts, toggle a "round timer" source when the round changes, stop recording on core.onStopStreaming, etc.

Watch the OBS Remote tutorial video for a visual guide (pre-V5; the new menu is described below).

Caveats

OBS Browser Sources expose a minimal API automatically — only scene switching and start/stop recording or streaming. For the full feature set (source toggles, audio control, anything else), you need OBS Websocket V5 installed inside OBS itself.

OBS Remote runs in the OBS browser source, so it only acts on the /game view by default. Use /stream directly if your scene only has the chromeless overlay view.

The combined menu

In V5 the OBS Remote menu and the old OBS Websocket Settings menu have been merged. There's one entry now — Module Settings → OBS Remote Settings — with two tabs.

OBS Remote menu

Connection tab

OBS Remote Connection tab

Enter your OBS Websocket URL, port, and password. The Save button persists; the Sync button below pushes the local credentials to whichever user is selected in the dropdown (the typical flow: configure on the GM machine, sync to the OBS user).

You have two options for the credentials:

  1. In-Foundry: enter them here. Stored in the world settings.

  2. In OBS browser source CSS: paste the following block into your Browser Source's Custom CSS field and they override whatever Foundry has stored:

    :root {
    --local-obs-host: localhost;
    --local-obs-port: 4455;
    --local-obs-password: P4ssw0rd!;
    }

    No quotes, no spaces; keep the trailing semicolons. You can override only some — e.g. just the password.

The Enable OBS Websocket? toggle lives in the standard Foundry module settings (gear icon → Manage Modules → OBS Utils settings), not inside the OBS Remote Settings menu. The OBS Remote Settings menu covers connection credentials and event configuration only — the on/off toggle for the websocket feature is a separate module config entry.

Events tab

Pick an event type from the dropdown and add actions (or, for events with conditions, instances, each with their own action list).

Built-in event types

KeyFires
core.onLoadWhen Foundry first loads on the OBS client.
core.onCombatStartFires when updateCombat advances to turn 0 of round 1 — i.e., the moment combat reaches its first turn.
core.onCombatEndCombat is deleted.
core.onPauseGame paused.
core.onUnpauseGame unpaused.
core.onSceneLoadA scene is viewed. Has a sceneName condition — only fires actions configured for a matching scene name.
core.onStopStreamingOBS Websocket reports streaming stopped. Hidden unless OBS Websocket is enabled.

Conditions

Event types may declare a schema of condition fields. The editor renders the schema as inputs — text fields for strings, number fields for numbers, checkboxes for booleans.

Example: core.onSceneLoad has a sceneName condition. You can have multiple instances of core.onSceneLoad, each watching for a different scene name, each with its own action list.

Available actions

ActionNeeds Websocket?Notes
Switch SceneNo (browser-source API)Enter the OBS scene name.
Toggle SourceYesEnter the OBS scene name + source name.
Enable SourceYesSame.
Disable SourceYesSame.

Actions fire in sequence in the order configured.

Custom event types via API

Third-party modules can register their own event types — see API: OBS Remote events. The editor picks them up alongside the built-ins, with no editor changes needed.