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
| Paradigm | Behavior | Use Case |
|---|---|---|
| Event Trigger | Actions fire when playhead crosses section start | Discrete commands (StartRecord, SwitchScene, SaveReplay) |
| Keyframeable | Values interpolated via curve editor keyframes | Smooth animations (volume fades, transform motion, color shifts) |
| Continuous State | State applied while playhead is inside section | Temporary overrides (mute during section, force visibility, hold transition) |
| Media Sync | OBS media cursor follows Sequencer timeline | Synchronized 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 Type | Properties | Use Case |
|---|---|---|
| OBS Volume | Volume (dB) | Audio fades, ducking, smooth level changes |
| OBS Balance | Balance (0.0-1.0) | Stereo panning, left/right positioning, immersive audio |
| OBS Transform | Position X/Y, Scale X/Y, Rotation, Crop L/T/R/B | Source animation, picture-in-picture, crop reveals |
| OBS Filter Setting | Any numeric filter property | Animate blur, color correction, chroma key thresholds |
| OBS Transition Duration | Duration (ms) | Dynamic transition timing, dramatic scene changes |
| OBS Color Source | RGBA (0.0-1.0 per channel) | Animated backgrounds, color washes, mood lighting |
| OBS Media Cursor | Cursor 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:
| Property | Threshold | Why |
|---|---|---|
| Volume | 0.1 dB | Human hearing can barely detect <0.5dB changes |
| Balance | 0.005 | Small range (0.0-1.0) requires fine precision for smooth panning |
| Position | 0.5 px | Sub-pixel changes invisible on most displays |
| Scale | 0.001 | Matches OBS internal precision |
| Rotation | 0.1° | Sub-degree changes imperceptible |
| Crop | 1 px | Integer pixels, no sub-pixel cropping in OBS |
| Filter Setting | 0.01 | Filter settings can be sensitive, small threshold for precision |
| Transition Duration | 10 ms | Duration changes are discrete steps, visible in UI |
| Color Channel | 0.004 | ~1/255, smallest visible 8-bit color change |
| Media Cursor | 16 ms | ~1 frame at 60fps, imperceptible jump |
Track Settings
| Setting | Default | Description |
|---|---|---|
bRestoreStateOnStop | true | Restore original OBS values when sequence stops |
bMuted | false | Disable track without deleting keyframes |
OBS Filter Setting Track
The Filter Setting track is a generic implementation that can animate any numeric filter setting:
| Track Property | Description |
|---|---|
SourceName | The OBS source that has the filter (e.g., “Camera”) |
FilterName | The filter instance name (e.g., “Color Correction”) |
FilterKind | Optional. Enables validation hints (e.g., “color_filter”) |
SettingName | The 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 Type | Target | State Applied | Use Case |
|---|---|---|---|
| OBS Mute State | Audio Input | Muted/Unmuted | Silence mic during cutscenes, mute game audio for voiceover |
| OBS Monitor Type State | Audio Input | Monitor type (None/MonitorOnly/MonitorAndOutput) | Enable monitoring during specific segments |
| OBS Visibility State | Scene + Scene Item | Visible/Hidden | Show overlay during intro, hide watermark for specific shots |
| OBS Lock State | Scene + Scene Item | Locked/Unlocked | Prevent accidental moves during live segments |
| OBS Blend Mode State | Scene + Scene Item | Blend mode (Normal/Additive/etc.) | Apply effects during transitions |
| OBS Filter Enabled State | Source + Filter | Enabled/Disabled | Enable blur during scene transitions, toggle color correction |
| OBS Studio Mode State | Global | Enabled/Disabled | Enable studio mode for preview segments |
| OBS Transition State | Transition Name | Force specific transition | Use 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
| Property | Default | Description |
|---|---|---|
InputName | (required) | The OBS media input to control |
bRestoreStateOnStop | true | Restore original media state when sequence stops |
bRestoreCursorPosition | true | Restore original cursor position when sequence stops |
bMuted | false | Disable sync without deleting track |
Section Properties
| Property | Default | Description |
|---|---|---|
StartTimeOffsetMs | 0 | Offset into media at section start (e.g., 5000 = start 5s into video) |
bControlPlayback | true | Sequencer play/pause controls OBS play/pause |
bSyncOnScrub | true | Scrubbing timeline seeks OBS media |
bLooping | false | Loop media if section is longer than media duration |
ExitBehavior | Pause | What 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:
| Type | Behavior | Examples |
|---|---|---|
| Instant | Fires once when playhead crosses section start | StartRecord, SaveReplayBuffer, SplitRecordFile, SaveScreenshot |
| State | Fires on enter, can optionally revert on exit | SwitchScene, MuteInput, SetVolume |
For how State-type sections revert on exit, see Advanced Topics → Exit Actions.