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

Go to the source code of this file.

Classes

struct  FObjectDuplicationParameters
 
class  FLoadPackageAsyncProgressDelegate
 
struct  FLoadPackageAsyncOptionalParams
 
struct  FUniversallyUniqueObjectNameGenerator
 
struct  FScopedAllowAbstractClassAllocation
 
class  FObjectInitializer
 
struct  FObjectInitializer::FOverrides::FOverrideDetails
 
struct  FObjectInitializer::FSubobjectsToInit::FSubobjectInit
 
struct  FStaticConstructObjectParameters
 
class  FScriptIntegrationObjectHelper
 
class  FScopedObjectFlagMarker
 
class  TObjectArrayIterator< TObjectClass >
 
class  FReferenceCollectorArchive
 
class  FVerySlowReferenceCollectorArchiveScope
 
class  FReferenceCollector
 
struct  FReferenceCollector::AROPrivate
 
class  FReferenceFinder
 
struct  FEndLoadPackageContext
 
struct  FCoreUObjectDelegates
 
class  UE::FAssetLog
 
struct  FAssetMsg
 
struct  UE::CodeGen::FClassNativeFunction
 

Namespaces

namespace  EDuplicateMode
 
namespace  UE
 
namespace  UE::RemoteObject
 
namespace  UE::RemoteObject::Serialization
 
namespace  EAsyncLoadingResult
 
namespace  EAsyncPackageState
 
namespace  UE::Core
 
namespace  UE::Core::Private
 implementation
 
namespace  UE::CodeGen
 

Macros

#define INVALID_OBJECT   (UObject*)-1
 
#define PERF_TRACK_DETAILED_ASYNC_STATS   (0)
 
#define UE_GC_RUN_WEAKPTR_BARRIERS   0
 
#define UE_REFERENCE_COLLECTOR_REQUIRE_OBJECTPTR_DEPRECATED(...)
 
#define ASSET_LOG_FORMAT_STRING_ANSI   "[AssetLog] %s: "
 
#define ASSET_LOG_FORMAT_STRING   TEXT(ASSET_LOG_FORMAT_STRING_ANSI)
 
#define UE_ASSET_LOG(CategoryName, Verbosity, Asset, Format, ...)
 
#define METADATA_PARAMS(x, y)
 
#define IF_WITH_METADATA(...)
 
#define IF_WITH_EDITOR(x, y)   y
 
#define IF_WITH_EDITORONLY_DATA(x, y)   y
 
#define IF_WITH_VERSE_VM(x, y)   y
 

Typedefs

typedef int32 TAsyncLoadPriority
 
typedef void(* SetterFuncPtr) (void *InContainer, const void *InValue)
 
typedef void(* GetterFuncPtr) (const void *InContainer, void *OutValue)
 

Enumerations

enum  EDuplicateMode::Type { EDuplicateMode::Normal , EDuplicateMode::World , EDuplicateMode::PIE }
 
enum class  EFindFirstObjectOptions { None = 0 , ExactClass = 1 << 1 , NativeFirst = 1 << 2 , EnsureIfAmbiguous = 1 << 3 }
 
enum class  EParseObjectLoadingPolicy : uint8 { Find , FindOrLoad }
 
enum  EAsyncLoadingResult::Type : uint8 {
  EAsyncLoadingResult::Failed , EAsyncLoadingResult::FailedMissing , EAsyncLoadingResult::FailedLinker , EAsyncLoadingResult::FailedNotInstalled ,
  EAsyncLoadingResult::Succeeded , EAsyncLoadingResult::Canceled
}
 
enum class  EAsyncLoadingProgress : uint32 {
  Failed , Started , Read , Serialized ,
  FullyLoaded
}
 
enum class  EUniqueObjectNameOptions { None = 0 , GloballyUnique = 1 << 1 , UniversallyUnique = 1 << 2 }
 
enum  EAsyncPackageState::Type { EAsyncPackageState::TimeOut = 0 , EAsyncPackageState::PendingImports , EAsyncPackageState::Complete }
 
enum class  EObjectInitializerOptions { None = 0 , CopyTransientsFromClassDefaults = 1 << 0 , InitializeProperties = 1 << 1 }
 
enum class  EHotReloadedClassFlags { None = 0 , Changed = 0x01 }
 
enum class  EReloadCompleteReason { None , HotReloadAutomatic , HotReloadManual }
 
enum class  ECompiledInUObjectsRegisteredStatus { Delayed , PreCDO , PostCDO }
 
enum class  EDataValidationResult : uint8 { Invalid , Valid , NotValidated }
 

Functions

COREUOBJECT_API DECLARE_LOG_CATEGORY_EXTERN (LogUObjectGlobals, Log, All)
 
 DECLARE_CYCLE_STAT_EXTERN (TEXT("ConstructObject"), STAT_ConstructObject, STATGROUP_Object,)
 
 DECLARE_CYCLE_STAT_EXTERN (TEXT("AllocateObject"), STAT_AllocateObject, STATGROUP_ObjectVerbose,)
 
 DECLARE_CYCLE_STAT_EXTERN (TEXT("PostConstructInitializeProperties"), STAT_PostConstructInitializeProperties, STATGROUP_ObjectVerbose,)
 
 DECLARE_CYCLE_STAT_EXTERN (TEXT("LoadConfig"), STAT_LoadConfig, STATGROUP_Object,)
 
 DECLARE_CYCLE_STAT_EXTERN (TEXT("LoadObject"), STAT_LoadObject, STATGROUP_Object,)
 
 DECLARE_CYCLE_STAT_WITH_FLAGS_EXTERN (TEXT("InitProperties"), STAT_InitProperties, STATGROUP_Object, EStatFlags::Verbose,)
 
 DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN (TEXT("NameTable Entries"), STAT_NameTableEntries, STATGROUP_Object,)
 
 DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN (TEXT("NameTable ANSI Entries"), STAT_NameTableAnsiEntries, STATGROUP_Object,)
 
 DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN (TEXT("NameTable Wide Entries"), STAT_NameTableWideEntries, STATGROUP_Object,)
 
 DECLARE_MEMORY_STAT_EXTERN (TEXT("NameTable Memory Size"), STAT_NameTableMemorySize, STATGROUP_Object,)
 
 DECLARE_CYCLE_STAT_EXTERN (TEXT("~UObject"), STAT_DestroyObject, STATGROUP_Object,)
 
 DECLARE_DWORD_COUNTER_STAT_EXTERN (TEXT("FindObject"), STAT_FindObject, STATGROUP_ObjectVerbose,)
 
 DECLARE_DWORD_COUNTER_STAT_EXTERN (TEXT("FindObjectFast"), STAT_FindObjectFast, STATGROUP_ObjectVerbose,)
 
bool UE::IsSavingPackage (UObject *InOuter)
 
COREUOBJECT_API TArray< const TCHAR * > ParsePropertyFlags (EPropertyFlags Flags)
 
COREUOBJECT_API UPackageGetTransientPackage ()
 
COREUOBJECT_API UObjectGetTransientPackageAsObject ()
 
COREUOBJECT_API UObjectGetTransientOuterForRename (UClass *ForClass)
 
COREUOBJECT_API const FString * GetIniFilenameFromObjectsReference (const FString &ObjectsReferenceString)
 
COREUOBJECT_API FString ResolveIniObjectsReference (const FString &ObjectReference, const FString *IniFilename=nullptr, bool bThrow=false)
 
COREUOBJECT_API bool ResolveName (UObject *&Outer, FString &ObjectsReferenceString, bool Create, bool Throw, uint32 LoadFlags=LOAD_None, const FLinkerInstancingContext *InstancingContext=nullptr)
 
COREUOBJECT_API bool SafeLoadError (UObject *Outer, uint32 LoadFlags, const TCHAR *ErrorMessage)
 
COREUOBJECT_API int32 UpdateSuffixForNextNewObject (UObject *Parent, const UClass *Class, TFunctionRef< void(int32 &)> IndexMutator)
 
COREUOBJECT_API UObjectStaticFindObjectFast (UClass *Class, UObject *InOuter, FName InName, EFindObjectFlags Flags=EFindObjectFlags::None, EObjectFlags ExclusiveFlags=RF_NoFlags, EInternalObjectFlags ExclusiveInternalFlags=EInternalObjectFlags::None)
 
template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObjectStaticFindObjectFast (UClass *Class, UObject *InOuter, FName InName, ExactClassType bExactClass, EObjectFlags ExclusiveFlags=RF_NoFlags, EInternalObjectFlags ExclusiveInternalFlags=EInternalObjectFlags::None)
 
