Scene Collections & Profiles
OBS organizes its configuration into scene collections (groups of scenes and sources) and profiles (output, encoder, and service settings). This guide covers switching between them, configuring video output, and setting the stream service destination.
Scene Collections
| Function | Description |
|---|
GetSceneCollectionList() | Refresh scene collection list from OBS |
SetCurrentSceneCollection(Name) | Switch to a scene collection (causes OBS reload!) |
CreateSceneCollection(Name) | Create new collection and switch to it |
GetCachedSceneCollections() | Get locally cached collection names |
GetCurrentSceneCollectionName() | Get current collection name (cached) |
Warning: Switching scene collections causes OBS to reload all sources, so expect a brief pause.
Profiles
| Function | Description |
|---|
GetProfileList() | Refresh profile list from OBS |
SetCurrentProfile(Name) | Switch to a profile |
CreateProfile(Name) | Create new profile and switch to it |
RemoveProfile(Name) | Delete a profile (cannot delete current!) |
GetProfileParameter(Category, Name) | Get a profile config parameter |
SetProfileParameter(Category, Name, Value) | Set a profile config parameter |
GetCachedProfiles() | Get locally cached profile names |
GetCurrentProfileName() | Get current profile name (cached) |
Common Profile Parameters
| Category | Parameter | Description |
|---|
Output | RecFilePath | Recording output directory |
Output | Mode | Output mode (Simple/Advanced) |
Stream | key | Stream key |
Stream | server | RTMP server URL |
Video Settings
| Function | Description |
|---|
GetVideoSettings() | Fetch current resolution and FPS |
SetVideoSettings(Settings) | Set multiple video settings at once |
SetBaseResolution(Width, Height) | Set canvas resolution |
SetOutputResolution(Width, Height) | Set output/scaled resolution |
SetFPS(Numerator, Denominator) | Set framerate |
GetCachedVideoSettings() | Get locally cached video settings |
Warning: Video settings cannot be changed while streaming or recording!
Common FPS Values
| FPS | Numerator | Denominator |
|---|
| 24 | 24 | 1 |
| 30 | 30 | 1 |
| 29.97 (NTSC) | 30000 | 1001 |
| 60 | 60 | 1 |
| 59.94 (NTSC) | 60000 | 1001 |
| 120 | 120 | 1 |
Stream Service Settings
| Function | Description |
|---|
GetStreamServiceSettings() | Fetch current stream destination settings |
SetStreamServiceSettings(Settings) | Set stream service using struct |
SetSimpleRTMPSettings(Server, StreamKey) | Quick setup for custom RTMP |
GetCachedStreamServiceSettings() | Get locally cached stream settings |
Service Types
| Type | Description |
|---|
rtmp_custom | Custom RTMP server (you provide server URL) |
rtmp_common | Pre-configured services (Twitch, YouTube, etc.) |
Common RTMP Servers
| Service | Server URL |
|---|
| Twitch | rtmp://live.twitch.tv/app |
| YouTube | rtmp://a.rtmp.youtube.com/live2 |
| Facebook | rtmps://live-api-s.facebook.com:443/rtmp/ |
| Kick | rtmps://fa723fc1b171.global-contribute.live-video.net/app/ |
Settings Struct (FOBSStreamServiceSettings)
| Field | Type | Description |
|---|
StreamServiceType | FString | rtmp_custom or rtmp_common |
Server | FString | RTMP server URL (for rtmp_custom) |
Key | FString | Stream key (sensitive!) |
Service | FString | Service name (for rtmp_common, e.g., “Twitch”) |
bUseAuth | bool | Whether to use authentication |
Username | FString | Auth username |
Password | FString | Auth password |
Notes:
- Changes require a stream restart to take effect.
- Stream key is sensitive data, so handle it securely.
- OBS does not push events for these settings, so use manual refresh.
Events
Subscribe to these events to react to configuration changes:
OnCurrentSceneCollectionChanging(SceneCollectionName): About to change scene collection
OnCurrentSceneCollectionChanged(SceneCollectionName): Scene collection changed
OnSceneCollectionListChanged: Scene collection list was modified
OnCurrentProfileChanging(ProfileName): About to change profile
OnCurrentProfileChanged(ProfileName): Profile changed
OnProfileListChanged: Profile list was modified
OnStreamServiceSettingsReceived(Settings): Stream service settings fetched
See also