Docs · 05
Overlay
A panel drawn inside your game that shows friends, chat, invites and notifications, opened with a hotkey. It ships in the Unity package.
3 min readUpdated 1 Oct 2026
Documentation sections
The overlay panels are still being completed. This page describes the finished behaviour and the names in the SDK package today.
What it is
The overlay is drawn by your game with Unity's UI Toolkit, over your own screen. There is no hook into the graphics driver and nothing is injected into your process: it is ordinary code in the package, so it works the same on every graphics API. A player opens it with a hotkey and sees their friends (the ones in your game first), chat, game invites and notifications. A small toast layer shows a friend coming online, an invite or a finished download.
- It is never part of a dedicated-server build or a headless player.
- It does not open network connections itself. It shows what the app on the player's computer tells it, and sends actions back to that app.
- Names, chat and rich presence are always shown as plain text, so a friend cannot put markup or fake system lines into your game.
The hotkey
The default is Shift+Tab. Set your own default in Project Settings, under the product's name: any single key, or one modifier plus a key. The page warns when your Input Action assets already use the chord, and proposes a free one.
Three sources decide the hotkey a player gets, in this order, and the first that exists wins:
| Source | Where it comes from |
|---|---|
user | The player's own setting in the app (Settings, then the overlay hotkey). |
portal | The value you set on your app in the developer portal. The app reads it before it launches your game. |
game | The default compiled into this build, from your Project Settings. |
Escape always closes the overlay. If your game already uses the chord (a shooter that uses Shift to walk and Tab for the scoreboard), pick another default such as Shift+F1.
Your input while it is open
When the overlay opens, in this order:
Overlay.ActivatedChanged(true)is raised. A game with its own input gate reacts here.- Unless you turned it off, the package disables your enabled Input System actions and re-enables exactly that set when the overlay closes.
- The cursor is unlocked and shown, and restored afterwards, unless you tell the package that you manage the cursor yourself.
It never touches Time.timeScale, so a multiplayer game keeps running. A game on the legacy Input Manager has to pause its own input in the event:
using Gameway.Sdk;
using GW = Gameway.Sdk.Gameway;
void OnEnable() { GW.Overlay.ActivatedChanged += OnOverlay; }
void OnDisable() { GW.Overlay.ActivatedChanged -= OnOverlay; }
void OnOverlay(bool open)
{
// the package disables your Input System actions for you while the overlay is open;
// pause what it cannot see: the legacy Input Manager, your own raw input, camera look
myInputPaused = open;
UnityEngine.Debug.Log("overlay " + (open ? "opened" : "closed")
+ ", hotkey " + GW.Overlay.Hotkey + " from " + GW.Overlay.HotkeySource);
}The key press that opens the overlay is not passed on to your game. If a chord is shared with one of your actions anyway, choose another default; the settings page tells you which actions collide.
Settings you can change
| Setting | Default | What it does |
|---|---|---|
| Enable overlay | on | Install the overlay at all. |
| Default hotkey | Shift+Tab | The lowest of the three sources above. |
| Disable game input while open | on | Disable your Input System actions while the overlay is open. |
| I manage the cursor myself | off | Leave the cursor alone when it opens and closes. |
| Toast corner | bottom right | Where the toasts appear. |
| Allow offline play | off | Whether your game may start without the app running (see the SDK guide). |
What it costs
The overlay is built to stay out of your frame time: closed, it costs well under a quarter of a millisecond on the main thread and allocates nothing; open, at 1080p, it is designed to stay under about a millisecond and a half. The hidden panel is built in small slices outside matches, so the first open is a visibility flip. Measure it in a release player on your own target hardware before you ship.
Gameway · 2026-10-01