UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Virtualization Namespace Reference

Namespaces

namespace  Experimental
 
namespace  Private
 

Classes

struct  FBackendStats
 
struct  FInitParams
 
class  FNullVirtualizationSystem
 
struct  FPayloadActivityInfo
 
struct  FPullRequest
 
struct  FPushRequest
 
struct  FPushResult
 
struct  FRehydrationInfo
 
struct  FRehydrationResult
 
struct  FVirtualizationResult
 
class  IPayloadProvider
 
class  IVirtualizationSystem
 

Typedefs

using FAnalyticsRecordEvent = TTSMulticastDelegate< void(const FString &, const TArray< FAnalyticsEventAttribute > &, EAnalyticsFlags)>
 

Enumerations

enum class  EAnalyticsFlags : uint32 { None = 0 , Flush = 1 << 0 }
 
enum class  EStorageType : int8 { Cache = 0 , Persistent }
 
enum class  EQueryResult : int8 { Success = 0 , Failure_Unknown , Failure_NotImplemented }
 
enum class  EPayloadStatus : int8 { Invalid = -1 , NotFound = 0 , FoundPartial , FoundAll }
 
enum class  EVirtualizationResult : uint8 { Success = 0 , Failed }
 
enum class  ERehydrationResult : uint8 { Success = 0 , Failed }
 
enum class  EPayloadFilterReason : uint16 {
  None = 0 , Asset = 1 << 0 , Path = 1 << 1 , MinSize = 1 << 2 ,
  EditorBulkDataCode = 1 << 3 , MapContent = 1 << 4
}
 
enum class  EVirtualizationOptions : uint32 { None = 0 , Checkout = 1 << 0 }
 
enum class  ERehydrationOptions : uint32 { None = 0 , Checkout = 1 << 0 }
 
enum class  EInitializationFlags : uint32 { None = 0 , ForceInitialize = 1 << 0 }
 

Functions

Private::IVirtualizationSystemFactoryFindFactory (FName SystemName)
 
bool ShouldLazyInitializeSystem (const FConfigFile &ConfigFile)
 
FName FindSystemToMount (const FConfigFile &ConfigFile)
 
void Initialize (EInitializationFlags Flags)
 
void Initialize (const FInitParams &InitParams, EInitializationFlags Flags)
 
bool ShouldInitializePreSlate ()
 
void Shutdown ()
 
FAnalyticsRecordEventGetAnalyticsRecordEvent ()
 
 ENUM_CLASS_FLAGS (EPayloadFilterReason)
 
 ENUM_CLASS_FLAGS (EVirtualizationOptions)
 
 ENUM_CLASS_FLAGS (ERehydrationOptions)
 
 ENUM_CLASS_FLAGS (EInitializationFlags)
 

Variables

TUniquePtr< IVirtualizationSystemGVirtualizationSystem = nullptr
 
FName GVirtualizationSystemName
 
constexpr uint16 NumPayloadFilterReasons = 6
 

Typedef Documentation

◆ FAnalyticsRecordEvent

Enumeration Type Documentation

◆ EAnalyticsFlags

Used to customize the analytics events being sent via the virtualization system

Enumerator
None 
Flush 

The event needs to be completely handled/flushed by the listening systems before returning. Commonly used when sending events right before terminating the process

◆ EInitializationFlags

Optional flags that change how the VA system is initialized

Enumerator
None 

No flags are set

ForceInitialize 

Forces the initialization to occur, ignoring and of the lazy initialization flags

◆ EPayloadFilterReason

This enum describes the reasons why a payload may not be virtualized

Enumerator
None 

Not filtered, the payload can be virtualized

Asset 

Filtered due to the asset type of the owning UObject

Path 

Filtered due to the path of the owning UPackage

MinSize 

Filtered because the payload size is below the minimum size for virtualization

EditorBulkDataCode 

Filtered because the owning editor bulkdata had virtualization disabled programmatically

MapContent 

Filtered because the package is either a UMap or the owning editor bulkdata is under a UMapBuildDataRegistry

◆ EPayloadStatus

Describes the status of a payload in regards to a backend storage system

Enumerator
Invalid 

The payload id was not value

NotFound 

The payload was not found in any backend for the given storage type

FoundPartial 

The payload was found in at least one backend but was not found in all backends available for the given storage type

FoundAll 

The payload was found in all of the backends available for the given storage type

◆ EQueryResult

The result of a query. Success indicates that the query worked and that the results are valid and can be used. Any other value indicates that the query failed in some manner and that the results cannot be trusted and should be discarded.

Enumerator
Success 

