UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UObjectGlobals.cpp File Reference
#include "UObject/UObjectGlobals.h"
#include "Containers/BitArray.h"
#include "HAL/PlatformFileManager.h"
#include "HAL/FileManager.h"
#include "Logging/StructuredLog.h"
#include "Misc/AsciiSet.h"
#include "Misc/EnumRange.h"
#include "Misc/PackageAccessTrackingOps.h"
#include "Misc/Paths.h"
#include "Misc/ITransaction.h"
#include "Serialization/ArchiveProxy.h"
#include "Misc/CommandLine.h"
#include "Misc/ConfigCacheIni.h"
#include "HAL/IConsoleManager.h"
#include "Misc/SlowTask.h"
#include "Misc/FeedbackContext.h"
#include "Misc/ScopedSlowTask.h"
#include "Misc/App.h"
#include "UObject/ScriptInterface.h"
#include "UObject/UObjectAllocator.h"
#include "UObject/UObjectBase.h"
#include "UObject/UObjectBaseUtility.h"
#include "UObject/UObjectHash.h"
#include "UObject/UObjectHashPrivate.h"
#include "UObject/Object.h"
#include "UObject/ObjectVisibility.h"
#include "UObject/GarbageCollection.h"
#include "UObject/GCScopeLock.h"
#include "UObject/Class.h"
#include "UObject/CoreRedirects.h"
#include "UObject/FastReferenceCollector.h"
#include "UObject/ObjectInstancingGraph.h"
#include "UObject/OverridableManager.h"
#include "UObject/PropertyStateTracking.h"
#include "UObject/UObjectIterator.h"
#include "UObject/Package.h"
#include "Templates/Casts.h"
#include "UObject/PropertyPortFlags.h"
#include "Serialization/SerializedPropertyScope.h"
#include "UObject/UnrealType.h"
#include "UObject/ObjectRedirector.h"
#include "UObject/PackageResourceManager.h"
#include "Serialization/CompactBinaryWriter.h"
#include "Serialization/DuplicatedObject.h"
#include "Serialization/DuplicatedDataReader.h"
#include "Serialization/DuplicatedDataWriter.h"
#include "Serialization/LoadTimeTracePrivate.h"
#include "Misc/PackageName.h"
#include "Misc/PathViews.h"
#include "UObject/LinkerLoad.h"
#include "Blueprint/BlueprintSupport.h"
#include "Misc/SecureHash.h"
#include "Misc/TrackedActivity.h"
#include "UObject/ConstructorHelpers.h"
#include "UObject/UObjectThreadContext.h"
#include "UObject/LinkerManager.h"
#include "Misc/ExclusiveLoadPackageTimeTracker.h"
#include "ProfilingDebugging/CookStats.h"
#include "Modules/ModuleManager.h"
#include "UObject/EnumProperty.h"
#include "UObject/TextProperty.h"
#include "UObject/StrProperty.h"
#include "UObject/AnsiStrProperty.h"
#include "UObject/Utf8StrProperty.h"
#include "UObject/FieldPathProperty.h"
#include "UObject/MetaData.h"
#include "UObject/UObjectConstructInternal.h"
#include "HAL/LowLevelMemTracker.h"
#include "HAL/LowLevelMemStats.h"
#include "Misc/CoreDelegates.h"
#include "ProfilingDebugging/CsvProfiler.h"
#include "IO/IoDispatcher.h"
#include "ProfilingDebugging/LoadTimeTracker.h"
#include "ProfilingDebugging/AssetMetadataTrace.h"
#include "Misc/PackageAccessTracking.h"
#include "UObject/PropertyWithSetterAndGetter.h"
#include "Templates/GuardValueAccessors.h"
#include "UObject/UObjectGlobalsInternal.h"
#include "Serialization/AsyncPackageLoader.h"
#include "AutoRTFM.h"
#include "UObject/PropertyOptional.h"
#include "UObject/ObjectHandlePrivate.h"
#include "UObject/RemoteObjectPrivate.h"
#include "UObject/RemoteObjectSerialization.h"
#include "UObject/VerseClassProperty.h"
#include "UObject/VerseStringProperty.h"
#include "VerseVM/VVMVerseClass.h"
#include "UObject/VerseValueProperty.h"

Classes

struct  FPerClassNumberSuffixAnnotation
 
struct  FCompareUObjectByLinkerAndOffset
 
struct  FObjectDuplicationHelperMethods
 
class  FGCReconstructionGuard
 
class  FPropertyTrackingReferenceCollectorArchive
 
class  FCollectorTagUsedNonRecursive
 

Namespaces

namespace  UECodeGen_Private
 

Macros

#define PROPERTY_INIT_STATE_TRACKING_ENABLE_DEFAULT   1
 
#define TRY_REUSE_NAMES   UE_FNAME_OUTLINE_NUMBER
 

Enumerations

enum class  EPropertyCollectFlags : uint32 {
  None = 0 , SkipTransient = 1 << 0 , NeedsReferencer = 1 << 1 , CallStructARO = 1 << 2 ,
  OnlyObjectProperty = 1 << 3
}
 

Functions

 DEFINE_LOG_CATEGORY (LogUObjectGlobals)
 
void EndLoad (FUObjectSerializeContext *LoadContext, TArray< UPackage * > *OutLoadedPackages)
 
COREUOBJECT_API bool GetAllowNativeComponentClassOverrides ()
 
 DEFINE_STAT (STAT_InitProperties)
 
 DEFINE_STAT (STAT_ConstructObject)
 
 DEFINE_STAT (STAT_AllocateObject)
 
 DEFINE_STAT (STAT_PostConstructInitializeProperties)
 
 DEFINE_STAT (STAT_LoadConfig)
 
 DEFINE_STAT (STAT_LoadObject)
 
 DEFINE_STAT (STAT_FindObject)
 
 DEFINE_STAT (STAT_FindObjectFast)
 
 DEFINE_STAT (STAT_NameTableEntries)
 
 DEFINE_STAT (STAT_NameTableAnsiEntries)
 
 DEFINE_STAT (STAT_NameTableWideEntries)
 
 DEFINE_STAT (STAT_NameTableMemorySize)
 
 DEFINE_STAT (STAT_DestroyObject)
 
 DECLARE_CYCLE_STAT (TEXT("InstanceSubobjects"), STAT_InstanceSubobjects, STATGROUP_Object)
 
 DECLARE_CYCLE_STAT (TEXT("PostInitProperties"), STAT_PostInitProperties, STATGROUP_Object)
 
 DECLARE_CYCLE_STAT (TEXT("PostReinitProperties"), STAT_PostReinitProperties, STATGROUP_Object)
 
 CSV_DEFINE_CATEGORY (UObject, false)
 
 LLM_DEFINE_TAG (UObject_StaticConstructObjectInternal)
 
 LLM_DEFINE_TAG (UObject_StaticAllocateObject)
 
bool ShouldReportProgress ()
 
bool ShouldCreateThrottledSlowTask ()
 
FString LexToString (EObjectFlags Flags)
 
