- Game events API
Please read the overwolf.games.events documentation page to learn how to use Overwolf game events.
Due to a recent update in Dota 2 for Overwolf apps to work correctly, you will need to inform your users to add under Launch Options the following command line:
-gamestateintegration
- More details here
To know which user is already using this command line parameter, you should use the overwolf.games.getGameInfo()
API, where you will get this parameter in the response under gameInfo --> GameInfo --> ProcessCommandLine.
Sample Apps
Available Features
- gep_internal
- game_state
- game_state_changed
- match_state_changed
- match_detected
- daytime_changed
- clock_time_changed
- ward_purchase_cooldown_changed
- match_ended
- kill
- assist
- death
- cs
- xpm
- gpm
- gold
- hero_leveled_up
- hero_respawned
- hero_buyback_info_changed
- hero_boughtback
- hero_health_mana_info
- hero_status_effect_changed
- hero_attributes_skilled
- hero_ability_skilled
- hero_ability_used
- hero_ability_cooldown_changed
- hero_ability_changed
- hero_item_cooldown_changed
- hero_item_changed
- hero_item_used
- hero_item_consumed
- hero_item_charged
- match_info
- roster
- party
- hero_pool
- me
- game
- damage
Game events status
It is highly recommended to communicate errors and warnings to your app users.
Check here the game events status. OR - easily check the game events status from your app, using our API.
gep_internal
Info Updates
key | Category | Values | Notes | Since GEP Ver. |
---|---|---|---|---|
gep_internal | gep_internal | Local + Public version number | See notes | 143.0 |
gep_internal note
Data Example:
{"info":{"gep_internal":{"version_info":"{"local_version":"157.0.1","public_version":"157.0.1","is_updated":true}"}},"feature":"gep_internal"}
game_state
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
new_game | null | Match started | See notes | 77.3 |
game_over | null | Match ended | See notes | 77.3 |
new_game note
Data Example:
{"events":[{"name":"new_game","data":""}]}
game_over note
Data Example:
{"events":[{"name":"game_over","data":""}]}
game_state_changed
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
game_state_changed |
| See notes | 77.3 |
game_state_changed note
- game_state – Can be ‘playing’, ‘idle’ or ‘spectating’. Idle is when there isn’t a game being played or spectated.
- match_state – The internal match state. See ‘match_state_changed’ event for more info.
- match_id (not available for ‘idle’): The id of the match.
- player_steam_id (not available for ‘idle’): Steam id of the local player.
Fired when:
The user starts playing, begins spectating or stops playing. Note that simply bringing up the menu is not enough to trigger the ‘idle’ event – an active game (played or spectated) must be closed.
Data Example:
{"events":[{"name":"game_state_changed","data":"{"game_state": "playing", "match_state": "DOTA_GAMERULES_STATE_INIT", "match_id": "0", "player_steam_id": "76561197971316549", "player_team": "radiant"}"}]}
match_state_changed
Info Updates
key | Category | Values | Notes | Since GEP Ver. |
---|---|---|---|---|
match_state_changed | game | Current match state | See notes | 77.3 |
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
match_state_changed | Check notes | See notes | 77.3 |
match_state note
List of possible values:
match_state – One of the following:
- DOTA_GAMERULES_STATE_WAIT_FOR_PLAYERS_TO_LOAD
- DOTA_GAMERULES_STATE_HERO_SELECTION
- DOTA_GAMERULES_STATE_STRATEGY_TIME
- DOTA_GAMERULES_STATE_PRE_GAME
- DOTA_GAMERULES_STATE_GAME_IN_PROGRESS
- DOTA_GAMERULES_STATE_POST_GAME
- DOTA_GAMERULES_STATE_TEAM_SHOWCASE
Event example:
{"events":[{"name":"match_state_changed","data":"{ "match_state": "DOTA_GAMERULES_STATE_HERO_SELECTION"}"}]}
Info example:
{"feature":"match_state_changed","category":"game","key":"match_state","value":"DOTA_GAMERULES_STATE_HERO_SELECTION"}
Fired when:
The internal game match state has changed.
- DOTA_GAMERULES_STATE_WAIT_FOR_PLAYERS_TO_LOAD – Shown during the pre-game “Waiting for loaders” screen.
- DOTA_GAMERULES_STATE_HERO_SELECTION – Shown during the hero selection screen.
- DOTA_GAMERULES_STATE_PRE_GAME – Shown when the game begins, before the battle horn is heard.
- DOTA_GAMERULES_STATE_GAME_IN_PROGRESS – Shown when the horn sounds to open the match.
- DOTA_GAMERULES_STATE_POST_GAME – Shown during the post-game screen.
- DOTA_GAMERULES_STATE_TEAM_SHOWCASE
match_detected
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
match_detected | Check notes | See notes | 77.3 |
match_detected note
This feature is not available at the momentEvent Data:
- gameMode – One of the supported game modes.
- playersInfo – An array of 10 players' information with the following fields:
- faction – Radiant/Dire
- isLocalPlayer – True if this is the local player's information, false otherwise.
- playerIndex – The index of this player (0 – 9, left to right).
- steamId – Steam Id of the player.
Fired when:
As soon as 10 players have accepted a match, right after the 'accept' button is clicked by all. Supported game modes:
- AllPick
- AllPickRanked
- SingleDraft
- RandomDraft
- AllRandom
- LeastPlayed
- LimitedHeroes
- CaptainsMode
- CaptainsDraft
daytime_changed
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
daytime_changed | Check notes | See notes | 77.3 |
daytime_changed note
Event Data:
- daytime – True if it is current daytime, false otherwise.
- clock_time – The number of seconds from when the game clocked shows (0:00). It can be negative during the Pre-Game phase.
- nightstalker_night – True if it is currently a Night Stalker ultimate night.
Fired when:
The game transitions between daytime and night time.
Data Example:
{"events":[{"name":"daytime_changed","data":"{ "daytime": true, "clock_time": -89, "nightstalker_night": false}"}]}
clock_time_changed
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
clock_time_changed | Same as ‘map_daytime_changed’. | Fired every second | 77.3 |
clock_time_changed note
{"events":[{"name":"clock_time_changed","data":"{ "daytime": true, "clock_time": -89, "nightstalker_night": false}"}]}
ward_purchase_cooldown_changed
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
ward_purchase_cooldown_changed | Check notes | Fired every second where wards are on cooldown. | See notes | 77.3 |
ward_purchase_cooldown_changed note
Event Data:
- ward_purchase_cooldown – The remaining store cooldown in seconds before a ward is available for purchase again.
Data Example:
{"events":[{"name":"ward_purchase_cooldown_changed","data":"{"ward_purchase_cooldown":128}"}]}
match_ended
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
match_ended | radiant/dire | When an ancient is destroyed and the game ends. | See notes | 77.3 |
match_ended note
{"events":[{"name":"match_ended","data":"{ "winner": "radiant"}"}]}
kill
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
kill | Check notes | Whenever the player kills an enemy hero. | See notes | 77.3 |
kill note
Event Data:
{"events":[{"name":"kill","data":"{ "kills": 10, "kill_streak": 7, "label": "kill"}"}]}
- kills – The total number of kills the player has.
- kill_streak – The current number of hero kills without dying, denying oneself to neutral creeps does not reset this counter.
- label – the type of kill (kill/double_kill/triple_kill/ultra_kill/rampage)
assist
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
assist | assists – The total number of assists the player has. | Whenever the player assists in a kill of an enemy champion. | See notes | 77.3 |
assist note
Data Example:
{"events":[{"name":"assist","data":"{"assists": 1}"}]}
death
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
death | deaths – The total number of deaths the player has. | Whenever the player dies. | See notes | 77.3 |
death note
Data Example:
{"events":[{"name":"death","data":"{"deaths":1}"}]}
cs
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
cs | Check notes | Whenever the player last hits/denies non-champion units that grant creep score. | See notes | 77.3 |
cs note
Event Data:
- last_hits – The total amount of last hits (not denies) the player has.
- denies – The total amount of denies the player has.
- type – last_hits/deny.
Data Example:
{"events":[{"name":"cs","data":"{"last_hits": 1,"denies":0,"type":"last_hit"}"}]}
xpm
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
xpm | xpm – The current Experience Per Minute value. | Whenever the XPM changes. | See notes | 77.3 |
xpm note
Data Example:
{"events":[{"name":"xpm","data":"{ "xpm": 250}"}]}
gpm
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
gpm | gpm – The current Gold Per Minute value. | Whenever the GPM changes. | 77.3 |
gpm note
Data Example:
{"events":[{"name":"gpm","data":"{ "gpm": 363605184}"}]}
gold
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
gold | Check notes | Whenever gold changes. | See notes | 77.3 |
gold note
- gold – Total current gold.
- gold_reliable – Reliable gold part.
- gold_unreliable – Unreliable gold part.
Data Example:
{"events":[{"name":"gold","data":"{ "gold": 10599, "gold_reliable": 0, "gold_unreliable": 10599}"}]}
hero_leveled_up
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
hero_leveled_up | hero_level – The current hero level. | Whenever the player levels up. | See notes | 77.3 |
hero_leveled_up note
Data Example:
{"events":[{"name":"hero_leveled_up","data":"{ "hero_level": 30}"}]}
hero_respawned
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
hero_respawned | N/A | Whenever the player respawns. This is also true when buying back. | See notes | 77.3 |
hero_respawned note
Currently this event is NOT supported.hero_buyback_info_changed
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
hero_buyback_info_changed | Check notes | See notes | 77.3 |
hero_buyback_info_changed note
Event Data:
- buyback_cost – Gold cost to buyback
- buyback_cooldown – Cooldown remaining for buyback to become available
Fired when:
Every 4 seconds and every level-up, since buyback cost is affected by game time and player level. It will also be called every second when buyback is on cooldown.
Data Example:
{"events":[{"name":"hero_buyback_info_changed","data":"{ "buyback_cost": 8541, "buyback_cooldown": 0}"}]}
hero_boughtback
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
hero_boughtback | buyback_cooldown – The cooldown remaining for buyback to become available. | Whenever the player buys back. | See notes | 77.3 |
hero_boughtback note
Data Example:
{"events":[{"name":"hero_boughtback","data":"{}"}]}
hero_health_mana_info
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
hero_health_mana_info | Check notes | Whenever either of the player's mana, health, max mana or max health changes. | See notes | 77.3 |
hero_health_mana_info note
Event Data:
- health – Current health.
- max_health – Current maximum health.
- mana – Current mana.
- max_mana – Current maximum mana.
Data Example:
{"events":[{"name":"hero_health_mana_info","data":"{ "health": 2620, "max_health": 2620, "mana": 711, "max_mana": 711}"}]}
hero_status_effect_changed
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
hero_status_effect_changed | Check notes | Whenever any of these effects changes. | See notes | 77.3 |
hero_status_effect_changed note
Event Data:
- silenced – True if the player is silenced, false otherwise.
- stunned – True if the player is stunned, false otherwise.
- disarmed – True if the player is disarmed, false otherwise.
- magicimmune – True if the player is magic immune, false otherwise.
- hexed – True if the player is hexed, false otherwise.
- muted – True if the player is muted, false otherwise.
- break – True if the player is broken, false otherwise.
- has_debuff – True if the player is affected by any debuff, false otherwise.
Data Example:
{"events":[{"name":"hero_status_effect_changed","data":"{ "silenced": true, "stunned": false, "disarmed": false, "magicimmune": false, "hexed": false, "muted": false, "break": false, "has_debuff": false}"}]}
hero_attributes_skilled
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
hero_attributes_skilled | attributes_level – The current level of the player’s attributes. | Whenever the player skills up his attributes. | 77.3 |
hero_attributes_skilled note
hero_ability_skilled
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
hero_ability_skilled | Check notes | Whenever the player skills up an ability. | See notes | 77.3 |
hero_ability_skilled note
- slot – The index of the ability slot (0 – 5, left to right)
- name – The name of the ability.
- level – The current level of the ability.
- can_cast – True unless the ability is not skilled, there’s not enough mana to cast it, the player is silenced, or is on cooldown.
- passive – True if the ability is passive.
- ability_active – Unknown, TBD.
- cooldown – Remaining cooldown until the ability is ready to cast.
- ultimate – True if the ability is an ultimate ability.
Data Example:
{"events":[{"name":"hero_ability_skilled","data":"{ "slot": 1, "name": "sven_great_cleave", "level": 1, "can_cast": false, "passive": true, "ability_active": true, "cooldown": 0, "ultimate": false}"}]}
hero_ability_used
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
hero_ability_used | Same as ‘hero_ability_skilled’ | Whenever the player uses an ability. | See notes | 77.3 |
hero_ability_used note
Data Example:
{"events":[{"name":"hero_ability_used","data":"{"slot":0,"name":"sven_storm_bolt","level":4, "can_cast":false,"passive":false,"ability_active":true,"cooldown":7,"ultimate":false}"}]}
hero_ability_cooldown_changed
Events
Event | Event Data | Fired When | Notes | Since GEP Ver. |
---|---|---|---|---|
hero_ability_cooldown_changed | Same as ‘hero_ability_skilled’ | Whenever an ability’s remaining cooldown is changed. | See notes | 77.3 |
hero_ability_cooldown_changed note
Data Example:
{"events":[{"name":"hero_ability_cooldown_changed","data":"{ "slot": 3, "name": "sven_gods_strength", "level": 3, "can_cast": false, "passive": false, "ability_active": true, "cooldown": 59, "ultimate": true}"}]}