IOverwolfOverlayApi
Electron APIs / overlay / IOverwolfOverlayApi
APIs for managing Overwolf overlay windows, hotkeys, input modes, and game integration.
Enables apps to:
- Register and track game activity.
- Inject overlays into supported games.
- Manage hotkeys.
- Control input interception behavior.
Extends the EventEmitter
interface to allow for subscription to overlay-related events such as
game launch, focus changes, and input mode transitions.
Example
private _overlayApi: IOverwolfOverlayApi;
this._overlayApi.on('game-launched', (event, gameInfo) => {
if (gameInfo.supported === true) {
event.inject();
}
});
Extends
EventEmitter
Properties
Property | Modifier | Type | Description |
---|---|---|---|
hotkeys | public | IOverlayHotkeys | The hotkeys API used to register, update, and remove overlay hotkeys. See IOverlayHotkeys. |
version | readonly | string | The current version of the overlay package. Since 1.7.0 |
Methods
createWindow()
createWindow(options: OverlayWindowOptions): Promise<OverlayBrowserWindow>;
Create new Overlay window.
Parameters
Parameter | Type | Description |
---|---|---|
options | OverlayWindowOptions | Window configuration including name, z-order, passthrough, etc. |
Returns
Promise
<OverlayBrowserWindow
>
A promise that resolves to the created OverlayBrowserWindow
.
See
enterExclusiveMode()
enterExclusiveMode(options?: ExclusiveInputOptions): void;
Enters Overlay "Exclusive Mode" to intercept user input in games where the mouse cursor is not visible.
The game-input-exclusive-mode-changed
event fires if exclusive mode was entered.
NOTE: This is only supported when getActiveGameInfo().gameInputInfo.canInterceptInput
is false
.
Calling this function when unsupported will
be ignored and will not throw an exception.
Parameters
Parameter | Type |
---|---|
options? | ExclusiveInputOptions |
Returns
void
exitExclusiveMode()
exitExclusiveMode(): void;
Exits Overlay "Exclusive Mode", allowing user input to be sent to the game.
This is only effective if getActiveGameInfo().gameInputInfo.canInterceptInput
is true
.
Returns
void
fromBrowserWindow()
fromBrowserWindow(browserWindow: BrowserWindow): null | OverlayBrowserWindow;
Returns the overlay window associated with a given BrowserWindow
.
Parameters
Parameter | Type | Description |
---|---|---|
browserWindow | BrowserWindow | The Electron BrowserWindow to query. |
Returns
null
| OverlayBrowserWindow
The corresponding overlay window or null
if not owned by the overlay system.
See
fromWebContents()
fromWebContents(webContents: WebContents): null | OverlayBrowserWindow;
Returns the overlay window associated with a given WebContents
instance.
Parameters
Parameter | Type | Description |
---|---|---|
webContents | WebContents | The Electron WebContents to query. |
Returns
null
| OverlayBrowserWindow
The corresponding overlay window or null
if not found.
See
getActiveGameInfo()
getActiveGameInfo(): undefined | ActiveGameInfo;
Retrieves information about the currently active game, if available.
Returns
undefined
| ActiveGameInfo
See
getAllWindows()
getAllWindows(): OverlayBrowserWindow[];
Get all open overlay windows.
Returns
An array of OverlayBrowserWindow
instances.
See
on("error")
on(eventName: "error", listener: (...args: any[]) => void): this;
Fires when an internal error occurs within the overlay system.
Parameters
Parameter | Type |
---|---|
eventName | "error" |
listener | (...args : any []) => void |
Returns
this
on("game-launched")
on(eventName: "game-launched", listener: (event: GameLaunchEvent, gameInfo: GameInfo) => void): this;
Fires when a registered game is launched.
Call event.inject()
to enable the overlay for the game.
Parameters
Parameter | Type | Description |
---|---|---|
eventName | "game-launched" | The event identifier for when a game is launched. |
listener | (event : GameLaunchEvent , gameInfo : GameInfo ) => void | Callback with game launch event and game metadata. |
Returns
this
See
on("game-exit")
on(eventName: "game-exit", listener: (gameInfo: GameInfo, wasInjected: boolean) => void): this;
Fires when a registered game process terminates.
Useful for performing cleanup, UI updates, or closing overlay windows.
Parameters
Parameter | Type | Description |
---|---|---|
eventName | "game-exit" | The event identifier for when the game exits. |
listener | (gameInfo : GameInfo , wasInjected : boolean ) => void | A callback function that receives the game info of the exited game. |
Returns
this
Example
overlay.on("game-exit", (gameInfo, wasInjected) => {
console.log(
`Game exited: ${gameInfo.title} and ${wasInjected ? "was injected" : "was not injected"}`,
);
closeOverlayWindows();
});
See
on("game-injected")
on(eventName: "game-injected", listener: (gameInfo: GameInfo) => void): this;
Fires when the overlay is ready and successfully injected into the game.
Parameters
Parameter | Type | Description |
---|---|---|
eventName | "game-injected" | game-injected |
listener | (gameInfo : GameInfo ) => void | Callback with game info. |
Returns
this
See
on("game-injection-error")
on(eventName: "game-injection-error", listener: (gameInfo: GameInfo, error: string, ...args: any[]) => void): this;
Fires when overlay injection into the game fails.
Parameters
Parameter | Type | Description |
---|---|---|
eventName | "game-injection-error" | game-injection-error |
listener | (gameInfo : GameInfo , error : string , ...args : any []) => void | Callback with game info, error message, and optional additional args. |
Returns
this
See
on("game-focus-changed")
on(eventName: "game-focus-changed", listener: (window: GameWindowInfo, gameInfo: GameInfo, focus: boolean) => void): this;
Fires when the game window focus state changes.
Parameters
Parameter | Type | Description |
---|---|---|
eventName | "game-focus-changed" | game-focus-changed |
listener | (window : GameWindowInfo , gameInfo : GameInfo , focus : boolean ) => void | Callback with window info, game info, and focus state. |
Returns
this
See
on("game-window-changed")
on(eventName: "game-window-changed", listener: (window: GameWindowInfo, gameInfo: GameInfo, reason?: GameWindowUpdateReason) => void): this;
Fires when the game window is resized or changes position.
Parameters
Parameter | Type | Description |
---|---|---|
eventName | "game-window-changed" | game-window-changed |
listener | (window : GameWindowInfo , gameInfo : GameInfo , reason? : GameWindowUpdateReason ) => void | Callback with window info, game info, and optional reason. |
Returns
this
See
on("game-input-interception-changed")
on(eventName: "game-input-interception-changed", listener: (info: GameInputInterception) => void): this;
Fires when the game input interception capability changes.
Parameters
Parameter | Type | Description |
---|---|---|
eventName | "game-input-interception-changed" | game-input-interception-changed |
listener | (info : GameInputInterception ) => void | Callback with updated input state. |
Returns
this
See
on("game-input-exclusive-mode-changed")
on(eventName: "game-input-exclusive-mode-changed", listener: (info: GameInputInterception) => void): this;
Fires when exclusive input mode state changes.
Parameters
Parameter | Type | Description |
---|---|---|
eventName | "game-input-exclusive-mode-changed" | game-input-exclusive-mode-changed |
listener | (info : GameInputInterception ) => void | Callback with input mode details. |
Returns
this
See
registerGames()
registerGames(filter: GamesFilter): any;
Register games to track for overlay injection.
Parameters
Parameter | Type | Description |
---|---|---|
filter | GamesFilter | Configuration specifying which games to register and whether to include unsupported titles. |
Returns
any