int32 UpdateSuffixForNextNewObject (UObject *Parent, FName BaseName, TFunctionRef< void(int32 &)> IndexMutator)
 
int32 UpdateSuffixForNextNewObject (UObject *Parent, const UClass *Class, TFunctionRef< void(int32 &)> IndexMutator)
 
UObjectStaticFindObjectFast (UClass *ObjectClass, UObject *ObjectPackage, FName ObjectName, EFindObjectFlags Flags, EObjectFlags ExclusiveFlags, EInternalObjectFlags ExclusiveInternalFlags)
 
UObjectStaticFindObjectFastSafe (UClass *ObjectClass, UObject *ObjectPackage, FName ObjectName, EFindObjectFlags Flags, EObjectFlags ExclusiveFlags, EInternalObjectFlags ExclusiveInternalFlags)
 
void ConstructorHelpers_StripObjectClass2 (FStringBuilderBase &PathName, bool bAssertOnBadPath=false)
 
bool ResolveName2 (UObject *&InPackage, FStringBuilderBase &InOutName, bool Create, bool Throw, uint32 LoadFlags=LOAD_None, const FLinkerInstancingContext *InstancingContext=nullptr)
 
UObjectStaticFindObject (UClass *ObjectClass, UObject *InObjectPackage, FStringView OrigInName, EFindObjectFlags Flags)
 
UObjectStaticFindObject (UClass *Class, FTopLevelAssetPath ObjectPath, EFindObjectFlags Flags)
 
UObjectStaticFindObjectSafe (UClass *Class, FTopLevelAssetPath ObjectPath, EFindObjectFlags Flags)
 
UObjectStaticFindObjectChecked (UClass *ObjectClass, UObject *ObjectParent, FStringView InName, EFindObjectFlags Flags)
 
UObjectStaticFindObjectSafe (UClass *ObjectClass, UObject *ObjectParent, FStringView InName, EFindObjectFlags Flags)
 
bool StaticFindAllObjectsFast (TArray< UObject * > &OutFoundObjects, UClass *ObjectClass, FName ObjectName, EFindObjectFlags Flags, EObjectFlags ExclusiveFlags, EInternalObjectFlags ExclusiveInternalFlags)
 
bool StaticFindAllObjectsFastSafe (TArray< UObject * > &OutFoundObjects, UClass *ObjectClass, FName ObjectName, EFindObjectFlags Flags, EObjectFlags ExclusiveFlags, EInternalObjectFlags ExclusiveInternalFlags)
 
bool StaticFindAllObjects (TArray< UObject * > &OutFoundObjects, UClass *ObjectClass, const TCHAR *OrigInName, EFindObjectFlags Flags)
 
bool StaticFindAllObjectsSafe (TArray< UObject * > &OutFoundObjects, UClass *ObjectClass, const TCHAR *OrigInName, EFindObjectFlags Flags)
 
UObjectStaticFindFirstObject (UClass *Class, FStringView Name, EFindFirstObjectOptions Options, ELogVerbosity::Type AmbiguousMessageVerbosity, const TCHAR *InCurrentOperation)
 
UObjectStaticFindFirstObjectSafe (UClass *Class, FStringView Name, EFindFirstObjectOptions Options, ELogVerbosity::Type AmbiguousMessageVerbosity, const TCHAR *InCurrentOperation)
 
void GlobalSetProperty (const TCHAR *Value, UClass *Class, FProperty *Property, bool bNotifyObjectOfChange)
 
void StaticTick (float DeltaTime, bool bUseFullTimeLimit, float AsyncLoadingTime)
 
bool SafeLoadError (UObject *Outer, uint32 LoadFlags, const TCHAR *ErrorMessage)
 
UPackageFindPackage (UObject *InOuter, const TCHAR *PackageName)
 
UPackageCreatePackage (const TCHAR *PackageName)
 
FString ResolveIniObjectsReference (const FString &ObjectReference, const FString *IniFilename, bool bThrow)
 
const FString * GetIniFilenameFromObjectsReference (const FString &Name)
 
bool ResolveName (UObject *&InPackage, FString &InOutName, bool Create, bool Throw, uint32 LoadFlags, const FLinkerInstancingContext *InstancingContext)
 
bool ParseObject (const TCHAR *Stream, const TCHAR *Match, UClass *Class, UObject *&DestRes, UObject *InParent, EParseObjectLoadingPolicy LoadingPolicy, bool *bInvalidObject)
 
UObjectStaticLoadObjectInternal (UClass *ObjectClass, UObject *InOuter, FStringView InName, FStringView Filename, uint32 LoadFlags, UPackageMap *Sandbox, bool bAllowObjectReconciliation, const FLinkerInstancingContext *InstancingContext)
 
UObjectStaticLoadObject (UClass *ObjectClass, UObject *InOuter, FStringView InName, FStringView Filename, uint32 LoadFlags, UPackageMap *Sandbox, bool bAllowObjectReconciliation, const FLinkerInstancingContext *InstancingContext)
 
UClassStaticLoadClass (UClass *BaseClass, UObject *InOuter, FStringView InName, FStringView Filename, uint32 LoadFlags, UPackageMap *Sandbox)
 
UObjectStaticLoadAsset (UClass *Class, FTopLevelAssetPath InPath, uint32 LoadFlags, const FLinkerInstancingContext *InstancingContext)
 
int32 LoadAssetAsync (FTopLevelAssetPath InAssetPath, FLoadAssetAsyncDelegate InCompletionDelegate, FLoadAssetAsyncOptionalParams InOptionalParams)
 
void BroadcastEndLoad (TArray< UPackage * > &&LoadedPackages)
 
bool ShouldAlwaysLoadPackageAsync (const FPackagePath &InPackagePath)
 
UPackageLoadPackageInternal (UPackage *InOuter, const FPackagePath &PackagePath, uint32 LoadFlags, FLinkerLoad *ImportLinker, FArchive *InReaderOverride, const FLinkerInstancingContext *InstancingContext, const FPackagePath *DiffPackagePath)
 
UPackageLoadPackage (UPackage *InOuter, const TCHAR *InLongPackageNameOrFilename, uint32 LoadFlags, FArchive *InReaderOverride, const FLinkerInstancingContext *InstancingContext)
 
UPackageLoadPackage (UPackage *InOuter, const FPackagePath &PackagePath, uint32 LoadFlags, FArchive *InReaderOverride, const FLinkerInstancingContext *InstancingContext, const FPackagePath *DiffPackagePath)
 
bool IsLoading ()
 
void BeginLoad (FUObjectSerializeContext *LoadContext, const TCHAR *DebugContext)
 
void EndLoad (FUObjectSerializeContext *LoadContext)
 
 DEFINE_LOG_CATEGORY_STATIC (LogUniqueObjectName, Error, Error)
 
FName MakeUniqueObjectName (UObject *Parent, const UClass *Class, FName InBaseName, EUniqueObjectNameOptions Options)
 
FName MakeUniversallyUniqueObjectName (UObject *InOuter, FName InBaseName, FUniversallyUniqueObjectNameGenerator const *Generator)
 