COREUOBJECT_API UObjectStaticFindObjectFastSafe (UClass *Class, UObject *InOuter, FName InName, EFindObjectFlags Flags=EFindObjectFlags::None, EObjectFlags ExclusiveFlags=RF_NoFlags, EInternalObjectFlags ExclusiveInternalFlags=EInternalObjectFlags::None)
 
template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObjectStaticFindObjectFastSafe (UClass *Class, UObject *InOuter, FName InName, ExactClassType bExactClass, EObjectFlags ExclusiveFlags=RF_NoFlags, EInternalObjectFlags ExclusiveInternalFlags=EInternalObjectFlags::None)
 
COREUOBJECT_API UObjectStaticFindObject (UClass *Class, UObject *InOuter, FStringView Name, EFindObjectFlags Flags=EFindObjectFlags::None)
 
template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObjectStaticFindObject (UClass *Class, UObject *InOuter, FStringView Name, ExactClassType bExactClass)
 
COREUOBJECT_API UObjectStaticFindObject (UClass *Class, FTopLevelAssetPath ObjectPath, EFindObjectFlags Flags=EFindObjectFlags::None)
 
template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObjectStaticFindObject (UClass *Class, FTopLevelAssetPath ObjectPath, ExactClassType bExactClass)
 
COREUOBJECT_API UObjectStaticFindObjectChecked (UClass *Class, UObject *InOuter, FStringView Name, EFindObjectFlags Flags=EFindObjectFlags::None)
 
template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObjectStaticFindObjectChecked (UClass *Class, UObject *InOuter, FStringView Name, ExactClassType bExactClass)
 
COREUOBJECT_API UObjectStaticFindObjectSafe (UClass *Class, UObject *InOuter, FStringView Name, EFindObjectFlags Flags=EFindObjectFlags::None)
 
template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObjectStaticFindObjectSafe (UClass *Class, UObject *InOuter, FStringView Name, ExactClassType bExactClass)
 
COREUOBJECT_API UObjectStaticFindObjectSafe (UClass *Class, FTopLevelAssetPath ObjectPath, EFindObjectFlags Flags=EFindObjectFlags::None)
 
template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObjectStaticFindObjectSafe (UClass *Class, FTopLevelAssetPath ObjectPath, ExactClassType bExactClass)
 
COREUOBJECT_API bool StaticFindAllObjectsFast (TArray< UObject * > &OutFoundObjects, UClass *ObjectClass, FName ObjectName, EFindObjectFlags Flags=EFindObjectFlags::None, EObjectFlags ExclusiveFlags=RF_NoFlags, EInternalObjectFlags ExclusiveInternalFlags=EInternalObjectFlags::None)
 
template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT bool StaticFindAllObjectsFast (TArray< UObject * > &OutFoundObjects, UClass *ObjectClass, FName ObjectName, ExactClassType bExactClass, EObjectFlags ExclusiveFlags=RF_NoFlags, EInternalObjectFlags ExclusiveInternalFlags=EInternalObjectFlags::None)
 
COREUOBJECT_API bool StaticFindAllObjectsFastSafe (TArray< UObject * > &OutFoundObjects, UClass *ObjectClass, FName ObjectName, EFindObjectFlags Flags=EFindObjectFlags::None, EObjectFlags ExclusiveFlags=RF_NoFlags, EInternalObjectFlags ExclusiveInternalFlags=EInternalObjectFlags::None)
 
template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT bool StaticFindAllObjectsFastSafe (TArray< UObject * > &OutFoundObjects, UClass *ObjectClass, FName ObjectName, ExactClassType bExactClass, EObjectFlags ExclusiveFlags=RF_NoFlags, EInternalObjectFlags ExclusiveInternalFlags=EInternalObjectFlags::None)
 
COREUOBJECT_API bool StaticFindAllObjects (TArray< UObject * > &OutFoundObjects, UClass *Class, const TCHAR *Name, EFindObjectFlags Flags=EFindObjectFlags::None)
 
template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT bool StaticFindAllObjects (TArray< UObject * > &OutFoundObjects, UClass *Class, const TCHAR *Name, ExactClassType bExactClass)
 
COREUOBJECT_API bool StaticFindAllObjectsSafe (TArray< UObject * > &OutFoundObjects, UClass *Class, const TCHAR *Name, EFindObjectFlags Flags=EFindObjectFlags::None)
 
template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT bool StaticFindAllObjectsSafe (TArray< UObject * > &OutFoundObjects, UClass *Class, const TCHAR *Name, ExactClassType bExactClass)
 
 ENUM_CLASS_FLAGS (EFindFirstObjectOptions)
 
COREUOBJECT_API UObjectStaticFindFirstObject (UClass *Class, FStringView Name, EFindFirstObjectOptions Options=EFindFirstObjectOptions::None, ELogVerbosity::Type AmbiguousMessageVerbosity=ELogVerbosity::NoLogging, const TCHAR *InCurrentOperation=nullptr)
 
COREUOBJECT_API UObjectStaticFindFirstObjectSafe (UClass *Class, FStringView Name, EFindFirstObjectOptions Options=EFindFirstObjectOptions::None, ELogVerbosity::Type AmbiguousMessageVerbosity=ELogVerbosity::NoLogging, const TCHAR *InCurrentOperation=nullptr)
 
COREUOBJECT_API bool ParseObject (const TCHAR *Stream, const TCHAR *Match, UClass *Class, UObject *&DestRes, UObject *InParent, EParseObjectLoadingPolicy LoadingPolicy, bool *bInvalidObject=nullptr)
 
bool ParseObject (const TCHAR *Stream, const TCHAR *Match, UClass *Class, UObject *&DestRes, UObject *InParent, bool *bInvalidObject=nullptr)
 
COREUOBJECT_API UObjectStaticLoadObject (UClass *Class, UObject *InOuter, FStringView Name, FStringView Filename={}, uint32 LoadFlags=LOAD_None, UPackageMap *Sandbox=nullptr, bool bAllowObjectReconciliation=true, const FLinkerInstancingContext *InstancingContext=nullptr)
 
COREUOBJECT_API UClassStaticLoadClass (UClass *BaseClass, UObject *InOuter, FStringView Name, FStringView Filename={}, uint32 LoadFlags=LOAD_None, UPackageMap *Sandbox=nullptr)
 
COREUOBJECT_API UObjectStaticLoadAsset (UClass *Class, FTopLevelAssetPath InPath, uint32 LoadFlags=LOAD_None, const FLinkerInstancingContext *InstancingContext=nullptr)
 
COREUOBJECT_API UObjectStaticConstructObject_Internal (const FStaticConstructObjectParameters &Params)
 
COREUOBJECT_API UObjectStaticDuplicateObject (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)
 
COREUOBJECT_API 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)
 
COREUOBJECT_API UObjectStaticDuplicateObjectEx (FObjectDuplicationParameters &Parameters)
 
COREUOBJECT_API bool StaticExec (UWorld *InWorld, const TCHAR *Cmd, FOutputDevice &Ar=*GLog)
 
COREUOBJECT_API void StaticTick (float DeltaTime, bool bUseFullTimeLimit=true, float AsyncLoadingTime=0.005f)
 
COREUOBJECT_API UPackageLoadPackage (UPackage *InOuter, const TCHAR *InLongPackageName, uint32 LoadFlags, FArchive *InReaderOverride=nullptr, const FLinkerInstancingContext *InstancingContext=nullptr)
 
COREUOBJECT_API UPackageLoadPackage (UPackage *InOuter, const FPackagePath &InPackagePath, uint32 LoadFlags, FArchive *InReaderOverride=nullptr, const FLinkerInstancingContext *InstancingContext=nullptr, const FPackagePath *DiffPackagePath=nullptr)
 
 DECLARE_DELEGATE_ThreeParams (FLoadPackageAsyncDelegate, const FName &, UPackage *, EAsyncLoadingResult::Type) struct FLoadPackageAsyncProgressParams
 
COREUOBJECT_API int32 LoadPackageAsync (const FPackagePath &InPackagePath, FLoadPackageAsyncOptionalParams InOptionalParams)
 
COREUOBJECT_API int32 LoadPackageAsync (const FPackagePath &InPackagePath, FName InPackageNameToCreate=NAME_None, FLoadPackageAsyncDelegate InCompletionDelegate=FLoadPackageAsyncDelegate(), EPackageFlags InPackageFlags=PKG_None, int32 InPIEInstanceID=INDEX_NONE, TAsyncLoadPriority InPackagePriority=0, const FLinkerInstancingContext *InstancingContext=nullptr, uint32 LoadFlags=LOAD_None)
 
COREUOBJECT_API int32 LoadPackageAsync (const FString &InName, const FGuid *InGuid=nullptr)
 
COREUOBJECT_API int32 LoadPackageAsync (const FString &InName, FLoadPackageAsyncDelegate InCompletionDelegate, TAsyncLoadPriority InPackagePriority=0, EPackageFlags InPackageFlags=PKG_None, int32 InPIEInstanceID=INDEX_NONE)
 
