Skip to main content

overwolf.games.events API

Notify you when something interesting happens while playing a particular game.

The full list of supported games with their Game ID’s is always up to date and can be found here.

Please read all the info about how to use game events in your app in our using game events guide.

The difference between overwolf.games.events to overwolf.games

This API enables you to get real-time game events (kill, death, etc.) for specific games that are defined in your app's manifest, under the "game_events" section.

Regardless, you have the overwolf.games API that gives you general "game info" events about the currently running game's state (process name, focus, command line info, and more).

Loading...

Methods Reference​

Events Reference​

Types Reference​

Sample App​

You can find an example of overwolf.games.events API usage here. This one notifies whenever a relevant event has happened in League of Legends.

setRequiredFeatures(features, callback)​

Version added: 0.93​

Sets the required features from the provider.

ParameterTypeDescription
featuresstring[]String array of features to utilize
callback(Result:SetRequiredFeaturesResult) => voidall available features for the registered games declared in the manifest

Usage Example​

Example for setting League of Legends required features:

var g_interestedInFeatures = [
'summoner_info',
'gameMode',
'teams',
'matchState',
'kill'
];

overwolf.games.events.setRequiredFeatures(g_interestedInFeatures, function(info) {
if (info.success == false)
{
console.log("Could not set required features: " + info.error);
return;
}
}
note
  1. it's important to wait for the success status to ensure that required features will be registered and trigger events properly.
  2. If your app uses a background controller, make sure to call the setRequiredFeatures function only from your background controller.
Client 0.311.0.6 and later

As of Overwolf client 0.311.0.6, setRequiredFeatures waits for the game events provider internally. A call made before the provider has published settles once it does, instead of returning "Provider is not ready.". On these clients the retry loop below is no longer required. Keep it only if your app must also support clients earlier than 0.311.0.6, where it stays safe to use.

Final-answer failures. Each of these means stop asking: retrying produces the same answer.

result.reasonWhat to do
Not in a game.Wait for a game. Not new.
Game is not supported by any installed game events provider.No provider covers this game. Nothing to fix on your side. New.
This app's manifest has no 'game_events', ...Add a game_events array under data. New.
This app's manifest does not list game <classId> in 'game_events', ...Add that class id to your existing game_events array. New.

Every other failure you used to handle, "Provider is not ready." and friends, is now waited out inside the client and never reaches you.

Example for setting required features with a retry loop (needed only for clients earlier than 0.311.0.6):

async setRequiredFeatures() {
let tries = 1;
let result;

while ( tries <= MAX_RETRIES ) {
result = await new Promise(resolve => {
overwolf.games.events.setRequiredFeatures(FEATURES_ARRAY, resolve);
})

if ( result.success === true ) {
// make sure our required features were registered
return (result.supportedFeatures.length > 0);
}

// wait 3 sec before retry
await new Promise(resolve => {
setTimeout(resolve, 3000);
});
tries++;
}

console.warn('setRequiredFeatures(): failure after '+ tries +' tries'+ JSON.stringify(result, null, 2));
return false;
}

getInfo(callback)​

Version added: 0.95​

Gets the current game info.

ParameterTypeDescription
callback(Result:GetInfoResult) => voidProvides the current game info

Usage Example​

overwolf.games.events.getInfo(function(info) {
console.log(info);
});

onError​

Version added: 0.78​

Fired when an error occurred in the Game Event system, with the following structure: ErrorEvent Object.

onInfoUpdates2​

Version added: 0.96​

Fired when there are game info updates with a JSON object of the updates, in the following structure: InfoUpdates2Event Object

Our best practice is removing event listeners and then adding the listener back to prevent accidental multiple listeners.

As of Overwolf client 0.311.0.6, the moment you subscribe you receive one event carrying the info state as it stands. An app that loaded after the provider already published used to hear nothing until the next change.

overwolf.games.events.onInfoUpdates2.addListener((info) => {
// This now fires once immediately with the current state,
// then again on every subsequent change.
updateMyUi(info);
});

The getInfo()-then-merge pattern is no longer necessary for this. Make sure your handler tolerates receiving the same information twice.

Usage Example​

overwolf.games.events.onInfoUpdates2.addListener(function(info) {
console.log("Info UPDATE: " + JSON.stringify(info));
});

onNewEvents​

Version added: 0.96​

Fired when there are new game events with a JSON object of events information, in the following structure: NewGameEvents Object

Our best practice is removing event listeners and then adding the listener back to prevent accidental multiple listeners.

Usage Example​

overwolf.games.events.onNewEvents.addListener(function(info) {
console.log('EVENT FIRED: ' + JSON.stringify(info));
});

SetRequiredFeaturesResult Object​

ParameterTypeDescription
successboolean
errorstringnull if success is true
supportedFeaturesstring[]all available features for the registered games declared in the manifest

Example data: Success​

{
"success":true,
"supportedFeatures":[
"summoner_info",
"teams",
"kill"
]
}

GetInfoResult Object​

ParameterTypeDescription
successboolean
errorstringnull if success is true
resobjectProvides the current game info

Example data: Success​

The current game's info, registered features, and all available info for the current game session.

{
"success":true,
"res":{
"summoner_info":{
"id":"79489298",
"name":"itaygl",
"region":"EUW",
"champion":"Rengar"
},
"game_info":{
"match_started":"True",
"matchStarted":"True",
"teams":"%5B%7B%22team%22:%22100%22,%22champion%22:%22Rengar%22",
"gameMode":"custom",
"game_mode":"custom",
"minionKills":"5",
"minions_kills":"5",
"gold":"1002"
},
"features":{
"kill":"True",
"assist":"True",
"minions":"True",
"deathAndRespawn":"True",
"death":"True",
"minion":"True",
"gold":"True",
"level":"True",
"abilities":"True",
"gameMode":"True",
"game_mode":"True"
},
"level":{
"level":"3"
}
}
}

ErrorEvent Object​

ParameterTypeDescriptionNotes
reasonstringthe error reason

Event data example: Success​

{
"reason": "some reason",
}

InfoUpdates2Event Object​

ParameterTypeDescriptionNotes
infostring
featurestring

Event data example: Success​

{
"info":{
"game_info":{
"minionKills":"3"
}
},
"feature":"minions"
}

NewGameEvents Object​

ParameterTypeDescriptionNotes
eventsGameEvent[] array

Event data example: Success​

{
"events": [
{
"name": "death",
"data": "{`count`: `2`}"
}
]
}

GameEvent Object​

ParameterTypeDescriptionNotes
namestring
datastring

Event data example: Success​

{
"name": "death",
"data": "{`count`: `2`}"
}