bool HasUniversallyUniqueObjectNameIdentifier (FName Name)
 
FName MakeObjectNameFromDisplayLabel (const FString &DisplayLabel, const FName CurrentObjectName)
 
FObjectDuplicationParameters InitStaticDuplicateObjectParams (UObject const *SourceObject, UObject *DestOuter, const FName DestName, EObjectFlags FlagMask, UClass *DestClass, EDuplicateMode::Type DuplicateMode, EInternalObjectFlags InternalFlagsMask)
 
UObjectStaticDuplicateObject (UObject const *SourceObject, UObject *DestOuter, const FName DestName, EObjectFlags FlagMask, UClass *DestClass, EDuplicateMode::Type DuplicateMode, EInternalObjectFlags InternalFlagsMask)
 
UObjectStaticDuplicateObjectEx (FObjectDuplicationParameters &Parameters)
 
bool SaveToTransactionBuffer (UObject *Object, bool bMarkDirty)
 
void SnapshotTransactionBuffer (UObject *Object)
 
void SnapshotTransactionBuffer (UObject *Object, TArrayView< const FProperty * > Properties)
 
UE_AUTORTFM_ASSUME_SAFE UObjectStaticAllocateObject (const UClass *InClass, UObject *InOuter, FName InName, EObjectFlags InFlags, EInternalObjectFlags InternalSetFlags, bool bCanRecycleSubobjects, bool *bOutRecycledSubobject, UPackage *ExternalPackage, int32 SerialNumber, FRemoteObjectId RemoteId, FGCReconstructionGuard *GCGuard)
 
UObjectDuplicateObject_Internal (UClass *Class, const UObject *SourceObject, UObject *Outer, FName Name)
 
UObjectStaticConstructObject_Internal (const FStaticConstructObjectParameters &Params)
 
 ENUM_CLASS_FLAGS (EPropertyCollectFlags)
 
FORCEINLINE EPropertyCollectFlags GetCollectorPropertyFlags (FReferenceCollector &Collector)
 
FORCEINLINE constexpr EPropertyFlags GetPropertyFlagsToSkip (EPropertyCollectFlags CollectFlags)
 
FORCEINLINE constexpr EClassCastFlags GetCastFlagsToSkip (EPropertyCollectFlags CollectFlags)
 
FORCEINLINE constexpr bool MayContainStrongReference (EClassCastFlags CastFlags)
 
FORCEINLINE constexpr bool MayContainStrongReference (const FProperty &Property)
 
template<EPropertyCollectFlags CollectFlags>
void CollectPropertyReferences (FReferenceCollector &Collector, FProperty &Property, void *Instance, const UObject *Referencer)
 
template<EPropertyCollectFlags CollectFlags>
void CollectArrayReferences (FReferenceCollector &Collector, FArrayProperty &Property, void *Instance, const UObject *Referencer)
 
template<EPropertyCollectFlags CollectFlags>
void CollectSetReferences (FReferenceCollector &Collector, FSetProperty &Property, void *Instance, const UObject *Referencer)
 
template<EPropertyCollectFlags CollectFlags>
void CollectOptionalReference (FReferenceCollector &Collector, FOptionalProperty &Property, void *Instance, const UObject *Referencer)
 
template<EPropertyCollectFlags CollectFlags>
FORCEINLINE_DEBUGGABLE void CollectObjectReference (FReferenceCollector &Collector, FProperty &Property, void *Value, const UObject *Referencer)
 
FORCEINLINE_DEBUGGABLE bool CollectStackReference (FReferenceCollector &Collector, FProperty &Property, UObject *&Reference, const UObject *Referencer)
 
template<EPropertyCollectFlags NonCollectorFlag, class StructType >
FORCEINLINE_DEBUGGABLE void CallCollectStructReferences (FReferenceCollector &Collector, const StructType *Struct, void *Instance, const UObject *Referencer)
 
bool IsReferenced (UObject *&Obj, EObjectFlags KeepFlags, EInternalObjectFlags InternalKeepFlags, bool bCheckSubObjects, FReferencerInformationList *FoundReferences)
 
UScriptStructGetFallbackStruct ()
 
COREUOBJECT_API UFunctionFindDelegateSignature (FName DelegateSignatureName)
 
void UECodeGen_Private::ConstructFProperties (UObject *Outer, const FPropertyParamsBase *const *PropertyArray, int32 NumProperties)
 

Variables

int32 GAllowUnversionedContentInEditor = 0
 
bool GAllowParseObjectLoading = true
 
const FName NAME_UniqueObjectNameForCooking (TEXT("UniqueObjectNameForCooking"))
 
COREUOBJECT_API bool GOutputCookingWarnings = false
 

Macro Definition Documentation

◆ PROPERTY_INIT_STATE_TRACKING_ENABLE_DEFAULT

#define PROPERTY_INIT_STATE_TRACKING_ENABLE_DEFAULT   1

◆ TRY_REUSE_NAMES

#define TRY_REUSE_NAMES   UE_FNAME_OUTLINE_NUMBER

Enumeration Type Documentation

◆ EPropertyCollectFlags

Enumerator
None 
SkipTransient 
NeedsReferencer 
CallStructARO 
OnlyObjectProperty 

Function Documentation

◆ BeginLoad()

void BeginLoad ( FUObjectSerializeContext LoadContext,
const TCHAR DebugContext = nullptr 
)

UObjects are being loaded between these calls

◆ BroadcastEndLoad()

void BroadcastEndLoad ( TArray< UPackage * > &&  LoadedPackages)

Notify delegate listeners of all the packages that loaded; called only once per explicit call to LoadPackage.

◆ CallCollectStructReferences()

template<EPropertyCollectFlags NonCollectorFlag, class StructType >
FORCEINLINE_DEBUGGABLE void CallCollectStructReferences ( FReferenceCollector Collector,
const StructType *  Struct,
void Instance,
const UObject Referencer 
)

◆ CollectArrayReferences()

template<EPropertyCollectFlags CollectFlags>
void CollectArrayReferences ( FReferenceCollector Collector,
FArrayProperty Property,
void Instance,
const UObject Referencer 
)

◆ CollectObjectReference()

template<EPropertyCollectFlags CollectFlags>
FORCEINLINE_DEBUGGABLE void CollectObjectReference ( FReferenceCollector Collector,
FProperty Property,
void Value,
const UObject Referencer 
)

◆ CollectOptionalReference()

template<EPropertyCollectFlags CollectFlags>
void CollectOptionalReference ( FReferenceCollector Collector,
FOptionalProperty Property,
void Instance,
const UObject Referencer 
)

◆ CollectPropertyReferences()

template<EPropertyCollectFlags CollectFlags>
void CollectPropertyReferences ( FReferenceCollector Collector,
FProperty Property,
void Instance,
const UObject Referencer 
)

◆ CollectSetReferences()

template<EPropertyCollectFlags CollectFlags>
void CollectSetReferences ( FReferenceCollector Collector,
FSetProperty Property,
void Instance,
const UObject Referencer 
)

◆ CollectStackReference()

