UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Class.cpp File Reference
#include "UObject/Class.h"
#include "HAL/ThreadSafeBool.h"
#include "HAL/LowLevelMemTracker.h"
#include "Misc/ScopeLock.h"
#include "Serialization/MemoryWriter.h"
#include "Misc/ConfigCacheIni.h"
#include "Misc/ConfigContext.h"
#include "Misc/OutputDeviceHelper.h"
#include "Misc/FeedbackContext.h"
#include "Misc/OutputDeviceConsole.h"
#include "Misc/PackageAccessTrackingOps.h"
#include "Misc/AutomationTest.h"
#include "Misc/EnumClassFlags.h"
#include "Misc/StringBuilder.h"
#include "Misc/OutputDeviceNull.h"
#include "UObject/CoreNet.h"
#include "Modules/ModuleManager.h"
#include "UObject/AssetRegistryTagsContext.h"
#include "UObject/StrProperty.h"
#include "UObject/UObjectAllocator.h"
#include "UObject/UObjectHash.h"
#include "UObject/UObjectIterator.h"
#include "UObject/Package.h"
#include "UObject/MetaData.h"
#include "Templates/Casts.h"
#include "Templates/MemoryOps.h"
#include "UObject/DebugSerializationFlags.h"
#include "UObject/PropertyTag.h"
#include "UObject/UnrealType.h"
#include "UObject/UnrealTypePrivate.h"
#include "UObject/Reload.h"
#include "UObject/Stack.h"
#include "Misc/PackageName.h"
#include "UObject/ObjectResource.h"
#include "UObject/LinkerSave.h"
#include "UObject/InstanceDataObjectUtils.h"
#include "UObject/Interface.h"
#include "UObject/LinkerPlaceholderClass.h"
#include "UObject/LinkerPlaceholderFunction.h"
#include "UObject/PropertyOptional.h"
#include "UObject/PropertyPathNameTree.h"
#include "UObject/PropertyStateTracking.h"
#include "UObject/StructOnScope.h"
#include "UObject/StructScriptLoader.h"
#include "UObject/PropertyHelper.h"
#include "UObject/CoreRedirects.h"
#include "UObject/ObjectMacros.h"
#include "UObject/RemoteObjectTransfer.h"
#include "UObject/TestUninitializedScriptStructMembersTest.h"
#include "Internationalization/PolyglotTextData.h"
#include "Serialization/ArchiveScriptReferenceCollector.h"
#include "Serialization/ArchiveUObjectFromStructuredArchive.h"
#include "Serialization/NullArchive.h"
#include "UObject/FrameworkObjectVersion.h"
#include "UObject/GarbageCollection.h"
#include "UObject/UObjectThreadContext.h"
#include "Serialization/LoadTimeTracePrivate.h"
#include "Serialization/UnversionedPropertySerialization.h"
#include "Serialization/UnversionedPropertySerializationTest.h"
#include "UObject/CoreObjectVersion.h"
#include "UObject/FastReferenceCollector.h"
#include "UObject/PropertyProxyArchive.h"
#include "UObject/FieldPath.h"
#include "HAL/ThreadSafeCounter.h"
#include "Math/InterpCurvePoint.h"
#include "UObject/UE5MainStreamObjectVersion.h"
#include "UObject/TopLevelAssetPath.h"
#include "AssetRegistry/AssetData.h"
#include "HAL/PlatformStackWalk.h"
#include "String/Find.h"
#include "String/ParseTokens.h"
#include "AutoRTFM.h"
#include "Serialization/ArchiveSerializedPropertyChain.h"
#include "Serialization/TestUndeclaredScriptStructObjectReferences.h"
#include "UObject/OverridableManager.h"
#include "UObject/OverriddenPropertySet.h"
#include "Misc/UObjectTestUtils.h"
#include "UObject/UObjectConstructInternal.h"
#include "UObject/RegisterCompiledInObjects.h"
#include "UObject/ScriptSerialization.h"
#include "HAL/IConsoleManager.h"

Classes

struct  FSerializationControlExtensionContext
 
struct  FScriptStructTestWrapper
 
class  FRestoreClassInfo
 
class  FFeedbackContextImportDefaults
 

Namespaces

namespace  UE
 
namespace  UE::OS
 

Macros

#define DO_CLASS_TREE_VALIDATION   0
 
#define SERIALIZEEXPR_INC
 
#define SERIALIZEEXPR_AUTO_UNDEF_XFER_MACROS
 
#define UE_DEFINE_CORE_VARIANT_TYPE(VARIANT, CORE)
 

