Events
Subscribe to these events to react to OBS state changes. They are surfaced as BlueprintAssignable multicast delegates on UInhyeongOBSSubsystem (and mirrored on UInhyeongOBSComponent).
Native counterparts: Every Blueprint event below has a native C++ counterpart with a
Nativesuffix that supports lambda binding (e.g.OnConnectedNative,OnCurrentSceneChangedNative,OnReplayBufferSavedNative). See Native Delegates for the complete list with signatures.OBS->OnConnectedNative.AddLambda([]() { /* ... */ });
Handler-level only: A few events are NOT mirrored on the Subsystem and must be bound on their handler. Most notably the screenshot events (
OnScreenshotCaptured/OnScreenshotSaved) are bound viaGetScreenshots()(the Subsystem also re-broadcasts these two), and a number of read-result events (OnStreamServiceSettingsReceived,OnTransitionOverrideReceived,OnInputSettingsReceived, media events, etc.) originate on their handlers. See Handlers API.
Configuration
| Event | Params | Meaning |
|---|---|---|
OnCurrentSceneCollectionChanging | (SceneCollectionName) | About to change scene collection. |
OnCurrentSceneCollectionChanged | (SceneCollectionName) | Scene collection changed. |
OnSceneCollectionListChanged | () | Scene-collection list was modified. |
OnCurrentProfileChanging | (ProfileName) | About to change profile. |
OnCurrentProfileChanged | (ProfileName) | Profile changed. |
OnProfileListChanged | () | Profile list was modified. |
OnStreamServiceSettingsReceived | (Settings) | Stream service settings fetched (handler-level). |
Connection
| Event | Params | Meaning |
|---|---|---|
OnConnected | () | Successfully connected and identified to OBS. |
OnDisconnected | (Reason) | Disconnected from OBS. |
OnConnectionError | (Error) | Connection failed. |
Reconnection
| Event | Params | Meaning |
|---|---|---|
OnReconnecting | (AttemptNumber) | A reconnection attempt is starting. |
OnReconnectFailed | () | All reconnection attempts have been exhausted. |
Scenes
| Event | Params | Meaning |
|---|---|---|
OnCurrentSceneChanged | (SceneName, SceneUuid) | Active program scene changed. |
OnSceneListUpdated | () | Scene list was refreshed. |
OnSceneCreated | (SceneName, SceneUuid, bIsGroup) | New scene created. |
OnSceneRemoved | (SceneName, SceneUuid, bIsGroup) | Scene deleted. |
OnSceneNameChanged | (SceneUuid, OldSceneName, NewSceneName) | Scene renamed. |
OnTransitionOverrideReceived | (SceneName, Override) | Scene transition-override data fetched (handler-level). |
Scene Items
| Event | Params | Meaning |
|---|---|---|
OnSceneItemTransformChanged | (SceneName, SceneItemId, Transform) | Scene-item transform changed (high-volume; opt-in). |
OnSceneItemCreated | (SceneName, SourceName, SceneItemId, SceneItemIndex) | Item added to a scene. |
OnSceneItemRemoved | (SceneName, SourceName, SceneItemId) | Item removed from a scene. |
OnSceneItemEnableStateChanged | (SceneName, SceneItemId, bEnabled) | Item visibility toggled. |
OnSceneItemLockStateChanged | (SceneName, SceneItemId, bLocked) | Item lock state toggled. |
OnSceneItemListReindexed | (SceneName) | Items reordered in a scene (z-order changed). |
Outputs
| Event | Params | Meaning |
|---|---|---|
OnStreamStateChanged | (bActive, State) | Streaming state changed. |
OnRecordStateChanged | (bActive, State) | Recording state changed. |
OnVirtualCamStateChanged | (bActive, State) | Virtual-camera state changed. |
OnReplayBufferStateChanged | (bActive, State) | Replay-buffer state changed. |
OnReplayBufferSaved | (FilePath) | Replay was saved to file. |
OnRecordFileChanged | (NewOutputPath) | Recording began writing a new file (split). |
OnRecordDirectoryReceived | (RecordDirectory) | Record directory was fetched. |
OnOutputListReceived | (Outputs) | Output list was fetched. |
OnOutputStatusReceived | (Status) | Output status was fetched. |
Audio / Inputs
| Event | Params | Meaning |
|---|---|---|
OnInputMuteStateChanged | (InputName, bMuted) | Input mute changed. |
OnInputVolumeChanged | (InputName, VolumeDb, VolumeMul) | Volume changed. |
OnInputVolumeMeters | (Meters) | High-volume per-input audio levels (opt-in via SetVolumeMetersEnabled). |
OnInputActiveStateChanged | (InputName, bVideoActive) | An input’s video-active state changed (opt-in via SetInputActiveStateEventsEnabled). |
OnMicActivityChanged | (InputName, bActive) | Debounced talking ↔ idle transition for a watched input. |
OnInputAudioBalanceChanged | (InputName, InputUuid, Balance) | Stereo balance changed. |
OnInputAudioSyncOffsetChanged | (InputName, InputUuid, SyncOffsetMs) | Sync offset changed. |
OnInputAudioTracksChanged | (InputName, InputUuid, AudioTracks) | Track routing changed. |
OnInputAudioMonitorTypeChanged | (InputName, InputUuid, MonitorType) | Monitor type changed. |
OnSpecialInputsReceived | (SpecialInputs) | Default audio devices fetched. |
OnInputSettingsChanged | (InputName, InputUuid) | Input settings were modified (notification only). |
OnInputSettingsReceived | (InputName, InputKind, Settings) | Input settings data fetched, with full data (handler-level). |
OnInputListUpdated | () | Input list was refreshed. |
OnInputCreated | (InputName, InputUuid, InputKind, UnversionedInputKind) | New input created. |
OnInputRemoved | (InputName, InputUuid) | Input was removed. |
OnInputNameChanged | (InputUuid, OldInputName, NewInputName) | Input was renamed. |
OnInputKindListReceived | (InputKinds) | Available input kinds fetched. |
Studio Mode
| Event | Params | Meaning |
|---|---|---|
OnStudioModeStateChanged | (bEnabled) | Studio Mode enabled/disabled. |
OnCurrentPreviewSceneChanged | (SceneName, SceneUuid) | Preview scene changed. |
Transitions
| Event | Params | Meaning |
|---|---|---|
OnCurrentTransitionChanged | (TransitionName) | Active transition changed. |
OnTransitionDurationChanged | (DurationMs) | Transition duration changed. |
OnTransitionStarted | (TransitionName) | A scene transition started. |
OnTransitionEnded | (TransitionName) | A scene transition completed. |
OnTransitionVideoEnded | (TransitionName) | Transition video ended (useful for Stingers). |
OnTransitionListUpdated | () | Transition list was refreshed. |
Filters
| Event | Params | Meaning |
|---|---|---|
OnSourceFilterCreated | (SourceName, FilterName, FilterKind, FilterIndex, bEnabled) | Filter added to a source. |
OnSourceFilterRemoved | (SourceName, FilterName) | Filter removed from a source. |
OnSourceFilterNameChanged | (SourceName, OldName, NewName) | Filter renamed. |
OnSourceFilterSettingsChanged | (SourceName, FilterName) | Filter settings modified. |
OnSourceFilterEnableStateChanged | (SourceName, FilterName, bEnabled) | Filter enabled/disabled. |
OnSourceFilterListReindexed | (SourceName) | Filter order changed on a source. |
Screenshots
Handler-level: bind via
GetScreenshots(). The Subsystem also re-broadcasts these two.
| Event | Params | Meaning |
|---|---|---|
OnScreenshotCaptured | (Result) | Screenshot captured to memory (contains base64 data). |
OnScreenshotSaved | (SourceName, FilePath) | Screenshot saved to a file on the OBS machine. |
Media
Handler-level: bind via
GetMediaInputs().
| Event | Params | Meaning |
|---|---|---|
OnMediaInputPlaybackStarted | (InputName) | Media started playing. |
OnMediaInputPlaybackEnded | (InputName) | Media finished playing. |
OnMediaInputActionTriggered | (InputName, Action) | A media action was triggered. |
OnMediaInputStatusReceived | (Status) | Media status was fetched. |
Related
- Subsystem API: the methods that fetch data and change state these events report on.
- Native Delegates:
Native-suffixed C++ counterparts for lambda binding. - Handlers API: handler-level events and the
GetXxx()accessors.