Control presentation and input
After Quick Start, target the Desktop Game Window Subsystem. Check results before updating UI.
Choose Opaque or Transparent
Call Set Desktop Presentation Mode:
| Mode | Behavior |
|---|---|
Opaque | Ignores frame alpha, applies opacity 1.0, and restores Interactive input. Clear areas usually appear black. |
Transparent | Uses frame alpha and requested opacity. Requires a successfully registered toggle hotkey. |
Before activation: NotActive. Transparent without a hotkey: HotkeyUnavailable. Enabling Transparent retains input; Opaque starts Interactive.
Switching recreates the swap chain and can briefly pause display; avoid per-frame changes. Both modes remain borderless. Read Get Desktop Presentation Mode; there is no change event.
Let input pass to the desktop
Set Desktop Input Mode and Toggle Desktop Input Mode return EDGTResult:
| Mode | Entire window rectangle |
|---|---|
Interactive | Receives input, including over clear pixels. |
ClickThrough | Passes mouse clicks through, including over visible objects and widgets. |
ClickThrough requires Transparent; Opaque returns Unsupported. No per-pixel filter exists. Show the shortcut first: ClickThrough prevents clicking game buttons.
Bind On Desktop Input Mode Changed to follow shortcuts. If foreground focus is refused after returning to Interactive, click the host.
Fade the whole window
Set Whole Window Opacity accepts finite 0.0–1.0 values; otherwise returns Failed. It multiplies the complete frame, including UMG. In Transparent mode, 1.0 preserves per-pixel alpha; see Opaque objects look translucent if scene effects reduce it.
You can preset opacity before activation. Opaque stores the request but applies 1.0; Transparent applies the stored value. Get Whole Window Opacity returns the requested value.
At 0, an invisible Interactive window receives clicks. The hotkey does not restore visibility; provide recovery.
Change Always On Top
Starts enabled. Call Set Always on Top with Enabled true/false. Check Success, NotActive, or WindowsRefused. Focus is not guaranteed. Get Always on Top is a pure Boolean node that reads the active window state. It returns false before activation or after shutdown. No Project Setting exists.
Check game window focus
Is Game Window Focused returns true when the Desktop Host or regular game window is the Windows foreground window. It returns false when another application has focus or no game window exists. Always On Top does not guarantee focus.
In PIE, the game viewport or its UI must also have focus; clicking another Editor panel returns false. Use the Boolean with a Branch to gate your own game logic. The getter does not change focus.
For changes, Bind Event to On Game Window Focus Changed on the subsystem. Connect Is Focused to a Branch: true means focus gained, false means focus lost. After binding, call Is Game Window Focused once for the initial state; binding does not trigger an initial event.
Focus is sampled each engine frame, including while game time is paused. Unchanged values do not fire events; transitions between samples can be missed. Unbind when the listener ends play.
Drag the window with the mouse
Target the Desktop Game Window Subsystem after activation. Dragging works in Opaque or Transparent presentation, with Interactive input and the desktop window focused.
- In your Player Controller, connect Space Bar > Pressed to Start Drag. With Enhanced Input, use the action's Started event.
- Connect Released to Stop Drag. With Enhanced Input, use both Completed and Canceled.
- Call Stop Drag on EndPlay as well.
Hold Space and move the mouse. The window follows the cursor's movement from its starting position; its size stays unchanged. Release Space to leave it at its current position. Calling Start Drag again during a drag keeps the original starting offset.
Check Start Drag's result: NotActive means no host, Unsupported means ClickThrough, and WindowsRefused can mean the window needs focus or Windows rejected the request. Movement failures are reported through On Desktop Window Error and stop dragging. Stop Drag returns Success even when no drag is running.
Dragging also stops on focus loss, ClickThrough, map cleanup, host shutdown, or a successful Set Desktop Window Rect call. A key binding belongs to your game; these nodes do not register a global shortcut.
Move or scale the window
Set Desktop Window Rect takes Position and positive Size in physical desktop pixels. Negative positions support monitors left/above the primary display.
Get Desktop Window Rect reads the active host's actual Out Position (top-left) and Out Size, including movement from Drag. Both are Int Point values; use Split Struct Pin for X/Y. Check its Boolean: false means no active host or the read failed, with both outputs set to (0, 0) and Last Error unchanged. To move without resizing, pass Out Size into the setter's Size after a successful read.
Check its Boolean return. Scaling preserves source resolution and rendering workload. Failure may leave the stored error unchanged. For next-launch monitor selection, see Displays.