The query succeeded and the results are valid

Failure_Unknown 

The query failed with an unspecified error

Failure_NotImplemented 

The query failed because the current virtualization system has not implemented it

◆ ERehydrationOptions

Options used when rehydrating packages

Enumerator
None 
Checkout 

Attempt to check out files from revision control if needed

◆ ERehydrationResult

The result of the re-hydration process

Enumerator
Success 

The re-hydration process ran with no problems to completion.

Failed 

The process failed before completion and nothing was re-hydrate

◆ EStorageType

Describes the type of storage to use for a given action

Enumerator
Cache 

Store in the local cache backends, this can be called from any thread

Persistent 

Store in the persistent backends, this can only be called from the game thread due to limitations with ISourceControlModule.

◆ EVirtualizationOptions

Options used when virtualizing packages

Enumerator
None 
Checkout 

Attempt to check out files from revision control if needed

◆ EVirtualizationResult

The result of the virtualization process

Enumerator
Success 

The virtualization process ran with no problems to completion.

Failed 

The process failed before completion and nothing was virtualized

Function Documentation

◆ ENUM_CLASS_FLAGS() [1/4]

UE::Virtualization::ENUM_CLASS_FLAGS ( EInitializationFlags  )

◆ ENUM_CLASS_FLAGS() [2/4]

UE::Virtualization::ENUM_CLASS_FLAGS ( EPayloadFilterReason  )

◆ ENUM_CLASS_FLAGS() [3/4]

UE::Virtualization::ENUM_CLASS_FLAGS ( ERehydrationOptions  )

◆ ENUM_CLASS_FLAGS() [4/4]

UE::Virtualization::ENUM_CLASS_FLAGS ( EVirtualizationOptions  )

◆ FindFactory()

Private::IVirtualizationSystemFactory * UE::Virtualization::FindFactory ( FName  SystemName)

Utility function for finding a IVirtualizationSystemFactory for a given system name

◆ FindSystemToMount()

FName UE::Virtualization::FindSystemToMount ( const FConfigFile ConfigFile)

◆ GetAnalyticsRecordEvent()

CORE_API FAnalyticsRecordEvent & UE::Virtualization::GetAnalyticsRecordEvent ( )

This event is used by the virtualization system to send analytics events. Telemetry systems that wish to process asset virtualization events should register to this. Note that these events could be raised on different threads so the listener will need to be threadsafe.

◆ Initialize() [1/2]

CORE_API void UE::Virtualization::Initialize ( const FInitParams InitParams,
EInitializationFlags  Flags 
)

This version of Initialize takes parameters via the FInitParams structure.

◆ Initialize() [2/2]

CORE_API void UE::Virtualization::Initialize ( EInitializationFlags  Flags)

Creates the global IVirtualizationSystem if it has not already been set up. This can be called explicitly during process start up but it will also be called by IVirtualizationSystem::Get if it detects that the IVirtualizationSystem has not yet been set up.

This version will use the default values of FInitParams.

◆ ShouldInitializePreSlate()

CORE_API bool UE::Virtualization::ShouldInitializePreSlate ( )

Returns if the system should be initialized before the slate system has been initialized or not.

Originally the VA system would be initialized as early as possible, but this would occur before slate has been set up and prevents us from initiating interactive dialogs. Now that we have the firm rule that engine content cannot be virtualized it should be safe for us to initialize the system after slate allowing dialogs.

This function exists so that a project could opt into the original behavior by setting the config file value "engine.ini:[Core.ContentVirtualization]:InitPreSlate=true" This is only provided as a way for teams to quickly fix any issue that the later initialization might cause and is not a long term feature. This will be deprecated and removed in future releases.

Note that this is only really supported in the editor as we use the global config file, not one provided. Standalone programs should just initialize the system as needed.

◆ ShouldLazyInitializeSystem()

bool UE::Virtualization::ShouldLazyInitializeSystem ( const FConfigFile ConfigFile)

Utility determining if the virtualization system should be initialized immediately or on first use

◆ Shutdown()

CORE_API void UE::Virtualization::Shutdown ( )

Shutdowns the global IVirtualizationSystem if it exists. Calling this is optional as the system will shut itself down along with the rest of the engine.

Variable Documentation

◆ GVirtualizationSystem

TUniquePtr<IVirtualizationSystem> UE::Virtualization::GVirtualizationSystem = nullptr

◆ GVirtualizationSystemName

FName UE::Virtualization::GVirtualizationSystemName

◆ NumPayloadFilterReasons

constexpr uint16 UE::Virtualization::NumPayloadFilterReasons = 6
constexpr