How i can make bit smarter pause?

There is pause node, but it pauses even materials and particle systems. I rather have nice pause with something still moving in background. Bu i cannot find a way to pause only certain actors, or better yet pause everything then unpause those few that make animated background for menu.

I can easily pause all actors that are handled by my scripts, but problem arises with physics actors and even worse with particle systems.
So i have few questions:

  • is there better way than go through all actors in scene and pause them one by one?
  • how do i pause particle systems in game, this is doable in editor so should be doable in game
  • is there easier way to freeze physics object than turning off its physics and setting velocity and rotation to zero? Some way that i do not need to store them and apply back when game is unpaused?

PS. We need more flexible pause/dilatation systems. For eg. slomo (bullet time) that is used in many games. Would be best if every actor had that tick rate and “freeze” properties exposed.

The way I do it is I have an array of actors I DON’T want to pause and when the game should pause, I set global dilation to some astronomically low number and iterate through my “don’t pause” actors array and set their local dilations to be the inverse. For example, I set global to 0.01 (usually lower but I don’t have the math handy) then set each actor in that array to 100.

I think each actor has a bool property which you just switch and it will keep running ignoring the pause. Check in documentation for “simulate on pause” or something like that.

to change per actor use Custom Time Dilation rather than global…and unlike global 0 will pause them…

Also this, can’t believe I forgot.

This is so helpful I just had to say thanks here. This as well as the reason why global time dilation is clamped at 0.00001 should be totaly added to the documentation.

In case you haven’t figured it out yet, there are two ways: Either set for each of the objects that should be frozen custom time dilation to zero or what might possibly be more effective use ‘SetGamePaused’ and then selectivly unpause only those elements that should move. But while the later seems the more effective choice I have not yet found a way to selectivly unpause them. Maybe im just doing it wrong. :confused:

You don’t “selectively unpause” them, you simply set the actors to “Tick While Paused”.

no prob…glad it helped…and agreed I’d love to see the documentation screaming these facts from the rooftops…I’d imagine the info would help plenty of people…