COREUOBJECT_API int32 LoadPackageAsync (const FString &InName, FLoadPackageAsyncOptionalParams InOptionalParams)
 
 DECLARE_DELEGATE_ThreeParams (FLoadAssetAsyncDelegate, const FTopLevelAssetPath &, UObject *, EAsyncLoadingResult::Type) struct FLoadAssetAsyncOptionalParams
 
COREUOBJECT_API int32 LoadAssetAsync (FTopLevelAssetPath InAssetPath, FLoadAssetAsyncDelegate InCompletionDelegate, FLoadAssetAsyncOptionalParams InOptionalParams=FLoadAssetAsyncOptionalParams())
 
COREUOBJECT_API void CancelAsyncLoading ()
 
COREUOBJECT_API bool IsEventDrivenLoaderEnabled ()
 
COREUOBJECT_API float GetAsyncLoadPercentage (const FName &PackageName)
 
COREUOBJECT_API void CollectGarbage (EObjectFlags KeepFlags, bool bPerformFullPurge=true)
 
COREUOBJECT_API bool TryCollectGarbage (EObjectFlags KeepFlags, bool bPerformFullPurge=true)
 
COREUOBJECT_API bool UnhashUnreachableObjects (bool bUseTimeLimit, double TimeLimit=0.0)
 
COREUOBJECT_API bool IsIncrementalUnhashPending ()
 
COREUOBJECT_API bool IsIncrementalPurgePending ()
 
COREUOBJECT_API void GatherUnreachableObjects (bool bForceSingleThreaded)
 
COREUOBJECT_API bool IsIncrementalReachabilityAnalysisPending ()
 
COREUOBJECT_API void PerformIncrementalReachabilityAnalysis (double TimeLimit)
 
COREUOBJECT_API void FinalizeIncrementalReachabilityAnalysis ()
 
COREUOBJECT_API void IncrementalPurgeGarbage (bool bUseTimeLimit, double TimeLimit=0.002)
 
 ENUM_CLASS_FLAGS (EUniqueObjectNameOptions)
 
COREUOBJECT_API FName MakeUniqueObjectName (UObject *Outer, const UClass *Class, FName BaseName=NAME_None, EUniqueObjectNameOptions Options=EUniqueObjectNameOptions::None)
 
COREUOBJECT_API FName MakeUniversallyUniqueObjectName (UObject *Outer, FName InBaseName=NAME_None, FUniversallyUniqueObjectNameGenerator const *Generator=nullptr)
 
COREUOBJECT_API bool HasUniversallyUniqueObjectNameIdentifier (FName Name)
 
COREUOBJECT_API FName MakeObjectNameFromDisplayLabel (const FString &DisplayLabel, const FName CurrentObjectName)
 
COREUOBJECT_API bool IsReferenced (UObject *&Res, EObjectFlags KeepFlags, EInternalObjectFlags InternalKeepFlags, bool bCheckSubObjects=false, FReferencerInformationList *FoundReferences=nullptr)
 
COREUOBJECT_API void FlushAsyncLoading (int32 PackageID=INDEX_NONE)
 
COREUOBJECT_API void FlushAsyncLoading (TConstArrayView< int32 > RequestIds)
 
COREUOBJECT_API int32 GetNumAsyncPackages ()
 
COREUOBJECT_API bool IsLoading ()
 
COREUOBJECT_API void SetAsyncLoadingAllowed (bool bAllowAsyncLoading)
 
COREUOBJECT_API EAsyncPackageState::Type ProcessAsyncLoading (bool bUseTimeLimit, bool bUseFullTimeLimit, double TimeLimit)
 
COREUOBJECT_API EAsyncPackageState::Type ProcessAsyncLoadingUntilComplete (TFunctionRef< bool()> CompletionPredicate, double TimeLimit)
 
COREUOBJECT_API void BeginLoad (FUObjectSerializeContext *LoadContext, const TCHAR *DebugContext=nullptr)
 
COREUOBJECT_API void EndLoad (FUObjectSerializeContext *LoadContext)
 
COREUOBJECT_API UPackageFindPackage (UObject *InOuter, const TCHAR *PackageName)
 
COREUOBJECT_API UPackageCreatePackage (const TCHAR *PackageName)
 
void GlobalSetProperty (const TCHAR *Value, UClass *Class, FProperty *Property, bool bNotifyObjectOfChange)
 
COREUOBJECT_API bool SaveToTransactionBuffer (UObject *Object, bool bMarkDirty)
 
COREUOBJECT_API void SnapshotTransactionBuffer (UObject *Object)
 
COREUOBJECT_API void SnapshotTransactionBuffer (UObject *Object, TArrayView< const FProperty * > Properties)
 
bool StaticAllocateObjectErrorTests (const UClass *Class, UObject *InOuter, FName Name, EObjectFlags SetFlags)
 
COREUOBJECT_API UObjectStaticAllocateObject (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)
 
template<class T >
FUNCTION_NON_NULL_RETURN_START T * NewObject (UObject *Outer, const UClass *Class, FName Name=NAME_None, EObjectFlags Flags=RF_NoFlags, UObject *Template=nullptr, bool bCopyTransientsFromClassDefaults=false, FObjectInstancingGraph *InInstanceGraph=nullptr, UPackage *InExternalPackage=nullptr) FUNCTION_NON_NULL_RETURN_END
 
template<class T >
FUNCTION_NON_NULL_RETURN_START T * NewObject (UObject *Outer=GetTransientPackageAsObject()) FUNCTION_NON_NULL_RETURN_END
 
template<class T >
FUNCTION_NON_NULL_RETURN_START T * NewObject (UObject *Outer, FName Name, EObjectFlags Flags=RF_NoFlags, UObject *Template=nullptr, bool bCopyTransientsFromClassDefaults=false, FObjectInstancingGraph *InInstanceGraph=nullptr, UPackage *InExternalPackage=nullptr) FUNCTION_NON_NULL_RETURN_END
 
COREUOBJECT_API UObjectDuplicateObject_Internal (UClass *Class, const UObject *SourceObject, UObject *Outer, const FName NAME_None)
 
template<class T >
T * DuplicateObject (T const *SourceObject, UObject *Outer, const FName Name=NAME_None)
 
template<typename T >
T * DuplicateObject (const TObjectPtr< T > &SourceObject, UObject *Outer, const FName Name=NAME_None)
 
COREUOBJECT_API bool UsesPerObjectConfig (UObject *SourceObject)
 
COREUOBJECT_API FString GetConfigFilename (UObject *SourceObject)
 
template<class T >
bool ParseObject (const TCHAR *Stream, const TCHAR *Match, T *&Obj, UObject *Outer, EParseObjectLoadingPolicy LoadingPolicy, bool *bInvalidObject=nullptr)
 
template<class T >
bool ParseObject (const TCHAR *Stream, const TCHAR *Match, T *&Obj, UObject *Outer, bool *bInvalidObject=nullptr)
 
template<class T >
T * FindObjectFast (UObject *Outer, FName Name, EFindObjectFlags Flags=EFindObjectFlags::None, EObjectFlags ExclusiveFlags=RF_NoFlags)
 
template<typename T , UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT T * FindObjectFast (UObject *Outer, FName Name, ExactClassType bExactClass, EObjectFlags ExclusiveFlags=RF_NoFlags)
 
template<class T >
T * FindObject (UObject *Outer, FStringView Name, EFindObjectFlags Flags=EFindObjectFlags::None)
 
template<typename T , UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT T * FindObject (UObject *Outer, FStringView Name, ExactClassType bExactClass)
 
template<class T >
T * FindObject (FTopLevelAssetPath InPath, EFindObjectFlags Flags=EFindObjectFlags::None)
 
template<typename T , UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT T * FindObject (FTopLevelAssetPath InPath, ExactClassType bExactClass)
 
template<class T >
T * FindObjectChecked (UObject *Outer, FStringView Name, EFindObjectFlags Flags=EFindObjectFlags::None)
 
template<typename T , UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT T * FindObjectChecked (UObject *Outer, FStringView Name, ExactClassType bExactClass)
 
template<class T >
T * FindObjectSafe (UObject *Outer, FStringView Name, EFindObjectFlags Flags=EFindObjectFlags::None)
 
template<typename T , UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT T * FindObjectSafe (UObject *Outer, FStringView Name, ExactClassType bExactClass)
 
template<class T >
T * FindObjectSafe (FTopLevelAssetPath InPath, EFindObjectFlags Flags=EFindObjectFlags::None)
 
template<typename T , UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT T * FindObjectSafe (FTopLevelAssetPath InPath, ExactClassType bExactClass)
 