FORCEINLINE_DEBUGGABLE bool CollectStackReference ( FReferenceCollector Collector,
FProperty Property,
UObject *&  Reference,
const UObject Referencer 
)

◆ ConstructorHelpers_StripObjectClass2()

void ConstructorHelpers_StripObjectClass2 ( FStringBuilderBase PathName,
bool  bAssertOnBadPath = false 
)

◆ CreatePackage()

UPackage * CreatePackage ( const TCHAR PackageName)

Find an existing package by name or create it if it doesn't exist

Returns
The existing package or a newly created one

◆ CSV_DEFINE_CATEGORY()

CSV_DEFINE_CATEGORY ( UObject  ,
false   
)

◆ DECLARE_CYCLE_STAT() [1/3]

DECLARE_CYCLE_STAT ( TEXT("InstanceSubobjects")  ,
STAT_InstanceSubobjects  ,
STATGROUP_Object   
)

◆ DECLARE_CYCLE_STAT() [2/3]

DECLARE_CYCLE_STAT ( TEXT("PostInitProperties")  ,
STAT_PostInitProperties  ,
STATGROUP_Object   
)

◆ DECLARE_CYCLE_STAT() [3/3]

DECLARE_CYCLE_STAT ( TEXT("PostReinitProperties")  ,
STAT_PostReinitProperties  ,
STATGROUP_Object   
)

◆ DEFINE_LOG_CATEGORY()

DEFINE_LOG_CATEGORY ( LogUObjectGlobals  )

◆ DEFINE_LOG_CATEGORY_STATIC()

DEFINE_LOG_CATEGORY_STATIC ( LogUniqueObjectName  ,
Error  ,
Error   
)

◆ DEFINE_STAT() [1/13]

DEFINE_STAT ( STAT_AllocateObject  )

◆ DEFINE_STAT() [2/13]

DEFINE_STAT ( STAT_ConstructObject  )

◆ DEFINE_STAT() [3/13]

DEFINE_STAT ( STAT_DestroyObject  )

◆ DEFINE_STAT() [4/13]

DEFINE_STAT ( STAT_FindObject  )

◆ DEFINE_STAT() [5/13]

DEFINE_STAT ( STAT_FindObjectFast  )

◆ DEFINE_STAT() [6/13]

DEFINE_STAT ( STAT_InitProperties  )

◆ DEFINE_STAT() [7/13]

DEFINE_STAT ( STAT_LoadConfig  )

◆ DEFINE_STAT() [8/13]

DEFINE_STAT ( STAT_LoadObject  )

◆ DEFINE_STAT() [9/13]

DEFINE_STAT ( STAT_NameTableAnsiEntries  )

◆ DEFINE_STAT() [10/13]

DEFINE_STAT ( STAT_NameTableEntries  )

◆ DEFINE_STAT() [11/13]

DEFINE_STAT ( STAT_NameTableMemorySize  )

◆ DEFINE_STAT() [12/13]

DEFINE_STAT ( STAT_NameTableWideEntries  )

◆ DEFINE_STAT() [13/13]

◆ DuplicateObject_Internal()

UObject * DuplicateObject_Internal ( UClass Class,
const UObject SourceObject,
UObject Outer,
const FName  NAME_None 
)

Convenience function for duplicating an object

Parameters
Classthe class of the object being copied
SourceObjectthe object being copied
Outerthe outer to use for the object
Namethe optional name of the object
Returns
the copied object or null if it failed for some reason

◆ EndLoad() [1/2]

void EndLoad ( FUObjectSerializeContext LoadContext)

◆ EndLoad() [2/2]

void EndLoad ( FUObjectSerializeContext LoadContext,
TArray< UPackage * > *  OutLoadedPackages 
)

◆ ENUM_CLASS_FLAGS()

ENUM_CLASS_FLAGS ( EPropertyCollectFlags  )

◆ FindDelegateSignature()

COREUOBJECT_API UFunction * FindDelegateSignature ( FName  DelegateSignatureName)

Looks for delegate signature with given name.

◆ FindPackage()

UPackage * FindPackage ( UObject InOuter,
const TCHAR PackageName 
)

Find an existing package by name

Parameters
InOuterThe Outer object to search inside
PackageNameThe name of the package to find
Returns
The package if it exists

◆ GetAllowNativeComponentClassOverrides()

COREUOBJECT_API bool GetAllowNativeComponentClassOverrides ( )

Utility accessor for whether we are running with component class overrides enabled

◆ GetCastFlagsToSkip()

FORCEINLINE constexpr EClassCastFlags GetCastFlagsToSkip ( EPropertyCollectFlags  CollectFlags)
constexpr

◆ GetCollectorPropertyFlags()

FORCEINLINE EPropertyCollectFlags GetCollectorPropertyFlags ( FReferenceCollector Collector)

◆ GetFallbackStruct()

UScriptStruct * GetFallbackStruct ( )

A struct used as stub for deleted ones.

◆ GetIniFilenameFromObjectsReference()

const FString * GetIniFilenameFromObjectsReference ( const FString &  ObjectsReferenceString)

Gets INI file name from object's reference if it contains one.

Returns
If object reference doesn't contain any INI reference the function returns nullptr. Otherwise a ptr to INI's file name.

◆ GetPropertyFlagsToSkip()

FORCEINLINE constexpr EPropertyFlags GetPropertyFlagsToSkip ( EPropertyCollectFlags  CollectFlags)
constexpr

◆ GlobalSetProperty()

void GlobalSetProperty ( const TCHAR Value,
UClass Class,
FProperty Property,
bool  bNotifyObjectOfChange 
)

Internal function used to set a specific property value from debug/console code

◆ HasUniversallyUniqueObjectNameIdentifier()

bool HasUniversallyUniqueObjectNameIdentifier ( FName  Name)

Checks if the given FName is marked as a Universally Unique Object Name. Note: This is an early out check. This function may return true for FNames that are not Universally Unique Object Names.

Parameters
NameThe name to check.
Returns
True if the FName is marked as a Universally Unique Object Name, otherwise false.

◆ InitStaticDuplicateObjectParams()

FObjectDuplicationParameters InitStaticDuplicateObjectParams ( UObject const *  SourceObject,
UObject DestOuter,
const FName  DestName = NAME_None,
EObjectFlags  FlagMask = RF_AllFlags,
UClass DestClass = nullptr,
EDuplicateMode::Type  DuplicateMode = EDuplicateMode::Normal,
EInternalObjectFlags  InternalFlagsMask = EInternalObjectFlags_AllFlags 
)

Returns FObjectDuplicationParameters initialized based of StaticDuplicateObject parameters

◆ IsLoading()

bool IsLoading ( )

Returns whether we are currently loading a package (sync or async)

Returns
true if we are loading a package, false otherwise

◆ IsReferenced()

bool IsReferenced ( UObject *&  Res,
EObjectFlags  KeepFlags,
EInternalObjectFlags  InternalKeepFlags,
bool  bCheckSubObjects = false,
FReferencerInformationList FoundReferences = nullptr 
)

Returns whether an object is referenced, not counting references from itself

