Skip to content

Desuq Cafe

Documentation menu

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 Native suffix 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 via GetScreenshots() (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

EventParamsMeaning
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

EventParamsMeaning
OnConnected()Successfully connected and identified to OBS.
OnDisconnected(Reason)Disconnected from OBS.
OnConnectionError(Error)Connection failed.

Reconnection

EventParamsMeaning
OnReconnecting(AttemptNumber)A reconnection attempt is starting.
OnReconnectFailed()All reconnection attempts have been exhausted.

Scenes

EventParamsMeaning
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

EventParamsMeaning
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

EventParamsMeaning
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

EventParamsMeaning
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

EventParamsMeaning
OnStudioModeStateChanged(bEnabled)Studio Mode enabled/disabled.
OnCurrentPreviewSceneChanged(SceneName, SceneUuid)Preview scene changed.

Transitions

EventParamsMeaning
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

EventParamsMeaning
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.

EventParamsMeaning
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().

EventParamsMeaning
OnMediaInputPlaybackStarted(InputName)Media started playing.
OnMediaInputPlaybackEnded(InputName)Media finished playing.
OnMediaInputActionTriggered(InputName, Action)A media action was triggered.
OnMediaInputStatusReceived(Status)Media status was fetched.

  • 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.