UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Obj.cpp File Reference
#include "CoreMinimal.h"
#include "UObject/NonNullPropertyUtils.h"
#include "AssetRegistry/AssetData.h"
#include "Misc/CoreMisc.h"
#include "Misc/CommandLine.h"
#include "Misc/Paths.h"
#include "Logging/LogScopedCategoryAndVerbosityOverride.h"
#include "Stats/Stats.h"
#include "Misc/ConfigAccessData.h"
#include "Misc/ConfigCacheIni.h"
#include "Misc/ConfigContext.h"
#include "Misc/CoreDelegates.h"
#include "Misc/App.h"
#include "Misc/ITransactionObjectAnnotation.h"
#include "Misc/DataValidation.h"
#include "Modules/ModuleManager.h"
#include "UObject/ObjectMacros.h"
#include "UObject/UObjectGlobals.h"
#include "UObject/UObjectBaseUtility.h"
#include "UObject/UObjectHash.h"
#include "UObject/Object.h"
#include "Serialization/ArchiveUObject.h"
#include "UObject/GarbageCollectionHistory.h"
#include "UObject/Class.h"
#include "UObject/EnumProperty.h"
#include "UObject/UObjectIterator.h"
#include "UObject/Package.h"
#include "UObject/MetaData.h"
#include "UObject/TextProperty.h"
#include "Templates/Casts.h"
#include "UObject/AssetRegistryTagsContext.h"
#include "UObject/LazyObjectPtr.h"
#include "UObject/SoftObjectPtr.h"
#include "UObject/PropertyBagRepository.h"
#include "UObject/PropertyPortFlags.h"
#include "UObject/PropertyStateTracking.h"
#include "UObject/UnrealType.h"
#include "UObject/ObjectInstancingGraph.h"
#include "UObject/ObjectRedirector.h"
#include "UObject/ObjectSaveContext.h"
#include "UObject/UObjectAnnotation.h"
#include "UObject/ReferenceChainSearch.h"
#include "UObject/RemoteObjectPrivate.h"
#include "UObject/OverridableManager.h"
#include "Serialization/ArchiveCountMem.h"
#include "Serialization/ArchiveShowReferences.h"
#include "Serialization/ArchiveFindCulprit.h"
#include "Misc/PackageName.h"
#include "Serialization/BulkData.h"
#include "UObject/LinkerLoad.h"
#include "Misc/RedirectCollector.h"
#include "Misc/PlayInEditorLoadingScope.h"
#include "UObject/GCScopeLock.h"
#include "ProfilingDebugging/AssetMetadataTrace.h"
#include "ProfilingDebugging/CookStats.h"
#include "ProfilingDebugging/LoadTimeTracker.h"
#include "UObject/GCObject.h"
#include "Serialization/ArchiveUObjectFromStructuredArchive.h"
#include "Serialization/ArchiveDescribeReference.h"
#include "UObject/FindStronglyConnected.h"
#include "UObject/UObjectThreadContext.h"
#include "Misc/ExclusiveLoadPackageTimeTracker.h"
#include "Serialization/DeferredMessageLog.h"
#include "UObject/CoreRedirects.h"
#include "HAL/FileManager.h"
#include "HAL/LowLevelMemTracker.h"
#include "HAL/LowLevelMemStats.h"
#include "Misc/ScopeRWLock.h"
#include "Misc/PackageAccessTracking.h"
#include "Misc/PackageAccessTrackingOps.h"
#include "Containers/VersePath.h"
#include "Serialization/LoadTimeTracePrivate.h"
#include "UObject/InstanceDataObjectUtils.h"
#include "AutoRTFM.h"
#include "VerseVM/VVMVerseClass.h"
#include "UObject/ClassTree.h"

Classes

struct  FClassExclusionData
 
class  FSubobjectReferenceFinder
 
class  FObjectFlag
 
struct  FListPropsWildcardPiece
 

Namespaces

namespace  UE
 
namespace  UE::Object
 
namespace  UE::Object::Private
 

Macros

#define PROFILE_ConditionalBeginDestroy   (0)
 
#define CompCheck(Pred)
 
#define DECLARE_OBJECT_FLAG(ObjectFlag)   ObjectFlagList.Add( FObjectFlag( RF_##ObjectFlag, TEXT(#ObjectFlag) ) );
 

Functions

 DEFINE_LOG_CATEGORY (LogObj)
 
 LLM_DEFINE_TAG (UObject_UObjectInternals)
 
bool UsesPerObjectConfig (UObject *SourceObject)
 
FString GetConfigFilename (UObject *SourceObject)
 
void CheckMissingSection (const FString &SectionName, const FString &IniFilename)
 
