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
| Function | Description |
|---|---|
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
| Function | Description |
|---|---|
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
bTransitionFixedbefore modifying the duration.
Events
Studio Mode
OnStudioModeStateChanged(bEnabled): Studio Mode enabled or disabledOnCurrentPreviewSceneChanged(SceneName, SceneUuid): Preview scene changed
Transitions
OnCurrentTransitionChanged(TransitionName): Active transition changedOnTransitionDurationChanged(DurationMs): Transition duration changedOnTransitionStarted(TransitionName): A scene transition startedOnTransitionEnded(TransitionName): A scene transition completedOnTransitionVideoEnded(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.