public override TConfigClass GetConfiguration() { if (CachedConfig != null) { return(CachedConfig as TConfigClass); } var Config = CachedConfig = base.GetConfiguration(); // Set max duration to 1 hour Config.MaxDuration = 60 * 60; // Get output filenames LocalOutputDirectory = Path.GetFullPath(Config.ProfileOutputDirectory); // Create the local profiling data directory if needed if (!Directory.Exists(LocalOutputDirectory)) { Directory.CreateDirectory(LocalOutputDirectory); } ScreenshotDirectory = Config.ScreenshotDirectory; if (!String.IsNullOrEmpty(ScreenshotDirectory)) { if (Directory.Exists(ScreenshotDirectory)) { Directory.Delete(ScreenshotDirectory, true); } Directory.CreateDirectory(ScreenshotDirectory); } PGOPlatform = PGOPlatformManager.GetPGOPlatform(Context.GetRoleContext(UnrealTargetRole.Client).Platform); PGOPlatform.ApplyConfiguration(Config); return(Config as TConfigClass); }