No GameInstance tick in standalone

I have a custom game instance that uses a tick function by having a struct (FHolodeckGameInstanceTickFunction) that inherits from FTickFunction. The ExecuteTick function that I override gets correctly called in the game in the editor, but not in a standalone game. What is different between the two that would cause my tick function to not get called?

Here is the part of code that registers my tick function and executes it.

void UHolodeckGameInstance::FHolodeckGameInstanceTickFunction::ExecuteTick(float DeltaTime, enum ELevelTick TickType, ENamedThreads::Type CurrentThread, const FGraphEventRef& MyCompletionGraphEvent) {

	if (GameInstance->WorldSettings->GetAllowedTicksBetweenCommands() >= 0) {
		GameInstance->CurrentTickWait -= 1;

		if (GameInstance->CurrentTickWait <= 0) {
			UE_LOG(LogHolodeck, Warning, TEXT("Pausing Game."));
			GameInstance->SetGamePaused(true);
		}
	}
}

void UHolodeckGameInstance::Init(){

	Super::Init();
	
	MessageEndpoint = FMessageEndpoint::Builder("FHolodeckPawnGameInstanceMessageEndpoint")
		.Handling<FHolodeckSimulatorCommand>(this, &UHolodeckGameInstance::OnReceiveSimulatorCommand)
		.Handling<FHolodeckCommandMessage>(this, &UHolodeckGameInstance::OnReceiveCommandMessage);

	if (MessageEndpoint.IsValid())
	{
		MessageEndpoint->Subscribe<FHolodeckSimulatorCommand>();
		MessageEndpoint->Subscribe<FHolodeckCommandMessage>();
	}

	UWorld* world = GetWorld();
	if (world) {

		WorldSettings = (AHolodeckWorldSettings*)GetWorld()->GetWorldSettings();
		TickFunction = new FHolodeckGameInstanceTickFunction();
		TickFunction->GameInstance = this;
		TickFunction->RegisterTickFunction(world->GetCurrentLevel());
	}

	if(WorldSettings->GetAllowedTicksBetweenCommands() > 0){
		SetGamePaused(true);
	}
	
	StartServer();
}