Parameters
ResObject to check
KeepFlagsObjects with these flags will be considered as being referenced
InternalKeepFlagsObjects with these internal flags will be considered as being referenced
bCheckSubObjectsTreat subobjects as if they are the same as passed in object
FoundReferencesIf non-nullptr fill in with list of objects that hold references
Returns
true if object is referenced, false otherwise

◆ LexToString()

FString LexToString ( EObjectFlags  Flags)

◆ LLM_DEFINE_TAG() [1/2]

LLM_DEFINE_TAG ( UObject_StaticAllocateObject  )

◆ LLM_DEFINE_TAG() [2/2]

◆ LoadAssetAsync()

int32 LoadAssetAsync ( FTopLevelAssetPath  InAssetPath,
FLoadAssetAsyncDelegate  InCompletionDelegate,
FLoadAssetAsyncOptionalParams  InOptionalParams = FLoadAssetAsyncOptionalParams() 
)

Asynchronously load a top level asset along with other objects in the same package. This is non-blocking and will call LoadPackageAsync. FSoftObjectPath::LoadAsync can be used to asynchronously load subobjects.

Parameters
InAssetPathTop level asset to load
InCompletionDelegateDelegate to be invoked when the async load finishes, this will execute on the game thread as soon as the load succeeds or fails
InOptionalParamsOptional parameters
Returns
Unique ID associated with this load request (the same object or package can be associated with multiple IDs).

◆ LoadPackage() [1/2]

UPackage * LoadPackage ( UPackage InOuter,
const FPackagePath InPackagePath,
uint32  LoadFlags,
FArchive InReaderOverride = nullptr,
const FLinkerInstancingContext InstancingContext = nullptr,
const FPackagePath DiffPackagePath = nullptr 
)

Loads a package and all contained objects that match context flags.

Parameters
InOuterPackage to load new package into (usually nullptr or ULevel->GetOuter())
InPackagePathPackagePath to load, must be non-empty
LoadFlagsFlags controlling loading behavior, from the ELoadFlags enum
InReaderOverrideOptional archive to use for reading package data
InLoadContextAdditional context when called during serialization
InstancingContextAdditional context to map object names to their instanced counterpart when loading an instanced package
DiffPackagePathAn additional PackagePath to load and compare to the package at InPackagePath, used when diffing packages
Returns
Loaded package if successful, nullptr otherwise

◆ LoadPackage() [2/2]

UPackage * LoadPackage ( UPackage InOuter,
const TCHAR InLongPackageName,
uint32  LoadFlags,
FArchive InReaderOverride = nullptr,
const FLinkerInstancingContext InstancingContext = nullptr 
)

Loads a package and all contained objects that match context flags.

Parameters
InOuterPackage to load new package into (usually nullptr or ULevel->GetOuter())
InLongPackageNameLong package name to load, if null the name is taken from InOuter
LoadFlagsFlags controlling loading behavior, from the ELoadFlags enum
InReaderOverrideOptional archive to use for reading package data
InLoadContextAdditional context when called during serialization
InstancingContextAdditional context to map object names to their instanced counterpart when loading an instanced package
Returns
Loaded package if successful, nullptr otherwise

◆ LoadPackageInternal()

UPackage * LoadPackageInternal ( UPackage InOuter,
const FPackagePath PackagePath,
uint32  LoadFlags,
FLinkerLoad ImportLinker,
FArchive InReaderOverride,
const FLinkerInstancingContext InstancingContext,
const FPackagePath DiffPackagePath 
)

◆ MakeObjectNameFromDisplayLabel()

FName MakeObjectNameFromDisplayLabel ( const FString &  DisplayLabel,
const FName  CurrentObjectName 
)

Given a display label string, generates an FName slug that is a valid FName for that label. If the object's current name is already satisfactory, then that name will be returned. For example, "[MyObject]: Object Label" becomes "MyObjectObjectLabel" FName slug.

Note: The generated name isn't guaranteed to be unique.

Parameters
DisplayLabelThe label string to convert to an FName
CurrentObjectNameThe object's current name, or NAME_None if it has no name yet
Returns
The generated object name

◆ MakeUniqueObjectName()

FName MakeUniqueObjectName ( UObject Outer,
const UClass Class,
FName  BaseName = NAME_None,
EUniqueObjectNameOptions  Options = EUniqueObjectNameOptions::None 
)

Create a unique name by combining a base name and an arbitrary number string. The object name returned is guaranteed not to exist.

Parameters
Outerthe outer for the object that needs to be named
Classthe class for the object
BaseNameoptional base name to use when generating the unique object name; if not specified, the class's name is used
OptionsAdditional options. See EUniqueObjectNameOptions.
Returns
name is the form BaseName_##, where ## is the number of objects of this type that have been created since the last time the class was garbage collected.

◆ MakeUniversallyUniqueObjectName()

FName MakeUniversallyUniqueObjectName ( UObject Outer,
FName  InBaseName = NAME_None,
FUniversallyUniqueObjectNameGenerator const *  Generator = nullptr 
)

Create a universally unique name by combining a base name, a GUID and a timestamp. The object name returned is guaranteed not to locally and globally exist.

Parameters
Outerthe outer for the object that needs to be named
BaseNameoptional base name to use when generating the globally unique object name.
Generatoroptional generator session that can be passed to not use instead of the global one.
Returns
name is the form BaseName_##, where ## a universally unique identifier making sure that name is universally unique.

◆ MayContainStrongReference() [1/2]

FORCEINLINE constexpr bool MayContainStrongReference ( const FProperty Property)
constexpr

◆ MayContainStrongReference() [2/2]

FORCEINLINE constexpr bool MayContainStrongReference ( EClassCastFlags  CastFlags)
constexpr

◆ ParseObject()

bool ParseObject ( const TCHAR Stream,
const TCHAR Match,
UClass Class,
UObject *&  DestRes,
UObject InParent,
EParseObjectLoadingPolicy  LoadingPolicy,
bool bInvalidObject = nullptr 
)

Parse a reference to an object from a text representation

Parameters
StreamString containing text to parse
MatchTag to search for object representation within string
ClassThe class of the object to be found.
DestResReturned object pointer
InParentOuter to search @oaran LoadingPolicy Controls whether the parse will attempt to load a fully qualified object reference, if needed.
bInvalidObject[opt] Optional output. If true, Tag was matched but the specified object wasn't found.
Returns
True if the object parsed successfully, even if object was not found

◆ ResolveIniObjectsReference()

FString ResolveIniObjectsReference ( const FString &  ObjectReference,
const FString *  IniFilename = nullptr,
bool  bThrow = false 
)

Resolves ini object path to string object path. This used to happen automatically in ResolveName but now must be called manually

Parameters
ObjectReferenceIni reference, of the form engine-ini:/Script/Engine.Engine.DefaultMaterialName
IniFilenameIni filename. If null it will call GetIniFilenameFromObjectsReference
bThrowIf true, will print an error if it can't find the file
Returns
Resolved object path.

◆ ResolveName()