template<class T >
T * FindFirstObject (FStringView Name, EFindFirstObjectOptions Options=EFindFirstObjectOptions::None, ELogVerbosity::Type AmbiguousMessageVerbosity=ELogVerbosity::NoLogging, const TCHAR *CurrentOperation=nullptr)
 
template<class T >
T * FindFirstObjectSafe (FStringView Name, EFindFirstObjectOptions Options=EFindFirstObjectOptions::None, ELogVerbosity::Type AmbiguousMessageVerbosity=ELogVerbosity::NoLogging, const TCHAR *CurrentOperation=nullptr)
 
template<class T >
T * LoadObject (UObject *Outer, FStringView Name, FStringView Filename={}, uint32 LoadFlags=LOAD_None, UPackageMap *Sandbox=nullptr, const FLinkerInstancingContext *InstancingContext=nullptr)
 
template<class T >
UClassLoadClass (UObject *Outer, FStringView Name, FStringView Filename={}, uint32 LoadFlags=LOAD_None, UPackageMap *Sandbox=nullptr)
 
template<class T >
const T * GetDefault ()
 
template<class T >
const T * GetDefault (const UClass *Class)
 
template<class T >
T * GetMutableDefault ()
 
template<class T >
T * GetMutableDefault (UClass *Class)
 
template<class T >
bool IsClassLoaded ()
 
COREUOBJECT_API UFunctionFindDelegateSignature (FName DelegateSignatureName)
 
template<class T >
bool ContainsObjectOfClass (const TArray< T * > &ObjectArray, UClass *ClassToCheck, EFindObjectFlags Flags=EFindObjectFlags::None, TArray< T * > *out_Objects=nullptr)
 
template<typename T , UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT bool ContainsObjectOfClass (const TArray< T * > &ObjectArray, UClass *ClassToCheck, ExactClassType bExactClass, TArray< T * > *out_Objects=nullptr)
 
COREUOBJECT_API UScriptStructGetFallbackStruct ()
 
COREUOBJECT_API bool GetAllowNativeComponentClassOverrides ()
 
COREUOBJECT_API EDataValidationResult CombineDataValidationResults (EDataValidationResult Result1, EDataValidationResult Result2)
 

Variables

COREUOBJECT_API bool GIsSavingPackage
 
COREUOBJECT_API int32 GAllowUnversionedContentInEditor
 
COREUOBJECT_API int32 GAllowCookedDataInEditorBuilds
 
COREUOBJECT_API bool GShouldVerifyGCAssumptions
 
COREUOBJECT_API int32 GCreateGCClusters
 
COREUOBJECT_API int32 GAssetClustreringEnabled
 

Macro Definition Documentation

◆ ASSET_LOG_FORMAT_STRING

#define ASSET_LOG_FORMAT_STRING   TEXT(ASSET_LOG_FORMAT_STRING_ANSI)

◆ ASSET_LOG_FORMAT_STRING_ANSI

#define ASSET_LOG_FORMAT_STRING_ANSI   "[AssetLog] %s: "

◆ IF_WITH_EDITOR

#define IF_WITH_EDITOR (   x,
 
)    y

◆ IF_WITH_EDITORONLY_DATA

#define IF_WITH_EDITORONLY_DATA (   x,
 
)    y

◆ IF_WITH_METADATA

#define IF_WITH_METADATA (   ...)

◆ IF_WITH_VERSE_VM

#define IF_WITH_VERSE_VM (   x,
 
)    y

◆ INVALID_OBJECT

#define INVALID_OBJECT   (UObject*)-1

◆ METADATA_PARAMS

#define METADATA_PARAMS (   x,
 
)

◆ PERF_TRACK_DETAILED_ASYNC_STATS

#define PERF_TRACK_DETAILED_ASYNC_STATS   (0)

◆ UE_ASSET_LOG

