When do Timers get paused (if they ever do) without explicitly pausing them.

From What I found FimerManager manages internal clock which gets updated in tick based on DeltaTime. And Engine clamps DeltaTime’s max value to 0.4 seconds.

Does that mean whenever FPS drops below 2.5 FPS (hence deltaTime is more than 0.4 seconds), Internal Clock will not get correctly updated?

I want to know if my reason is correct and that is why Timer was paused or is it something else.

I faced this issue when my game was running and I locked my pc, and also while dragging editor window. Timer was paused in both cases.

Probably not related, but you can pause everything with:

UGameplayStatics::SetGamePaused(GetWorld(), isPaused);

And also exempt certain things from pause with:

SetTickableWhenPaused(true);

When you move a window, actor’s tick will pause, but almost nothing else… or rather not like you think. For example, if you have a UObject with a FTickableGameObject, it will technically pause… but when it continues, it will have ALL the time that was “paused” included in the Delay variable while actors will not.

I think this behavior is caused by Unreal Engine’s determination of unusual performance requirements or something like that. It will determine that things need to be paused under certain conditions but the behavior is different for different parts of the engine.

I haven’t seen this clamping, but it could be related to what I just mentioned. If UE feels like it requires too much performance, it will start to automatically pause and unpause stuff to try and keep up. The Delay variable can be MUCH different than what it is in reality.