Skip to content

Desuq Cafe

Documentation menu

Track Families

The plugin provides four track paradigms. Event Trigger tracks fire discrete actions and are covered in the action reference. This page covers the other three (Keyframeable, Continuous State, and Media Sync) along with the shared track architecture and section types.

Track Architecture

ParadigmBehaviorUse Case
Event TriggerActions fire when playhead crosses section startDiscrete commands (StartRecord, SwitchScene, SaveReplay)
KeyframeableValues interpolated via curve editor keyframesSmooth animations (volume fades, transform motion, color shifts)
Continuous StateState applied while playhead is inside sectionTemporary overrides (mute during section, force visibility, hold transition)
Media SyncOBS media cursor follows Sequencer timelineSynchronized video playback, scrubbing seeks media

Keyframeable Property Tracks

In addition to event triggers, the plugin supports keyframeable tracks for smooth interpolation of OBS properties:

Track TypePropertiesUse Case
OBS VolumeVolume (dB)Audio fades, ducking, smooth level changes
OBS BalanceBalance (0.0-1.0)Stereo panning, left/right positioning, immersive audio
OBS TransformPosition X/Y, Scale X/Y, Rotation, Crop L/T/R/BSource animation, picture-in-picture, crop reveals
OBS Filter SettingAny numeric filter propertyAnimate blur, color correction, chroma key thresholds
OBS Transition DurationDuration (ms)Dynamic transition timing, dramatic scene changes
OBS Color SourceRGBA (0.0-1.0 per channel)Animated backgrounds, color washes, mood lighting
OBS Media CursorCursor position (ms)Timeline sync, scrubbing media to specific moments

Key Features

  • Uses Unreal’s native curve editor for keyframe interpolation.
  • Delta threshold prevents OBS spam (only sends when value changes significantly).
  • Pre-animated state restoration when playback stops.
  • Per-track target selection (input name for volume/balance, scene + source for transform).

Note: the target (e.g. InputName) lives on the track, not the section, so all sections on a keyframeable track target the same input/source.

Delta Thresholds

Each property has a tuned threshold to balance responsiveness vs. network efficiency:

PropertyThresholdWhy
Volume0.1 dBHuman hearing can barely detect <0.5dB changes
Balance0.005Small range (0.0-1.0) requires fine precision for smooth panning
Position0.5 pxSub-pixel changes invisible on most displays
Scale0.001Matches OBS internal precision
Rotation0.1°Sub-degree changes imperceptible
Crop1 pxInteger pixels, no sub-pixel cropping in OBS
Filter Setting0.01Filter settings can be sensitive, small threshold for precision
Transition Duration10 msDuration changes are discrete steps, visible in UI
Color Channel0.004~1/255, smallest visible 8-bit color change
Media Cursor16 ms~1 frame at 60fps, imperceptible jump

Track Settings

SettingDefaultDescription
bRestoreStateOnStoptrueRestore original OBS values when sequence stops
bMutedfalseDisable track without deleting keyframes

OBS Filter Setting Track

The Filter Setting track is a generic implementation that can animate any numeric filter setting:

Track PropertyDescription
SourceNameThe OBS source that has the filter (e.g., “Camera”)
FilterNameThe filter instance name (e.g., “Color Correction”)
FilterKindOptional. Enables validation hints (e.g., “color_filter”)
SettingNameThe JSON key to animate (e.g., “brightness”)

Known filter settings with UI hints:

  • color_filter: brightness, contrast, saturation, gamma, hue_shift, opacity
  • chroma_key_filter: similarity, smoothness, spill, opacity
  • color_key_filter: similarity, smoothness, opacity
  • sharpness_filter: sharpness
  • scroll_filter: speed_x, speed_y
  • gain_filter: db
  • compressor_filter: ratio, threshold, attack_time, release_time, output_gain
  • limiter_filter: threshold, release_time
  • noise_suppress_filter: suppress_level
  • three_band_eq_filter: low_gain, mid_gain, high_gain

Unknown settings still work. The track accepts any JSON key name.

OBS Transition Duration Track

Animates the current transition’s duration (50 to 20000ms). No target configuration is needed, as this always affects whatever transition is currently active.

Note: Fixed-duration transitions (like Cut) cannot have their duration modified. The track handles this gracefully with a warning log.

Continuous State Tracks

Continuous State tracks apply a fixed state while the playhead is inside a section. The section itself has no keyframes, and its presence is the trigger. Original state is captured on entry and restored on exit.

Track TypeTargetState AppliedUse Case
OBS Mute StateAudio InputMuted/UnmutedSilence mic during cutscenes, mute game audio for voiceover
OBS Monitor Type StateAudio InputMonitor type (None/MonitorOnly/MonitorAndOutput)Enable monitoring during specific segments
OBS Visibility StateScene + Scene ItemVisible/HiddenShow overlay during intro, hide watermark for specific shots
OBS Lock StateScene + Scene ItemLocked/UnlockedPrevent accidental moves during live segments
OBS Blend Mode StateScene + Scene ItemBlend mode (Normal/Additive/etc.)Apply effects during transitions
OBS Filter Enabled StateSource + FilterEnabled/DisabledEnable blur during scene transitions, toggle color correction
OBS Studio Mode StateGlobalEnabled/DisabledEnable studio mode for preview segments
OBS Transition StateTransition NameForce specific transitionUse Stinger transition for specific scene changes

Key Differences from Keyframeable

  • No curve editor: the section is either “on” or “off”.
  • State is binary (the track’s configured value vs. original).
  • Simpler to set up for on/off behaviors.
  • Pre-animated state restoration is automatic.

Media Sync Track

The Media Sync track synchronizes OBS media sources (VLC, Media Source) with the Sequencer timeline. Unlike other tracks, it actively controls both playback state and cursor position.

Track Properties

PropertyDefaultDescription
InputName(required)The OBS media input to control
bRestoreStateOnStoptrueRestore original media state when sequence stops
bRestoreCursorPositiontrueRestore original cursor position when sequence stops
bMutedfalseDisable sync without deleting track

Section Properties

PropertyDefaultDescription
StartTimeOffsetMs0Offset into media at section start (e.g., 5000 = start 5s into video)
bControlPlaybacktrueSequencer play/pause controls OBS play/pause
bSyncOnScrubtrueScrubbing timeline seeks OBS media
bLoopingfalseLoop media if section is longer than media duration
ExitBehaviorPauseWhat to do when exiting section (Pause/Stop/Continue)

Sync Behavior

  • When Sequencer plays → OBS media plays.
  • When Sequencer pauses → OBS media pauses.
  • When scrubbing → OBS media seeks to corresponding position.
  • Drift correction automatically keeps media in sync during playback.

Example Use Cases

  • Sync background video with game sequence.
  • Play intro video at exact timeline position.
  • Scrub through video during editing to find the right moment.

Section Types

Actions have different trigger behaviors:

TypeBehaviorExamples
InstantFires once when playhead crosses section startStartRecord, SaveReplayBuffer, SplitRecordFile, SaveScreenshot
StateFires on enter, can optionally revert on exitSwitchScene, MuteInput, SetVolume

For how State-type sections revert on exit, see Advanced Topics → Exit Actions.