Skip to content

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:

SourceWhere it comes from
userThe player's own setting in the app (Settings, then the overlay hotkey).
portalThe value you set on your app in the developer portal. The app reads it before it launches your game.
gameThe 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:

C#
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

SettingDefaultWhat it does
Enable overlayonInstall the overlay at all.
Default hotkeyShift+TabThe lowest of the three sources above.
Disable game input while openonDisable your Input System actions while the overlay is open.
I manage the cursor myselfoffLeave the cursor alone when it opens and closes.
Toast cornerbottom rightWhere the toasts appear.
Allow offline playoffWhether 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