Enumerations

enum class  EStructStateFlags : uint16 { None = 0 , PropertyDataAvailable = 1 << 0 }
 
enum class  EClassSerializationControlExtension : uint8 { NoExtension = 0x00 , ReserveForFutureUse = 0x01 , OverridableSerializationInformation = 0x02 }
 
enum class  EScriptStructTestCtorSyntax { NoInit = 0 , CompilerZeroed = 1 }
 

Functions

 DEFINE_LOG_CATEGORY (LogScriptSerialization)
 
 DEFINE_LOG_CATEGORY (LogClass)
 
 LLM_DEFINE_TAG (UObject_UClass)
 
FThreadSafeBoolInternalSafeGetTokenStreamDirtyFlag ()
 
COREUOBJECT_API void InitializePrivateStaticClass (class UClass *(*TClass_StaticClassFn)(), class UClass *TClass_Super_StaticClass, class UClass *TClass_PrivateStaticClass, class UClass *TClass_WithinClass_StaticClass, const TCHAR *PackageName, const TCHAR *Name)
 
COREUOBJECT_API void InitializePrivateStaticClass (class UClass *TClass_Super_StaticClass, class UClass *TClass_PrivateStaticClass, class UClass *TClass_WithinClass_StaticClass, const TCHAR *PackageName, const TCHAR *Name)
 
 ENUM_CLASS_FLAGS (EClassSerializationControlExtension)
 
void DestroyPropertyLinkedList (FField *&PropertiesToDestroy)
 
 IMPLEMENT_FSTRUCTUREDARCHIVE_SERIALIZER (UStruct)
 
bool FindConstructorUninitialized (UStruct *BaseClass, uint8 *Data, uint8 *Defaults)
 
 IMPLEMENT_FSTRUCTUREDARCHIVE_SERIALIZER (UScriptStruct)
 
FArchiveoperator<< (FArchive &Ar, FImplementedInterface &A)
 
void GetPrivateStaticClassBody (const TCHAR *PackageName, const TCHAR *Name, UClass *&ReturnClass, void(*RegisterNativeFunc)(), uint32 InSize, uint32 InAlignment, EClassFlags InClassFlags, EClassCastFlags InClassCastFlags, const TCHAR *InConfigName, UClass::ClassConstructorType InClassConstructor, UClass::ClassVTableHelperCtorCallerType InClassVTableHelperCtorCaller, FUObjectCppClassStaticFunctions &&InCppClassStaticFunctions, UClass::StaticClassFunctionType InSuperClassFn, UClass::StaticClassFunctionType InWithinClassFn)
 
 UE_IMPLEMENT_STRUCT ("/Script/CoreUObject", RemoteObjectId)
 
 UE_IMPLEMENT_STRUCT ("/Script/CoreUObject", RemoteServerId)
 
 UE_IMPLEMENT_STRUCT ("/Script/CoreUObject", RemoteObjectReference)
 
 UE_DEFINE_CORE_VARIANT_TYPE (Vector2, Vector2D)
 
 UE_DEFINE_CORE_VARIANT_TYPE (Vector3, Vector)
 
 UE_DEFINE_CORE_VARIANT_TYPE (Vector4, Vector4)
 
 UE_DEFINE_CORE_VARIANT_TYPE (Plane4, Plane)
 
 UE_DEFINE_CORE_VARIANT_TYPE (Quat4, Quat)
 
 UE_DEFINE_CORE_VARIANT_TYPE (Rotator3, Rotator)
 
 UE_DEFINE_CORE_VARIANT_TYPE (Transform3, Transform)
 
 UE_DEFINE_CORE_VARIANT_TYPE (Matrix44, Matrix)
 
 UE_DEFINE_CORE_VARIANT_TYPE (Box2, Box2D)
 
 UE_DEFINE_CORE_VARIANT_TYPE (Ray3, Ray)
 
 UE_DEFINE_CORE_VARIANT_TYPE (Sphere3, Sphere)
 

Variables

FAutoConsoleCommandWithWorldAndArgs GCmdListBadScriptStructs (TEXT("CoreUObject.AttemptToFindUninitializedScriptStructMembers"), TEXT("Finds USTRUCT() structs that fail to initialize reflected member variables"), FConsoleCommandWithWorldAndArgsDelegate::CreateStatic([](const TArray< FString > &Params, UWorld *World) { FStructUtils::AttemptToFindUninitializedScriptStructMembers();}))
 

Macro Definition Documentation

◆ DO_CLASS_TREE_VALIDATION

