Skip to content

Desuq Cafe

Documentation menu

Studio Mode & Transitions

This guide covers Studio Mode (preview/program workflow, including direct T-Bar control) and scene transitions (selecting transitions, setting durations, and reacting to transition events).

Studio Mode

FunctionDescription
SetStudioModeEnabled(Enabled)Enable or disable Studio Mode
GetStudioModeEnabled()Fetch current Studio Mode state
IsStudioModeEnabled()Check if Studio Mode is enabled (cached)
SetCurrentPreviewScene(Name)Set the preview scene (Studio Mode only)
GetCurrentPreviewScene()Fetch current preview scene
GetPreviewSceneName()Get preview scene name (cached)
TriggerStudioModeTransition()Transition preview to program

T-Bar control: GetClient()->GetStudioMode()->SetTBarPosition(Position, bRelease) drives the Studio Mode transition T-Bar directly. Position is clamped between 0.0 and 1.0. Pass bRelease = false to hold the bar at a position (e.g. to scrub it from a Sequencer float track) and true to release and let OBS complete the transition. Requires Studio Mode and a non-Cut transition.

// Hold the T-Bar at the halfway point, then release to complete the transition
UInhyeongOBSWebSocketClient* Client = OBS->GetClient();
Client->GetStudioMode()->SetTBarPosition(0.5f, /*bRelease=*/false);
// ...later...
Client->GetStudioMode()->SetTBarPosition(1.0f, /*bRelease=*/true);

Note: Preview scene functions only work when Studio Mode is enabled.

Transitions

FunctionDescription
GetSceneTransitionList()Refresh list of available transitions
GetCurrentSceneTransition()Fetch current transition details
SetCurrentSceneTransition(Name)Set the active scene transition
SetCurrentSceneTransitionDuration(Ms)Set transition duration in milliseconds
GetCurrentTransitionName()Get current transition name (cached)
GetCurrentTransitionDuration()Get current duration in ms (cached)
IsTransitionActive()Check if a transition is currently in progress
GetCachedTransitions()Get locally cached transition list

Note: Fixed transitions (like Cut) don’t support duration changes, so check bTransitionFixed before modifying the duration.

Events

Studio Mode

  • OnStudioModeStateChanged(bEnabled): Studio Mode enabled or disabled
  • OnCurrentPreviewSceneChanged(SceneName, SceneUuid): Preview scene changed

Transitions

  • 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

For the full catalog of events across every OBS domain, see the Events reference.