I’m currently working on a feature for a potential real-time tactics game that requires the game to be “paused” without actually pausing the entire game, known as “Real-Time with Pause” or “Active Pause”. Players should still be able to move the camera, use the interface and menus, and give orders, and the game should react to that as normal. But the 3D world itself, all animations, AI behavior, actor movements, particles effects, physics simulations, should be completely frozen. I can’t use the normal Pause Game node obviously, as I still need a way to pause the entire game, except for a pause menu.
I did some research and found I could use time dilation, but the log will show a warning that the value can only be between 0.0001 and 20 and will be capped. While at 0.0001 everything seems to be frozen, this is obviously not the case; everything still moves but very very slowly. In principle I could live with that limitation, but I would prefer to completely stop “time”. Is there a way to do this properly?
Setting Custom Time Dilation on an actor does work, even with particle systems, but not physics (which I assume is why Global Time Dilation cannot be set to 0). So if I can set Custom Time Dilation on all actors that need to stop moving and perhaps freeze the AI execution, how can I ensure that physics bodies too are “frozen”?