void AGameSession::HandleMatchHasStarted() { UWorld* World = GetWorld(); if (UOnlineEngineInterface::Get()->DoesSessionExist(World, SessionName)) { for (FConstPlayerControllerIterator Iterator = World->GetPlayerControllerIterator(); Iterator; ++Iterator) { APlayerController* PlayerController = *Iterator; if (!PlayerController->IsLocalController()) { PlayerController->ClientStartOnlineSession(); } } FOnlineSessionStartComplete CompletionDelegate = FOnlineSessionStartComplete::CreateUObject(this, &AGameSession::OnStartSessionComplete); UOnlineEngineInterface::Get()->StartSession(World, SessionName, CompletionDelegate); } if (STATS && !UE_BUILD_SHIPPING) { if (FParse::Param(FCommandLine::Get(), TEXT("MatchAutoStatCapture"))) { UE_LOG(LogGameSession, Log, TEXT("Match has started - begin automatic stat capture")); GEngine->Exec(GetWorld(), TEXT("stat startfile")); } } }