#define UE_ASSET_LOG (   CategoryName,
  Verbosity,
  Asset,
  Format,
  ... 
)
Value:
{ \
static_assert(TIsArrayOrRefOfTypeByPredicate<decltype(Format), TIsCharEncodingCompatibleWithTCHAR>::Value, "Formatting string must be a TCHAR array."); \
static_assert((ELogVerbosity::Verbosity & ELogVerbosity::VerbosityMask) < ELogVerbosity::NumVerbosity && ELogVerbosity::Verbosity > 0, "Verbosity must be constant and in range."); \
CA_CONSTANT_IF((ELogVerbosity::Verbosity & ELogVerbosity::VerbosityMask) <= ELogVerbosity::COMPILED_IN_MINIMUM_VERBOSITY && (ELogVerbosity::Warning & ELogVerbosity::VerbosityMask) <= FLogCategory##CategoryName::CompileTimeVerbosity) \
{ \
UE_LOG_EXPAND_IS_FATAL(Verbosity, PREPROCESSOR_NOTHING, if (!CategoryName.IsSuppressed(ELogVerbosity::Verbosity))) \
{ \
::UE::Core::Private::RecordAssetLog(CategoryName.GetCategoryName(), ELogVerbosity::Verbosity, ::UE::FAssetLog(Asset), FString::Printf(Format, ##__VA_ARGS__), __FILE__, __LINE__); \
{ \
FDebug::AssertFailed("", __FILE__, __LINE__, TEXT("%s: %s"), *FAssetMsg::FormatPathForAssetLog(Asset), *FString::Printf(Format, ##__VA_ARGS__)); \
CA_ASSUME(false); \
}, \
) \
} \
} \
}
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define PREPROCESSOR_NOTHING
Definition PreprocessorHelpers.h:110
Definition UObjectGlobals.h:3476
@ NumVerbosity
Definition LogVerbosity.h:57
@ Warning
Definition LogVerbosity.h:34
@ VerbosityMask
Definition LogVerbosity.h:58
static COREUOBJECT_API FString FormatPathForAssetLog(const TCHAR *Path)
Definition UObjectGlobals.cpp:6189
Definition LogCategory.h:86
Definition IsArrayOrRefOfTypeByPredicate.h:13
Definition IsCharEncodingCompatibleWith.h:65

A macro that outputs a formatted message to log with a canonical reference to an asset if a given logging category is active at a given verbosity level

Parameters
CategoryNamename of the logging category
Verbosity,verbositylevel to test against
Asset,Objector asset path to format
Format,formattext

◆ UE_GC_RUN_WEAKPTR_BARRIERS

#define UE_GC_RUN_WEAKPTR_BARRIERS   0

◆ UE_REFERENCE_COLLECTOR_REQUIRE_OBJECTPTR_DEPRECATED

#define UE_REFERENCE_COLLECTOR_REQUIRE_OBJECTPTR_DEPRECATED (   ...)

Typedef Documentation

◆ GetterFuncPtr

typedef void(* GetterFuncPtr) (const void *InContainer, void *OutValue)

◆ SetterFuncPtr

typedef void(* SetterFuncPtr) (void *InContainer, const void *InValue)

Property setter and getter wrapper function pointer

◆ TAsyncLoadPriority

The type that represents an async loading priority

Enumeration Type Documentation

◆ EAsyncLoadingProgress

Async loading progress for a specific package

Enumerator
Failed 

Package failed to load

Started 

Package has started loading.

Read 

Package I/O has been read.

Serialized 

Package has finished its serialization phase.

FullyLoaded 

Package has finished all loading phase successfully

◆ ECompiledInUObjectsRegisteredStatus

Enumerator
Delayed 
PreCDO 
PostCDO 

◆ EDataValidationResult

Enum used by DataValidation plugin to see if an asset has been validated for correctness

Enumerator
Invalid 

Asset has failed validation

Valid 

Asset has passed validation

NotValidated 

Asset has not yet been validated

◆ EFindFirstObjectOptions

Enumerator
None 
ExactClass 
NativeFirst 
EnsureIfAmbiguous 

◆ EHotReloadedClassFlags

Enumerator
None 
Changed 

◆ EObjectInitializerOptions

FObjectInitializer options

Enumerator
None 
CopyTransientsFromClassDefaults 
InitializeProperties 

◆ EParseObjectLoadingPolicy

Loading policy to use with ParseObject

Enumerator
Find 

Try and find the object, but do not attempt to load it

FindOrLoad 

Try and find the object, or attempt of load it if it cannot be found (note: loading may be globally disabled via the CVar "s.AllowParseObjectLoading")

◆ EReloadCompleteReason

Enumerator
None 
HotReloadAutomatic 
HotReloadManual 

◆ EUniqueObjectNameOptions

Enumerator
None 
GloballyUnique 
UniversallyUnique 

Function Documentation

◆ BeginLoad()

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

UObjects are being loaded between these calls

◆ CancelAsyncLoading()

COREUOBJECT_API void CancelAsyncLoading ( )

Cancels all async package loading requests.

◆ CollectGarbage()

COREUOBJECT_API void CollectGarbage ( EObjectFlags  KeepFlags,
bool  bPerformFullPurge = true 
)

Deletes all unreferenced objects, keeping objects that have any of the passed in KeepFlags set. Will wait for other threads to unlock GC.

Parameters
KeepFlagsobjects with those flags will be kept regardless of being referenced or not
bPerformFullPurgeif true, perform a full purge after the mark pass

◆ CombineDataValidationResults()

COREUOBJECT_API EDataValidationResult CombineDataValidationResults ( EDataValidationResult  Result1,
EDataValidationResult  Result2 
)

Combines two different data validation results and returns the combined result.

Parameters
Result1One of the data validation results to be combined
Result2One of the data validation results to be combined
Returns
Returns the combined data validation result

Anything combined with an Invalid result is Invalid. Any result combined with a NotValidated result is the same result

The combined results should match the following matrix

        |   NotValidated    |   Valid   |   Invalid

----------—+----------------—+--------—+-------— NotValidated | NotValidated | Valid | Invalid Valid | Valid | Valid | Invalid Invalid | Invalid | Invalid | Invalid

◆ ContainsObjectOfClass() [1/2]

template<class T >
bool ContainsObjectOfClass ( const TArray< T * > &  ObjectArray,
UClass ClassToCheck,
EFindObjectFlags  Flags = EFindObjectFlags::None,
TArray< T * > *  out_Objects = nullptr 
)

Determines whether the specified array contains objects of the specified class.

Parameters
ObjectArraythe array to search - must be an array of pointers to instances of a UObject-derived class
ClassToCheckthe object class to search for
FlagsFlags which control the search
out_Objectsif specified, any objects that match the SearchClass will be added to this array

◆ ContainsObjectOfClass() [2/2]

template<typename T , UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT bool ContainsObjectOfClass ( const TArray< T * > &  ObjectArray,
UClass ClassToCheck,
ExactClassType  bExactClass,
TArray< T * > *  out_Objects = nullptr 
)

◆ CreatePackage()

COREUOBJECT_API 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

◆ DECLARE_CYCLE_STAT_EXTERN() [1/6]

DECLARE_CYCLE_STAT_EXTERN ( TEXT("AllocateObject")  ,
STAT_AllocateObject  ,
STATGROUP_ObjectVerbose   
)

◆ DECLARE_CYCLE_STAT_EXTERN() [2/6]

DECLARE_CYCLE_STAT_EXTERN ( TEXT("ConstructObject")  ,
STAT_ConstructObject  ,
STATGROUP_Object   
)

◆ DECLARE_CYCLE_STAT_EXTERN() [3/6]

DECLARE_CYCLE_STAT_EXTERN ( TEXT("LoadConfig")  ,
STAT_LoadConfig  ,
STATGROUP_Object   
)

◆ DECLARE_CYCLE_STAT_EXTERN() [4/6]

DECLARE_CYCLE_STAT_EXTERN ( TEXT("LoadObject")  ,
STAT_LoadObject  ,
STATGROUP_Object   
)

◆ DECLARE_CYCLE_STAT_EXTERN() [5/6]

DECLARE_CYCLE_STAT_EXTERN ( TEXT("PostConstructInitializeProperties")  ,
STAT_PostConstructInitializeProperties  ,
STATGROUP_ObjectVerbose   
)

◆ DECLARE_CYCLE_STAT_EXTERN() [6/6]

DECLARE_CYCLE_STAT_EXTERN ( TEXT("~UObject")  ,
STAT_DestroyObject  ,
STATGROUP_Object   
)

◆ DECLARE_CYCLE_STAT_WITH_FLAGS_EXTERN()

DECLARE_CYCLE_STAT_WITH_FLAGS_EXTERN ( TEXT("InitProperties")  ,
STAT_InitProperties  ,
STATGROUP_Object  ,
EStatFlags::Verbose   
)

◆ DECLARE_DELEGATE_ThreeParams() [1/2]

DECLARE_DELEGATE_ThreeParams ( FLoadAssetAsyncDelegate  ,
const FTopLevelAssetPath ,
UObject ,
EAsyncLoadingResult::Type   
)

Delegate called on completion of async asset loading

Parameters
AssetPathPath of the asset we were trying to load
LoadedObjectLoaded object if successful, nullptr otherwise
ResultResult of async loading. Optional parameters passed to the LoadAssetAsync function.

Thread-safe delegate to be invoked at different state of progress for the given package.

Loading priority.

Additional context to map object names to their instanced counterpart when loading an instanced package.

Flags controlling loading behavior, from the ELoadFlags enum.

◆ DECLARE_DELEGATE_ThreeParams() [2/2]

DECLARE_DELEGATE_ThreeParams ( FLoadPackageAsyncDelegate  ,
const FName ,
UPackage ,
EAsyncLoadingResult::Type   
)

Delegate called on completion of async package loading

Parameters
PackageNamePackage name we were trying to load
LoadedPackageLoaded package if successful, nullptr otherwise
ResultResult of async loading. Parameters passed to the FLoadPackageAsyncProgressDelegate callback.

◆ DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN() [1/3]

DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN ( TEXT("NameTable ANSI Entries" ,
STAT_NameTableAnsiEntries  ,
STATGROUP_Object   
)

◆ DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN() [2/3]

DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN ( TEXT("NameTable Entries" ,
STAT_NameTableEntries  ,
STATGROUP_Object   
)

◆ DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN() [3/3]

DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN ( TEXT("NameTable Wide Entries" ,
STAT_NameTableWideEntries  ,
STATGROUP_Object   
)

◆ DECLARE_DWORD_COUNTER_STAT_EXTERN() [1/2]

DECLARE_DWORD_COUNTER_STAT_EXTERN ( TEXT("FindObject")  ,
STAT_FindObject  ,
STATGROUP_ObjectVerbose   
)

◆ DECLARE_DWORD_COUNTER_STAT_EXTERN() [2/2]

DECLARE_DWORD_COUNTER_STAT_EXTERN ( TEXT("FindObjectFast")  ,
STAT_FindObjectFast  ,
STATGROUP_ObjectVerbose   
)

◆ DECLARE_LOG_CATEGORY_EXTERN()

COREUOBJECT_API DECLARE_LOG_CATEGORY_EXTERN ( LogUObjectGlobals  ,
Log  ,
All   
)

◆ DECLARE_MEMORY_STAT_EXTERN()

DECLARE_MEMORY_STAT_EXTERN ( TEXT("NameTable Memory Size" ,
STAT_NameTableMemorySize  ,
STATGROUP_Object   
)

◆ DuplicateObject() [1/2]

template<typename T >
T * DuplicateObject ( const TObjectPtr< T > &  SourceObject,
UObject Outer,
const FName  Name = NAME_None 
)

◆ DuplicateObject() [2/2]

template<class T >
T * DuplicateObject ( T const *  SourceObject,
UObject Outer,
const FName  Name = NAME_None 
)

Convenience template for duplicating an object

Parameters
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

◆ DuplicateObject_Internal()

COREUOBJECT_API 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()

COREUOBJECT_API void EndLoad ( FUObjectSerializeContext LoadContext)

◆ ENUM_CLASS_FLAGS() [1/2]

ENUM_CLASS_FLAGS ( EFindFirstObjectOptions  )

◆ ENUM_CLASS_FLAGS() [2/2]

ENUM_CLASS_FLAGS ( EUniqueObjectNameOptions  )

◆ FinalizeIncrementalReachabilityAnalysis()

COREUOBJECT_API void FinalizeIncrementalReachabilityAnalysis ( )

Finalizes incremental reachability analysis (if currently running) without any time limit

◆ FindDelegateSignature()

COREUOBJECT_API UFunction * FindDelegateSignature ( FName  DelegateSignatureName)

Looks for delegate signature with given name.

◆ FindFirstObject()

template<class T >
T * FindFirstObject ( FStringView  Name,
EFindFirstObjectOptions  Options = EFindFirstObjectOptions::None,
ELogVerbosity::Type  AmbiguousMessageVerbosity = ELogVerbosity::NoLogging,
const TCHAR CurrentOperation = nullptr 
)
inline

Find an optional object with proper handling of potential ambiguity.

See also
StaticFindFirstObject()

◆ FindFirstObjectSafe()

template<class T >
T * FindFirstObjectSafe ( FStringView  Name,
EFindFirstObjectOptions  Options = EFindFirstObjectOptions::None,
ELogVerbosity::Type  AmbiguousMessageVerbosity = ELogVerbosity::NoLogging,
const TCHAR CurrentOperation = nullptr 
)
inline

Find an optional object with proper handling of potential ambiguity without asserting on GIsSavingPackage or IsGarbageCollecting()

See also
StaticFindFirstObject()

◆ FindObject() [1/4]

template<class T >
T * FindObject ( FTopLevelAssetPath  InPath,
EFindObjectFlags  Flags = EFindObjectFlags::None 
)
inline

Find an optional object.

See also
StaticFindObject()

◆ FindObject() [2/4]

template<typename T , UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT T * FindObject ( FTopLevelAssetPath  InPath,
ExactClassType  bExactClass 
)

◆ FindObject() [3/4]

template<class T >
T * FindObject ( UObject Outer,
FStringView  Name,
EFindObjectFlags  Flags = EFindObjectFlags::None 
)
inline

Find an optional object.

See also
StaticFindObject()

◆ FindObject() [4/4]

template<typename T , UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT T * FindObject ( UObject Outer,
FStringView  Name,
ExactClassType  bExactClass 
)

◆ FindObjectChecked() [1/2]

template<class T >
T * FindObjectChecked ( UObject Outer,
FStringView  Name,
EFindObjectFlags  Flags = EFindObjectFlags::None 
)
inline

Find an optional object, no failure allowed

See also
StaticFindObjectChecked()

◆ FindObjectChecked() [2/2]

template<typename T , UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT T * FindObjectChecked ( UObject Outer,
FStringView  Name,
ExactClassType  bExactClass 
)

◆ FindObjectFast() [1/2]

template<class T >
T * FindObjectFast ( UObject Outer,
FName  Name,
EFindObjectFlags  Flags = EFindObjectFlags::None,
EObjectFlags  ExclusiveFlags = RF_NoFlags 
)
inline

Find an optional object, relies on the name being unqualified

See also
StaticFindObjectFast()

◆ FindObjectFast() [2/2]

template<typename T , UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT T * FindObjectFast ( UObject Outer,
FName  Name,
ExactClassType  bExactClass,
EObjectFlags  ExclusiveFlags = RF_NoFlags 
)

◆ FindObjectSafe() [1/4]

template<class T >
T * FindObjectSafe ( FTopLevelAssetPath  InPath,
EFindObjectFlags  Flags = EFindObjectFlags::None 
)
inline

Find an optional object.

See also
StaticFindObject()

◆ FindObjectSafe() [2/4]

template<typename T , UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT T * FindObjectSafe ( FTopLevelAssetPath  InPath,
ExactClassType  bExactClass 
)

◆ FindObjectSafe() [3/4]

template<class T >
T * FindObjectSafe ( UObject Outer,
FStringView  Name,
EFindObjectFlags  Flags = EFindObjectFlags::None 
)
inline

Find an object without asserting on GIsSavingPackage or IsGarbageCollectingAndLockingUObjectHashTables()

See also
StaticFindObjectSafe()

◆ FindObjectSafe() [4/4]

template<typename T , UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT T * FindObjectSafe ( UObject Outer,
FStringView  Name,
ExactClassType  bExactClass 
)

◆ FindPackage()

COREUOBJECT_API 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

◆ FlushAsyncLoading() [1/2]

COREUOBJECT_API void FlushAsyncLoading ( int32  PackageID = INDEX_NONE)

Blocks till all pending package/ linker requests are fulfilled.

Parameters
PackageIDif the package associated with this request ID gets loaded, FlushAsyncLoading returns immediately without waiting for the remaining packages to finish loading.

◆ FlushAsyncLoading() [2/2]

COREUOBJECT_API void FlushAsyncLoading ( TConstArrayView< int32 RequestIds)

Blocks till a set of pending async load requests are complete.

Parameters
RequestIdslist of return values from LoadPackageAsync to wait for. An empty list means all requests

◆ GatherUnreachableObjects()

COREUOBJECT_API void GatherUnreachableObjects ( bool  bForceSingleThreaded)

Gathers unreachable objects for IncrementalPurgeGarbage.

Parameters
bForceSingleThreadedtrue to force the process to just one thread

◆ GetAllowNativeComponentClassOverrides()

COREUOBJECT_API bool GetAllowNativeComponentClassOverrides ( )

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

◆ GetAsyncLoadPercentage()

COREUOBJECT_API float GetAsyncLoadPercentage ( const FName PackageName)

Returns the async load percentage for a package in flight with the passed in name or -1 if there isn't one.

Warning
THIS IS SLOW. MAY BLOCK ASYNC LOADING.
Parameters
PackageNameName of package to query load percentage for
Returns
Async load percentage if package is currently being loaded, -1 otherwise

◆ GetConfigFilename()

COREUOBJECT_API FString GetConfigFilename ( UObject SourceObject)

Returns the file to load ini values from for the specified object, taking into account PerObjectConfig-ness

◆ GetDefault() [1/2]

template<class T >
const T * GetDefault ( )
inline

Get default object of a class.

See also
UClass::GetDefaultObject()

◆ GetDefault() [2/2]

template<class T >
const T * GetDefault ( const UClass Class)
inline

Get default object of a class.

See also
Class.h

Gets the default object of a class.

In most cases, class default objects should not be modified. This method therefore returns an immutable pointer. If you need to modify the default object, use GetMutableDefault instead.

Parameters
Class- The class to get the CDO for.
Returns
Class default object (CDO).
See also
GetMutableDefault

◆ GetFallbackStruct()

COREUOBJECT_API UScriptStruct * GetFallbackStruct ( )

A struct used as stub for deleted ones.

◆ GetIniFilenameFromObjectsReference()

COREUOBJECT_API 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.

◆ GetMutableDefault() [1/2]

template<class T >
T * GetMutableDefault ( )
inline

Version of GetDefault() that allows modification

◆ GetMutableDefault() [2/2]

template<class T >
T * GetMutableDefault ( UClass Class)
inline

Version of GetDefault() that allows modification

Gets the mutable default object of a class.

Parameters
Class- The class to get the CDO for.
Returns
Class default object (CDO).
See also
GetDefault

◆ GetNumAsyncPackages()

COREUOBJECT_API int32 GetNumAsyncPackages ( )

Return number of active async load package requests

◆ GetTransientOuterForRename()

COREUOBJECT_API UObject * GetTransientOuterForRename ( UClass ForClass)

Returns an object in the transient package which respects the rules of Within

◆ GetTransientPackage()

COREUOBJECT_API UPackage * GetTransientPackage ( )

Returns the transient top-level package, which is useful for temporarily storing objects that should never be saved

◆ GetTransientPackageAsObject()

COREUOBJECT_API UObject * GetTransientPackageAsObject ( )

◆ 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()

COREUOBJECT_API 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.

◆ IncrementalPurgeGarbage()

COREUOBJECT_API void IncrementalPurgeGarbage ( bool  bUseTimeLimit,
double  TimeLimit 
)

Incrementally purge garbage by deleting all unreferenced objects after routing Destroy.

Calling code needs to be EXTREMELY careful when and how to call this function as RF_Unreachable cannot change on any objects unless any pending purge has completed!

Parameters
bUseTimeLimitwhether the time limit parameter should be used
TimeLimitsoft time limit for this function call

◆ InitStaticDuplicateObjectParams()

COREUOBJECT_API 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

◆ IsClassLoaded()

template<class T >
bool IsClassLoaded ( )
inline

Returns true if a class has been loaded (e.g. it has a CDO)

◆ IsEventDrivenLoaderEnabled()

COREUOBJECT_API bool IsEventDrivenLoaderEnabled ( )

Returns true if the event driven loader is enabled in the current build

◆ IsIncrementalPurgePending()

COREUOBJECT_API bool IsIncrementalPurgePending ( )

Returns whether an incremental purge is still pending/ in progress.

Returns
true if incremental purge needs to be kicked off or is currently in progress, false othwerise.

◆ IsIncrementalReachabilityAnalysisPending()

COREUOBJECT_API bool IsIncrementalReachabilityAnalysisPending ( )

Returns whether an incremental reachability analysis is still pending/ in progress.

Returns
true if incremental reachability analysis needs to be kicked off or is currently in progress, false othwerise.

◆ IsIncrementalUnhashPending()

COREUOBJECT_API bool IsIncrementalUnhashPending ( )

Checks if there's objects pending to be unhashed when running incremental purge

Returns
true if the time limit passed and there's still objects pending to be unhashed

◆ IsLoading()

COREUOBJECT_API bool IsLoading ( )

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

Returns
true if we are loading a package, false otherwise

◆ IsReferenced()

COREUOBJECT_API 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

◆ LoadAssetAsync()

COREUOBJECT_API 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).

◆ LoadClass()

template<class T >
UClass * LoadClass ( UObject Outer,
FStringView  Name,
FStringView  Filename = {},
uint32  LoadFlags = LOAD_None,
UPackageMap Sandbox = nullptr 
)
inline

Load a class object

See also
StaticLoadClass

◆ LoadObject()

template<class T >
T * LoadObject ( UObject Outer,
FStringView  Name,
FStringView  Filename = {},
uint32  LoadFlags = LOAD_None,
UPackageMap Sandbox = nullptr,
const FLinkerInstancingContext InstancingContext = nullptr 
)
inline

Load an object.

See also
StaticLoadObject()

◆ LoadPackage() [1/2]

COREUOBJECT_API 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]

COREUOBJECT_API 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

◆ LoadPackageAsync() [1/5]

COREUOBJECT_API int32 LoadPackageAsync ( const FPackagePath InPackagePath,
FLoadPackageAsyncOptionalParams  InOptionalParams 
)

Asynchronously load a package and all contained objects that match context flags. Non-blocking. Use this version to specify the PackagePath rather than having the other versions internally convert the InName to a PackagePath by searching the current package mount points. Use this version if you need to specify a packagename that is different from the packagename on disk; this is useful when loading multiple copies of the same package.

Parameters
InPackagePathPackagePath to load. Must be a mounted path. The package is created if it does not already exist.
InOptionalParamsOptional parameters.
Returns
Unique ID associated with this load request (the same package can be associated with multiple IDs).

◆ LoadPackageAsync() [2/5]

COREUOBJECT_API int32 LoadPackageAsync ( const FPackagePath InPackagePath,
FName  InPackageNameToCreate = NAME_None,
FLoadPackageAsyncDelegate  InCompletionDelegate = FLoadPackageAsyncDelegate(),
EPackageFlags  InPackageFlags = PKG_None,
int32  InPIEInstanceID = INDEX_NONE,
TAsyncLoadPriority  InPackagePriority = 0,
const FLinkerInstancingContext InstancingContext = nullptr,
uint32  LoadFlags = LOAD_None 
)

Asynchronously load a package and all contained objects that match context flags. Non-blocking. Use this version to specify the PackagePath rather than having the other versions internally convert the InName to a PackagePath by searching the current package mount points. Use this version if you need to specify a packagename that is different from the packagename on disk; this is useful when loading multiple copies of the same package.

Parameters
InPackagePathPackagePath to load. Must be a mounted path. The package is created if it does not already exist.
InPackageNameToCreateIf not none, this is the name of the package to load the bytes on disk into (and create if not yet existing). If none, the name is taken from PackagePath.
InCompletionDelegateDelegate to be invoked when the packages has finished streaming
InPackageFlagsPackage flags used to construct loaded package in memory
InPIEInstanceIDPlay in Editor instance ID
InPackagePriorityLoading priority
InstancingContextAdditional context to map object names to their instanced counterpart when loading an instanced package
LoadFlagsFlags controlling loading behavior, from the ELoadFlags enum
Returns
Unique ID associated with this load request (the same package can be associated with multiple IDs).

◆ LoadPackageAsync() [3/5]

COREUOBJECT_API int32 LoadPackageAsync ( const FString &  InName,
const FGuid InGuid = nullptr 
)

Asynchronously load a package and all contained objects that match context flags. Non-blocking. Use this version for convenience when you just need to load a package without notification and with default behavior from a packagename/filename.

Parameters
InNamePackageName or LocalFilePath of package to load. Must be a mounted name/path. The package is created if it does not already exist.
InGuidGUID of the package to load, or nullptr for "don't care"
Returns
Unique ID associated with this load request (the same package can be associated with multiple IDs).

◆ LoadPackageAsync() [4/5]

COREUOBJECT_API int32 LoadPackageAsync ( const FString &  InName,
FLoadPackageAsyncDelegate  InCompletionDelegate,
TAsyncLoadPriority  InPackagePriority = 0,
EPackageFlags  InPackageFlags = PKG_None,
int32  InPIEInstanceID = INDEX_NONE 
)

Asynchronously load a package and all contained objects that match context flags. Non-blocking. Use this version when you need to load a package with default behavior from a packagename/filename, and need to be notified when it is loaded.

Parameters
InNamePackageName or LocalFilePath of package to load. Must be a mounted name/path. The package is created if it does not already exist.
InCompletionDelegateDelegate to be invoked when the packages has finished streaming
InPackagePriorityLoading priority
InPackageFlagsPackage flags used to construct loaded package in memory
InPIEInstanceIDPlay in Editor instance ID
Returns
Unique ID associated with this load request (the same package can be associated with multiple IDs).

◆ LoadPackageAsync() [5/5]

COREUOBJECT_API int32 LoadPackageAsync ( const FString &  InName,
FLoadPackageAsyncOptionalParams  InOptionalParams 
)

Asynchronously load a package and all contained objects that match context flags. Non-blocking. Use this version when you need to load a package with default behavior from a packagename/filename, and need to be notified when it is loaded.

Parameters
InNamePackageName or LocalFilePath of package to load. Must be a mounted name/path. The package is created if it does not already exist.
InOptionalParamsOptional parameters.
Returns
Unique ID associated with this load request (the same package can be associated with multiple IDs).

◆ MakeObjectNameFromDisplayLabel()

COREUOBJECT_API 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()

COREUOBJECT_API 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()

COREUOBJECT_API 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.

◆ NewObject() [1/3]

template<class T >
FUNCTION_NON_NULL_RETURN_START T * NewObject ( UObject Outer,
const UClass Class,
FName  Name = NAME_None,
EObjectFlags  Flags = RF_NoFlags,
UObject Template = nullptr,
bool  bCopyTransientsFromClassDefaults = false,
FObjectInstancingGraph InInstanceGraph = nullptr,
UPackage InExternalPackage = nullptr 
)

Convenience template for constructing a gameplay object

Parameters
Outerthe outer for the new object. If not specified, object will be created in the transient package.
Classthe class of object to construct
Namethe name for the new object. If not specified, the object will be given a transient name via MakeUniqueObjectName
Flagsthe object flags to apply to the new object
Templatethe object to use for initializing the new object. If not specified, the class's default object will be used
bCopyTransientsFromClassDefaultsif true, copy transient from the class defaults instead of the pass in archetype ptr (often these are the same)
InInstanceGraphcontains the mappings of instanced objects and components to their templates
InExternalPackageAssign an external Package to the created object if non-null
RemoteIdGlobally unique id for this object
Returns
a pointer of type T to a new object of the specified class

◆ NewObject() [2/3]

template<class T >
FUNCTION_NON_NULL_RETURN_START T * NewObject ( UObject Outer,
FName  Name,
EObjectFlags  Flags = RF_NoFlags,
UObject Template = nullptr,
bool  bCopyTransientsFromClassDefaults = false,
FObjectInstancingGraph InInstanceGraph = nullptr,
UPackage InExternalPackage = nullptr 
)

◆ NewObject() [3/3]

template<class T >
FUNCTION_NON_NULL_RETURN_START T * NewObject ( UObject Outer = GetTransientPackageAsObject())

◆ ParseObject() [1/4]

template<class T >
bool ParseObject ( const TCHAR Stream,
const TCHAR Match,
T *&  Obj,
UObject Outer,
bool bInvalidObject = nullptr 
)
inline

◆ ParseObject() [2/4]

template<class T >
bool ParseObject ( const TCHAR Stream,
const TCHAR Match,
T *&  Obj,
UObject Outer,
EParseObjectLoadingPolicy  LoadingPolicy,
bool bInvalidObject = nullptr 
)
inline

Parse a reference to an object from the input stream.

◆ ParseObject() [3/4]

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

◆ ParseObject() [4/4]

COREUOBJECT_API 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

◆ ParsePropertyFlags()

COREUOBJECT_API TArray< const TCHAR * > ParsePropertyFlags ( EPropertyFlags  Flags)

Parses a bit mask of property flags into an array of string literals that match the flags

◆ PerformIncrementalReachabilityAnalysis()

COREUOBJECT_API void PerformIncrementalReachabilityAnalysis ( double  TimeLimit)

Incrementally perform reachability analysis

Parameters
TimeLimitTime limit (in seconds) for this function call. 0.0 results in no time limit being used.

◆ ProcessAsyncLoading()

COREUOBJECT_API EAsyncPackageState::Type ProcessAsyncLoading ( bool  bUseTimeLimit,
bool  bUseFullTimeLimit,
double  TimeLimit 
)

Serializes a bit of data each frame with a soft time limit. The function is designed to be able to fully load a package in a single pass given sufficient time.

Parameters
bUseTimeLimitWhether to use a time limit
bUseFullTimeLimitIf true, use the entire time limit even if blocked on I/O
TimeLimitSoft limit of time this function is allowed to consume
Returns
The minimum state of any of the queued packages.

◆ ProcessAsyncLoadingUntilComplete()

COREUOBJECT_API EAsyncPackageState::Type ProcessAsyncLoadingUntilComplete ( TFunctionRef< bool()>  CompletionPredicate,
double  TimeLimit 
)

Blocks and runs ProcessAsyncLoading until the time limit is hit, the completion predicate returns true, or all async loading is done

Parameters
CompletionPredicateIf this returns true, stop loading. This is called periodically as long as loading continues
TimeLimitHard time limit. 0 means infinite length
Returns
The minimum state of any of the queued packages.

◆ ResolveIniObjectsReference()

COREUOBJECT_API 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()

COREUOBJECT_API 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

◆ SafeLoadError()

COREUOBJECT_API 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()

COREUOBJECT_API 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)

◆ SetAsyncLoadingAllowed()

COREUOBJECT_API void SetAsyncLoadingAllowed ( bool  bAllowAsyncLoading)

Allows or disallows async loading (for example async loading is not allowed after the final flush on exit)

Parameters
bAllowAsyncLoadingtrue if async loading should be allowed, false otherwise

◆ SnapshotTransactionBuffer() [1/2]

COREUOBJECT_API 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]

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

◆ StaticAllocateObject()

COREUOBJECT_API 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.

◆ StaticAllocateObjectErrorTests()

bool StaticAllocateObjectErrorTests ( const UClass Class,
UObject InOuter,
FName  Name,
EObjectFlags  SetFlags 
)

Check for StaticAllocateObject error; only for use with the editor, make or other commandlets.

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.
Returns
true if nullptr should be returned; there was a problem reported

◆ StaticConstructObject_Internal()

COREUOBJECT_API 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()

COREUOBJECT_API 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()

COREUOBJECT_API 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.

◆ StaticExec()

COREUOBJECT_API bool StaticExec ( UWorld InWorld,
const TCHAR Cmd,
FOutputDevice Ar = *GLog 
)

Parses a global context system console or debug command and executes it.

Parameters
InWorldThe world to use as a context, enables certain commands
CmdCommand string to execute
ArOutput device to write results of commands to
Returns
True if the command was successfully parsed

....just skip it

Helper class for only finding object references we "care" about. See operator << for details.

Set of objects ex and implicitly referenced by root based on criteria in << operator.

Constructor, performing serialization of root object.

Src/ root object to serialize.

◆ StaticFindAllObjects() [1/2]

COREUOBJECT_API 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

◆ StaticFindAllObjects() [2/2]

template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT bool StaticFindAllObjects ( TArray< UObject * > &  OutFoundObjects,
UClass Class,
const TCHAR Name,
ExactClassType  bExactClass 
)

◆ StaticFindAllObjectsFast() [1/2]

COREUOBJECT_API 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

◆ StaticFindAllObjectsFast() [2/2]

template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT bool StaticFindAllObjectsFast ( TArray< UObject * > &  OutFoundObjects,
UClass ObjectClass,
FName  ObjectName,
ExactClassType  bExactClass,
EObjectFlags  ExclusiveFlags = RF_NoFlags,
EInternalObjectFlags  ExclusiveInternalFlags = EInternalObjectFlags::None 
)

◆ StaticFindAllObjectsFastSafe() [1/2]

COREUOBJECT_API 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

◆ StaticFindAllObjectsFastSafe() [2/2]

template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT bool StaticFindAllObjectsFastSafe ( TArray< UObject * > &  OutFoundObjects,
UClass ObjectClass,
FName  ObjectName,
ExactClassType  bExactClass,
EObjectFlags  ExclusiveFlags = RF_NoFlags,
EInternalObjectFlags  ExclusiveInternalFlags = EInternalObjectFlags::None 
)

◆ StaticFindAllObjectsSafe() [1/2]

COREUOBJECT_API 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

◆ StaticFindAllObjectsSafe() [2/2]

template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT bool StaticFindAllObjectsSafe ( TArray< UObject * > &  OutFoundObjects,
UClass Class,
const TCHAR Name,
ExactClassType  bExactClass 
)

◆ StaticFindFirstObject()

COREUOBJECT_API 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()

COREUOBJECT_API 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/4]

COREUOBJECT_API 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/4]

template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObject * StaticFindObject ( UClass Class,
FTopLevelAssetPath  ObjectPath,
ExactClassType  bExactClass 
)

◆ StaticFindObject() [3/4]

COREUOBJECT_API 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

◆ StaticFindObject() [4/4]

template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObject * StaticFindObject ( UClass Class,
UObject InOuter,
FStringView  Name,
ExactClassType  bExactClass 
)

◆ StaticFindObjectChecked() [1/2]

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

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

◆ StaticFindObjectChecked() [2/2]

template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObject * StaticFindObjectChecked ( UClass Class,
UObject InOuter,
FStringView  Name,
ExactClassType  bExactClass 
)

◆ StaticFindObjectFast() [1/2]

COREUOBJECT_API 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

◆ StaticFindObjectFast() [2/2]

template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObject * StaticFindObjectFast ( UClass Class,
UObject InOuter,
FName  InName,
ExactClassType  bExactClass,
EObjectFlags  ExclusiveFlags = RF_NoFlags,
EInternalObjectFlags  ExclusiveInternalFlags = EInternalObjectFlags::None 
)

◆ StaticFindObjectFastSafe() [1/2]

COREUOBJECT_API 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

◆ StaticFindObjectFastSafe() [2/2]

template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObject * StaticFindObjectFastSafe ( UClass Class,
UObject InOuter,
FName  InName,
ExactClassType  bExactClass,
EObjectFlags  ExclusiveFlags = RF_NoFlags,
EInternalObjectFlags  ExclusiveInternalFlags = EInternalObjectFlags::None 
)

◆ StaticFindObjectSafe() [1/4]

COREUOBJECT_API 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/4]

template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObject * StaticFindObjectSafe ( UClass Class,
FTopLevelAssetPath  ObjectPath,
ExactClassType  bExactClass 
)

◆ StaticFindObjectSafe() [3/4]

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

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

◆ StaticFindObjectSafe() [4/4]

template<UE::CSameAs< bool > ExactClassType>
UE_NODEBUG UE_FORCEINLINE_HINT UObject * StaticFindObjectSafe ( UClass Class,
UObject InOuter,
FStringView  Name,
ExactClassType  bExactClass 
)

◆ StaticLoadAsset()

COREUOBJECT_API 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()

COREUOBJECT_API 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()

COREUOBJECT_API 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.

◆ StaticTick()

COREUOBJECT_API 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

◆ TryCollectGarbage()

COREUOBJECT_API bool TryCollectGarbage ( EObjectFlags  KeepFlags,
bool  bPerformFullPurge = true 
)

Performs garbage collection only if no other thread holds a lock on GC

Parameters
KeepFlagsobjects with those flags will be kept regardless of being referenced or not
bPerformFullPurgeif true, perform a full purge after the mark pass
Returns
true if an actual attempt at garbage collection occurred

◆ UnhashUnreachableObjects()

COREUOBJECT_API bool UnhashUnreachableObjects ( bool  bUseTimeLimit,
double  TimeLimit = 0.0 
)

Calls ConditionalBeginDestroy on unreachable objects

Parameters
bUseTimeLimitwhether the time limit parameter should be used
TimeLimitsoft time limit for this function call
Returns
true if the time limit passed and there's still objects pending to be unhashed

◆ UpdateSuffixForNextNewObject()

COREUOBJECT_API 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.

◆ UsesPerObjectConfig()

COREUOBJECT_API bool UsesPerObjectConfig ( UObject SourceObject)

Determines whether the specified object should load values using PerObjectConfig rules

Variable Documentation

◆ GAllowCookedDataInEditorBuilds

COREUOBJECT_API int32 GAllowCookedDataInEditorBuilds
extern

This allows loading cooked content in the editor

◆ GAllowUnversionedContentInEditor

COREUOBJECT_API int32 GAllowUnversionedContentInEditor
extern

This allows loading unversioned cooked content in the editor

◆ GAssetClustreringEnabled

COREUOBJECT_API int32 GAssetClustreringEnabled
extern

If non-zero, the engine will attempt to create clusters from asset files

◆ GCreateGCClusters

COREUOBJECT_API int32 GCreateGCClusters
extern

If non-zero, the engine will create Garbage Collector clusters to speed up Garbage Collection

◆ GIsSavingPackage

COREUOBJECT_API bool GIsSavingPackage
extern

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

See also
IsSavingPackage()

◆ GShouldVerifyGCAssumptions

COREUOBJECT_API bool GShouldVerifyGCAssumptions
extern

Allows release builds to override not verifying GC assumptions. Useful for profiling as it's hitchy.

If set and VERIFY_DISREGARD_GC_ASSUMPTIONS is true, we verify GC assumptions about "Disregard For GC" objects and clusters.