UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SavePackageUtilities.cpp File Reference
#include "UObject/SavePackage/SavePackageUtilities.h"
#include "Algo/Sort.h"
#include "Algo/Unique.h"
#include "AssetRegistry/AssetData.h"
#include "AssetRegistry/CookTagList.h"
#include "Blueprint/BlueprintSupport.h"
#include "Cooker/CookDependency.h"
#include "Cooker/CookEvents.h"
#include "CoreMinimal.h"
#include "HAL/FileManager.h"
#include "Hash/Blake3.h"
#include "Interfaces/ITargetPlatform.h"
#include "IO/IoHash.h"
#include "Logging/StructuredLog.h"
#include "Misc/AssetRegistryInterface.h"
#include "Misc/CommandLine.h"
#include "Misc/ConfigCacheIni.h"
#include "Misc/PathViews.h"
#include "Misc/Paths.h"
#include "Misc/ScopeExit.h"
#include "Misc/ScopedSlowTask.h"
#include "SaveContext.h"
#include "Serialization/ArchiveSavePackageDataBuffer.h"
#include "Serialization/BulkData.h"
#include "Serialization/EditorBulkData.h"
#include "Serialization/CompactBinarySerialization.h"
#include "Serialization/CompactBinaryWriter.h"
#include "Serialization/FileRegionArchive.h"
#include "Serialization/LargeMemoryWriter.h"
#include "Serialization/PackageWriter.h"
#include "Tasks/Task.h"
#include "UObject/ArchiveCookContext.h"
#include "UObject/AssetRegistryTagsContext.h"
#include "UObject/Class.h"
#include "UObject/GCScopeLock.h"
#include "UObject/ImportExportCollector.h"
#include "UObject/Linker.h"
#include "UObject/LinkerLoad.h"
#include "UObject/LinkerSave.h"
#include "UObject/Object.h"
#include "UObject/ObjectRedirector.h"
#include "UObject/ObjectSaveContext.h"
#include "UObject/Package.h"
#include "UObject/SavePackage.h"
#include "UObject/UObjectHash.h"
#include "UObject/UObjectThreadContext.h"
#include "UObject/UnrealType.h"

Classes

class  UE::SavePackageUtilities::FPackageBackupUtility
 

Namespaces

namespace  UE
 
namespace  UE::SavePackageUtilities
 
namespace  UE::AssetRegistry
 

Functions

 DEFINE_LOG_CATEGORY (LogSavePackage)
 
 UE_TRACE_CHANNEL_DEFINE (SaveTimeChannel)
 
bool UE::IsSavingPackage (UObject *InOuter)
 
EObjectMark UE::SavePackageUtilities::GetExcludedObjectMarksForTargetPlatform (const class ITargetPlatform *TargetPlatform)
 
void UE::SavePackageUtilities::FindMostLikelyCulprit (const TArray< UObject * > &BadObjects, FSaveContext &SaveContext, ESaveRealm HarvestedRealm, UObject *&OutMostLikelyCulprit, UObject *&OutReferencer, const FProperty *&OutReferencerProperty, bool &OutIsCulpritArchetype, FString &OutDiagnosticText)
 
ESavePackageResult UE::SavePackageUtilities::FinalizeTempOutputFiles (const FPackagePath &PackagePath, const FSavePackageOutputFileArray &OutputFiles, const FDateTime &FinalTimeStamp)
 
void UE::SavePackageUtilities::WriteToFile (const FString &Filename, const uint8 *InDataPtr, int64 InDataSize)
 
void UE::SavePackageUtilities::AsyncWriteFile (FLargeMemoryPtr Data, const int64 DataSize, const TCHAR *Filename, EAsyncWriteOptions Options, TArrayView< const FFileRegion > InFileRegions)
 
void UE::SavePackageUtilities::AsyncWriteFile (EAsyncWriteOptions Options, FSavePackageOutputFile &File)
 
void UE::SavePackageUtilities::GetCDOSubobjects (UObject *CDO, TArray< UObject * > &Subobjects)
 
bool UE::SavePackageUtilities::IsUpdatingLoadedPath (bool bIsCooking, const FPackagePath &TargetPackagePath, uint32 SaveFlags)
 
bool UE::SavePackageUtilities::IsProceduralSave (bool bIsCooking, const FPackagePath &TargetPackagePath, uint32 SaveFlags)
 
void UE::SavePackageUtilities::CallPreSave (UObject *Object, FObjectSaveContextData &ObjectSaveContext)
 
void UE::SavePackageUtilities::CallPreSaveRoot (UObject *Object, FObjectSaveContextData &ObjectSaveContext)
 
void UE::SavePackageUtilities::CallPostSaveRoot (UObject *Object, FObjectSaveContextData &ObjectSaveContext, bool bNeedsCleanup)
 
EObjectFlags UE::SavePackageUtilities::NormalizeTopLevelFlags (EObjectFlags TopLevelFlags, bool bIsCooking)
 
void UE::SavePackageUtilities::IncrementOutstandingAsyncWrites ()
 
void UE::SavePackageUtilities::DecrementOutstandingAsyncWrites ()
 
void UE::SavePackageUtilities::ResetCookStats ()
 
int32 UE::SavePackageUtilities::GetNumPackagesSaved ()
 

Variables

bool GIsSavingPackage = false
 
const FName UE::SavePackageUtilities::NAME_World ("World")
 
const FName UE::SavePackageUtilities::NAME_Level ("Level")
 
const FName UE::SavePackageUtilities::NAME_PrestreamPackage ("PrestreamPackage")
 

Function Documentation

◆ DEFINE_LOG_CATEGORY()

DEFINE_LOG_CATEGORY ( LogSavePackage  )

◆ UE_TRACE_CHANNEL_DEFINE()

UE_TRACE_CHANNEL_DEFINE ( SaveTimeChannel  )

Variable Documentation

◆ GIsSavingPackage

bool GIsSavingPackage = false

Set while in SavePackage() to advertise that a package is being saved Deprecated, use IsSavingPackage instead

See also
IsSavingPackage()