Download

Pausing or slowing down game using BP ?

Is it possible to pause game or/and slow it down (slo-mo of variable rate) via Blueprint ?

For example, if I open in-game menu or inventory, I would like to pause game and then unpause it when menu/inventory is closed. Alternatively, when inventory is open, the game could slow down and then set back to normal timing when inventory is closed.

Easy / doable ? If so, how ?

Thanks

If theres a way for you to manipulate frame/tick rates then thats probably gonna be the easiest/most consistent. Wont be without its problems though.

Barring that, i can think of a workaround or two. Its tedious and probably needs you to edit large swaths of code if you already have things in place but its doable at least.

First thought:
Make a “movementMultiplier” variable which you probably want inside the gamemode BP.

You have to re/structure ALL your gameplay related code (movement rates, animations, AI update intervals) to reference this multiplier whenever you make stuff do things.

Itll take a bit of thought to make things consistent. And its easier if you havent actually done any of the code yet.

There is a node called “Set Global Time Dilation”. That might work?

Not sure. There are no details about it in the docs. The main thing is to have UI (UMG or whatever) working in real-time while game time is slowed down (and perhaps have player moving/playign anims/sounds in real-time too).

I thought about that, but it’s such a royal pita because everything has to be slowed down (particles, sounds, anims, movement, animated textures, etc.)

Did you already had a look into this thread -> https://forums.unrealengine.com/showthread.php?8238-Slowmo-and-Game-Pause-via-Blueprints-Tutorial ?

Nice, thanks. I’ll look into it.

There is also this: https://docs.unrealengine.com/latest/INT/BlueprintAPI/Utilities/Time/GetActorTimeDilation/index.html Not really sure how to use, but it seem it would allow slowing time only for certain actors, correct ?

You can set a global time dilation as well as a time dilation on a single actor.

If you plan to do it on a single actor you should have a look into this answer hub thread.