UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PackageReload.cpp File Reference

Classes

class  FPackageReferencersHelper
 
struct  PackageReloadInternal::FExistingPackageReference
 
struct  PackageReloadInternal::FExistingPackageReferences
 
struct  PackageReloadInternal::FNewPackageReference
 
struct  PackageReloadInternal::FNewPackageReferences
 
struct  PackageReloadInternal::FObjectAndPackageIndex
 
class  PackageReloadInternal::FReplaceObjectReferencesArchive
 

Namespaces

namespace  PackageReloadInternal
 

Functions

void PackageReloadInternal::MarkPackageReplaced (UPackage *InPackage)
 
void PackageReloadInternal::ClearPackageReplaced (UPackage *InPackage)
 
void PackageReloadInternal::MakeObjectPurgeable (UObject *InObject)
 
void PackageReloadInternal::MakePackagePurgeable (UPackage *InPackage)
 
void PackageReloadInternal::DumpExternalReferences (UObject *InObject, UPackage *InPackage)
 
UPackagePackageReloadInternal::ValidateAndPreparePackageForReload (UPackage *InExistingPackage)
 
UPackagePackageReloadInternal::LoadReplacementPackage (UPackage *InExistingPackage, const uint32 InLoadFlags)
 
TSharedPtr< FPackageReloadedEventPackageReloadInternal::GeneratePackageReloadEvent (UPackage *InExistingPackage, UPackage *InNewPackage)
 
void PackageReloadInternal::SortPackagesForReload (const FName PackageName, TSet< FName > &ProcessedPackages, TArray< UPackage * > &SortedPackagesToReload, const TMap< FName, UPackage * > &AllPackagesToReload, IAssetRegistryInterface &InAssetRegistry)
 
void SortPackagesForReload (TArray< UPackage * > &PackagesToReload)
 
UPackageReloadPackage (UPackage *InPackageToReload, const uint32 InLoadFlags)
 
void ReloadPackages (const TArrayView< FReloadPackageData > &InPackagesToReload, TArray< UPackage * > &OutReloadedPackages, int32 InNumPackagesPerBatch)
 

Function Documentation

◆ ReloadPackage()

UPackage * ReloadPackage ( UPackage InPackageToReload,
const uint32  InLoadFlags 
)

Checks to see if a package has been loaded, and if so, unloads it before loading it again. Does nothing if the package isn't currently loaded.

Parameters
InPackageToReloadPointer to the package to reload (pointer will become invalid if the package is reloaded successfully).
InLoadFlagsFlags controlling loading behavior for the replacement package.
Returns
Reloaded package if successful, null otherwise.

◆ ReloadPackages()

void ReloadPackages ( const TArrayView< FReloadPackageData > &  InPackagesToReload,
TArray< UPackage * > &  OutReloadedPackages,
const int32  InNumPackagesPerBatch = 1 
)

Given an array of packages, checks to see if each package has been loaded, and if so, unloads it before loading it again. Does nothing if the package isn't currently loaded.

Note
This doesn't re-order the loads to make sure that dependencies are re-loaded first, you must handle that in your calling code (
See also
SortPackagesForReload).
Parameters
InPackagesToReloadArray of packages to reload.
OutReloadedPackagesArray of new package pointers. An entry will be present for every item from InPackagesToReload, however they may be null.
InNumPackagesPerBatchThe number of packages to process before running a pointer fix-up and GC. More packages per-batch will process faster, but consume more memory.

◆ SortPackagesForReload()

void SortPackagesForReload ( TArray< UPackage * > &  PackagesToReload)

Given an array of packages, sort them so that dependencies will be processed before the packages that depend on them.

Parameters
PackagesToReloadArray of packages to sort. Will be replaced with the sorted data.