Skip to content

Set Game Paused

At a glance

Lives in: Blueprint API / Game - Target: Gameplay Statics - Input: Paused Boolean - Returns: Boolean: whether the game was successfully paused or unpaused - Can fail by: not finding a valid game world/controller path or having pause rejected by game-mode/controller rules - Official docs: Set Game Paused, Set Input Mode Game Only, and Creating User Interfaces

The one-minute version

  • Set Game Paused changes the world's paused state. true pauses; false unpauses.
  • The Return Value is a Boolean. Branch on it if the rest of your graph assumes the game actually paused or unpaused.
  • Pause affects game-world time and normal gameplay simulation. It does not create a pause menu, add a widget, show the cursor, focus a button, or change input mode.
  • UI can still be useful while the game is paused, but only if you route input to it and give the close/resume path a way to run.
  • The open/close menu pattern is a bundle: create/show widget, set paused state, set input mode/focus, show cursor, then restore those choices in reverse.
  • In multiplayer, do not treat pause as a private per-client gameplay freeze. Use local UI for menus, and let the server/game rules decide whether the shared game world can pause.

What it actually does

Set Game Paused is a Gameplay Statics helper around the engine's pause path. It asks the current game world to enter or leave a paused state and tells you whether that request succeeded.

pseudocode of the engine behavior - not engine source

OpenPauseMenu:
    create or reuse the pause widget
    add it to the viewport

    bPauseSucceeded = SetGamePaused(true)
    if bPauseSucceeded:
        set input mode to UI Only or Game and UI
        show mouse cursor
        focus the menu widget
    else:
        remove or downgrade the menu because gameplay did not pause

Paused game-world time affects normal gameplay systems that are driven by the world tick and game time:

System Beginner read while paused
Actor movement/tick Normal gameplay ticking usually stops unless specifically configured to tick while paused.
Timers Timers that depend on world/game time usually stop advancing while the world is paused.
Physics and movement components Normal simulation is paused with the game world.
UMG/Slate UI UI can still render and handle input if focus/input mode are set up.
Audio/VFX Existing presentation may continue, stop, or ignore pause depending on asset/component settings. Treat this as content setup, not proof of pause success.
Real-time clocks Real-time values are separate from paused game time.

The node is not a UI node. It is valid to pause without a menu, or show a menu without pausing. The common pause menu uses both because the player expects the world to stop and the menu to accept input.

What the Return Value means

The Return Value answers:

Was the pause/unpause request accepted?

Use it like this:

Set Game Paused true
-> Branch Return Value

true:
    Set bMenuOpen true
    Set Input Mode UI Only
    Show Mouse Cursor true

false:
    Print String "Pause request failed"
    Remove menu or keep gameplay controls unchanged

If you ignore the Boolean, your UI state can lie:

  • the menu says "paused" while the game is still running;
  • input gets switched to UI-only even though the world did not pause;
  • the resume button tries to unpause a game that never paused;
  • in multiplayer, one client UI may imply authority it does not have.

Calling Set Game Paused false also returns whether the unpause request succeeded. If it returns false, do not immediately restore a normal gameplay UI state without understanding why the game is still paused.

The pause-menu pattern

Put the open/close flow where player UI and input already belong: usually the PlayerController, or a UI manager owned by it. Avoid putting the whole pause menu in a respawnable pawn if death, possession changes, or level transitions can replace that pawn.

For a simple single-player menu in a PlayerController Blueprint:

Input Pause
-> Branch bPauseMenuOpen

false path:
    Branch IsValid(PauseMenuWidget)
        false:
            Create Widget WBP_PauseMenu
                Owning Player = Self
            Set PauseMenuWidget

    Add to Viewport
    Set Game Paused true
    Branch Return Value
        true:
            Set Show Mouse Cursor true
            Set Input Mode UI Only
                Player Controller = Self
                In Widget to Focus = PauseMenuWidget
                Flush Input = true
            Set bPauseMenuOpen true
        false:
            Remove from Parent
            Print String "Pause failed"

