Style System
The plugin uses a consistent style system (FOBSDetailsPanelStyle) for all editor UI. Every section in the Details Panels is built from these helpers, so spacing, colours, and status indicators stay uniform across the OBS Component and Trigger Volume panels.
Spacing Constants
| Constant | Value | Use |
|---|---|---|
SpacingTight | 2.0f | Between closely related items |
SpacingNormal | 4.0f | Standard row padding |
SpacingRelaxed | 8.0f | Between groups |
SpacingSpacious | 12.0f | Major section breaks |
Status Colors
| Color | Use |
|---|---|
GetActiveColor() | Connected, running, unmuted (green) |
GetInactiveColor() | Disconnected, stopped (gray) |
GetWarningColor() | Transitioning, paused (yellow) |
GetErrorColor() | Error states (red) |
GetRecordingColor() | Recording active (red) |
GetLiveColor() | Streaming live (red) |
GetMutedColor() | Audio muted (muted red) |
Widget Builders
// Create status indicator dot
FOBSDetailsPanelStyle::CreateStatusIndicator(ColorAttribute);
// Create labeled row
FOBSDetailsPanelStyle::CreateLabel(LOCTEXT("Label", "My Label"), Width);
// Create styled value text
FOBSDetailsPanelStyle::CreateValueText(TextAttribute, ColorAttribute);
// Create separator
FOBSDetailsPanelStyle::CreateSeparator();
// Create subsection header
FOBSDetailsPanelStyle::CreateSubsectionHeader(LOCTEXT("Header", "Section"));
Volume Style System
The OBS Trigger Volume’s Appearance section also exposes a Volume Style (None / Glow / Hologram / Pulse / Custom) for the styled mesh that renders the volume in-editor and in-game. The built-in presets resolve to a shipped switch-material, and the Custom option lets you assign any material. The Custom material picker appears only when Volume Style is set to Custom. See the Details Panels Appearance section for where these controls live.