bool ResolveName ( UObject *&  Outer,
FString &  ObjectsReferenceString,
bool  Create,
bool  Throw,
uint32  LoadFlags = LOAD_None,
const FLinkerInstancingContext InstancingContext = nullptr 
)

Internal function that takes a fully qualified or relative object path string and converts it into a path relative to a package. Normally, you should call one of the FindObject or LoadObject functions instead.

Parameters
OuterThe package to search within. If null, ObjectsReferenceString be a globally scoped path and this will be filled in with the actual package if found/created
ObjectsReferenceStringThe object path string to resolve. If it is successfully resolved, this will be replaced with a path relative to Outer
CreateIf true, it will try to load or create the required package if it is not in memory
ThrowIf true, it will potentially raise an error if the object cannot be found
LoadFlagsFlags to use if Create is true and it needs to load a package, from the ELoadFlags enum
InstancingContextThe linker instancing context used to resolve package name during instacning (i.e. when a package file is loaded into a package with a different name)
Returns
True if the name was successfully resolved

◆ ResolveName2()

bool ResolveName2 ( UObject *&  InPackage,
FStringBuilderBase InOutName,
bool  Create,
bool  Throw,
uint32  LoadFlags = LOAD_None,
const FLinkerInstancingContext InstancingContext = nullptr 
)

◆ SafeLoadError()

bool SafeLoadError ( UObject Outer,
uint32  LoadFlags,
const TCHAR ErrorMessage 
)

Internal function used to possibly output an error message, taking into account the outer and LoadFlags. Returns true if a log message was emitted.

◆ SaveToTransactionBuffer()

bool SaveToTransactionBuffer ( UObject Object,
bool  bMarkDirty 
)

Save a copy of this object into the transaction buffer if we are currently recording into one (undo/redo). If bMarkDirty is true, will also mark the package as needing to be saved.

Parameters
bMarkDirtyIf true, marks the package dirty if we are currently recording into a transaction buffer
Objectobject to save.
Returns
true if a copy of the object was saved and the package potentially marked dirty; false if we are not recording into a transaction buffer, the package is a PIE/script package, or the object is not transactional (implies the package was not marked dirty)

◆ ShouldAlwaysLoadPackageAsync()

bool ShouldAlwaysLoadPackageAsync ( const FPackagePath InPackagePath)

◆ ShouldCreateThrottledSlowTask()

bool ShouldCreateThrottledSlowTask ( )

◆ ShouldReportProgress()

bool ShouldReportProgress ( )

Check whether we should report progress or not

◆ SnapshotTransactionBuffer() [1/2]

void SnapshotTransactionBuffer ( UObject Object)

Causes the transaction system to emit a snapshot event for the given object if the following conditions are met: a) The object is currently transacting. b) The object has changed since it started transacting.

Parameters
Objectobject to snapshot.
Propertiesoptional list of properties that have potentially changed on the object (to avoid snapshotting the entire object).

◆ SnapshotTransactionBuffer() [2/2]

void SnapshotTransactionBuffer ( UObject Object,
TArrayView< const FProperty * >  Properties 
)

◆ StaticAllocateObject()

UE_AUTORTFM_ASSUME_SAFE UObject * StaticAllocateObject ( const UClass Class,
UObject InOuter,
FName  Name,
EObjectFlags  SetFlags,
EInternalObjectFlags  InternalSetFlags = EInternalObjectFlags::None,
bool  bCanReuseSubobjects = false,
bool bOutReusedSubobject = nullptr,
UPackage ExternalPackage = nullptr,
int32  SerialNumber = 0,
FRemoteObjectId  RemoteId = FRemoteObjectId(),
class FGCReconstructionGuard GCGuard = nullptr 
)

Create a new instance of an object or replace an existing object. If both an Outer and Name are specified, and there is an object already in memory with the same Class, Outer, and Name, the existing object will be destructed, and the new object will be created in its place.

Parameters
Classthe class of the object to create
InOuterthe object to create this object within (the Outer property for the new object will be set to the value specified here).
Namethe name to give the new object. If no value (NAME_None) is specified, the object will be given a unique name in the form of ClassName_#.
SetFlagsthe ObjectFlags to assign to the new object. some flags can affect the behavior of constructing the object.
InternalSetFlagsthe InternalObjectFlags to assign to the new object. some flags can affect the behavior of constructing the object.
bCanReuseSubobjectsif set to true, SAO will not attempt to destroy a subobject if it already exists in memory.
bOutReusedSubobjectflag indicating if the object is a subobject that has already been created (in which case further initialization is not necessary).
ExternalPackageExternal Package assigned to the allocated object, if any
RemoteIdGlobally unique id for this object
GCGuardSpecial synchronization object that prevents GC from running when reconstructing an object on top of existing one
Returns
a pointer to a fully initialized object of the specified class.

◆ StaticConstructObject_Internal()

UObject * StaticConstructObject_Internal ( const FStaticConstructObjectParameters Params)

Create a new instance of an object. The returned object will be fully initialized. If InFlags contains RF_NeedsLoad (indicating that the object still needs to load its object data from disk), components are not instanced (this will instead occur in PostLoad()). The different between StaticConstructObject and StaticAllocateObject is that StaticConstructObject will also call the class constructor on the object and instance any components.

Parameters
ParamsThe parameters to use when construction the object.
See also
FStaticConstructObjectParameters
Returns
A pointer to a fully initialized object of the specified class.

◆ StaticDuplicateObject()

UObject * StaticDuplicateObject ( UObject const *  SourceObject,
UObject DestOuter,
const FName  DestName = NAME_None,
EObjectFlags  FlagMask = RF_AllFlags,
UClass DestClass = nullptr,
EDuplicateMode::Type  DuplicateMode = EDuplicateMode::Normal,
EInternalObjectFlags  InternalFlagsMask = EInternalObjectFlags_AllFlags 
)

Creates a copy of SourceObject using the Outer and Name specified, as well as copies of all objects contained by SourceObject.
Any objects referenced by SourceOuter or RootObject and contained by SourceOuter are also copied, maintaining their name relative to SourceOuter. Any references to objects that are duplicated are automatically replaced with the copy of the object.

Parameters
SourceObjectThe object to duplicate
DestOuterThe object to use as the Outer for the copy of SourceObject
DestNameThe name to use for the copy of SourceObject, if none it will be autogenerated
FlagMaskA bitmask of EObjectFlags that should be propagated to the object copies. The resulting object copies will only have the object flags specified copied from their source object.
DestClassOptional class to specify for the destination object. MUST BE SERIALIZATION COMPATIBLE WITH SOURCE OBJECT!!!
InternalFlagsMaskBitmask of EInternalObjectFlags that should be propagated to the object copies.
Returns
The duplicate of SourceObject.

◆ StaticDuplicateObjectEx()

UObject * StaticDuplicateObjectEx ( FObjectDuplicationParameters Parameters)

Creates a copy of SourceObject using the Outer and Name specified, as well as copies of all objects contained by SourceObject. Any objects referenced by SourceOuter or RootObject and contained by SourceOuter are also copied, maintaining their name relative to SourceOuter. Any references to objects that are duplicated are automatically replaced with the copy of the object.