true path:
    ClosePauseMenu function

Close from the widget or controller:

ClosePauseMenu
-> Set Game Paused false
-> Branch Return Value
   true:
       PauseMenuWidget Remove from Parent
       Set Show Mouse Cursor false
       Set Input Mode Game Only
           Player Controller = Self
           Flush Input = true
       Set bPauseMenuOpen false

If UI Only stops the controller's Pause input from firing again, that is not a pause bug. The menu owns input. Add a Resume button, give the focused widget a keyboard/controller close path, or deliberately use Game and UI after understanding that unhandled game input may still reach gameplay graphs.

Close input while paused

This is the trap behind many broken pause menus:

Input Pause
-> Set Game Paused true
-> Set Input Mode UI Only

Later:
player presses Escape
-> nothing happens

The usual causes are:

  1. The close input is bound on a pawn or controller path that is not receiving input in the current input mode.
  2. The widget was not focused or is not focusable.
  3. The input event/action is not configured to execute while paused in the input system you are using.
  4. The opening key was still considered pressed because input was not flushed.
  5. The widget was removed but the input mode/cursor state was not restored.

The robust beginner solution is to make the menu itself able to request close:

WBP_PauseMenu
-> ResumeButton OnClicked
-> Call ResumeRequested dispatcher

PlayerController
-> Bind ResumeRequested to ClosePauseMenu

For keyboard/controller close, put the handler on the focused widget or on an input path you have proven still runs while paused. Legacy key events expose an Execute when Paused option. Enhanced Input setups should be checked with the actual input action, input mode, and focus path in your project rather than assuming the same old key-event setting covers everything.

When it fails (and what failure does)

Failure is a false Return Value. There is no Failed execution pin.

Common causes:

  1. No valid game world or wrong context. The helper cannot apply pause to a useful world.
  2. The request is not accepted by the game-mode/controller pause rules. Multiplayer and custom framework code can restrict who may pause or unpause.
  3. You called it from a context that is not the authority for the shared world state. A client-side menu can be local UI without being allowed to pause the server's world.
  4. Unpause is blocked by existing pause rules. Native pause paths can track whether a pause can be cleared.
  5. You assumed UI setup was part of pause. The game paused, but the menu did not work because widget/input/cursor setup failed separately.

Failure does not automatically close the menu, restore input mode, hide the cursor, print a guaranteed warning, or call a fallback event. Branch on the Return Value and decide how your UI should recover.

What Set Game Paused does not do

  • It does not create, add, remove, focus, or destroy a widget.
  • It does not set input mode.
  • It does not show or hide the mouse cursor.
  • It does not make a widget focusable.
  • It does not guarantee that the same key can close the menu after input mode changes.
  • It does not replicate a private per-client pause menu as a gameplay pause.
  • It does not save game state, open a level, or reset actors.
  • It does not pause real time outside the game world.
  • It does not make every actor, component, timer, sound, or effect obey pause the same way if that object is configured to tick/play while paused.

Lookalikes - which one do I want?

Node / setting Use when It does not
Set Game Paused You want the game world paused or unpaused. Show a menu or route input.
Is Game Paused You need to read the current paused state. Change it.
Set Input Mode UI Only A menu should receive input while gameplay input stops. Pause simulation.
Set Input Mode Game and UI UI gets focus but game input may still run. Guarantee movement/look is blocked.
Set Input Mode Game Only Returning to normal gameplay. Hide cursor or unpause by itself.
Set Show Mouse Cursor You want a visible cursor for the local player. Focus widgets or pause the world.
Remove from Parent Hide/remove a widget from the viewport. Destroy gameplay state or unpause.
Set Global Time Dilation Slow time instead of a true pause. Stop all simulation or solve UI input.
Disable Input / Set Ignore Move Input Stop a specific actor/controller input path. Pause the world.

Rule of thumb: pause stops the world; input mode routes controls; widgets show the menu. A working pause menu needs all three decisions.

Going deeper