Struct Reference
This page documents every public USTRUCT (BlueprintType) in the plugin. Enum-typed fields are documented in the Enum Reference. Events that deliver these structs are listed in Events.
Some structs also carry C++-only helper members (e.g. a
TSharedPtr<FJsonObject>mirror of a JSON string field, orInitFromJson/ToJsonhelpers). Those are noted but are not Blueprint-visible.
Core: Requests & Batches
FOBSRequestResult
Result of a single OBS WebSocket request.
| Field | Type | Description |
|---|---|---|
bSuccess | bool | Whether the request succeeded. |
StatusCode | int32 | OBS request status code. |
Comment | FString | Status comment / error text from OBS. |
FOBSBatchRequest
A single request within a batch being built for OBS.
| Field | Type | Description |
|---|---|---|
RequestType | FString | The request type (e.g. "SetCurrentProgramScene"). |
RequestId | FString | Optional per-request ID within the batch. |
RequestDataJson | FString | Request data as a JSON string (Blueprint-friendly). |
RequestData | TSharedPtr<FJsonObject> | C++-only parsed request data. |
FOBSBatchRequestResult
Result of one request inside a batch response.
| Field | Type | Description |
|---|---|---|
RequestType | FString | The request type. |
RequestId | FString | The request ID, if one was provided. |
RequestStatus | FOBSRequestResult | Per-request success/code/comment. |
ResponseData | TSharedPtr<FJsonObject> | C++-only response data. |
FOBSBatchResult
Result of an entire batch operation.
| Field | Type | Description |
|---|---|---|
RequestId | FString | The batch request ID. |
bAllSucceeded | bool | Whether every request in the batch succeeded. |
Results | TArray<FOBSBatchRequestResult> | Per-request results. |
Outputs
FOBSStreamStatus
Status of the streaming output.
| Field | Type | Description |
|---|---|---|
bOutputActive | bool | Whether streaming is active. |
bOutputReconnecting | bool | Whether the stream is currently reconnecting. |
OutputTimecode | FString | Current stream timecode. |
OutputBytes | int64 | Total bytes sent. |
OutputSkippedFrames | int32 | Frames skipped by the output. |
OutputTotalFrames | int32 | Total frames delivered. |
FOBSRecordStatus
Status of the recording output.
| Field | Type | Description |
|---|---|---|
bOutputActive | bool | Whether recording is active. |
bOutputPaused | bool | Whether recording is paused. |
OutputTimecode | FString | Current recording timecode. |
OutputBytes | int64 | Total bytes written. |
FOBSVirtualCamStatus
Status of the virtual camera output.
| Field | Type | Description |
|---|---|---|
bOutputActive | bool | Whether the virtual camera is active. |
FOBSReplayBufferStatus
Status of the replay buffer.
| Field | Type | Description |
|---|---|---|
bOutputActive | bool | Whether the replay buffer is active. |
FOBSReplayBufferSavedInfo
Information about a saved replay-buffer clip.
| Field | Type | Description |
|---|---|---|
SavedReplayPath | FString | Path to the saved replay file. |
FOBSOutput
Description of a generic OBS output.
| Field | Type | Description |
|---|---|---|
OutputName | FString | Name of the output. |
OutputKind | FString | Output kind/type. |
OutputWidth | int32 | Output width in pixels. |
OutputHeight | int32 | Output height in pixels. |
bOutputActive | bool | Whether the output is active. |
OutputFlags | FString | Output capability flags. |
FOBSOutputStatus
Detailed status of a generic OBS output.
| Field | Type | Description |
|---|---|---|
OutputName | FString | Name of the output. |
bOutputActive | bool | Whether the output is active. |
bOutputReconnecting | bool | Whether the output is reconnecting. |
OutputTimecode | FString | Current timecode. |
OutputDuration | int64 | Duration in milliseconds. |
OutputCongestion | float | Congestion factor (0 to 1). |
OutputBytes | int64 | Total bytes. |
OutputSkippedFrames | int64 | Skipped frames. |
OutputTotalFrames | int64 | Total frames. |
Scenes & Scene Items
FOBSScene
A single OBS scene.
| Field | Type | Description |
|---|---|---|
SceneName | FString | Scene name. |
SceneUuid | FString | Scene UUID. |
SceneIndex | int32 | Position of the scene in the scene list. |
FOBSSceneItem
A scene item (a source placed within a scene).
| Field | Type | Description |
|---|---|---|
SourceName | FString | Name of the underlying source. |
SourceUuid | FString | UUID of the source. |
SceneItemId | int32 | Numeric scene-item ID (used by OBS to key the item). |
SceneItemIndex | int32 | Z-order index within the scene. |
bSceneItemEnabled | bool | Whether the item is visible. |
bSceneItemLocked | bool | Whether the item is locked. |
InputKind | FString | Kind of input/source. |
BlendMode | EOBSBlendMode | Compositing blend mode. |
FOBSSceneWithItems
A scene together with all of its scene items.
| Field | Type | Description |
|---|---|---|
SceneName | FString | Scene name. |
SceneUuid | FString | Scene UUID. |
SceneIndex | int32 | Scene-list position. |
SceneItems | TArray<FOBSSceneItem> | The scene’s items. |
FOBSSceneItemTransform
Full transform of a scene item: position, rotation, scale, alignment, bounds, and crop. Read-only computed fields are populated by GetSceneItemTransform.
| Field | Type | Description |
|---|---|---|
PositionX | float | X position in pixels. |
PositionY | float | Y position in pixels. |
Rotation | float | Rotation in degrees (0 to 360). |
ScaleX | float | Horizontal scale multiplier (1.0 = 100%). |
ScaleY | float | Vertical scale multiplier (1.0 = 100%). |
Alignment | int32 | Alignment bitflags (0=Center, 1=Left, 2=Right, 4=Top, 8=Bottom). |
BoundsType | EOBSBoundsType | Bounding-box behaviour. |
BoundsWidth | float | Bounding-box width. |
BoundsHeight | float | Bounding-box height. |
BoundsAlignment | int32 | Alignment within the bounds (same bitflags). |
CropLeft | int32 | Pixels cropped from the left. |
CropRight | int32 | Pixels cropped from the right. |
CropTop | int32 | Pixels cropped from the top. |
CropBottom | int32 | Pixels cropped from the bottom. |
SourceWidth | float | Native source width (read-only). |
SourceHeight | float | Native source height (read-only). |
Width | float | Computed width after scaling (read-only). |
Height | float | Computed height after scaling (read-only). |
FOBSCreateSceneResult
Result of creating a scene.
| Field | Type | Description |
|---|---|---|
bSuccess | bool | Whether the scene was created. |
SceneUuid | FString | UUID of the new scene. |
ErrorMessage | FString | Error text on failure. |
FOBSSourceActiveState
Whether a source is showing in Program / in the UI.
| Field | Type | Description |
|---|---|---|
bVideoActive | bool | Showing in Program. |
bVideoShowing | bool | Showing in the UI (Preview, Projector, Properties). |
FOBSSceneTransitionOverride
Per-scene transition override.
| Field | Type | Description |
|---|---|---|
TransitionName | FString | Overridden transition name (empty if none). |
TransitionDuration | int32 | Overridden duration in ms (-1 if none). |
bHasOverride | bool | Whether an override is set. |
FOBSSceneItemSource
Identifies a scene item’s underlying source.
| Field | Type | Description |
|---|---|---|
SourceName | FString | Source name. |
SourceUuid | FString | Source UUID. |
Audio
FOBSAudioTracks
Per-track enable states for advanced audio routing (tracks 1 to 6). Provides InitFromJson, ToJson, IsTrackEnabled, and SetTrackEnabled helpers in C++.
| Field | Type | Description |
|---|---|---|
bTrack1 | bool | Track 1 enabled (default true). |
bTrack2 | bool | Track 2 enabled. |
bTrack3 | bool | Track 3 enabled. |
bTrack4 | bool | Track 4 enabled. |
bTrack5 | bool | Track 5 enabled. |
bTrack6 | bool | Track 6 enabled. |
FOBSInput
An OBS input source with its audio properties.
| Field | Type | Description |
|---|---|---|
InputName | FString | Input name. |
InputUuid | FString | Input UUID. |
InputKind | FString | Input kind/type. |
VolumeDb | float | Volume in decibels (0 = unity). |
VolumeMul | float | Volume as a multiplier (1.0 = unity). |
bMuted | bool | Whether the input is muted. |
bAudioInfoLoaded | bool | Whether volume/mute info has been fetched. |
Balance | float | Stereo balance (0 = left, 0.5 = center, 1 = right). |
SyncOffsetMs | int32 | Audio sync offset in milliseconds (may be negative). |
MonitorType | EOBSMonitorType | Audio monitor type. |
AudioTracks | FOBSAudioTracks | Track routing (1 to 6). |
bAdvancedAudioInfoLoaded | bool | Whether advanced audio info has been fetched. |
FOBSSpecialInputs
Names of the default audio devices configured in OBS (any may be empty).
| Field | Type | Description |
|---|---|---|
Desktop1 | FString | Desktop Audio input. |
Desktop2 | FString | Desktop Audio 2 input. |
Mic1 | FString | Mic/Auxiliary Audio input. |
Mic2 | FString | Mic/Auxiliary Audio 2 input. |
Mic3 | FString | Mic/Auxiliary Audio 3 input. |
Mic4 | FString | Mic/Auxiliary Audio 4 input. |
FOBSAudioChannelLevel
Per-channel audio levels from the high-volume InputVolumeMeters event. OBS sends linear multipliers (0 to 1) and the dB fields are derived from those.
| Field | Type | Description |
|---|---|---|
MagnitudeMul | float | Smoothed magnitude, linear multiplier (0 to 1). |
PeakMul | float | Decaying peak, linear multiplier (0 to 1). |
InputPeakMul | float | Instantaneous input peak, linear multiplier (0 to 1). |
MagnitudeDb | float | Magnitude in decibels (derived from MagnitudeMul). |
PeakDb | float | Peak in decibels (derived from PeakMul). |
FOBSInputVolumeMeter
Volume-meter readout for a single input within an InputVolumeMeters event. PeakDb/MagnitudeDb summarise the loudest channel.
| Field | Type | Description |
|---|---|---|
InputName | FString | Input name. |
InputUuid | FString | Input UUID. |
Channels | TArray<FOBSAudioChannelLevel> | Per-channel levels. |
PeakDb | float | Loudest channel peak, in decibels. |
MagnitudeDb | float | Loudest channel magnitude, in decibels. |
Configuration
FOBSVideoSettings
OBS canvas and output resolution / frame-rate settings. Provides a GetFPS() helper.
| Field | Type | Description |
|---|---|---|
FpsNumerator | int32 | FPS numerator (e.g. 60, or 30000 for 29.97). |
FpsDenominator | int32 | FPS denominator (e.g. 1, or 1001 for 29.97). |
BaseWidth | int32 | Base (canvas) width in pixels. |
BaseHeight | int32 | Base (canvas) height in pixels. |
OutputWidth | int32 | Output (scaled) width in pixels. |
OutputHeight | int32 | Output (scaled) height in pixels. |
FOBSProfileParameter
A profile parameter value and its default.
| Field | Type | Description |
|---|---|---|
ParameterValue | FString | Current value. |
DefaultParameterValue | FString | Default value. |
FOBSStreamServiceSettings
Stream-destination settings. Provides InitFromJson/ToJson and a C++-only RawSettings mirror.
| Field | Type | Description |
|---|---|---|
StreamServiceType | FString | Service type ("rtmp_custom", "rtmp_common"). |
Server | FString | Server URL (for rtmp_custom). |
Key | FString | Stream key. |
Service | FString | Service name for rtmp_common (e.g. “Twitch”). |
bUseAuth | bool | Whether to use authentication. |
Username | FString | Auth username. |
Password | FString | Auth password. |
RawSettings | TSharedPtr<FJsonObject> | C++-only raw settings for advanced use. |
Transitions
FOBSTransition
An OBS scene transition.
| Field | Type | Description |
|---|---|---|
TransitionName | FString | Transition name. |
TransitionUuid | FString | Transition UUID. |
TransitionKind | FString | Kind (e.g. "fade_transition", "cut_transition"). |
bTransitionConfigurable | bool | Whether it has settings. |
bTransitionFixed | bool | Whether it is fixed-duration (like Cut). |
FOBSCurrentTransitionInfo
Detailed info about the current scene transition.
| Field | Type | Description |
|---|---|---|
TransitionName | FString | Current transition name. |
TransitionUuid | FString | Current transition UUID. |
TransitionKind | FString | Transition kind. |
TransitionDuration | int32 | Duration in ms (if not fixed). |
bTransitionConfigurable | bool | Whether it has settings. |
bTransitionFixed | bool | Whether it is fixed-duration. |
TransitionSettingsJson | FString | Settings as a JSON string (Blueprint-friendly). |
TransitionSettings | TSharedPtr<FJsonObject> | C++-only parsed settings. |
Filters
FOBSSourceFilter
A filter on a source.
| Field | Type | Description |
|---|---|---|
FilterName | FString | Filter name. |
FilterIndex | int32 | Position in the source’s filter chain. |
FilterKind | FString | Filter kind (e.g. "color_filter", "chroma_key_filter"). |
bFilterEnabled | bool | Whether the filter is enabled. |
FilterSettingsJson | FString | Settings as a JSON string (Blueprint-friendly). |
FilterSettings | TSharedPtr<FJsonObject> | C++-only parsed settings. |
FOBSFilterKind
An available filter kind.
| Field | Type | Description |
|---|---|---|
FilterKind | FString | Internal name/identifier of the filter kind. |
Screenshots
FOBSScreenshotRequest
Parameters for GetSourceScreenshot / SaveSourceScreenshot.
| Field | Type | Description |
|---|---|---|
SourceName | FString | Source (input or scene) to capture. |
SourceUuid | FString | Source UUID (alternative to name). |
ImageFormat | FString | Image format (png, jpg, bmp, webp, and others, defaulting to png). |
ImageWidth | int32 | Scale width (-1 = native). |
ImageHeight | int32 | Scale height (-1 = native). |
ImageCompressionQuality | int32 | Quality 0 to 100 for lossy formats (-1 = OBS default). |
ImageFilePath | FString | Absolute path on the OBS machine (Save only). |
FOBSScreenshotResult
Result of GetSourceScreenshot (Base64 image data).
| Field | Type | Description |
|---|---|---|
bSuccess | bool | Whether the capture succeeded. |
ErrorMessage | FString | Error text on failure. |
SourceName | FString | Captured source. |
ImageData | FString | Base64-encoded image data (includes data-URI prefix, can be large). |
FOBSScreenshotSavedResult
Result of SaveSourceScreenshot.
| Field | Type | Description |
|---|---|---|
bSuccess | bool | Whether the save succeeded. |
ErrorMessage | FString | Error text on failure. |
SourceName | FString | Captured source. |
FilePath | FString | Absolute path where the screenshot was saved. |
General
FOBSStats
OBS performance/runtime statistics from GetStats. Frame counters are double because OBS reports them as JSON numbers that can exceed int32 over a long session.
| Field | Type | Description |
|---|---|---|
CpuUsage | double | CPU usage percentage (0 to 100). |
MemoryUsage | double | Memory used by OBS, in MB. |
AvailableDiskSpace | double | Free disk space on the recording device, in MB. |
ActiveFps | double | Current render-thread FPS. |
AverageFrameRenderTime | double | Average frame render time, in ms. |
RenderSkippedFrames | double | Frames skipped by the render thread. |
RenderTotalFrames | double | Total frames processed by the render thread. |
OutputSkippedFrames | double | Frames skipped by the output thread. |
OutputTotalFrames | double | Total frames delivered by the output thread. |
WebSocketSessionIncomingMessages | double | Total incoming messages this session. |
WebSocketSessionOutgoingMessages | double | Total outgoing messages this session. |
FOBSPropertyItem
One entry of an OBS “list” property (e.g. the device dropdown of a capture source), from GetInputPropertiesListPropertyItems.
| Field | Type | Description |
|---|---|---|
ItemName | FString | Human-readable label shown in the dropdown. |
bItemEnabled | bool | Whether the item is selectable. |
ItemValue | FString | The item’s value (device id/path, with numbers and bools stringified). |
Media Inputs
FOBSMediaInputStatus
Status of a media input (Media Source, VLC Source, etc.).
| Field | Type | Description |
|---|---|---|
InputName | FString | Media input name. |
MediaState | EOBSMediaState | Current playback state. |
MediaDuration | int64 | Total duration in milliseconds. |
MediaCursor | int64 | Current cursor position in milliseconds. |
Trigger Volume (Gameplay)
These structs configure the Trigger Volume actor.
FOBSTriggerAction
A single action executed when a trigger fires. Most fields are only relevant to certain ActionType values (gated by edit conditions in the editor).
| Field | Type | Description |
|---|---|---|
ActionType | EOBSTriggerActionType | Which action to perform. |
SceneName | FString | Scene name (SwitchScene, or the scene that contains the source for SetSceneItemEnabled). |
InputName | FString | Input name for audio + media actions. |
SourceName | FString | Source for SetSceneItemEnabled / SetSourceFilterEnabled. |
FilterName | FString | Filter name for SetSourceFilterEnabled. |
HotkeyName | FString | Hotkey name for TriggerHotkeyByName (e.g. "OBSBasic.StartRecording"). |
MediaAction | EOBSMediaInputAction | Media verb for TriggerMediaInputAction. |
bMuted | bool | Mute (true) / unmute (false) for SetInputMute. |
bEnabled | bool | Enabled state for SetSceneItemEnabled / SetSourceFilterEnabled. |
VolumeDb | float | Volume in dB for SetInputVolume (clamped -100 to 26). |
DelaySeconds | float | Optional delay before executing the action. |
FOBSAudioThresholdCondition
Condition: an OBS input is currently talking/idle (debounced mic-activity).
| Field | Type | Description |
|---|---|---|
InputName | FString | Input to test (empty = condition ignored). |
Mode | EOBSAudioConditionMode | Require talking or idle. |
ThresholdDb | float | Peak-dB threshold for the auto-registered detector (clamped -100 to 0, default -40). |
FOBSSourceVisibleCondition
Condition: a named scene item (source) is currently visible/hidden. Reads the live bSceneItemEnabled cache. A cache miss fails the condition.
| Field | Type | Description |
|---|---|---|
SceneName | FString | Scene containing the source (empty = condition ignored). |
SourceName | FString | Source whose visibility is tested (empty = condition ignored). |
Mode | EOBSVisibilityConditionMode | Require visible or hidden. |
FOBSTriggerConditions
All conditions that must pass (AND logic) for a trigger to execute. Connection to OBS is always required and checked internally.
| Field | Type | Description |
|---|---|---|
RecordingRequirement | EOBSOutputStateRequirement | Gate on recording state. |
StreamingRequirement | EOBSOutputStateRequirement | Gate on streaming state. |
RequiredCurrentScene | FString | Only trigger if the current scene matches (empty = any). |
ExcludedCurrentScene | FString | Only trigger if the current scene does NOT match (empty = disabled). |
AudioConditions | TArray<FOBSAudioThresholdCondition> | Audio-threshold conditions. All must pass (empty = no gating). |
SourceVisibleConditions | TArray<FOBSSourceVisibleCondition> | Source-visibility conditions. All must pass (empty = no gating). |
Sequencer
FOBSSequencerActionParams
Parameters for an OBS Sequencer action. Which fields are required depends on the action. See Sequencer Actions.
| Field | Type | Description |
|---|---|---|
Action | EOBSSequencerAction | The action to perform. |
TargetName | FString | Primary target (scene/input/source name). |
SecondaryTarget | FString | Secondary target (filter name, scene-item id, …). |
StringValue | FString | String value (text, URL, file path, caption, setting name, …). |
NumericValue | float | Primary numeric value (X, volume dB, duration ms, …). |
NumericValue2 | float | Secondary numeric value (Y, …). |
NumericValue3 | float | Tertiary numeric value (crop right, …). |
NumericValue4 | float | Quaternary numeric value (crop bottom, …). |
BoolValue | bool | Boolean value (enabled/visibility). |
Helper methods: GetCategory(), GetTriggerType(), GetDisplayName(), and IsValid(FText& OutError). All query the action registry.
FOBSSequencerActionMetadata
Editor-side metadata describing one action’s parameters, labels, ranges, trigger type, and target-picker type. Returned by FOBSSequencerActionRegistry::GetMetadata. Not BlueprintType, so it is consumed by the Sequencer UI and validation only. Key fields include Action, Category, TriggerType, DisplayName, Description, TargetPickerType, the per-parameter bRequires* flags with matching *Label text, and numeric *Min/*Max ranges.