#define DO_CLASS_TREE_VALIDATION   0

◆ SERIALIZEEXPR_AUTO_UNDEF_XFER_MACROS

#define SERIALIZEEXPR_AUTO_UNDEF_XFER_MACROS

◆ SERIALIZEEXPR_INC

#define SERIALIZEEXPR_INC

◆ UE_DEFINE_CORE_VARIANT_TYPE

#define UE_DEFINE_CORE_VARIANT_TYPE (   VARIANT,
  CORE 
)
Value:
{ \
static UScriptStruct* ScriptStruct = StaticGetBaseStructureInternal(NAME_##CORE); \
return ScriptStruct; \
} \
{ \
static UScriptStruct* ScriptStruct = StaticGetBaseStructureInternal(NAME_##VARIANT##f); \
return ScriptStruct; \
} \
{ \
static UScriptStruct* ScriptStruct = StaticGetBaseStructureInternal(NAME_##VARIANT##d); \
return ScriptStruct; \
}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition Class.h:1720
static UScriptStruct * Get()
Definition Class.h:5275
Definition Class.h:5553

Enumeration Type Documentation

◆ EClassSerializationControlExtension

Enum flags that indicate that additional data may be serialized prior to actual tagged property serialization Those extensions are used to store additional function to control how TPS will resolved. i.e use overridable serialization for example Registered flag should be serialized in ascending order @Note: do not use lightly

Enumerator
NoExtension 
ReserveForFutureUse 
OverridableSerializationInformation 

◆ EScriptStructTestCtorSyntax

Enumerator
NoInit 
CompilerZeroed 

◆ EStructStateFlags

enum class EStructStateFlags : uint16
strong
Enumerator
None 
PropertyDataAvailable 

Function Documentation

◆ DEFINE_LOG_CATEGORY() [1/2]

DEFINE_LOG_CATEGORY ( LogClass  )

◆ DEFINE_LOG_CATEGORY() [2/2]

DEFINE_LOG_CATEGORY ( LogScriptSerialization  )

◆ DestroyPropertyLinkedList()

void DestroyPropertyLinkedList ( FField *&  PropertiesToDestroy)
inline

Helper function that destroys properties from the privided linked list and nulls the list head pointer

◆ ENUM_CLASS_FLAGS()

ENUM_CLASS_FLAGS ( EClassSerializationControlExtension  )

◆ FindConstructorUninitialized()

bool FindConstructorUninitialized ( UStruct BaseClass,
uint8 Data,
uint8 Defaults 
)

◆ GetPrivateStaticClassBody()

void GetPrivateStaticClassBody ( const TCHAR PackageName,
const TCHAR Name,
UClass *&  ReturnClass,
void(*)()  RegisterNativeFunc,
uint32  InSize,
uint32  InAlignment,
EClassFlags  InClassFlags,
EClassCastFlags  InClassCastFlags,
const TCHAR InConfigName,
UClass::ClassConstructorType  InClassConstructor,
UClass::ClassVTableHelperCtorCallerType  InClassVTableHelperCtorCaller,
FUObjectCppClassStaticFunctions &&  InCppClassStaticFunctions,
UClass::StaticClassFunctionType  InSuperClassFn,
UClass::StaticClassFunctionType  InWithinClassFn 
)

Helper template allocate and construct a UClass

Parameters
PackageNamename of the package this class will be inside
Nameof the class
ReturnClassreference to pointer to result. This must be PrivateStaticClass.
RegisterNativeFuncNative function registration function pointer.
InSizeSize of the class
InAlignmentAlignment of the class
InClassFlagsClass flags
InClassCastFlagsClass cast flags
InConfigNameClass config name
InClassConstructorClass constructor function pointer
InClassVTableHelperCtorCallerClass constructor function for vtable pointer
InCppClassStaticFunctionsFunction pointers for the class's version of Unreal's reflected static functions
InSuperClassFnSuper class function pointer
InWithinClassFnWithin class function pointer

◆ IMPLEMENT_FSTRUCTUREDARCHIVE_SERIALIZER() [1/2]

IMPLEMENT_FSTRUCTUREDARCHIVE_SERIALIZER ( UScriptStruct  )

◆ IMPLEMENT_FSTRUCTUREDARCHIVE_SERIALIZER() [2/2]

IMPLEMENT_FSTRUCTUREDARCHIVE_SERIALIZER ( UStruct  )

◆ InitializePrivateStaticClass() [1/2]

COREUOBJECT_API void InitializePrivateStaticClass ( class UClass *(*)()  TClass_StaticClassFn,
class UClass TClass_Super_StaticClass,
class UClass TClass_PrivateStaticClass,
class UClass TClass_WithinClass_StaticClass,
const TCHAR PackageName,
const TCHAR Name 
)

Shared function called from the various InitializePrivateStaticClass functions generated my the IMPLEMENT_CLASS macro.

◆ InitializePrivateStaticClass() [2/2]

COREUOBJECT_API void InitializePrivateStaticClass ( class UClass TClass_Super_StaticClass,
class UClass TClass_PrivateStaticClass,
class UClass TClass_WithinClass_StaticClass,
const TCHAR PackageName,
const TCHAR Name 
)

◆ InternalSafeGetTokenStreamDirtyFlag()

FThreadSafeBool & InternalSafeGetTokenStreamDirtyFlag ( )

◆ LLM_DEFINE_TAG()

LLM_DEFINE_TAG ( UObject_UClass  )

◆ operator<<()

FArchive & operator<< ( FArchive Ar,
FImplementedInterface A 
)

◆ UE_DEFINE_CORE_VARIANT_TYPE() [1/11]

UE_DEFINE_CORE_VARIANT_TYPE ( Box2  ,
Box2D   
)

◆ UE_DEFINE_CORE_VARIANT_TYPE() [2/11]

UE_DEFINE_CORE_VARIANT_TYPE ( Matrix44  ,
Matrix   
)

◆ UE_DEFINE_CORE_VARIANT_TYPE() [3/11]

UE_DEFINE_CORE_VARIANT_TYPE ( Plane4  ,
Plane   
)

◆ UE_DEFINE_CORE_VARIANT_TYPE() [4/11]

UE_DEFINE_CORE_VARIANT_TYPE ( Quat4  ,
Quat   
)

◆ UE_DEFINE_CORE_VARIANT_TYPE() [5/11]

UE_DEFINE_CORE_VARIANT_TYPE ( Ray3  ,
Ray   
)

◆ UE_DEFINE_CORE_VARIANT_TYPE() [6/11]

UE_DEFINE_CORE_VARIANT_TYPE ( Rotator3  ,
Rotator   
)

◆ UE_DEFINE_CORE_VARIANT_TYPE() [7/11]

UE_DEFINE_CORE_VARIANT_TYPE ( Sphere3  ,
Sphere   
)

◆ UE_DEFINE_CORE_VARIANT_TYPE() [8/11]

UE_DEFINE_CORE_VARIANT_TYPE ( Transform3  ,
Transform   
)

◆ UE_DEFINE_CORE_VARIANT_TYPE() [9/11]

UE_DEFINE_CORE_VARIANT_TYPE ( Vector2  ,
Vector2D   
)

◆ UE_DEFINE_CORE_VARIANT_TYPE() [10/11]

UE_DEFINE_CORE_VARIANT_TYPE ( Vector3  ,
Vector   
)

◆ UE_DEFINE_CORE_VARIANT_TYPE() [11/11]

UE_DEFINE_CORE_VARIANT_TYPE ( Vector4  ,
Vector4   
)

◆ UE_IMPLEMENT_STRUCT() [1/3]

UE_IMPLEMENT_STRUCT ( "/Script/CoreUObject"  ,
RemoteObjectId   
)

◆ UE_IMPLEMENT_STRUCT() [2/3]

UE_IMPLEMENT_STRUCT ( "/Script/CoreUObject"  ,
RemoteObjectReference   
)

◆ UE_IMPLEMENT_STRUCT() [3/3]

UE_IMPLEMENT_STRUCT ( "/Script/CoreUObject"  ,
RemoteServerId   
)

Variable Documentation

◆ GCmdListBadScriptStructs

FAutoConsoleCommandWithWorldAndArgs GCmdListBadScriptStructs(TEXT("CoreUObject.AttemptToFindUninitializedScriptStructMembers"), TEXT("Finds USTRUCT() structs that fail to initialize reflected member variables"), FConsoleCommandWithWorldAndArgsDelegate::CreateStatic([](const TArray< FString > &Params, UWorld *World) { FStructUtils::AttemptToFindUninitializedScriptStructMembers(); })) ( TEXT("CoreUObject.AttemptToFindUninitializedScriptStructMembers")  ,
TEXT("Finds USTRUCT() structs that fail to initialize reflected member variables" ,
FConsoleCommandWithWorldAndArgsDelegate::CreateStatic([](const TArray< FString > &Params, UWorld *World) { FStructUtils::AttemptToFindUninitializedScriptStructMembers(); })   
)