![]() |
UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
|
Namespaces | |
| namespace | DependsNode |
| namespace | Impl |
| namespace | Premade |
| namespace | Private |
| namespace | Utils |
Classes | |
| class | FAssetRegistryImpl |
| struct | FDependencyQuery |
| struct | FDeserializeObjectPackageData |
| struct | FDeserializePackageData |
| struct | FDeserializeTagData |
| class | FFiltering |
| class | FNameMapAwareArchive |
| struct | FPackageCustomVersion |
| class | FPackageCustomVersionsHandle |
| struct | FReadPackageDataDependenciesArgs |
| class | FRWScopeLockWithPriority |
| class | FScopedHighPriorityWaitTracker |
| struct | FSetManageReferencesContext |
| struct | FSetManageReferencesNodeData |
| struct | FSetManageReferencesScratch |
| struct | FShouldSetManagerContext |
| struct | FWritePackageDataArgs |
| class | TRWScopeLockWithPriority |
Typedefs | |
| using | FSetManageReferencesNodeDataMap = TMap< FDependsNode *, TUniquePtr< FSetManageReferencesNodeData > > |
| using | FInterfaceReadScopeLock = TRWScopeLockWithPriority< UE::TReadScopeLock< Private::FRWLockWithPriority > > |
| using | FInterfaceWriteScopeLock = TRWScopeLockWithPriority< UE::TWriteScopeLock< Private::FRWLockWithPriority > > |
| using | FInterfaceRWScopeLock = FRWScopeLockWithPriority |
| using | FChunkArrayRegistryHandle = FSetElementId |
Enumerations | |
| enum class | EManageSearchColor : uint8 { CookRule = 0 , Chunking = 1 , Num } |
| enum class | EManageSearchColorBit : uint32 { None = 0 , CookRule = (1 << static_cast<int32>(EManageSearchColor::CookRule)) , Chunking = (1 << static_cast<int32>(EManageSearchColor::Chunking)) , All = CookRule | Chunking } |
| enum class | EDeferFlag { CanExecuteGameThread , RetryLater , QueueToGameThread , BypassNow } |
| enum class | EScanFlags : uint32 { None = 0 , ForceRescan = 1 << 0 , IgnoreDenyListScanFilters = 1 << 1 , WaitForInMemoryObjects = 1 << 2 , IgnoreInvalidPathWarning = 1 << 3 } |
| enum class | EAssetSetManagerAssetFlags : uint32 { None = 0x0 , ScriptPackage = 0x1 } |
| enum class | EAppendMode { Rebuild , OnlyUpdateExisting , Append , OnlyUpdateNew } |
| enum | EReadPackageDataMainErrorCode { Unknown = 0 , InvalidObjectCount = 1 , InvalidTagCount = 2 , InvalidTag = 3 } |
| enum class | EGetMostImportantAssetFlags { None = 0 , RequireOneTopLevelAsset = 0x1 , IgnoreSkipClasses = 0x2 } |
| enum class | EDependencyCategory : uint8 { Package = 0x01 , Manage = 0x02 , SearchableName = 0x04 , None = 0x0 , All = Package | Manage | SearchableName } |
| enum class | EDependencyProperty : uint8 { None = 0 , Hard = 1 << 0 , Game = 1 << 1 , Build = 1 << 2 , PackageMask = Hard | Game | Build , SearchableNameMask = None , Direct = 1 << 3 , CookRule = 1 << 4 , ManageMask = Direct | CookRule , AllMask = PackageMask | SearchableNameMask | ManageMask } |
| enum class | EDependencyQuery : uint32 { NoRequirements = 0 , Hard = 1 << 0 , NotHard = 1 << 1 , Soft = NotHard , Game = 1 << 2 , NotGame = 1 << 3 , EditorOnly = NotGame , Build = 1 << 4 , NotBuild = 1 << 5 , Propagation = 1 << 6 , Direct = 1 << 8 , NotDirect = 1 << 9 , Indirect = NotDirect , CookRule = 1 << 10 , NotCookRule = 1 << 11 , ChunkOnly = NotCookRule , PackageMask = Hard | NotHard | Game | NotGame | Build | NotBuild , SearchableNameMask = 0x0000 , ManageMask = Direct | NotDirect | CookRule | NotCookRule } |
| enum class | ESerializationTarget : uint8 { ForGame , ForDevelopment } |
| enum class | EExists { DoesNotExist , Exists , Unknown } |
| enum class | EEnumerateAssetsFlags : uint32 { None = 0 , OnlyOnDiskAssets = (1 << 0) , AllowUnmountedPaths = (1 << 1) , AllowUnfilteredArAssets = (1 << 2) , AllowAll = AllowUnmountedPaths | AllowUnfilteredArAssets , Parallel = (1 << 3) } |
| enum class | EEnumeratePackagesFlags : uint32 { None = 0 , Parallel = (1 << 0) } |
| enum class | EExtraDependencyFlags : uint32 { None = 0 , Build = 0x1 , PropagateManage = 0x2 } |
Variables | |
| const FName | WildcardFName (TEXT("*")) |
| const FTopLevelAssetPath | WildcardPathName (TEXT("/*"), TEXT("*")) |
| const FName | Stage_ChunkCountFName (TEXT("Stage_ChunkCount")) |
| const FName | Stage_ChunkSizeFName (TEXT("Stage_ChunkSize")) |
| const FName | Stage_ChunkCompressedSizeFName (TEXT("Stage_ChunkCompressedSize")) |
| const FName | Stage_ChunkInstalledSizeFName (TEXT("Stage_ChunkInstalledSize")) |
| const FName | Stage_ChunkStreamingSizeFName (TEXT("Stage_ChunkStreamingSize")) |
| const FName | Stage_ChunkOptionalSizeFName (TEXT("Stage_ChunkOptionalSize")) |
| constexpr int32 | ManageSearchColorsNum = static_cast<int32>(EManageSearchColor::Num) |
| constexpr int32 | FARCompactBinaryVersion = 1 |
| constexpr FStringView | CookTagPrefix = TEXTVIEW("Cook_") |
| using UE::AssetRegistry::FInterfaceReadScopeLock = typedef TRWScopeLockWithPriority<UE::TReadScopeLock<Private::FRWLockWithPriority> > |
| using UE::AssetRegistry::FInterfaceWriteScopeLock = typedef TRWScopeLockWithPriority<UE::TWriteScopeLock<Private::FRWLockWithPriority> > |
| using UE::AssetRegistry::FSetManageReferencesNodeDataMap = typedef TMap<FDependsNode*, TUniquePtr<FSetManageReferencesNodeData> > |
|
strong |
Enum controlling how FAssetRegistryStates are merged during Append functions, e.g. when adding plugin's serialized AssetRegistry into global AssetRegistry.
| Enumerator | |
|---|---|
| Rebuild | |
| OnlyUpdateExisting | |
| Append | |
| OnlyUpdateNew | |
|
strong |
|
strong |
Options for how AssetRegistry functions should handle operations that must only be run on the gamethread.
|
strong |
Multiple meanings of dependency are used in the AssetRegistry; the category specifes which meaning is referred to. During queries for dependencies, the Category variable can be a bitfield combination of Category values, in which case dependencies in any of the specified categories are returned.
| Enumerator | |
|---|---|
| Package | |
| Manage | |
| SearchableName | |
| None | |
| All | |
|
strong |
Properties that might be possessed by a dependency. Each property is specific to a EDependencyCategory value.
| Enumerator | |
|---|---|
| None | |
| Hard | The target asset must be loaded before the source asset can finish loading.The lack of this property is known as a Soft dependency, and indicates only that the source asset expects the target asset to be loadable on demand. |
| Game | The target asset is needed in the game as well as the editor. The lack of this property is known as an EditorOnly dependency. |
| Build | Fields on the target asset are used in the transformation of the source asset during cooking in addition to being required in the game or editor. The lack of this property indicates that the target asset is required in game or editor, but is not required during cooking. |
| PackageMask | |
| SearchableNameMask | |
| Direct | The target asset was specified explicitly as a managee by the source asset. Lack of this property is known as an indirect dependency; the target asset is reachable by following the transitive closure of Direct Manage Dependencies and Package dependencies from the source asset. |
| CookRule | The manager manages the target for the purposes of deciding its CookRule in addition to deciding its Chunk assignment. Lack of this property is known as a ChunkOnly dependency. Every manage dependency used for deciding the CookRule also decides the Chunk; Chunk assignment is a superset of CookRule assignment. |
| ManageMask | |
| AllMask | |
|
strong |
Flags that specify required properties (or required-not-present properties) for a dependency to be returned from a query. Values in this enum correspond to values in EDependencyProperty; each EDependencyProperty value has a positive and negative equivalent in this enum. This allows a single bitfield to indicate required-present, required-not-present, or dont-care for each property. For any category-specific values, those values apply only to dependencies in the category, and do not impose restrictions on dependencies from other categories.
| Enumerator | |
|---|---|
| NoRequirements | |
| Hard | Return only dependencies with EDependencyProperty::Hard. |
| NotHard | Return only dependencies without EDependencyProperty::Hard. |
| Soft | |
| Game | Return only dependencies with EDependencyProperty::Game. |
| NotGame | Return only dependencies without EDependencyProperty::Game. |
| EditorOnly | |
| Build | Return only dependencies with EDependencyProperty::Build. |
| NotBuild | Return only dependencies without EDependencyProperty::Build. |
| Propagation | Return only dependencies that cause propagation of manage dependencies, which means either Game or Build. Presence of the Propagation flag in a query causes the Game, NotGame, EditorOnly, Build, and NotBuild flags to be ignored in the query if present. Either Game or Build is sufficient to pass the query no matter which of those other flags are present. Hard vs Soft is still respected, and Soft Build or Soft Game dependencies will be skipped query if Hard is required. |
| Direct | Return only dependencies with EDependencyProperty::Direct. |
| NotDirect | Return only dependencies without EDependencyProperty::Direct. |
| Indirect | |
| CookRule | Return only dependencies with EDependencyProperty::CookRule. |
| NotCookRule | Return only dependencies without EDependencyProperty::CookRule. |
| ChunkOnly | |
| PackageMask | |
| SearchableNameMask | |
| ManageMask | |
|
strong |
| Enumerator | |
|---|---|
| None | No flags. This implies a request to filter by some properties, because filtering is the default state that that is turned off by some flags; see e.g. AllowUnfilteredAssets. |
| OnlyOnDiskAssets | If set, only DiskGatheredData are returned, AssetDatas are not created from in-memory UObjects. |
| AllowUnmountedPaths | If set, unmounted asset paths (!FPackageName::IsValidPath) are returned. When not set (the default), they are skipped. |
| AllowUnfilteredArAssets | If set, asset paths are returned even if UE::AssetRegistry::FFiltering::ShouldSkipAsset is true for them. When not set (the default), they are skipped. |
| AllowAll | All allowflags are set, no discovered assets are filtered. Does not impact memory vs OnDiskAssets; in-memory assets may still be skipped even if this flag is set, depending on whether OnlyOnDiskAssets is set. |
| Parallel | Enumeration of the Assets is done with ParallelFor; the callback must be threadsafe. This flag is a request only, and some functions may not support it or may ignore it if not performant; caller must behave correctly if callbacks are called singlethreadedly. |
|
strong |
|
strong |
Return values for AssetRegistry functions
| Enumerator | |
|---|---|
| DoesNotExist | |
| Exists | |
| Unknown | |
|
strong |
Bitfield of flags written into a package's AssetRegistry DependencyData section to represent what kind of dependency is stored for each PackageName in ExtraPackageDependencies. Values are serialized as integers; new bits can be added as necessary, but the integer values for existing enum values may not be changed.
| Enumerator | |
|---|---|
| None | |
| Build | |
| PropagateManage | |
|
strong |
|
strong |
In SetManagerReferences, we execute a graph search within the graph of PackageDependencies for Assets to decide which Assets should be marked as having Managed properties. We use a graph search painting algorithm to apply multiple properties within a single graph search. A painting algorithm keeps track of the current list of properties to apply to each visited vertex, and filters that list of properties depending on the edge properties when traversing an edge. The list of Managed properties we paint during SetManageReferences is given by the values of EManageSearchColor.
| Enumerator | |
|---|---|
| CookRule | |
| Chunking | |
| Num | |
|
strong |
|
strong |
|
strong |
| COREUOBJECT_API FARFilter UE::AssetRegistry::ConvertToNonCompiledFilter | ( | const FARCompiledFilter & | CompiledFilter | ) |
| FString UE::AssetRegistry::CreateStandardFilename | ( | const FString & | InPath | ) |
| UE::AssetRegistry::ENUM_CLASS_FLAGS | ( | EAssetSetManagerAssetFlags | ) |
| UE::AssetRegistry::ENUM_CLASS_FLAGS | ( | EDependencyCategory | ) |
| UE::AssetRegistry::ENUM_CLASS_FLAGS | ( | EDependencyProperty | ) |
| UE::AssetRegistry::ENUM_CLASS_FLAGS | ( | EDependencyQuery | ) |
| UE::AssetRegistry::ENUM_CLASS_FLAGS | ( | EEnumerateAssetsFlags | ) |
| UE::AssetRegistry::ENUM_CLASS_FLAGS | ( | EEnumeratePackagesFlags | ) |
| UE::AssetRegistry::ENUM_CLASS_FLAGS | ( | EExtraDependencyFlags | ) |
| UE::AssetRegistry::ENUM_CLASS_FLAGS | ( | EManageSearchColorBit | ) |
| UE::AssetRegistry::ENUM_CLASS_FLAGS | ( | EScanFlags | ) |
| ASSETREGISTRY_API void UE::AssetRegistry::GetAssetForPackages | ( | TConstArrayView< FName > | PackageNames, |
| TMap< FName, FAssetData > & | OutPackageToAssetData | ||
| ) |
Given a list of packages, gather the most important assets for each package. If multiple assets are in a package, the most important asset will be added. If a package does not exist or does not have any assets, no entry will be added for that package name.
| COREUOBJECT_API FName UE::AssetRegistry::GetClassNameBlueprint | ( | ) |
| COREUOBJECT_API FName UE::AssetRegistry::GetClassNameBlueprintCore | ( | ) |
| COREUOBJECT_API FName UE::AssetRegistry::GetClassNameBlueprintGeneratedClass | ( | ) |
| COREUOBJECT_API FName UE::AssetRegistry::GetClassNameObject | ( | ) |
| COREUOBJECT_API FName UE::AssetRegistry::GetClassNameObjectRedirector | ( | ) |
| COREUOBJECT_API FTopLevelAssetPath UE::AssetRegistry::GetClassPathBlueprint | ( | ) |
| COREUOBJECT_API FTopLevelAssetPath UE::AssetRegistry::GetClassPathBlueprintCore | ( | ) |
| COREUOBJECT_API FTopLevelAssetPath UE::AssetRegistry::GetClassPathBlueprintGeneratedClass | ( | ) |
| COREUOBJECT_API FTopLevelAssetPath UE::AssetRegistry::GetClassPathObject | ( | ) |
| COREUOBJECT_API FTopLevelAssetPath UE::AssetRegistry::GetClassPathObjectRedirector | ( | ) |
| ASSETREGISTRY_API const FAssetData * UE::AssetRegistry::GetMostImportantAsset | ( | TConstArrayView< const FAssetData * > | PackageAssetDatas, |
| EGetMostImportantAssetFlags | InFlags = EGetMostImportantAssetFlags::None |
||
| ) |
Given a list of asset datas for a specific package, find an asset considered "most important" or "representative". This is distinct from a Primary asset, and is used for user facing representation of a package or other cases where you need to relate information about a package to an asset.
Usually there is only 1 asset per package so this is straightforward, however in the multiple asset case it: Tries to find the "UAsset" via the FAssetData::IsUAsset() function. (i.e. asset name matches package name) If none exist, tries to find a "Top Level Asset" using FAssetData::IsToplevelAsset(). (i.e. outer == package) If only one exists, use that. Otherwise, if EGetMostImportantAssetFlags::RequireOneTopLevelAsset isn't set, gather the set of possibles and return the first sorted on asset class then name. If no top level assets, all package assets If multiple top level assets, all top level assets
A good source for PackageAssetDatas is FAssetRegistryState::GetAssetsByPackageName.
| COREUOBJECT_API FName UE::AssetRegistry::GetScriptPackageNameBlueprintGraph | ( | ) |
| COREUOBJECT_API FName UE::AssetRegistry::GetScriptPackageNameCoreUObject | ( | ) |
| COREUOBJECT_API FName UE::AssetRegistry::GetScriptPackageNameEngine | ( | ) |
| COREUOBJECT_API FName UE::AssetRegistry::GetScriptPackageNameUnrealEd | ( | ) |
| COREUOBJECT_API uint32 UE::AssetRegistry::GetTypeHash | ( | const FARFilter & | Filter | ) |
| ASSETREGISTRY_API FString UE::AssetRegistry::LexToString | ( | EScanFlags | Flags | ) |
| ASSETREGISTRY_API bool UE::AssetRegistry::ReadPackageDataDependencies | ( | FReadPackageDataDependenciesArgs & | Args | ) |
| ASSETREGISTRY_API bool UE::AssetRegistry::ReadPackageDataMain | ( | FArchive & | BinaryArchive, |
| const FString & | PackageName, | ||
| const FPackageFileSummary & | PackageFileSummary, | ||
| int64 & | OutDependencyDataOffset, | ||
| TArray< FAssetData * > & | OutAssetDataList, | ||
| EReadPackageDataMainErrorCode & | OutError, | ||
| const TArray< FObjectImport > * | InImports, | ||
| const TArray< FObjectExport > * | InExports | ||
| ) |
| FString UE::AssetRegistry::ReconstructFullClassPath | ( | FArchive & | BinaryArchive, |
| const FString & | PackageName, | ||
| const FPackageFileSummary & | PackageFileSummary, | ||
| const FString & | AssetClassName, | ||
| const TArray< FObjectImport > * | InImports = nullptr, |
||
| const TArray< FObjectExport > * | InExports = nullptr |
||
| ) |
| ASSETREGISTRY_API bool UE::AssetRegistry::ShouldSearchAllAssetsAtStart | ( | ) |
| UE::AssetRegistry::UE_DEPRECATED | ( | 5. | 5, |
| "Use version that takes FWritePackageDataArgs" | |||
| ) |
|
inlineconstexpr |
We have to store all tags as Name/String pairs, without any extra data for e.g. bIsCookTag, so we use a naming convention on the Name. The FAssetRegistryTagsContextData API prepends CookTagPrefix to tags specified as CookTags, and gives a warning and ignores any regular tags starting with CookTagPrefix.
|
constexpr |
| ASSETREGISTRY_API const FName UE::AssetRegistry::Stage_ChunkCompressedSizeFName | ( | TEXT("Stage_ChunkCompressedSize") | ) |
| ASSETREGISTRY_API const FName UE::AssetRegistry::Stage_ChunkCountFName | ( | TEXT("Stage_ChunkCount") | ) |
| ASSETREGISTRY_API const FName UE::AssetRegistry::Stage_ChunkInstalledSizeFName | ( | TEXT("Stage_ChunkInstalledSize") | ) |
| ASSETREGISTRY_API const FName UE::AssetRegistry::Stage_ChunkOptionalSizeFName | ( | TEXT("Stage_ChunkOptionalSize") | ) |
| ASSETREGISTRY_API const FName UE::AssetRegistry::Stage_ChunkSizeFName | ( | TEXT("Stage_ChunkSize") | ) |
| ASSETREGISTRY_API const FName UE::AssetRegistry::Stage_ChunkStreamingSizeFName | ( | TEXT("Stage_ChunkStreamingSize") | ) |
| ASSETREGISTRY_API const FName UE::AssetRegistry::WildcardFName | ( | TEXT("*") | ) |
| ASSETREGISTRY_API const FTopLevelAssetPath UE::AssetRegistry::WildcardPathName | ( | TEXT("/*") | , |
| TEXT("*") | |||
| ) |