void ParseFunctionFlags (uint32 Flags, TArray< const TCHAR * > &Results)
 
COREUOBJECT_API TArray< const TCHAR * > ParsePropertyFlags (EPropertyFlags InFlags)
 
bool StaticExec (UWorld *InWorld, const TCHAR *Cmd, FOutputDevice &Ar)
 
void StaticUObjectInit ()
 
void InitUObject ()
 
void StaticExit ()
 
void ShutdownGarbageCollection ()
 
void CleanupLinkerAnnotations ()
 
void CleanupCachedArchetypes ()
 
void PurgeAllUObjectsOnExit ()
 
UPackageGetTransientPackage ()
 
UObjectGetTransientPackageAsObject ()
 
UObjectGetTransientOuterForRename (UClass *ForClass)
 

Variables

FClassExclusionData GDedicatedServerExclusionList
 
FClassExclusionData GDedicatedClientExclusionList
 
boolGReportSoftObjectPathRedirects = nullptr
 
thread_local TArray< const UObject *, TInlineAllocator< 2 > > GAssetRegistryTagsObjectsBeingForwarded
 
thread_local FAssetBundleData const ** TLegacyGetAssetRegistryTags_OutBundles = nullptr
 
volatile const UObject ** GUObjectAbortNullPointer = nullptr
 

Macro Definition Documentation

◆ CompCheck

#define CompCheck (   Pred)
Value:
if (!(Pred)) \
{ \
Result = false; \
UE_LOG(LogObj, Error, TEXT("CompCheck %s failed."), TEXT(#Pred)); \
}
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127

◆ DECLARE_OBJECT_FLAG

#define DECLARE_OBJECT_FLAG (   ObjectFlag)    ObjectFlagList.Add( FObjectFlag( RF_##ObjectFlag, TEXT(#ObjectFlag) ) );

◆ PROFILE_ConditionalBeginDestroy

#define PROFILE_ConditionalBeginDestroy   (0)

Function Documentation

◆ CheckMissingSection()

void CheckMissingSection ( const FString &  SectionName,
const FString &  IniFilename 
)

Checks if a section specified as a long package name can be found as short name in ini.

◆ CleanupCachedArchetypes()

void CleanupCachedArchetypes ( )

Removes all cached archetypes to avoid doing it in static exit where it may cause crashes

◆ CleanupLinkerAnnotations()

void CleanupLinkerAnnotations ( )

Remove all annotations on exit. This is to prevent issues with the order of static destruction of singletons.

◆ DEFINE_LOG_CATEGORY()

DEFINE_LOG_CATEGORY ( LogObj  )

◆ GetConfigFilename()

FString GetConfigFilename ( UObject SourceObject)

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

◆ GetTransientOuterForRename()

UObject * GetTransientOuterForRename ( UClass ForClass)

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

◆ GetTransientPackage()

UPackage * GetTransientPackage ( )

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

◆ GetTransientPackageAsObject()

UObject * GetTransientPackageAsObject ( )

◆ InitUObject()

void InitUObject ( )

◆ LLM_DEFINE_TAG()

LLM_DEFINE_TAG ( UObject_UObjectInternals  )

◆ ParseFunctionFlags()

void ParseFunctionFlags ( uint32  Flags,
TArray< const TCHAR * > &  Results 
)

◆ 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

◆ PurgeAllUObjectsOnExit()

void PurgeAllUObjectsOnExit ( )

Destroys all existing UObjects when the engine shuts down. Does NOT perform reachability analysis to do so.

◆ ShutdownGarbageCollection()

void ShutdownGarbageCollection ( )

◆ StaticExec()

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.

◆ StaticExit()

void StaticExit ( )

◆ StaticUObjectInit()

void StaticUObjectInit ( )

◆ UsesPerObjectConfig()

bool UsesPerObjectConfig ( UObject SourceObject)

Determines whether the specified object should load values using PerObjectConfig rules

Variable Documentation

◆ GAssetRegistryTagsObjectsBeingForwarded

thread_local TArray<const UObject*, TInlineAllocator<2> > GAssetRegistryTagsObjectsBeingForwarded

◆ GDedicatedClientExclusionList

FClassExclusionData GDedicatedClientExclusionList

◆ GDedicatedServerExclusionList

FClassExclusionData GDedicatedServerExclusionList

◆ GReportSoftObjectPathRedirects

bool* GReportSoftObjectPathRedirects = nullptr

◆ GUObjectAbortNullPointer

volatile const UObject** GUObjectAbortNullPointer = nullptr

◆ TLegacyGetAssetRegistryTags_OutBundles

thread_local FAssetBundleData const** TLegacyGetAssetRegistryTags_OutBundles = nullptr