Skip to main content

IOverwolfRecordingApi

Electron APIs / recorder / IOverwolfRecordingApi

API interface for managing Overwolf's recording and replay capture services. Includes methods for starting/stopping recordings, replays, configuring capture settings, and querying system capabilities.

See​

Properties​

PropertyModifierTypeDescription
binFolderPathreadonlystringPath to OBS binaries folder.
ffmpegPathreadonlystringPath to ffmpeg executable
ffprobePathreadonlystringPath to ffprobe executable
optionspublicRecordingAppOptionsGlobal runtime options for the recording app (e.g., debug options, override paths). See RecordingAppOptions
versionreadonlystringOverlay package version.

Methods​

captureReplay()​

captureReplay(option: CaptureReplayOptions, callback?: ReplayCallback): Promise<ActiveReplay>;

Captures a replay from the memory buffer. Returns an ActiveReplay object to control the replay after creation.

Parameters​

ParameterTypeDescription
optionCaptureReplayOptionsReplay capture parameters (filename, duration).
callback?ReplayCallbackOptional callback for when replay is ready.

Returns​

Promise<ActiveReplay>

A promise resolving to an ActiveReplay controller object.

Throws​

RecorderError


createSettingsBuilder()​

createSettingsBuilder(options?: CaptureSettingsOptions): Promise<CaptureSettingsBuilder>;

Creates a capture settings builder instance to configure video/audio sources.

Parameters​

ParameterTypeDescription
options?CaptureSettingsOptionsOptional base options to initialize the settings.

Returns​

Promise<CaptureSettingsBuilder>

A builder used to construct a complete CaptureSettings object.

See​

CaptureSettingsBuilder


disableXboxDVR()​

disableXboxDVR(): Promise<void>;

Disables Xbox Game DVR by setting AppCaptureEnabled and GameDVR_Enabled to 0 in the registry.

Returns​

Promise<void>

A promise that resolves once the values have been written.


getRecordingState()​

getRecordingState(): Promise<OutputState>;

The recording output's current state.

Returns​

Promise<OutputState>

Example​

if ((await recorder.getRecordingState()) === "starting") {
// started, but no capture source has hooked yet - nothing is written
}

See​

OutputState


getReplayState()​

getReplayState(): Promise<OutputState>;

The replays buffer's current state.

captureReplay fails with CaptureSourceNotHooked while this is starting, since the buffer holds no footage yet.

Returns​

Promise<OutputState>

See​

OutputState


isActive()​

isActive(): Promise<boolean>;

Whether a recording or a replays service has been started and not yet stopped - true for both the starting and active states.

Returns​

Promise<boolean>

See​


isRecordingActive()​

isRecordingActive(): Promise<boolean>;

Whether a recording has been started and not yet stopped.

true from the moment startRecording resolves, including while the output is still starting - waiting for a capture source to hook - so it does not mean frames are being written.

Returns​

Promise<boolean>

See​

getRecordingState to tell those apart.


isReplayActive()​

isReplayActive(): Promise<boolean>;

Whether a replays service has been started and not yet stopped.

true from the moment startReplays resolves, including while the buffer is still starting - waiting for a capture source to hook - so it does not mean the buffer holds any footage.

Returns​

Promise<boolean>

See​

getReplayState to tell those apart.


isXboxDVREnabled()​

isXboxDVREnabled(): Promise<XboxDVRInfo>;

Returns whether Xbox Game DVR is enabled, checking both the GameDVR_Enabled and AppCaptureEnabled registry values.

Returns​

Promise<XboxDVRInfo>

A promise that resolves to the current Xbox Game DVR state.

See​

XboxDVRInfo


queryInformation()​

queryInformation(overrideCache?: boolean): Promise<RecordingInformation>;

Queries supported encoders, audio/video devices, and configuration options.

The result also includes the current Xbox Game DVR state (xboxDVR).

Parameters​

ParameterTypeDescription
overrideCache?booleanIf true, bypasses cached result and queries OBS directly.

Returns​

Promise<RecordingInformation>

A promise that resolves to the full recording capability information.

See​

RecordingInformation


registerGames()​

registerGames(filter: GamesFilter): Promise<void>;

Registers games to monitor and track for launch/exit detection.

Parameters​

ParameterTypeDescription
filterGamesFilterFiltering rules for which games to track.

Returns​

Promise<void>


setSourceTransform()​

setSourceTransform(sourceTransform: SourceTransform): Promise<void>;

Set a source to transform.

Defines how the source will be rendered (for example, position, scale, crop, etc.). Throws an error if the source is not found or if the transform is invalid.

