Hot Keys and Settings
Hot keys
When in-game, users don’t always have the time to click your app’s icon, so make sure to provide them with convenient hotkeys to show and hide your app during the game.
Allow users to alter hotkey combinations from inside your app’s settings panel. More information about hotkeys can be found in the manifest.json and overwolf.settings API pages.
An example for an app window allowing users to change the hotkey combination can be found in the Sample App.
Additional critical topics that should be included:
- Where Hotkeys Are Shown – Clarify that hotkeys are displayed on in-game screens only.
- Why Hotkeys Matter – Highlight their importance, especially for FPS games that don’t allow app access via mouse.
- Hotkey Settings—Explain that users should configure hotkeys on the desktop and include a disclaimer that they should use the app’s settings, not Overwolf’s, to avoid confusion.
- Hotkey Reminders & Alerts – Ensure users are notified if hotkeys are not set up or if they conflict with another app.
Using hot keys
Using Hotkeys Hotkeys are set in the manifest file, under the hotKeys section.
Hotkeys will only work in-game, not on desktop.
An example of a hotkeys section from the manifest:
"hotkeys": {
"show\_YourAppName": { //hotkey \#1 name identifier
"title": "Show Player", //hotkey title
"action-type": "custom",//toggle or custom
"default": "Shift+F9", //key combination
"passthrough": true, //pass the keys to the game or not
"hold": true //invoke the action only while it's being held
},
"save\_YourAppName": { //hotkey \#2 name identifier
"title": "Save Replay for later",
"action-type": "custom",
"default": "Ctrl+Shift+F9"
}
}
Types of hotkeys
There are two types of Hotkeys we use:
Toggle
A special hotkey that toggles the application visibility by showing or hiding it.
Few apps are using it, as it's the only action that it can do.
The advantage is that a toggle hotkey can activate/launch your app even if it's closed and launches your in-game app window.
After the app is running, toggle it again with the hotkey will hide the window without closing it or the app.
Another advantage is that you don't have to register for any event. Just define the hotkey as "toggle" in the manifest.
info
If you are using a transparent background controller (window), a toggle hotkey will not work properly. Please use a custom hotkey.
Custom Hotkeys
Defines a custom hotkey to be used by the app.
Most apps are using this kind of hotkey, as it can activate any action and you can customize your app's window behavior.
Custom hotkeys will only function when your app is already running (Unlike Toggle hotkeys, using a custom hotkey with the app closed will do nothing).
Custom hotkeys will only function and get a response from your app after registering the hotkey using the overwolf.settings.hotkeys.onPressed event.
If you are using a hold type hotkey, you should register to the overwolf.settings.hotkeys.onHold event, instead of the onPressed event.
info
If you are using a transparent background controller (window), register your app's hotkeys to the onPressed event, in that window.
"Hold" hotkeys
You can set a hotkey as a "hold" hotkey: a hotkey that functions while pressed down and stops when released, usually used for "ShowOnHold" mode (like the tab key does in some games).
To implement a hotkey which works with a "ShowOnHold" functionality, you should set it as a "hold" hotkey in the manifest, and register to the overwolf.settings.hotkeys.onHold event.
You can read a detailed example on how to do that here.
This example demonstrates how to set the Tab key as a "hold" hotkey, but of course, you can set any other key as a "hold" hotkey in the same way.
Global Hotkeys
For apps that work in more than one game or global apps there is an option to set hotkeys as global hotkeys.
This option is available from the OW client UI or using the API.
A screenshot from the OW client UI:
If you "upgrade" your hotkey to a global hotkey through the OW client "settings" page, the client will try to set this hotkey for all installed games on your machine.
Whenever hotkeys are added this way but a conflict exists, the hotkey is added as unassigned.
You can get the list of all your app's assigned hotkeys using the overwolf.settings.hotkeys.get().
Set through the manifest
If game_targeting flag is set to "all", then hotkeys will be set global as default.
Whenever hotkeys are added, but a conflict exists, the hotkey is added as unassigned.
To make it more transparent - there is no way to set a specific hotkey as "global" in the manifest other than set "game_targeting: "all".
If your app was not able to set the hotkeys for all the games, then the user can assign it through the OW client "settings" page or, the dev can set it global through the API.
Get notified on a Hotkey change
Listen to the overwolf.settings.hotkeys.onChanged event if you want to get notified when users change your app's hotkeys from the OW client settings page.
Reassign Hotkeys
We recommend providing users a method to edit their Hotkeys, directly from within the App.
For that end, you can utilize the following APIs:
overwolf.settings.hotkeys.get() - Get the current values of your App's Hotkeys.
overwolf.settings.hotkeys.assign() - Assign a new value for an App Hotkey.
overwolf.settings.hotkeys.onChanged - Fires when an App Hotkey's value changes.
overwolf.settings.hotkeys.unassign() - Unassigns the specified App Hotkey.
When wired together correctly, it is possible to create a complete Hotkeys editor within your App's settings screen, allowing your users to easily customize your App.
Pass through
You can set a hotkey as "passthrough," which means that the hotkey will not interfere with keys from the game.
The key combination will trigger your app hotkey and then will "passthrough" the game.
Example code from the manifest, for a hotkey that set to pass through:
"hotkeys": {
"show_YourAppName": {
"title": "Show Player",
"action-type": "custom",
"default": "Shift+F9",
"passthrough": true,
},
}
Uninstall
All app hotkeys removed once the extension is uninstalled.
Remove: Images
Rewrite Add content This section needs an introduction and an explanation of the role of hotkeys in Overwolf apps.
Why Use Hotkeys?
- Hotkeys are designed primarily for in-game use.
- They allow users to seamlessly switch between game experiences and apps features.
- Essential for games where players don’t use a mouse, such as FPS games (see Exclusive Mode article).
- Users should be able to set and customize hotkeys in the app’s settings.
*
Best Practices for Hotkeys
- Reminder Notifications
- Provide users with small in-game reminders about assigned hotkeys.
- Customizable Hotkeys
- Allow users to define their own hotkeys within the app’s settings.*Best Practice: Hotkey settings should be managed within the app rather than through the Overwolf client.
- Conflict Warnings
- Notify users if a chosen hotkey is already in use.
- Display an error message or an empty state in relevant areas.
- In the settings menu, highlight unassigned hotkeys with a clear attention indicator.
- Hotkey Setup in Onboarding
- If hotkeys are critical to core functionality, consider adding a hotkey setup step in the onboarding flow.
Types of Hotkeys
- Global Hotkeys
- Custom Hotkeys
- Toggle Hotkeys
- Tab hotkey
Hotkeys - Overview
Overwolf Hotkeys are keystrokes or key combinations that can control your app while in-game. When using a hotkey, your app window is opened, and clicking it again will hide or minimize it. You can allow users to change hotkey combinations from your app’s settings panel by automatically directing the user to the Overwolf settings page.
You can read all about hotkeys in our Hotkey best practices guide.
Binding App Hotkeys to Game Hotkeys
Most games already have built-in hotkeys for common actions. These key combinations are usually bound to the most important actions. Adding new hotkeys for your app makes the lives of players harder, as they needs to remember additional combinations.
We can "hitch a ride" on game hotkeys and provide value in an automated manner. The main advanatage of this approach is that the player doesn't need to remember new hotkeys: We can bind OW hotkeys in parallel to the existing game hotkeys to increase value on existing actions.
Use Tab as an app Hotkey
One of the most common hotkeys used in many games is the Tab key
The tab button is a physically large button, easy to use and to reach which makes it comfortable for players. A lot of games use it as a built-in "special" hotkey that displays important information, scoreboards and similar data, sometimes in a "ShowOnHold" manner: It displays the info while the key is held down, and hides it when Tab is released.
Examples:
In League of Legends, when a player is pressing TAB to see match statistics, you can provide him with additional stats on top.
In CS:GO, when a player buys weapons, you can show the player his new weapon's recoil pattern.
In Hearthstone, when a player enters the deck / collection screen, you can tell him which of his prepared decks is closest to a good meta deck and what cards he is missing to complete it.
"Riding" the Tab key and similar hotkeys, when done right and providing value to your users, is a highly recommended practice.
A LOL example of the popup that appears while the player is holding the tab key (and hides it on release):
Implement "Tabbing" in Your App
Start by spotting the hotkeys that your targeted game uses in this fashion - whether it's Tab or other hotkeys. Break down what happens when that key is pressed - Is a new window launched? Is there a new bit of UI? Maybe the champion is doing something? Once mapped, you can think up ways to add value from your app to these screens and automated functions.
The overwolf.settings.hotkeys API offers some useful events for that purpose.
You can find the complete info about hotkeys and how to use them in our hotkeys best practice guide.
Set your hotkey in the manifest
Overwolf hotkeys now offer a "ShowOnHold" mode like the tab key does in some games.
In order to implement a hotkey which works with an OnHold Tab functionality, we will have to set the hotkey in the manifest as a "hold" hotkey:
"hotkeys": {
"show\_YourAppName": {
"title": "Show Player",
"action-type": "custom",
"default": "Shift+F9",
"passthrough": true,
"hold": true
}
}
Register to the onHold event
Custom hotkeys will only work when your app is already running.
Using a custom hotkey with the app closed will do nothing.
In addition, when you are using a hold hotkey, you should register to the overwolf.settings.hotkeys.onHold event:
overwolf.settings.hotkeys.onHold.addListener(console.log)
Note that this event will be fired twice - on key down and on key up:
{"name": "ges\_showhide", "state": "down"}
{"name": "ges\_showhide", "state": "up"}
Once the tab key is released, we can hide/minimize your window.
MergingThis article should be linked with the "Hotkey Best Practices" section, as one of the examples discusses the "Tab" hotkey. A highly detailed section isn't necessary, just a concise mention to align with the ideas covered in the Hotkey Best Practices guide.