Parameters
ParametersSpecific options to use when duplicating this object
Returns
The duplicate of SourceObject.

◆ StaticFindAllObjects()

bool StaticFindAllObjects ( TArray< UObject * > &  OutFoundObjects,
UClass Class,
const TCHAR Name,
EFindObjectFlags  Flags = EFindObjectFlags::None 
)

Tries to find all objects matching the search parameters in memory. This will handle fully qualified paths of the form /path/packagename.object:subobject and resolve references for you.

Parameters
OutFoundObjectsArray of objects matching the search parameters
ClassThe to be found object's class
NameThe object path to search for an object, relative to InOuter
FlagsFlags which control the search
Returns
Returns true if any objects were found, false otherwise

◆ StaticFindAllObjectsFast()

bool StaticFindAllObjectsFast ( TArray< UObject * > &  OutFoundObjects,
UClass ObjectClass,
FName  ObjectName,
EFindObjectFlags  Flags = EFindObjectFlags::None,
EObjectFlags  ExclusiveFlags = RF_NoFlags,
EInternalObjectFlags  ExclusiveInternalFlags = EInternalObjectFlags::None 
)

Fast version of StaticFindAllObjects that relies on the passed in FName being the object name without any group/package qualifiers. This will find all objects matching the specified name and class.

Parameters
OutFoundObjectsArray of objects matching the search parameters
ObjectClassThe to be found object's class
ObjectNameObject name to look for relative to InOuter
FlagsFlags which control the search
ExclusiveFlagsIgnores objects that contain any of the specified exclusive flags
ExclusiveInternalFlagsIgnores objects that contain any of the specified internal exclusive flags
Returns
Returns true if any objects were found, false otherwise

◆ StaticFindAllObjectsFastSafe()

bool StaticFindAllObjectsFastSafe ( TArray< UObject * > &  OutFoundObjects,
UClass ObjectClass,
FName  ObjectName,
EFindObjectFlags  Flags = EFindObjectFlags::None,
EObjectFlags  ExclusiveFlags = RF_NoFlags,
EInternalObjectFlags  ExclusiveInternalFlags = EInternalObjectFlags::None 
)

Fast version of StaticFindAllObjects that relies on the passed in FName being the object name without any group/package qualifiers. This will find all objects matching the specified name and class. This version of StaticFindAllObjectsFast will not assert on GIsSavingPackage or IsGarbageCollecting()

Parameters
OutFoundObjectsArray of objects matching the search parameters
ObjectClassThe to be found object's class
ObjectNameObject name to look for relative to InOuter
FlagsFlags which control the search
ExclusiveFlagsIgnores objects that contain any of the specified exclusive flags
ExclusiveInternalFlagsIgnores objects that contain any of the specified internal exclusive flags
Returns
Returns true if any objects were found, false otherwise

◆ StaticFindAllObjectsSafe()

bool StaticFindAllObjectsSafe ( TArray< UObject * > &  OutFoundObjects,
UClass Class,
const TCHAR Name,
EFindObjectFlags  Flags = EFindObjectFlags::None 
)

Tries to find all objects matching the search parameters in memory. This will handle fully qualified paths of the form /path/packagename.object:subobject and resolve references for you. This version of StaticFindAllObjects will not assert on GIsSavingPackage or IsGarbageCollecting()

Parameters
OutFoundObjectsArray of objects matching the search parameters
ClassThe to be found object's class
NameThe object path to search for an object, relative to InOuter
FlagsFlags which control the search
Returns
Returns true if any objects were found, false otherwise

◆ StaticFindFirstObject()

UObject * StaticFindFirstObject ( UClass Class,
FStringView  Name,
EFindFirstObjectOptions  Options = EFindFirstObjectOptions::None,
ELogVerbosity::Type  AmbiguousMessageVerbosity = ELogVerbosity::NoLogging,
const TCHAR InCurrentOperation = nullptr 
)

Tries to find the first object matching the search parameters in memory. This will handle fully qualified paths of the form /path/packagename.object:subobject and resolve references for you. If multiple objects share the same name the returned object is random and not based on its time of creation unless otherwise specified in Options (see EFindFirstObjectOptions::NativeFirst) This function is slow and should not be used in performance critical situations.

Parameters
ClassThe to be found object's class
NameThe object path to search for an object, relative to InOuter
OptionsSearch options
AmbiguousMessageVerbosityVerbosity with which to print a message if the search result is ambiguous
InCurrentOperationCurrent operation to be logged with ambiguous search warning
Returns
Returns a pointer to an object if found, null otherwise

◆ StaticFindFirstObjectSafe()

UObject * StaticFindFirstObjectSafe ( UClass Class,
FStringView  Name,
EFindFirstObjectOptions  Options = EFindFirstObjectOptions::None,
ELogVerbosity::Type  AmbiguousMessageVerbosity = ELogVerbosity::NoLogging,
const TCHAR InCurrentOperation = nullptr 
)

Tries to find the first objects matching the search parameters in memory. This will handle fully qualified paths of the form /path/packagename.object:subobject and resolve references for you. This version of StaticFindFirstObject will not assert on GIsSavingPackage or IsGarbageCollecting() If multiple objects share the same name the returned object is random and not based on its time of creation unless otherwise specified in Options (see EFindFirstObjectOptions::NativeFirst) This function is slow and should not be used in performance critical situations.

Parameters
ClassThe to be found object's class
NameThe object path to search for an object, relative to InOuter
OptionsSearch options
AmbiguousMessageVerbosityVerbosity with which to print a message if the search result is ambiguous
InCurrentOperationCurrent operation to be logged with ambiguous search warning
Returns
Returns a pointer to an object if found, null otherwise

◆ StaticFindObject() [1/2]

UObject * StaticFindObject ( UClass Class,
FTopLevelAssetPath  ObjectPath,
EFindObjectFlags  Flags = EFindObjectFlags::None 
)

Tries to find an object in memory. This version uses FTopLevelAssetPath to find the object.

Parameters
ClassThe to be found object's class
ObjectPathFName pair representing the outer package object and the inner top level object (asset)
FlagsFlags which control the search
Returns
Returns a pointer to the found object or nullptr if none could be found

◆ StaticFindObject() [2/2]

UObject * StaticFindObject ( UClass Class,
UObject InOuter,
FStringView  Name,
EFindObjectFlags  Flags = EFindObjectFlags::None 
)

Tries to find an object in memory. This will handle fully qualified paths of the form /path/packagename.object:subobject and resolve references for you.

Parameters
ClassThe to be found object's class
InOuterOuter object to look inside. If this is null then InName should start with a package name
InNameThe object path to search for an object, relative to InOuter
FlagsFlags which control the search
Returns
Returns a pointer to the found object or nullptr if none could be found

◆ StaticFindObjectChecked()

UObject * StaticFindObjectChecked ( UClass Class,
UObject InOuter,
FStringView  Name,
EFindObjectFlags  Flags = EFindObjectFlags::None 
)

Version of StaticFindObject() that will assert if the object is not found

◆ StaticFindObjectFast()