Parameters​

ParameterTypeDescription
sourceTransformSourceTransform

Returns​

Promise<void>


splitRecording()​

splitRecording(listener?: SplitCallback): Promise<void>;

Splits the current recording into a new file. Fires 'recording-split' once the new file is created.

Parameters​

ParameterTypeDescription
listener?SplitCallbackOptional callback triggered on successful split.

Returns​

Promise<void>

Throws​

RecorderError if splitting fails.

See​

SplitCallback


startRecording()​

startRecording(
options: RecordingOptions,
setting?: CaptureSettings,
listener?: StopCallback): Promise<void>;

Starts a video recording session.

Fires the 'recording-started' event when recording begins. Fires the 'recording-stopped' event when stopped manually, via error, or when the game exits.

Parameters​

ParameterTypeDescription
optionsRecordingOptionsRecording options such as file path, format, and split config.
setting?CaptureSettingsOptional capture settings to define sources.
listener?StopCallbackOptional callback for the stop event (overrides global listener).

Returns​

Promise<void>

Throws​

RecorderError if recording fails to start.


startReplays()​

startReplays(options: ReplayOptions, setting?: CaptureSettings): Promise<void>;

Starts replay capture service in memory.

Fires the 'replays-started' event on success.

Parameters​

ParameterTypeDescription
optionsReplayOptionsReplay configuration such as buffer length and paths.
setting?CaptureSettingsOptional capture settings for the replay session.

Returns​

Promise<void>

Throws​

RecorderError if replays fail to start.

See​

ReplayOptions


stopRecording()​

stopRecording(listener?: StopCallback): Promise<void>;

Stops the active recording.

Parameters​

ParameterTypeDescription
listener?StopCallbackOptional callback to handle the stop result.

Returns​

Promise<void>

A promise that resolves when recording has fully stopped.

See​

StopCallback


stopReplays()​

stopReplays(): Promise<void>;

Stops the active replay session.

Fires 'replays-stopped' upon success.

Returns​

Promise<void>

Throws​

RecorderError if stop fails.


updateAudioDevice()​

updateAudioDevice(device: AudioDeviceSettingsUpdateInfo): Promise<void>;

Updates runtime settings for an audio device while recording.

Parameters​

ParameterTypeDescription
deviceAudioDeviceSettingsUpdateInfoUpdated device settings.

Returns​

Promise<void>

See​

AudioDeviceSettingsUpdateInfo

Since​

0.32.0

Events​

on("game-launched")​

on(eventName: "game-launched", listener: (gameInfo: GameInfo) => void): this;

Fired when a registered game is launched.

Parameters​
ParameterType
eventName"game-launched"
listener(gameInfo: GameInfo) => void
Returns​

this

on("game-exit")​

on(eventName: "game-exit", listener: (gameInfo: GameInfo) => void): this;

Fired when a registered game process exits.

Parameters​
ParameterType
eventName"game-exit"
listener(gameInfo: GameInfo) => void
Returns​

this

on("recording-started")​

on(eventName: "recording-started", listener: StartCallback): this;

Fired when a recording session begins.

Parameters​
ParameterType
eventName"recording-started"
listenerStartCallback
Returns​

this

on("recording-stopped")​

on(eventName: "recording-stopped", listener: StopCallback): this;

Fired when a recording session ends.

Parameters​
ParameterType
eventName"recording-stopped"
listenerStopCallback
Returns​

this

on("recording-split")​

on(eventName: "recording-split", listener: SplitCallback): this;

Fired when a recording is split into a new file.

Parameters​
ParameterType
eventName"recording-split"
listenerSplitCallback
Returns​

this

on("replays-started")​

on(eventName: "replays-started", listener: StartCallback): this;

Fired when replay service starts.

Parameters​
ParameterType
eventName"replays-started"
listenerStartCallback
Returns​

this

on("replays-stopped")​

on(eventName: "replays-stopped", listener: ReplayStopCallback): this;

Fired when replay service stops.

Parameters​
ParameterType
eventName"replays-stopped"
listenerReplayStopCallback
Returns​

this

on("replay-captured")​

on(eventName: "replay-captured", listener: ReplayCallback): this;

Fired when a replay video has been captured.

Parameters​
ParameterType
eventName"replay-captured"
listenerReplayCallback
Returns​

this

on("stats")​

on(eventName: "stats", listener: (args: RecorderStats) => void): this;

Fired periodically with recorder performance metrics.

Parameters​
ParameterType
eventName"stats"
listener(args: RecorderStats) => void
Returns​

this