There is a SlateThrottleManager that is per default set to allow throttling to keep the UI responsive under certain circumstances.
The code where the Tick block is happening:
EditorEngine.cpp
...
if( FSlateThrottleManager::Get().IsAllowingExpensiveTasks() )
{
FKismetDebugUtilities::NotifyDebuggerOfStartOfGameFrame(EditorContext.World());
EditorContext.World()->Tick(TickType, DeltaSeconds);
bAWorldTicked = true;
FKismetDebugUtilities::NotifyDebuggerOfEndOfGameFrame(EditorContext.World());
}
...
The ThrottleManager constructor function
FSlateThrottleManager::FSlateThrottleManager( )
: bShouldThrottle(1)
, CVarAllowThrottle(TEXT("Slate.bAllowThrottling"), bShouldThrottle, TEXT("Allow Slate to throttle parts of the engine to ensure the UI is responsive") )
, ThrottleCount(0)
{ }
That code tells us that there is a ConsoleVariable named “Slate.bAllowThrottling”.
So if you want to keep the world ticking, use the console and enter the command:
Slate.bAllowThrottling false