UObject * StaticFindObjectFast ( UClass Class,
UObject InOuter,
FName  InName,
EFindObjectFlags  Flags = EFindObjectFlags::None,
EObjectFlags  ExclusiveFlags = RF_NoFlags,
EInternalObjectFlags  ExclusiveInternalFlags = EInternalObjectFlags::None 
)

Fast version of StaticFindObject that relies on the passed in FName being the object name without any group/package qualifiers. This will only find top level packages or subobjects nested directly within a passed in outer.

Parameters
ClassThe to be found object's class
InOuterOuter object to look inside, if null this will only look for top level packages
InNameObject name to look for relative to InOuter
FlagsFlags which control the search
ExclusiveFlagsIgnores objects that contain any of the specified exclusive flags
ExclusiveInternalFlagsIgnores objects that contain any of the specified internal exclusive flags
Returns
Returns a pointer to the found object or null if none could be found

◆ StaticFindObjectFastSafe()

UObject * StaticFindObjectFastSafe ( UClass Class,
UObject InOuter,
FName  InName,
EFindObjectFlags  Flags = EFindObjectFlags::None,
EObjectFlags  ExclusiveFlags = RF_NoFlags,
EInternalObjectFlags  ExclusiveInternalFlags = EInternalObjectFlags::None 
)

Fast and safe version of StaticFindObject that relies on the passed in FName being the object name without any group/package qualifiers. It will not assert on GIsSavingPackage or IsGarbageCollectingAndLockingUObjectHashTables(). If called from within package saving code or GC, will return nullptr This will only find top level packages or subobjects nested directly within a passed in outer.

Parameters
ClassThe to be found object's class
InOuterOuter object to look inside, if null this will only look for top level packages
InNameObject name to look for relative to InOuter
FlagsFlags which control the search
ExclusiveFlagsIgnores objects that contain any of the specified exclusive flags
ExclusiveInternalFlagsIgnores objects that contain any of the specified internal exclusive flags
Returns
Returns a pointer to the found object or null if none could be found

◆ StaticFindObjectSafe() [1/2]

UObject * StaticFindObjectSafe ( UClass Class,
FTopLevelAssetPath  ObjectPath,
EFindObjectFlags  Flags = EFindObjectFlags::None 
)

Tries to find an object in memory. This version uses FTopLevelAssetPath to find the object. Version of StaticFindObject that will not assert on GIsSavingPackage or IsGarbageCollectingAndLockingUObjectHashTables()

Parameters
ClassThe to be found object's class
ObjectPathFName pair representing the outer package object and the inner top level object (asset)
FlagsFlags which control the search
Returns
Returns a pointer to the found object or nullptr if none could be found

◆ StaticFindObjectSafe() [2/2]

UObject * StaticFindObjectSafe ( UClass Class,
UObject InOuter,
FStringView  Name,
EFindObjectFlags  Flags = EFindObjectFlags::None 
)

Internal version of StaticFindObject that will not assert on GIsSavingPackage or IsGarbageCollectingAndLockingUObjectHashTables()

◆ StaticLoadAsset()

UObject * StaticLoadAsset ( UClass Class,
FTopLevelAssetPath  InPath,
uint32  LoadFlags = LOAD_None,
const FLinkerInstancingContext InstancingContext = nullptr 
)

Find or load an object that is one of the top level assets in a package.

Parameters
ClassThe class (or a superclass) of the object to be loaded.
InPathFName pair representing the outer package object and the inner top level object (asset)
LoadFlagsFlags controlling how to handle loading from disk, from the ELoadFlags enum
InstancingContextInstancingContext used to remap imports when loading a package under a new name
Returns
Returns a pointer to the found object or nullptr if none could be found

◆ StaticLoadClass()

UClass * StaticLoadClass ( UClass BaseClass,
UObject InOuter,
FStringView  Name,
FStringView  Filename = {},
uint32  LoadFlags = LOAD_None,
UPackageMap Sandbox = nullptr 
)

Version of StaticLoadObject() that will load classes

◆ StaticLoadObject()

UObject * StaticLoadObject ( UClass Class,
UObject InOuter,
FStringView  Name,
FStringView  Filename = {},
uint32  LoadFlags = LOAD_None,
UPackageMap Sandbox = nullptr,
bool  bAllowObjectReconciliation = true,
const FLinkerInstancingContext InstancingContext = nullptr 
)

Find or load an object by string name with optional outer and filename specifications. These are optional because the InName can contain all of the necessary information.

Parameters
ClassThe class (or a superclass) of the object to be loaded.
InOuterAn optional object to narrow where to find/load the object from
NameString name of the object. If it's not fully qualified, InOuter and/or Filename will be needed
FilenameAn optional file to load from (Deprecated parameter)
LoadFlagsFlags controlling how to handle loading from disk, from the ELoadFlags enum
SandboxA list of packages to restrict the search for the object (Deprecated parameter)
bAllowObjectReconciliationWhether to allow the object to be found via FindObject before forcing a load (Deprecated parameter)
InstancingContextInstancingContext used to remap imports when loading a package under a new name
Returns
The object that was loaded or found. nullptr for a failure.

◆ StaticLoadObjectInternal()

UObject * StaticLoadObjectInternal ( UClass ObjectClass,
UObject InOuter,
FStringView  InName,
FStringView  Filename,
uint32  LoadFlags,
UPackageMap Sandbox,
bool  bAllowObjectReconciliation,
const FLinkerInstancingContext InstancingContext 
)

◆ StaticTick()

void StaticTick ( float  DeltaTime,
bool  bUseFullTimeLimit = true,
float  AsyncLoadingTime = 0.005f 
)

Static UObject tick function, used to verify certain key assumptions and to tick the async loading code.

Parameters
DeltaTimeTime in seconds since last call
bUseFullTimeLimitIf true, use the entire time limit even if blocked on I/O
AsyncLoadingTimeTime in seconds to use for async loading limit

◆ UpdateSuffixForNextNewObject() [1/2]

int32 UpdateSuffixForNextNewObject ( UObject Parent,
const UClass Class,
TFunctionRef< void(int32 &)>  IndexMutator 
)

Internal function used to update the suffix to be given to the next newly-created unnamed object.

◆ UpdateSuffixForNextNewObject() [2/2]

int32 UpdateSuffixForNextNewObject ( UObject Parent,
FName  BaseName,
TFunctionRef< void(int32 &)>  IndexMutator 
)

Updates the suffix to be given to the next newly-created unnamed object.

Updating is done via a callback because a lock needs to be maintained while this happens.

Variable Documentation

◆ GAllowParseObjectLoading

bool GAllowParseObjectLoading = true

◆ GAllowUnversionedContentInEditor

int32 GAllowUnversionedContentInEditor = 0

This allows loading unversioned cooked content in the editor

◆ GOutputCookingWarnings

COREUOBJECT_API bool GOutputCookingWarnings = false

◆ NAME_UniqueObjectNameForCooking

const FName NAME_UniqueObjectNameForCooking(TEXT("UniqueObjectNameForCooking")) ( TEXT("UniqueObjectNameForCooking")  )
extern