UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ObjectMacros.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 ObjectMacros.h: Helper macros and defines for UObject system
5=============================================================================*/
6
7#pragma once
8
9// IWYU pragma: begin_keep
10#include "Misc/EnumClassFlags.h"
11#include "UObject/Script.h"
12// IWYU pragma: end_keep
13
17struct FFrame;
20
23
24#if PLATFORM_VTABLE_AT_END_OF_CLASS
25#error "not supported in UE"
26#endif
27
28#ifndef USE_COMPILED_IN_NATIVES
29#define USE_COMPILED_IN_NATIVES 1
30#endif
31
33#define THREADSAFE_UOBJECTS 1
34
35// Enumeration of different methods of determining ustruct relationships.
36#define USTRUCT_ISCHILDOF_OUTERWALK 1 // walks the super struct chain - original IsA behavior
37#define USTRUCT_ISCHILDOF_STRUCTARRAY 2 // stores an array of parents per struct and uses this to compare - faster than 1 and thread-safe but can have issues with BP reinstancing and hot reload
38
39// USTRUCT_FAST_ISCHILDOF_IMPL sets which implementation of IsChildOf to use.
40#if WITH_EDITOR
41 // On editor, we use the outerwalk implementation because BP reinstancing and hot reload
42 // mess up the struct array
43 #define USTRUCT_FAST_ISCHILDOF_IMPL USTRUCT_ISCHILDOF_OUTERWALK
44#else
45 #define USTRUCT_FAST_ISCHILDOF_IMPL USTRUCT_ISCHILDOF_STRUCTARRAY
46#endif
47
48// USTRUCT_FAST_ISCHILDOF_COMPARE_WITH_OUTERWALK, if set, does a checked comparison of the current implementation against the outer walk - used for testing.
49#define USTRUCT_FAST_ISCHILDOF_COMPARE_WITH_OUTERWALK 0
50
51// Allow UObject reflection info to be initialized in the binary at compile time instead of allocated on the heap at runtime.
52#ifndef UE_WITH_CONSTINIT_UOBJECT
53 #define UE_WITH_CONSTINIT_UOBJECT 0
54#endif
55
56// Allows relaxing uobject constinit declarations to be ordinary globals with dynamic initialization allowed
57#ifndef UE_CONSTINIT_UOBJECT_DECL
58 #define UE_CONSTINIT_UOBJECT_DECL constinit
59#endif
60
61
62/*-----------------------------------------------------------------------------
63 Core enumerations.
64-----------------------------------------------------------------------------*/
65
68{
69 LOAD_None = 0x00000000,
70 LOAD_Async = 0x00000001,
71 LOAD_NoWarn = 0x00000002,
72 LOAD_EditorOnly = 0x00000004,
74 LOAD_Verify = 0x00000010,
75// LOAD_Unused = 0x00000020, ///< Allow plain DLLs.
76// LOAD_Unused = 0x00000040
77 LOAD_NoVerify = 0x00000080,
78 LOAD_IsVerifying = 0x00000100,
80 LOAD_RegenerateBulkDataGuids UE_DEPRECATED(5.5, "This flag is now obsolete as the functionality is unnecessary.") = 0x00000400,
81// LOAD_Unused = 0x00000800,
83 LOAD_Quiet = 0x00002000,
84 LOAD_FindIfFail = 0x00004000,
85 LOAD_MemoryReader = 0x00008000,
86 LOAD_NoRedirects = 0x00010000,
87 LOAD_ForDiff = 0x00020000,
88 LOAD_PackageForPIE = 0x00080000,
90 LOAD_ForFileDiff = 0x00200000,
93};
94
97{
98 SAVE_None = 0x00000000,
99 SAVE_NoError = 0x00000001,
100 SAVE_FromAutosave = 0x00000002,
101 SAVE_KeepDirty = 0x00000004,
102 SAVE_KeepGUID UE_DEPRECATED(5.6, "KeepPackageGUIDOnSave is no longer supported, because package save no longer records arbitrary guids but instead records a hash of the package's bytes - PackageSavedHash.") = 0x00000008,
103 SAVE_Async = 0x00000010,
105 SAVE_CutdownPackage = 0x00000040,
107 SAVE_Concurrent = 0x00000100,
108// SAVE_Unused = 0x00000200,
109// SAVE_Unused = 0x00000400,
110// SAVE_Unused = 0x00000800,
111 SAVE_CompareLinker UE_DEPRECATED(5.6, "Comparing Linkers is no longer used. Contact Epic if you need this functionality.") = 0x00001000,
113 SAVE_Unversioned_Properties = 0x00004000,
115 SAVE_Optional = 0x00008000,
116 SAVE_AllowTimeout = 0x00010000,
120};
121
129{
130 PKG_None = 0x00000000,
131 PKG_NewlyCreated = 0x00000001,
132 PKG_ClientOptional = 0x00000002,
133 PKG_ServerSideOnly = 0x00000004,
134 PKG_CompiledIn = 0x00000010,
135 PKG_ForDiffing = 0x00000020,
136 PKG_EditorOnly = 0x00000040,
137 PKG_Developer = 0x00000080,
138 PKG_UncookedOnly = 0x00000100,
139 PKG_Cooked = 0x00000200,
140 PKG_ContainsNoAsset = 0x00000400,
144 PKG_ContainsMapData = 0x00004000,
145 PKG_IsSaving = 0x00008000,
146 PKG_Compiling = 0x00010000,
147 PKG_ContainsMap = 0x00020000,
149 PKG_LoadUncooked = 0x00080000,
150 PKG_PlayInEditor = 0x00100000,
151 PKG_ContainsScript = 0x00200000,
152 PKG_DisallowExport = 0x00400000,
153// PKG_Unused = 0x00800000,
154// PKG_Unused = 0x01000000,
155// PKG_Unused = 0x02000000,
156// PKG_Unused = 0x04000000,
157 PKG_CookGenerated = 0x08000000,
158 PKG_DynamicImports = 0x10000000,
159 PKG_RuntimeGenerated = 0x20000000,
161 PKG_FilterEditorOnly = 0x80000000,
162};
163
164// Transient Flags are cleared when serializing to or from PackageFileSummary
165#define PKG_TransientFlags (PKG_NewlyCreated | PKG_IsSaving | PKG_ReloadingForCooker)
166
168#define PKG_InMemoryOnly (EPackageFlags)(PKG_CompiledIn | PKG_NewlyCreated)
169
171
172// Internal enums.
173
177
180{
181public:
184 {
185 EnsureRetrievingVTablePtrDuringCtor(TEXT("FVTableHelper()"));
186 }
187};
188
190#define NO_API
191
199{
201 CLASS_None = 0x00000000u,
203 CLASS_Abstract = 0x00000001u,
205 CLASS_DefaultConfig = 0x00000002u,
207 CLASS_Config = 0x00000004u,
209 CLASS_Transient = 0x00000008u,
211 CLASS_Optional = 0x00000010u,
217 CLASS_Native = 0x00000080u,
218
219 // CLASS_Unused = 0x00000100u,
220
222 CLASS_NotPlaceable = 0x00000200u,
225
228
230 CLASS_EditInlineNew = 0x00001000u,
234 CLASS_Interface = 0x00004000u,
238 CLASS_Const = 0x00010000u,
239
242
245
247 CLASS_MinimalAPI = 0x00080000u,
248
250 CLASS_RequiredAPI = 0x00100000u,
251
254
260 CLASS_Hidden = 0x01000000u,
262 CLASS_Deprecated = 0x02000000u,
264 CLASS_HideDropDown = 0x04000000u,
268 CLASS_Intrinsic = 0x10000000u,
270 CLASS_Constructed = 0x20000000u,
275};
276
277// Declare bitwise operators to allow EClassFlags to be combined but still retain type safety
279
281#define CLASS_Inherit ((EClassFlags)(CLASS_Transient | CLASS_Optional | CLASS_DefaultConfig | CLASS_Config | CLASS_PerObjectConfig | CLASS_ConfigDoNotCheckDefaults | CLASS_NotPlaceable \
282 | CLASS_Const | CLASS_HasInstancedReference | CLASS_Deprecated | CLASS_DefaultToInstanced | CLASS_GlobalUserConfig | CLASS_ProjectUserConfig | CLASS_PerPlatformConfig | CLASS_NeedsDeferredDependencyLoading))
283
285#define CLASS_RecompilerClear ((EClassFlags)(CLASS_Inherit | CLASS_Abstract | CLASS_Native | CLASS_Intrinsic | CLASS_TokenStreamAssembled))
286
288#define CLASS_ShouldNeverBeLoaded ((EClassFlags)(CLASS_Native | CLASS_Optional | CLASS_Intrinsic | CLASS_TokenStreamAssembled))
289
291#define CLASS_ScriptInherit ((EClassFlags)(CLASS_Inherit | CLASS_EditInlineNew | CLASS_CollapseCategories))
292
294#define CLASS_SaveInCompiledInClasses ((EClassFlags)(\
295 CLASS_Abstract | \
296 CLASS_DefaultConfig | \
297 CLASS_GlobalUserConfig | \
298 CLASS_ProjectUserConfig | \
299 CLASS_PerPlatformConfig | \
300 CLASS_Config | \
301 CLASS_Transient | \
302 CLASS_Optional | \
303 CLASS_Native | \
304 CLASS_NotPlaceable | \
305 CLASS_PerObjectConfig | \
306 CLASS_PerPlatformConfig | \
307 CLASS_ConfigDoNotCheckDefaults | \
308 CLASS_EditInlineNew | \
309 CLASS_CollapseCategories | \
310 CLASS_Interface | \
311 CLASS_DefaultToInstanced | \
312 CLASS_HasInstancedReference | \
313 CLASS_Hidden | \
314 CLASS_Deprecated | \
315 CLASS_HideDropDown | \
316 CLASS_Intrinsic | \
317 CLASS_Const | \
318 CLASS_MinimalAPI | \
319 CLASS_RequiredAPI | \
320 CLASS_MatchedSerializers | \
321 CLASS_NeedsDeferredDependencyLoading))
322
323#define CLASS_AllFlags ((EClassFlags)0xFFFFFFFFu)
324
325
333{
334 CASTCLASS_None = 0x0000000000000000,
335
336 CASTCLASS_UField = 0x0000000000000001,
337 CASTCLASS_FInt8Property = 0x0000000000000002,
338 CASTCLASS_UEnum = 0x0000000000000004,
339 CASTCLASS_UStruct = 0x0000000000000008,
340 CASTCLASS_UScriptStruct = 0x0000000000000010,
341 CASTCLASS_UClass = 0x0000000000000020,
342 CASTCLASS_FByteProperty = 0x0000000000000040,
343 CASTCLASS_FIntProperty = 0x0000000000000080,
344 CASTCLASS_FFloatProperty = 0x0000000000000100,
345 CASTCLASS_FUInt64Property = 0x0000000000000200,
346 CASTCLASS_FClassProperty = 0x0000000000000400,
347 CASTCLASS_FUInt32Property = 0x0000000000000800,
348 CASTCLASS_FInterfaceProperty = 0x0000000000001000,
349 CASTCLASS_FNameProperty = 0x0000000000002000,
350 CASTCLASS_FStrProperty = 0x0000000000004000,
351 CASTCLASS_FProperty = 0x0000000000008000,
352 CASTCLASS_FObjectProperty = 0x0000000000010000,
353 CASTCLASS_FBoolProperty = 0x0000000000020000,
354 CASTCLASS_FUInt16Property = 0x0000000000040000,
355 CASTCLASS_UFunction = 0x0000000000080000,
356 CASTCLASS_FStructProperty = 0x0000000000100000,
357 CASTCLASS_FArrayProperty = 0x0000000000200000,
358 CASTCLASS_FInt64Property = 0x0000000000400000,
359 CASTCLASS_FDelegateProperty = 0x0000000000800000,
360 CASTCLASS_FNumericProperty = 0x0000000001000000,
362 CASTCLASS_FObjectPropertyBase = 0x0000000004000000,
363 CASTCLASS_FWeakObjectProperty = 0x0000000008000000,
364 CASTCLASS_FLazyObjectProperty = 0x0000000010000000,
365 CASTCLASS_FSoftObjectProperty = 0x0000000020000000,
366 CASTCLASS_FTextProperty = 0x0000000040000000,
367 CASTCLASS_FInt16Property = 0x0000000080000000,
368 CASTCLASS_FDoubleProperty = 0x0000000100000000,
369 CASTCLASS_FSoftClassProperty = 0x0000000200000000,
370 CASTCLASS_UPackage = 0x0000000400000000,
371 CASTCLASS_ULevel = 0x0000000800000000,
372 CASTCLASS_AActor = 0x0000001000000000,
373 CASTCLASS_APlayerController = 0x0000002000000000,
374 CASTCLASS_APawn = 0x0000004000000000,
375 CASTCLASS_USceneComponent = 0x0000008000000000,
376 CASTCLASS_UPrimitiveComponent = 0x0000010000000000,
379 CASTCLASS_UBlueprint = 0x0000080000000000,
380 CASTCLASS_UDelegateFunction = 0x0000100000000000,
381 CASTCLASS_UStaticMeshComponent = 0x0000200000000000,
382 CASTCLASS_FMapProperty = 0x0000400000000000,
383 CASTCLASS_FSetProperty = 0x0000800000000000,
384 CASTCLASS_FEnumProperty = 0x0001000000000000,
388 CASTCLASS_FFieldPathProperty = 0x0010000000000000,
389 // = 0x0020000000000000,
390 // = 0x0040000000000000,
392 CASTCLASS_FOptionalProperty = 0x0100000000000000,
393 CASTCLASS_FVValueProperty = 0x0200000000000000,
394 CASTCLASS_FVRestValueProperty = 0x0400000000000000,
395 CASTCLASS_FVerseStringProperty = 0x0800000000000000,
396 CASTCLASS_FUtf8StrProperty = 0x1000000000000000,
397 CASTCLASS_FAnsiStrProperty = 0x2000000000000000,
398 CASTCLASS_FVCellProperty = 0x4000000000000000,
399 // = 0x8000000000000000,
400};
401
402#define CASTCLASS_AllFlags ((EClassCastFlags)0xFFFFFFFFFFFFFFFF)
403
405
406
407
416{
418
419 CPF_Edit = 0x0000000000000001,
420 CPF_ConstParm = 0x0000000000000002,
421 CPF_BlueprintVisible = 0x0000000000000004,
422 CPF_ExportObject = 0x0000000000000008,
423 CPF_BlueprintReadOnly = 0x0000000000000010,
424 CPF_Net = 0x0000000000000020,
425 CPF_EditFixedSize = 0x0000000000000040,
426 CPF_Parm = 0x0000000000000080,
427 CPF_OutParm = 0x0000000000000100,
428 CPF_ZeroConstructor = 0x0000000000000200,
429 CPF_ReturnParm = 0x0000000000000400,
430 CPF_DisableEditOnTemplate = 0x0000000000000800,
431 CPF_NonNullable = 0x0000000000001000,
432 CPF_Transient = 0x0000000000002000,
433 CPF_Config = 0x0000000000004000,
434 CPF_RequiredParm = 0x0000000000008000,
435 CPF_DisableEditOnInstance = 0x0000000000010000,
436 CPF_EditConst = 0x0000000000020000,
437 CPF_GlobalConfig = 0x0000000000040000,
438 CPF_InstancedReference = 0x0000000000080000,
439 CPF_ExperimentalExternalObjects = 0x0000000000100000,
440 CPF_DuplicateTransient = 0x0000000000200000,
441 //CPF_ = 0x0000000000400000, ///<
442 //CPF_ = 0x0000000000800000, ///<
443 CPF_SaveGame = 0x0000000001000000,
444 CPF_NoClear = 0x0000000002000000,
445 CPF_Virtual = 0x0000000004000000,
446 CPF_ReferenceParm = 0x0000000008000000,
447 CPF_BlueprintAssignable = 0x0000000010000000,
448 CPF_Deprecated = 0x0000000020000000,
449 CPF_IsPlainOldData = 0x0000000040000000,
450 CPF_RepSkip = 0x0000000080000000,
451 CPF_RepNotify = 0x0000000100000000,
452 CPF_Interp = 0x0000000200000000,
453 CPF_NonTransactional = 0x0000000400000000,
454 CPF_EditorOnly = 0x0000000800000000,
455 CPF_NoDestructor = 0x0000001000000000,
456 //CPF_ = 0x0000002000000000, ///<
457 CPF_AutoWeak = 0x0000004000000000,
458 CPF_ContainsInstancedReference = 0x0000008000000000,
459 CPF_AssetRegistrySearchable = 0x0000010000000000,
460 CPF_SimpleDisplay = 0x0000020000000000,
461 CPF_AdvancedDisplay = 0x0000040000000000,
462 CPF_Protected = 0x0000080000000000,
463 CPF_BlueprintCallable = 0x0000100000000000,
464 CPF_BlueprintAuthorityOnly = 0x0000200000000000,
465 CPF_TextExportTransient = 0x0000400000000000,
466 CPF_NonPIEDuplicateTransient = 0x0000800000000000,
467 CPF_ExposeOnSpawn = 0x0001000000000000,
468 CPF_PersistentInstance = 0x0002000000000000,
469 CPF_UObjectWrapper = 0x0004000000000000,
470 CPF_HasGetValueTypeHash = 0x0008000000000000,
471 CPF_NativeAccessSpecifierPublic = 0x0010000000000000,
473 CPF_NativeAccessSpecifierPrivate = 0x0040000000000000,
474 CPF_SkipSerialization = 0x0080000000000000,
475 CPF_TObjectPtr = 0x0100000000000000,
476 CPF_ExperimentalOverridableLogic = 0x0200000000000000,
477 CPF_ExperimentalAlwaysOverriden = 0x0400000000000000,
478 CPF_ExperimentalNeverOverriden = 0x0800000000000000,
479 CPF_AllowSelfReference = 0x1000000000000000,
480};
481
483#define CPF_NativeAccessSpecifiers (CPF_NativeAccessSpecifierPublic | CPF_NativeAccessSpecifierProtected | CPF_NativeAccessSpecifierPrivate)
484
486#define CPF_ParmFlags (CPF_Parm | CPF_OutParm | CPF_ReturnParm | CPF_RequiredParm | CPF_ReferenceParm | CPF_ConstParm )
487
489#define CPF_PropagateToArrayInner (CPF_ExportObject | CPF_PersistentInstance | CPF_InstancedReference | CPF_ContainsInstancedReference | CPF_Config | CPF_EditConst | CPF_Deprecated | CPF_EditorOnly | CPF_AutoWeak | CPF_UObjectWrapper )
490#define CPF_PropagateToOptionalInner (CPF_ExportObject | CPF_PersistentInstance | CPF_InstancedReference | CPF_ContainsInstancedReference | CPF_Config | CPF_EditConst | CPF_Deprecated | CPF_EditorOnly | CPF_AutoWeak | CPF_UObjectWrapper | CPF_Edit )
491#define CPF_PropagateToMapValue (CPF_ExportObject | CPF_PersistentInstance | CPF_InstancedReference | CPF_ContainsInstancedReference | CPF_Config | CPF_EditConst | CPF_Deprecated | CPF_EditorOnly | CPF_AutoWeak | CPF_UObjectWrapper | CPF_Edit )
492#define CPF_PropagateToMapKey (CPF_ExportObject | CPF_PersistentInstance | CPF_InstancedReference | CPF_ContainsInstancedReference | CPF_Config | CPF_EditConst | CPF_Deprecated | CPF_EditorOnly | CPF_AutoWeak | CPF_UObjectWrapper | CPF_Edit )
493#define CPF_PropagateToSetElement (CPF_ExportObject | CPF_PersistentInstance | CPF_InstancedReference | CPF_ContainsInstancedReference | CPF_Config | CPF_EditConst | CPF_Deprecated | CPF_EditorOnly | CPF_AutoWeak | CPF_UObjectWrapper | CPF_Edit )
494
496#define CPF_InterfaceClearMask (CPF_ExportObject|CPF_InstancedReference|CPF_ContainsInstancedReference)
497
499#define CPF_DevelopmentAssets (CPF_EditorOnly)
500
502#define CPF_ComputedFlags (CPF_IsPlainOldData | CPF_NoDestructor | CPF_ZeroConstructor | CPF_HasGetValueTypeHash)
503
504#define CPF_TObjectPtrWrapper (CPF_UObjectWrapper | CPF_TObjectPtr)
506#define CPF_AllFlags ((EPropertyFlags)0xFFFFFFFFFFFFFFFF)
507
509
510
518
520
521
529
531
533{
534 None = 0,
535 Strong = 1 << 0, // Hard reference to a UObject, keeps the object from being garbage collected
536 Weak = 1 << 1, // Weak reference to a UObject, does not keep the object from being garbage collected, does not become valid again after object is unloaded and reloaded.
537 Soft = 1 << 2, // Soft path/identity-based reference to a UObject, does not keep the object from being garbage collected, does become valid again after object is unloaded and reloaded.
538 Conservative = 1 << 3, // Not a real reference type, used to mark native struct serializers which may serialize unknown reference types and to conservatively populate RefLink with such struct properties.
539
540 MAX = Conservative << 1, // Marker for iterating over all flags
542};
544
546
552{
553 // Do not add new flags unless they truly belong here. There are alternatives.
554 // if you change any the bit of any of the RF_Load flags, then you will need legacy serialization
555 RF_NoFlags = 0x00000000,
556
557 // This first group of flags mostly has to do with what kind of object it is. Other than transient, these are the persistent object flags.
558 // The garbage collector also tends to look at these.
559 RF_Public =0x00000001,
560 RF_Standalone =0x00000002,
561 RF_MarkAsNative =0x00000004,
562 RF_Transactional =0x00000008,
564 RF_ArchetypeObject =0x00000020,
565 RF_Transient =0x00000040,
566
567 // This group of flags is primarily concerned with garbage collection.
568 RF_MarkAsRootSet =0x00000080,
569 RF_TagGarbageTemp =0x00000100,
570
571 // The group of flags tracks the stages of the lifetime of a uobject
573 RF_NeedLoad =0x00000400,
574 RF_KeepForCooker UE_DEPRECATED(5.6, "This flag is now obsolete as the functionality is unnecessary.") =0x00000800,
575 RF_NeedPostLoad =0x00001000,
578 RF_BeginDestroyed =0x00008000,
579 RF_FinishDestroyed =0x00010000,
580
581 // Misc. Flags
584 RF_WasLoaded =0x00080000,
586 RF_LoadCompleted =0x00200000,
592 RF_WillBeLoaded =0x08000000,
594 RF_MigratingAsset =0x20000000,
595
596 // RF_MirroredGarbage is mirrored in EInternalObjectFlags::Garbage because checking the internal flags is much faster for the Garbage Collector
597 // while checking the object flags is much faster outside of it where the Object pointer is already available and most likely cached.
598 RF_MirroredGarbage =0x40000000,
600};
601
602UE_DEPRECATED(5.4, "RF_InternalPendingKill should no longer be used. Use IsValid(Object) instead.")
604UE_DEPRECATED(5.4, "RF_InternalGarbage should no longer be used. Use IsValid(Object) instead.")
610
612#define RF_AllFlags (EObjectFlags)0xffffffff
613
615#define RF_Load ((EObjectFlags)(RF_Public | RF_Standalone | RF_Transactional | RF_ClassDefaultObject | RF_ArchetypeObject | RF_DefaultSubObject | RF_TextExportTransient | RF_InheritableComponentTemplate | RF_DuplicateTransient | RF_NonPIEDuplicateTransient | RF_MigratingAsset))
616
618#define RF_PropagateToSubObjects ((EObjectFlags)(RF_Public | RF_ArchetypeObject | RF_Transactional | RF_Transient))
619
621
623
631{
632 None = 0,
633
634#if UE_WITH_REMOTE_OBJECT_HANDLE
635 Remote = 1 << 0, //< Object is no longer owned by this process
636 RemoteReference = 1 << 1, //< Object referenced by remote process
637 Borrowed = 1 << 2, //< Object that is not owned by this process
638#else
639 Remote = 0,
640 RemoteReference = 0,
641 Borrowed = 0,
642#endif
643
644
645 // NOTE that the minimum flag bit index is currently 14 (unless compiling with UE_WITH_REMOTE_OBJECT_HANDLE).
646 // See EInternalObjectFlags_MinFlagBitIndex and UE_ENABLE_FUOBJECT_ITEM_PACKING in UObjectArray.h
647
648 ReachabilityFlag0 = 1 << 14,
649 ReachabilityFlag1 = 1 << 15,
650 ReachabilityFlag2 = 1 << 16,
651
652 AutoRTFMConstructionAborted = 1 << 17, //< Object was constructed in an AutoRTFM transaction that has been aborted
653 // Unused = 1 << 18,
654 // Unused = 1 << 19,
655 LoaderImport = 1 << 20,
656 Garbage = 1 << 21,
657 AsyncLoadingPhase1 = 1 << 22,
658 ReachableInCluster = 1 << 23,
659 ClusterRoot = 1 << 24,
660 Native = 1 << 25,
661 Async = 1 << 26,
662 AsyncLoadingPhase2 = 1 << 27,
663 Unreachable = 1 << 28,
664 RefCounted UE_DEPRECATED(5.7, "Use GetRefCount() to determine if a refcount exists instead.") = 1 << 29,
665 RootSet = 1 << 30,
666 PendingConstruction = 1 << 31,
667
668 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
669 // DO NOT ADD composite flags to EInternalObjectFlags. Debugger visualisations have trouble displaying composite flag values as text.
670 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
671};
673
674//~ Make sure these macros are up to date!
675#define EInternalObjectFlags_MinFlagBitIndex 14
676#define EInternalObjectFlags_RefCountMask 0xFFFFFFFF
677#define EInternalObjectFlags_GarbageCollectionKeepFlags (EInternalObjectFlags::Borrowed | EInternalObjectFlags::Native | EInternalObjectFlags::Async | EInternalObjectFlags::AsyncLoadingPhase1 | EInternalObjectFlags::AsyncLoadingPhase2 | EInternalObjectFlags::LoaderImport)
678#define EInternalObjectFlags_AllFlags (EInternalObjectFlags::Remote | EInternalObjectFlags::RemoteReference | EInternalObjectFlags::Borrowed | EInternalObjectFlags::ReachabilityFlag0 | EInternalObjectFlags::ReachabilityFlag1 | EInternalObjectFlags::ReachabilityFlag2 | EInternalObjectFlags::AutoRTFMConstructionAborted | EInternalObjectFlags::LoaderImport | EInternalObjectFlags::Garbage | EInternalObjectFlags::ReachableInCluster | EInternalObjectFlags::ClusterRoot | EInternalObjectFlags::Native | EInternalObjectFlags::Async | EInternalObjectFlags::AsyncLoadingPhase1 | EInternalObjectFlags::AsyncLoadingPhase2 | EInternalObjectFlags::RootSet | EInternalObjectFlags::PendingConstruction | EInternalObjectFlags::Unreachable)
679#define EInternalObjectFlags_RootFlags (EInternalObjectFlags::RootSet | EInternalObjectFlags_GarbageCollectionKeepFlags)
680#define EInternalObjectFlags_ReachabilityFlags (EInternalObjectFlags::ReachabilityFlag0 | EInternalObjectFlags::ReachabilityFlag1 | EInternalObjectFlags::ReachabilityFlag2 | EInternalObjectFlags::Unreachable)
681#define EInternalObjectFlags_AsyncLoading (EInternalObjectFlags::AsyncLoadingPhase1 | EInternalObjectFlags::AsyncLoadingPhase2)
682
689enum class EEnumFlags : uint8
690{
691 None,
692
693 Flags = 0x00000001, // Whether the UEnum represents a set of flags
694 NewerVersionExists = 0x00000002, // If set, this UEnum has been replaced by a newer version
695};
696
698
699/*----------------------------------------------------------------------------
700 Core types.
701----------------------------------------------------------------------------*/
702
703class UObject;
704class FProperty;
705class FObjectInitializer;
706
721
730
731/*----------------------------------------------------------------------------
732 Core macros.
733----------------------------------------------------------------------------*/
734
735// Special prefix for default objects (the UObject in a UClass containing the default values, etc)
736#define DEFAULT_OBJECT_PREFIX TEXT("Default__")
737
741
742// These macros wrap metadata parsed by the Unreal Header Tool, and are otherwise
743// ignored when code containing them is compiled by the C++ compiler
744#define UPROPERTY(...)
745#define UFUNCTION(...)
746#define USTRUCT(...)
747#define UMETA(...)
748#define UPARAM(...)
749#define UENUM(...)
750#define UDELEGATE(...)
751#define RIGVM_METHOD(...)
752#define VMODULE(...)
753
754// Used to inline generated cpp files from UObject headers
755#define UE_INLINE_STRINGIFY(name) #name
756#define UE_INLINE_GENERATED_CPP_BY_NAME(name) UE_INLINE_STRINGIFY(name.gen.cpp)
757
758// This pair of macros is used to help implement GENERATED_BODY() and GENERATED_USTRUCT_BODY()
759#define BODY_MACRO_COMBINE_INNER(A,B,C,D) A##B##C##D
760#define BODY_MACRO_COMBINE(A,B,C,D) BODY_MACRO_COMBINE_INNER(A,B,C,D)
761
762// Include a redundant semicolon at the end of the generated code block, so that intellisense parsers can start parsing
763// a new declaration if the line number/generated code is out of date.
764#define GENERATED_BODY_LEGACY(...) BODY_MACRO_COMBINE(CURRENT_FILE_ID,_,__LINE__,_GENERATED_BODY_LEGACY);
765#define GENERATED_BODY(...) BODY_MACRO_COMBINE(CURRENT_FILE_ID,_,__LINE__,_GENERATED_BODY);
766
767#define GENERATED_USTRUCT_BODY(...) GENERATED_BODY()
768#define GENERATED_UCLASS_BODY(...) GENERATED_BODY_LEGACY()
769#define GENERATED_UINTERFACE_BODY(...) GENERATED_BODY_LEGACY()
770#define GENERATED_IINTERFACE_BODY(...) GENERATED_BODY_LEGACY()
771
772#if UE_BUILD_DOCS || defined(__INTELLISENSE__ )
773#define UCLASS(...)
774#define VINTERFACES(...)
775#else
776#define UCLASS(...) BODY_MACRO_COMBINE(CURRENT_FILE_ID,_,__LINE__,_PROLOG)
777#define VINTERFACES(...) BODY_MACRO_COMBINE(CURRENT_FILE_ID,_,__LINE__,_VINTERFACES)
778#endif
779
780#define UINTERFACE(...) UCLASS()
781
782// This macro is used to declare a thunk function in autogenerated boilerplate code
783#define DECLARE_FUNCTION(func) static void func( UObject* Context, FFrame& Stack, RESULT_DECL )
784
785// This macro is used to define a thunk function in autogenerated boilerplate code
786#define DEFINE_FUNCTION(func) void func( UObject* Context, FFrame& Stack, RESULT_DECL )
787
788// These are used for syntax highlighting and to allow autocomplete hints
789
922
923namespace UI
924{
925 // valid keywords for the UINTERFACE macro, see the UCLASS versions, above
926 enum
927 {
931
934
937
940 };
941}
942
943namespace UF
944{
945 // valid keywords for the UFUNCTION and UDELEGATE macros
946 enum
947 {
951
956
960
963
967
971
974
978
982
985
988
991
994
997
1000
1003
1006
1009
1013
1016
1019
1022
1025
1029
1032
1035
1036 // [FunctionMetadata] Indicates that the function should appear as blueprint function even if it doesn't return a value.
1038
1041 };
1042}
1043
1173
1174namespace US
1175{
1176 // valid keywords for the USTRUCT macro
1177 enum
1178 {
1181
1184
1187
1190
1193
1196 };
1197}
1198
1199// Metadata specifiers
1200namespace UM
1201{
1202 // Metadata usable in any UField (UCLASS(), USTRUCT(), UPROPERTY(), UFUNCTION(), etc...)
1203 enum
1204 {
1207
1210
1213 };
1214
1215 // Metadata usable in UCLASS
1216 enum
1217 {
1220
1223
1226
1229
1232
1235
1238
1241
1244
1247
1250
1253
1256
1259
1263
1264 //[ClassMetadata] Do not spawn an object of the class using Generic Create Object node in Blueprint. It makes sense only for a BluprintType class, that is neither Actor, nor ActorComponent.
1266
1267 //[ClassMetadata] Expose a proxy object of this class in Async Task node.
1269
1270 //[ClassMetadata] Only valid on Blueprint Function Libraries. Mark the functions in this class as callable on non-game threads in an Animation Blueprint.
1272
1275 };
1276
1277 // Metadata usable in USTRUCT
1278 enum
1279 {
1282
1285
1288
1291 };
1292
1293 // Metadata usable in UPROPERTY
1294 enum
1295 {
1298
1301
1304
1307
1310
1313
1316
1319
1322
1325
1328
1331
1334
1337
1340
1342 // DeprecationMessage, (Commented out so as to avoid duplicate name with version in the Class section, but still show in the property section)
1343
1345 // DisplayName, (Commented out so as to avoid duplicate name with version in the Class section, but still show in the property section)
1346
1348 //ScriptName, (Commented out so as to avoid duplicate name with version in the Class section, but still show in the property section)
1349
1352
1355
1358
1362
1365
1368
1371
1374
1377
1380
1383
1386
1389
1392
1395
1398
1401
1404
1407
1410
1413
1416
1423
1425 // LoadBehavior, (Commented out so as to avoid duplicate name with version in the Class section, but still show in the property section)
1426
1429
1432
1435
1438
1441
1444
1447
1450
1453
1456
1459
1462
1465
1468
1471
1474
1477
1480
1483
1486
1489
1492
1495
1498
1501
1506
1509
1512
1515
1518
1521
1528
1531
1534
1537
1543
1549
1555
1561
1567
1570
1572 // HidePinAssetPicker, (Commented out so as to avoid duplicate name with version in the Function section, but still show in the property section)
1573 };
1574
1575 // Metadata usable in UPROPERTY for customizing the behavior of Persona and UMG
1576 // TODO: Move this to be contained in those modules specifically?
1577 enum
1578 {
1581
1584
1587
1590 };
1591
1592 // Metadata usable in UPROPERTY for customizing the behavior of Material Expressions
1593 // TODO: Move this to be contained in that module?
1594 enum
1595 {
1598
1601 };
1602
1603
1604 // Metadata usable in UFUNCTION
1605 enum
1606 {
1610
1613
1616
1620
1621 HideAssetPicker UE_DEPRECATED(5.6, "Use HidePinAssetPicker instead."),
1622
1625
1628
1631
1634
1637
1640
1643
1646
1649
1651 // DeprecationMessage, (Commented out so as to avoid duplicate name with version in the Class section, but still show in the function section)
1652
1656
1657 // Synonym for ExpandEnumAsExecs
1659
1661 // DisplayName, (Commented out so as to avoid duplicate name with version in the Class section, but still show in the function section)
1662
1664 //ScriptName, (Commented out so as to avoid duplicate name with version in the Class section, but still show in the function section)
1665
1667 //ScriptNoExport, (Commented out so as to avoid duplicate name with version in the Property section, but still show in the function section)
1668
1672
1675
1678
1693
1698
1701
1704
1707
1710
1713
1716
1719
1722
1725
1728
1731
1734
1735 // [FunctionMetadata] Only valid in Blueprint Function Libraries. Mark this function as an exception to the class's general BlueprintThreadSafe metadata.
1737
1740
1743
1746
1749
1752
1755
1758
1761
1764
1767
1770
1773
1776 };
1777
1778 // Metadata usable in UINTERFACE
1779 enum
1780 {
1783
1797}
1798
1799#define RELAY_CONSTRUCTOR(TClass, TSuperClass) TClass(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get()) : TSuperClass(ObjectInitializer) {}
1800#define UE_DELETE_COPY_MOVE_CONSTRUCTORS(TClass) TClass(const TClass&) = delete; TClass(TClass&&) = delete;
1801
1802#if !USE_COMPILED_IN_NATIVES
1803#define COMPILED_IN_FLAGS(TStaticFlags) (TStaticFlags& ~(CLASS_Intrinsic))
1804#else
1805#define COMPILED_IN_FLAGS(TStaticFlags) (TStaticFlags | CLASS_Intrinsic)
1806#endif
1807
1808#define DECLARE_SERIALIZER( TClass ) \
1809 friend FArchive &operator<<( FArchive& Ar, TClass*& Res ) \
1810 { \
1811 return Ar << (UObject*&)Res; \
1812 } \
1813 friend void operator<<(FStructuredArchive::FSlot InSlot, TClass*& Res) \
1814 { \
1815 InSlot << (UObject*&)Res; \
1816 }
1817
1818#define IMPLEMENT_FARCHIVE_SERIALIZER( TClass ) void TClass::Serialize(FArchive& Ar) { TClass::Serialize(FStructuredArchiveFromArchive(Ar).GetSlot().EnterRecord()); }
1819#define IMPLEMENT_FSTRUCTUREDARCHIVE_SERIALIZER( TClass ) void TClass::Serialize(FStructuredArchive::FRecord Record) { FArchiveUObjectFromStructuredArchive Ar(Record.EnterField(TEXT("BaseClassAutoGen"))); TClass::Serialize(Ar.GetArchive()); Ar.Close(); }
1820#define DECLARE_FARCHIVE_SERIALIZER( TClass, API ) virtual API void Serialize(FArchive& Ar) override;
1821#define DECLARE_FSTRUCTUREDARCHIVE_SERIALIZER( TClass, API ) virtual API void Serialize(FStructuredArchive::FRecord Record) override;
1822
1823#if WITH_RELOAD
1824#define CONSTRUCT_RELOAD_VERSION_INFO(VersionInfo, ...) VersionInfo { __VA_ARGS__ }
1825#else
1826#define CONSTRUCT_RELOAD_VERSION_INFO(VersionInfo, ...) VersionInfo()
1827#endif
1828
1829/*-----------------------------------------------------------------------------
1830 Class declaration macros.
1831-----------------------------------------------------------------------------*/
1832
1833#define DECLARE_CLASS( TClass, TSuperClass, TStaticFlags, TStaticCastFlags, TPackage, TRequiredAPI ) \
1834 TRequiredAPI static UClass* GetPrivateStaticClass(); \
1835 DECLARE_CLASS2(TClass, TSuperClass, TStaticFlags, TStaticCastFlags, TPackage, GetPrivateStaticClass )
1836
1837#define DECLARE_CLASS2( TClass, TSuperClass, TStaticFlags, TStaticCastFlags, TPackage, TPrivateAccessor ) \
1838private: \
1839 friend struct FUObjectCppClassStaticFunctions; \
1840public: \
1841 \
1842 static constexpr EClassFlags StaticClassFlags=EClassFlags(TStaticFlags); \
1843 \
1844 typedef TSuperClass Super;\
1845 \
1846 typedef TClass ThisClass;\
1847 \
1848 inline static UClass* StaticClass() \
1849 { \
1850 return TPrivateAccessor(); \
1851 } \
1852 \
1853 inline static const TCHAR* StaticPackage() \
1854 { \
1855 return TPackage; \
1856 } \
1857 \
1858 inline constexpr static EClassCastFlags StaticClassCastFlags() \
1859 { \
1860 return TStaticCastFlags; \
1861 } \
1862 \
1863 inline consteval static EClassCastFlags StaticAllClassCastFlags() \
1864 { \
1865 if constexpr (std::is_same_v<ThisClass, Super>) { return StaticClassCastFlags(); } \
1866 return StaticClassCastFlags() | Super::StaticAllClassCastFlags(); \
1867 } \
1868 \
1869 inline void* operator new(const size_t InSize, EInternal InInternalOnly, UObject* InOuter = GetTransientPackageAsObject(), FName InName = NAME_None, EObjectFlags InSetFlags = RF_NoFlags) \
1870 { \
1871 return StaticAllocateObject(StaticClass(), InOuter, InName, InSetFlags); \
1872 } \
1873 \
1874 inline void* operator new( const size_t InSize, EInternal* InMem ) \
1875 { \
1876 return (void*)InMem; \
1877 } \
1878 /* Eliminate V1062 warning from PVS-Studio while keeping MSVC and Clang happy. */ \
1879 inline void operator delete(void* InMem) \
1880 { \
1881 ::operator delete(InMem); \
1882 }
1883
1884#define DEFINE_FORBIDDEN_DEFAULT_CONSTRUCTOR_CALL(TClass) \
1885 static_assert(false, "You have to define " #TClass "::" #TClass "() or " #TClass "::" #TClass "(const FObjectInitializer&). This is required by UObject system to work correctly.");
1886
1887#define DEFINE_DEFAULT_CONSTRUCTOR_CALL(TClass) \
1888 static void __DefaultConstructor(const FObjectInitializer& X) { new((EInternal*)X.GetObj())TClass; }
1889
1890#define DEFINE_DEFAULT_OBJECT_INITIALIZER_CONSTRUCTOR_CALL(TClass) \
1891 static void __DefaultConstructor(const FObjectInitializer& X) { new((EInternal*)X.GetObj())TClass(X); }
1892
1893#if CHECK_PUREVIRTUALS
1894#define DEFINE_ABSTRACT_DEFAULT_CONSTRUCTOR_CALL(TClass) \
1895 static void __DefaultConstructor(const FObjectInitializer& X) { }
1896
1897#define DEFINE_ABSTRACT_DEFAULT_OBJECT_INITIALIZER_CONSTRUCTOR_CALL(TClass) \
1898 static void __DefaultConstructor(const FObjectInitializer& X) { }
1899#else
1900#define DEFINE_ABSTRACT_DEFAULT_CONSTRUCTOR_CALL(TClass) \
1901 DEFINE_DEFAULT_CONSTRUCTOR_CALL(TClass)
1902
1903#define DEFINE_ABSTRACT_DEFAULT_OBJECT_INITIALIZER_CONSTRUCTOR_CALL(TClass) \
1904 DEFINE_DEFAULT_OBJECT_INITIALIZER_CONSTRUCTOR_CALL(TClass)
1905#endif
1906
1907#define DECLARE_VTABLE_PTR_HELPER_CTOR(API, TClass) \
1908 \
1909 API TClass(FVTableHelper& Helper);
1910
1911// Namespace should be in the form of "Whatever::" or blank for no namespace
1912#define DEFINE_VTABLE_PTR_HELPER_CTOR_NS(Namespace, TClass) \
1913 Namespace TClass::TClass(FVTableHelper& Helper) : Super(Helper) {};
1914
1915#define DEFINE_VTABLE_PTR_HELPER_CTOR(TClass) DEFINE_VTABLE_PTR_HELPER_CTOR_NS(, TClass)
1916
1917#define DEFINE_VTABLE_PTR_HELPER_CTOR_CALLER_DUMMY() \
1918 static UObject* __VTableCtorCaller(FVTableHelper& Helper) \
1919 { \
1920 return nullptr; \
1921 }
1922
1923#if WITH_RELOAD && !CHECK_PUREVIRTUALS
1924 #define DEFINE_VTABLE_PTR_HELPER_CTOR_CALLER(TClass) \
1925 static UObject* __VTableCtorCaller(FVTableHelper& Helper) \
1926 { \
1927 return new (EC_InternalUseOnlyConstructor, GetTransientPackageAsObject(), NAME_None, RF_NeedLoad | RF_ClassDefaultObject | RF_TagGarbageTemp) TClass(Helper); \
1928 }
1929#else // WITH_RELOAD && !CHECK_PUREVIRTUALS
1930 #define DEFINE_VTABLE_PTR_HELPER_CTOR_CALLER(TClass) \
1931 DEFINE_VTABLE_PTR_HELPER_CTOR_CALLER_DUMMY()
1932#endif // WITH_RELOAD && !CHECK_PUREVIRTUALS
1933
1934#define DECLARE_CLASS_INTRINSIC_NO_CTOR(TClass,TSuperClass,TStaticFlags,TPackage) \
1935 DECLARE_CLASS(TClass, TSuperClass, TStaticFlags | CLASS_Intrinsic, CASTCLASS_None, TPackage, NO_API) \
1936 static void StaticRegisterNatives##TClass() {} \
1937 DECLARE_SERIALIZER(TClass) \
1938 UE_DELETE_COPY_MOVE_CONSTRUCTORS(TClass) \
1939 DEFINE_DEFAULT_OBJECT_INITIALIZER_CONSTRUCTOR_CALL(TClass) \
1940 static void IntrinsicClassInit(UClass* Class); \
1941 static UObject* __VTableCtorCaller(FVTableHelper& Helper) \
1942 { \
1943 return new (EC_InternalUseOnlyConstructor, GetTransientPackageAsObject(), NAME_None, RF_NeedLoad | RF_ClassDefaultObject | RF_TagGarbageTemp) TClass(Helper); \
1944 }
1945
1946#define DECLARE_CLASS_INTRINSIC(TClass,TSuperClass,TStaticFlags,TPackage) \
1947 DECLARE_CLASS_INTRINSIC_API(TClass,TSuperClass,TStaticFlags,TPackage, NO_API)
1948
1949#define DECLARE_CLASS_INTRINSIC_API(TClass,TSuperClass,TStaticFlags,TPackage, TRequiredAPI) \
1950 DECLARE_CLASS(TClass,TSuperClass,TStaticFlags|CLASS_Intrinsic,CASTCLASS_None,TPackage,TRequiredAPI) \
1951 RELAY_CONSTRUCTOR(TClass, TSuperClass) \
1952 UE_DELETE_COPY_MOVE_CONSTRUCTORS(TClass) \
1953 \
1954 TClass(FVTableHelper& Helper) : Super(Helper) {}; \
1955 static void StaticRegisterNatives##TClass() {} \
1956 DECLARE_SERIALIZER(TClass) \
1957 DEFINE_DEFAULT_OBJECT_INITIALIZER_CONSTRUCTOR_CALL(TClass) \
1958 static void IntrinsicClassInit(UClass* Class); \
1959 static UObject* __VTableCtorCaller(FVTableHelper& Helper) \
1960 { \
1961 return new (EC_InternalUseOnlyConstructor, GetTransientPackageAsObject(), NAME_None, RF_NeedLoad | RF_ClassDefaultObject | RF_TagGarbageTemp) TClass(Helper); \
1962 }
1963
1964#define DECLARE_CASTED_CLASS_INTRINSIC_WITH_API_NO_CTOR( TClass, TSuperClass, TStaticFlags, TPackage, TStaticCastFlags, TRequiredAPI ) \
1965 DECLARE_CLASS(TClass, TSuperClass, TStaticFlags | CLASS_Intrinsic, TStaticCastFlags, TPackage, TRequiredAPI) \
1966 UE_DELETE_COPY_MOVE_CONSTRUCTORS(TClass) \
1967 static void StaticRegisterNatives##TClass() {} \
1968 DECLARE_SERIALIZER(TClass) \
1969 DEFINE_DEFAULT_OBJECT_INITIALIZER_CONSTRUCTOR_CALL(TClass) \
1970 static void IntrinsicClassInit(UClass* Class); \
1971 static UObject* __VTableCtorCaller(FVTableHelper& Helper) \
1972 { \
1973 return new (EC_InternalUseOnlyConstructor, GetTransientPackageAsObject(), NAME_None, RF_NeedLoad | RF_ClassDefaultObject | RF_TagGarbageTemp) TClass(Helper); \
1974 }
1975
1976#define DECLARE_CASTED_CLASS_INTRINSIC_WITH_API( TClass, TSuperClass, TStaticFlags, TPackage, TStaticCastFlags, TRequiredAPI ) \
1977 DECLARE_CLASS(TClass,TSuperClass,TStaticFlags|CLASS_Intrinsic,TStaticCastFlags,TPackage,TRequiredAPI ) \
1978 RELAY_CONSTRUCTOR(TClass, TSuperClass) \
1979 UE_DELETE_COPY_MOVE_CONSTRUCTORS(TClass) \
1980 \
1981 TClass(FVTableHelper& Helper) : Super(Helper) {}; \
1982 static void StaticRegisterNatives##TClass() {} \
1983 DECLARE_SERIALIZER(TClass) \
1984 DEFINE_DEFAULT_OBJECT_INITIALIZER_CONSTRUCTOR_CALL(TClass) \
1985 static void IntrinsicClassInit(UClass* Class); \
1986 static UObject* __VTableCtorCaller(FVTableHelper& Helper) \
1987 { \
1988 return new (EC_InternalUseOnlyConstructor, GetTransientPackageAsObject(), NAME_None, RF_NeedLoad | RF_ClassDefaultObject | RF_TagGarbageTemp) TClass(Helper); \
1989 }
1990
1991#define DECLARE_CASTED_CLASS_INTRINSIC_NO_CTOR_NO_VTABLE_CTOR( TClass, TSuperClass, TStaticFlags, TPackage, TStaticCastFlags, TRequiredAPI ) \
1992 DECLARE_CLASS(TClass,TSuperClass,TStaticFlags|CLASS_Intrinsic,TStaticCastFlags,TPackage, TRequiredAPI ) \
1993 UE_DELETE_COPY_MOVE_CONSTRUCTORS(TClass) \
1994 static void StaticRegisterNatives##TClass() {} \
1995 DECLARE_SERIALIZER(TClass) \
1996 DEFINE_DEFAULT_OBJECT_INITIALIZER_CONSTRUCTOR_CALL(TClass) \
1997 static void IntrinsicClassInit(UClass* Class); \
1998 static UObject* __VTableCtorCaller(FVTableHelper& Helper) \
1999 { \
2000 return new (EC_InternalUseOnlyConstructor, GetTransientPackageAsObject(), NAME_None, RF_NeedLoad | RF_ClassDefaultObject | RF_TagGarbageTemp) TClass(Helper); \
2001 }
2002
2003#define DECLARE_CASTED_CLASS_INTRINSIC_NO_CTOR( TClass, TSuperClass, TStaticFlags, TPackage, TStaticCastFlags, TRequiredAPI ) \
2004 DECLARE_CASTED_CLASS_INTRINSIC_NO_CTOR_NO_VTABLE_CTOR( TClass, TSuperClass, TStaticFlags, TPackage, TStaticCastFlags, TRequiredAPI ) \
2005 \
2006 TClass(FVTableHelper& Helper) : Super(Helper) {}; \
2007
2008
2009#define DECLARE_CASTED_CLASS_INTRINSIC( TClass, TSuperClass, TStaticFlags, TPackage, TStaticCastFlags ) \
2010 DECLARE_CASTED_CLASS_INTRINSIC_WITH_API( TClass, TSuperClass, TStaticFlags, TPackage, TStaticCastFlags, NO_API) \
2011
2012// Declare that objects of class being defined reside within objects of the specified class.
2013#define DECLARE_WITHIN_INTERNAL( TWithinClass, bCanUseOnCDO ) \
2014 \
2015 typedef class TWithinClass WithinClass; \
2016 TWithinClass* GetOuter##TWithinClass() const { return (ensure(bCanUseOnCDO || !HasAnyFlags(RF_ClassDefaultObject)) ? (TWithinClass*)GetOuter() : nullptr); }
2017
2018#define DECLARE_WITHIN( TWithinClass ) \
2019 DECLARE_WITHIN_INTERNAL( TWithinClass, false )
2020
2021#define DECLARE_WITHIN_UPACKAGE() \
2022 DECLARE_WITHIN_INTERNAL( UPackage, true )
2023
2024#define UOBJECT_CPPCLASS_STATICFUNCTIONS_ALLCONFIGS(TClass) \
2025 FUObjectCppClassStaticFunctions::AddReferencedObjectsType(&TClass::AddReferencedObjects)
2026 /* UObjectCppClassStaticFunctions: Extend this macro with the address of your new static function, if it applies to all configs. */
2027 /* Order must match the order in the FUObjectCppClassStaticFunctions constructor. */
2028
2029#if WITH_EDITORONLY_DATA
2030 #define UOBJECT_CPPCLASS_STATICFUNCTIONS_WITHEDITORONLYDATA(TClass) \
2031 , FUObjectCppClassStaticFunctions::DeclareCustomVersionsType(&TClass::DeclareCustomVersions) \
2032 , FUObjectCppClassStaticFunctions::AppendToClassSchemaType(&TClass::AppendToClassSchema) \
2033 , FUObjectCppClassStaticFunctions::DeclareConstructClassesType(&TClass::DeclareConstructClasses)
2034 /* UObjectCppClassStaticFunctions: Extend this macro with the address of your new static function, if it is editor-only. */
2035 /* Order must match the order in the FUObjectCppClassStaticFunctions constructor. */
2036
2037#else
2038 #define UOBJECT_CPPCLASS_STATICFUNCTIONS_WITHEDITORONLYDATA(TClass)
2039#endif
2040
2045#define UOBJECT_CPPCLASS_STATICFUNCTIONS_FORCLASS(TClass) \
2046 FUObjectCppClassStaticFunctions \
2047 ( \
2048 UOBJECT_CPPCLASS_STATICFUNCTIONS_ALLCONFIGS(TClass) \
2049 UOBJECT_CPPCLASS_STATICFUNCTIONS_WITHEDITORONLYDATA(TClass) \
2050 )
2051
2059{
2060public:
2062#if WITH_EDITORONLY_DATA
2066#endif
2067 // UObjectCppClassStaticFunctions: Extend this list of types with the type of your new static function.
2068
2069 // Take a null ptr of the class for template type deduction, then this class can be declared a friend of generated classes to access their member function pointers
2070 template<typename TClass>
2075
2081#endif
2082 )
2083 : AddReferencedObjects(InAddReferencedObjects)
2088#endif
2089 {
2090 // Null elements are not valid in this constructor
2092#if WITH_EDITORONLY_DATA
2096#endif
2097 // UObjectCppClassStaticFunctions: Extend the constructor with initializers for your new static function member.
2098 // Order must match the order in UOBJECT_CPPCLASS_STATICFUNCTIONS_FORCLASS.
2099 }
2100public:
2102 bool IsInitialized() const
2103 {
2104 // All methods that set the functions in this class guarantee that if any function is non-null, they all are.
2105 // So we only need to check the first one to know whether we are completely initialized.
2106 return AddReferencedObjects != nullptr;
2107 }
2108 void Reset()
2109 {
2111 }
2112
2113public:
2115 {
2116 return AddReferencedObjects;
2117 }
2119 {
2120 check(InAddReferencedObjects != nullptr); // It is not valid to clear single elements (see IsInitialized). Call Reset to clear all elements.
2121 AddReferencedObjects = InAddReferencedObjects;
2122 }
2123#if WITH_EDITORONLY_DATA
2125 {
2126 return DeclareCustomVersions;
2127 }
2129 {
2130 check(InDeclareCustomVersions != nullptr); // It is not valid to clear single elements (see IsInitialized). Call Reset to clear all elements.
2132 }
2134 {
2135 return AppendToClassSchema;
2136 }
2138 {
2139 check(InAppendToClassSchema != nullptr); // It is not valid to clear single elements (see IsInitialized). Call Reset to clear all elements.
2141 }
2143 {
2145 }
2147 {
2148 check(InDeclareConstructClasses != nullptr); // It is not valid to clear single elements (see IsInitialized). Call Reset to clear all elements.
2150 }
2151#endif
2152 // UObjectCppClassStaticFunctions: Extend the list of accessors for your new static function.
2153
2154private:
2155 AddReferencedObjectsType AddReferencedObjects = nullptr;
2156#if WITH_EDITORONLY_DATA
2160#endif
2161 // UObjectCppClassStaticFunctions: Extend this list of members with the member for your new static function.
2162
2163};
2164
2165// Implement the GetPrivateStaticClass and the registration info but do not auto register the class.
2166// This is no longer used by UnrealHeaderTool
2167#if !UE_WITH_CONSTINIT_UOBJECT
2168#define IMPLEMENT_CLASS_NO_AUTO_REGISTRATION(TClass) \
2169 FClassRegistrationInfo Z_Registration_Info_UClass_##TClass; \
2170 UClass* TClass::GetPrivateStaticClass() \
2171 { \
2172 if (!Z_Registration_Info_UClass_##TClass.InnerSingleton) \
2173 { \
2174 /* this could be handled with templates, but we want it external to avoid code bloat */ \
2175 GetPrivateStaticClassBody( \
2176 StaticPackage(), \
2177 (TCHAR*)TEXT(#TClass) + 1 + ((StaticClassFlags & CLASS_Deprecated) ? 11 : 0), \
2178 Z_Registration_Info_UClass_##TClass.InnerSingleton, \
2179 StaticRegisterNatives##TClass, \
2180 sizeof(TClass), \
2181 alignof(TClass), \
2182 TClass::StaticClassFlags, \
2183 TClass::StaticClassCastFlags(), \
2184 TClass::StaticConfigName(), \
2185 (UClass::ClassConstructorType)InternalConstructor<TClass>, \
2186 (UClass::ClassVTableHelperCtorCallerType)InternalVTableHelperCtorCaller<TClass>, \
2187 UOBJECT_CPPCLASS_STATICFUNCTIONS_FORCLASS(TClass), \
2188 &TClass::Super::StaticClass, \
2189 &TClass::WithinClass::StaticClass \
2190 ); \
2191 } \
2192 return Z_Registration_Info_UClass_##TClass.InnerSingleton; \
2193 }
2194#endif // !UE_WITH_CONSTINIT_UOBJECT
2195
2196// Register a class at startup time.
2197#if !UE_WITH_CONSTINIT_UOBJECT
2198#define IMPLEMENT_CLASS(TClass, TClassCrc) \
2199 IMPLEMENT_CLASS_NO_AUTO_REGISTRATION(TClass) \
2200 /* Do not change the AutoInitialize_ without changing LC_SymbolPatterns */ \
2201 static FRegisterCompiledInInfo AutoInitialize_##TClass(&Z_Construct_UClass_##TClass, TClass::StaticClass, TClass::StaticPackage(), TEXT(#TClass), Z_Registration_Info_UClass_##TClass, CONSTRUCT_RELOAD_VERSION_INFO(FClassReloadVersionInfo, sizeof(TClass), TClassCrc));
2202#endif // !UE_WITH_CONSTINIT_UCLASS
2203
2204#if UE_WITH_CONSTINIT_UOBJECT
2205#define IMPLEMENT_INTRINSIC_CLASS(TClass, TRequiredAPI, TSuperClass, TSuperRequiredAPI, TPackage, InitCode) \
2206 IMPLEMENT_INTRINSIC_CLASS_CONSTINIT(TClass, TRequiredAPI, TSuperClass, TSuperRequiredAPI, TPackage, InitCode)
2207// Used for intrinsics, this sets up the boiler plate, plus an initialization singleton, which can create properties and GC tokens
2208#else
2209#define IMPLEMENT_INTRINSIC_CLASS(TClass, TRequiredAPI, TSuperClass, TSuperRequiredAPI, TPackage, InitCode) \
2210 TRequiredAPI UClass* Z_Construct_UClass_##TClass(); \
2211 extern FClassRegistrationInfo Z_Registration_Info_UClass_##TClass; \
2212 struct Z_Construct_UClass_##TClass##_Statics \
2213 { \
2214 static UClass* Construct() \
2215 { \
2216 extern TSuperRequiredAPI UClass* Z_Construct_UClass_##TSuperClass(); \
2217 UClass* SuperClass = Z_Construct_UClass_##TSuperClass(); \
2218 UClass* Class = TClass::StaticClass(); \
2219 UObjectForceRegistration(Class); \
2220 check(Class->GetSuperClass() == SuperClass); \
2221 TClass::IntrinsicClassInit(Class); \
2222 Class->StaticLink(); \
2223 return Class; \
2224 } \
2225 }; \
2226 void TClass::IntrinsicClassInit(UClass* Class) \
2227 { \
2228 InitCode \
2229 } \
2230 UClass* Z_Construct_UClass_##TClass() \
2231 { \
2232 if (!Z_Registration_Info_UClass_##TClass.OuterSingleton) \
2233 { \
2234 Z_Registration_Info_UClass_##TClass.OuterSingleton = Z_Construct_UClass_##TClass##_Statics::Construct();\
2235 } \
2236 check(Z_Registration_Info_UClass_##TClass.OuterSingleton->GetClass()); \
2237 return Z_Registration_Info_UClass_##TClass.OuterSingleton; \
2238 } \
2239 IMPLEMENT_CLASS(TClass, 0)
2240
2241#endif
2242
2243#if UE_WITH_CONSTINIT_UOBJECT
2244// CONSTINIT_UOBJECT_TODO: Should intrinsic classes inherit class flags here rather than waiting until Link?
2245#define IMPLEMENT_INTRINSIC_CLASS_CONSTINIT(TClass, TRequiredAPI, TSuperClass, TSuperRequiredAPI, TPackage, InitCode) \
2246 static constinit FCppClassTypeInfoStatic Z_StaticCppClassTypeInfo_##TClass = { \
2247 TCppClassTypeTraits<TClass>::IsAbstract, \
2248 }; \
2249 constinit extern UPackage Z_ConstInit_UPackage__Script_##TPackage; \
2250 constinit extern TNoDestroy<UClass> Z_ConstInit_UClass_UClass; \
2251 constinit extern TNoDestroy<UClass> Z_ConstInit_UClass_##TSuperClass; \
2252 constinit TNoDestroy<UClass> Z_ConstInit_UClass_##TClass{NoDestroyConstEval, \
2253 UE::CodeGen::ConstInit::FObjectParams{ \
2254 .Flags = RF_Public|RF_Transient|RF_MarkAsNative|RF_MarkAsRootSet, \
2255 .Class = std::is_same_v<UClass, TClass> ? nullptr : &Z_ConstInit_UClass_UClass, \
2256 /* Trim the U/A prefix which is still a single byte in UTF8 */ \
2257 .NameUTF8 = &UTF8TEXT(UE_STRINGIZE(TClass))[1], \
2258 .Outer = &Z_ConstInit_UPackage__Script_##TPackage, \
2259 }, \
2260 UE::CodeGen::ConstInit::FUFieldParams{}, \
2261 UE::CodeGen::ConstInit::FStructParams{ \
2262 .Super = &Z_ConstInit_UClass_##TSuperClass, \
2263 .BaseChain = TIntrinsicClassBaseChain<TClass>::ToArrayView(), \
2264 .PropertiesSize = sizeof(TClass), \
2265 .MinAlignment = alignof(TClass), \
2266 }, \
2267 UE::CodeGen::ConstInit::FClassParams{ \
2268 .ConfigName = TClass::StaticConfigName(), \
2269 .ClassConstructor = InternalConstructor<TClass>, \
2270 .ClassVTableHelperCtorCaller = InternalVTableHelperCtorCaller<TClass>, \
2271 .CppClassStaticFunctions = UOBJECT_CPPCLASS_STATICFUNCTIONS_FORCLASS(TClass), \
2272 .ClassFlags = TClass::StaticClassFlags, \
2273 .ClassCastFlags = TClass::StaticAllClassCastFlags(), \
2274 .CppClassTypeInfo = &Z_StaticCppClassTypeInfo_##TClass, \
2275 .ClassWithin = UE::Private::GetConstInitClass<TClass::WithinClass>(), \
2276 }, \
2277 }; \
2278 struct Z_Construct_UClass_##TClass##_Statics { \
2279 static void Construct() \
2280 { \
2281 UClass* SuperClass = TSuperClass::StaticClass(); \
2282 UClass* Class = TClass::StaticClass(); \
2283 InitCode; \
2284 } \
2285 }; \
2286 static FRegisterCompiledInObjects Z_Register_UClass_##TClass{ &Z_ConstInit_UClass_##TClass, &Z_Construct_UClass_##TClass##_Statics::Construct }; \
2287 TRequiredAPI UClass* TClass::GetPrivateStaticClass() \
2288 { \
2289 return &Z_ConstInit_UClass_##TClass; \
2290 }
2291#endif // UE_WITH_CONSTINIT_UOBJECT
2292
2293#if UE_WITH_CONSTINIT_UOBJECT
2294#define IMPLEMENT_CORE_INTRINSIC_CLASS(TClass, TSuperClass, InitCode) \
2295 IMPLEMENT_INTRINSIC_CLASS_CONSTINIT(TClass, COREUOBJECT_API, TSuperClass, COREUOBJECT_API, CoreUObject, InitCode)
2296#else
2297#define IMPLEMENT_CORE_INTRINSIC_CLASS(TClass, TSuperClass, InitCode) \
2298 IMPLEMENT_INTRINSIC_CLASS(TClass, COREUOBJECT_API, TSuperClass, COREUOBJECT_API, CoreUObject, InitCode)
2299#endif
2300
2303
2305#define REN_None (0x0000)
2307#define REN_ForceNoResetLoaders (0x0001)
2309#define REN_Test (0x0002)
2311#define REN_DoNotDirty (0x0004)
2313#define REN_DontCreateRedirectors (0x0010)
2315#define REN_NonTransactional (0x0020)
2317#define REN_ForceGlobalUnique (0x0040)
2319#define REN_SkipGeneratedClasses (0x0080)
2321#define REN_SkipComponentRegWork (0x0100)
2323#define REN_AllowPackageLinkerMismatch (0x0200)
2324
2325/*-----------------------------------------------------------------------------
2326 Misc.
2327-----------------------------------------------------------------------------*/
2328
2330
2332{
2333 enum
2334 {
2336 Categories,
2337
2339 GameplayTagFilter,
2340 };
2341}
2342
2343/*-----------------------------------------------------------------------------
2344 UObject.
2345-----------------------------------------------------------------------------*/
2346
2347namespace UE
2348{
2352 enum ELoadConfigPropagationFlags
2353 {
2354 LCPF_None = 0x0,
2355
2360 LCPF_ReadParentSections = 0x1,
2361
2365 LCPF_PropagateToChildDefaultObjects = 0x2,
2366
2370 LCPF_PropagateToInstances = 0x4,
2371
2375 LCPF_ReloadingConfigData = 0x8,
2376
2380 LCPF_PersistentFlags = LCPF_ReloadingConfigData,
2381 };
2382}
2383
2384namespace UE4
2385{
2386 using ELoadConfigPropagationFlags UE_DEPRECATED(5.0, "Use UE namespace instead of UE4") = UE::ELoadConfigPropagationFlags;
2387
2388 UE_DEPRECATED(5.0, "Use UE namespace instead of UE4") inline constexpr UE::ELoadConfigPropagationFlags LCPF_None = UE::ELoadConfigPropagationFlags::LCPF_None;
2389 UE_DEPRECATED(5.0, "Use UE namespace instead of UE4") inline constexpr UE::ELoadConfigPropagationFlags LCPF_ReadParentSections = UE::ELoadConfigPropagationFlags::LCPF_ReadParentSections;
2390 UE_DEPRECATED(5.0, "Use UE namespace instead of UE4") inline constexpr UE::ELoadConfigPropagationFlags LCPF_PropagateToChildDefaultObjects = UE::ELoadConfigPropagationFlags::LCPF_PropagateToChildDefaultObjects;
2391 UE_DEPRECATED(5.0, "Use UE namespace instead of UE4") inline constexpr UE::ELoadConfigPropagationFlags LCPF_PropagateToInstances = UE::ELoadConfigPropagationFlags::LCPF_PropagateToInstances;
2392 UE_DEPRECATED(5.0, "Use UE namespace instead of UE4") inline constexpr UE::ELoadConfigPropagationFlags LCPF_ReloadingConfigData = UE::ELoadConfigPropagationFlags::LCPF_ReloadingConfigData;
2393 UE_DEPRECATED(5.0, "Use UE namespace instead of UE4") inline constexpr UE::ELoadConfigPropagationFlags LCPF_PersistentFlags = UE::ELoadConfigPropagationFlags::LCPF_PersistentFlags;
2394}
2395
2396
2402{
2403public:
2408 virtual void Restore() const=0;
2409};
2410
2411#ifndef VALIDATE_CLASS_REPS
2412#define VALIDATE_CLASS_REPS DO_CHECK
2413#endif
2414
2415#if VALIDATE_CLASS_REPS
2416#define DECLARE_VALIDATE_GENERATED_REP_ENUMS( API ) API virtual void ValidateGeneratedRepEnums(const TArray<struct FRepRecord>& ClassReps) const override;
2417#else
2418#define DECLARE_VALIDATE_GENERATED_REP_ENUMS( API )
2419#endif
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
#define WITH_EDITORONLY_DATA
Definition CoreMiscDefines.h:24
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
void EnsureRetrievingVTablePtrDuringCtor(const TCHAR *CtorSignature)
Definition CoreMisc.cpp:436
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
EClassCastFlags
Definition ObjectMacros.h:333
@ CASTCLASS_UFunction
Definition ObjectMacros.h:355
@ CASTCLASS_FArrayProperty
Definition ObjectMacros.h:357
@ CASTCLASS_FNumericProperty
Definition ObjectMacros.h:360
@ CASTCLASS_USkeletalMeshComponent
Definition ObjectMacros.h:378
@ CASTCLASS_FFloatProperty
Definition ObjectMacros.h:344
@ CASTCLASS_USceneComponent
Definition ObjectMacros.h:375
@ CASTCLASS_FIntProperty
Definition ObjectMacros.h:343
@ CASTCLASS_FBoolProperty
Definition ObjectMacros.h:353
@ CASTCLASS_FDelegateProperty
Definition ObjectMacros.h:359
@ CASTCLASS_FVerseStringProperty
Definition ObjectMacros.h:395
@ CASTCLASS_FLargeWorldCoordinatesRealProperty
Definition ObjectMacros.h:391
@ CASTCLASS_FFieldPathProperty
Definition ObjectMacros.h:388
@ CASTCLASS_FUInt64Property
Definition ObjectMacros.h:345
@ CASTCLASS_UPackage
Definition ObjectMacros.h:370
@ CASTCLASS_None
Definition ObjectMacros.h:334
@ CASTCLASS_FStrProperty
Definition ObjectMacros.h:350
@ CASTCLASS_FMulticastSparseDelegateProperty
Definition ObjectMacros.h:387
@ CASTCLASS_FInterfaceProperty
Definition ObjectMacros.h:348
@ CASTCLASS_UScriptStruct
Definition ObjectMacros.h:340
@ CASTCLASS_FNameProperty
Definition ObjectMacros.h:349
@ CASTCLASS_FMapProperty
Definition ObjectMacros.h:382
@ CASTCLASS_FVCellProperty
Definition ObjectMacros.h:398
@ CASTCLASS_FDoubleProperty
Definition ObjectMacros.h:368
@ CASTCLASS_UBlueprint
Definition ObjectMacros.h:379
@ CASTCLASS_FByteProperty
Definition ObjectMacros.h:342
@ CASTCLASS_FSetProperty
Definition ObjectMacros.h:383
@ CASTCLASS_FVRestValueProperty
Definition ObjectMacros.h:394
@ CASTCLASS_FClassProperty
Definition ObjectMacros.h:346
@ CASTCLASS_FSoftObjectProperty
Definition ObjectMacros.h:365
@ CASTCLASS_UClass
Definition ObjectMacros.h:341
@ CASTCLASS_FMulticastDelegateProperty
Definition ObjectMacros.h:361
@ CASTCLASS_FWeakObjectProperty
Definition ObjectMacros.h:363
@ CASTCLASS_UPrimitiveComponent
Definition ObjectMacros.h:376
@ CASTCLASS_FInt64Property
Definition ObjectMacros.h:358
@ CASTCLASS_ULevel
Definition ObjectMacros.h:371
@ CASTCLASS_FUInt16Property
Definition ObjectMacros.h:354
@ CASTCLASS_FInt8Property
Definition ObjectMacros.h:337
@ CASTCLASS_AActor
Definition ObjectMacros.h:372
@ CASTCLASS_APlayerController
Definition ObjectMacros.h:373
@ CASTCLASS_FAnsiStrProperty
Definition ObjectMacros.h:397
@ CASTCLASS_APawn
Definition ObjectMacros.h:374
@ CASTCLASS_FInt16Property
Definition ObjectMacros.h:367
@ CASTCLASS_UStruct
Definition ObjectMacros.h:339
@ CASTCLASS_FObjectProperty
Definition ObjectMacros.h:352
@ CASTCLASS_FOptionalProperty
Definition ObjectMacros.h:392
@ CASTCLASS_FVValueProperty
Definition ObjectMacros.h:393
@ CASTCLASS_FStructProperty
Definition ObjectMacros.h:356
@ CASTCLASS_FUtf8StrProperty
Definition ObjectMacros.h:396
@ CASTCLASS_FMulticastInlineDelegateProperty
Definition ObjectMacros.h:386
@ CASTCLASS_USkinnedMeshComponent
Definition ObjectMacros.h:377
@ CASTCLASS_FSoftClassProperty
Definition ObjectMacros.h:369
@ CASTCLASS_UDelegateFunction
Definition ObjectMacros.h:380
@ CASTCLASS_FObjectPropertyBase
Definition ObjectMacros.h:362
@ CASTCLASS_UField
Definition ObjectMacros.h:336
@ CASTCLASS_FProperty
Definition ObjectMacros.h:351
@ CASTCLASS_FEnumProperty
Definition ObjectMacros.h:384
@ CASTCLASS_USparseDelegateFunction
Definition ObjectMacros.h:385
@ CASTCLASS_FTextProperty
Definition ObjectMacros.h:366
@ CASTCLASS_UStaticMeshComponent
Definition ObjectMacros.h:381
@ CASTCLASS_FUInt32Property
Definition ObjectMacros.h:347
@ CASTCLASS_UEnum
Definition ObjectMacros.h:338
@ CASTCLASS_FLazyObjectProperty
Definition ObjectMacros.h:364
#define UOBJECT_CPPCLASS_STATICFUNCTIONS_FORCLASS(TClass)
Definition ObjectMacros.h:2045
EPropertyFlags
Definition ObjectMacros.h:416
@ CPF_BlueprintCallable
MC Delegates only. Property should be exposed for calling in blueprint code.
Definition ObjectMacros.h:463
@ CPF_RepSkip
Not replicated. For non replicated properties in replicated structs.
Definition ObjectMacros.h:450
@ CPF_ExperimentalNeverOverriden
****Experimental*** Property should never be overridden when using overridable serialization
Definition ObjectMacros.h:478
@ CPF_SkipSerialization
Property shouldn't be serialized, can still be exported to text.
Definition ObjectMacros.h:474
@ CPF_Transient
Property is transient: shouldn't be saved or loaded, except for Blueprint CDOs.
Definition ObjectMacros.h:432
@ CPF_AutoWeak
Only used for weak pointers, means the export type is autoweak.
Definition ObjectMacros.h:457
@ CPF_BlueprintAssignable
MC Delegates only. Property should be exposed for assigning in blueprint code.
Definition ObjectMacros.h:447
@ CPF_Net
Property is relevant to network replication.
Definition ObjectMacros.h:424
@ CPF_NativeAccessSpecifierProtected
Protected native access specifier.
Definition ObjectMacros.h:472
@ CPF_ExposeOnSpawn
Property is exposed on spawn.
Definition ObjectMacros.h:467
@ CPF_Parm
Function/When call parameter.
Definition ObjectMacros.h:426
@ CPF_AssetRegistrySearchable
asset instances will add properties with this flag to the asset registry automatically
Definition ObjectMacros.h:459
@ CPF_PersistentInstance
A object referenced by the property is duplicated like a component. (Each actor should have an own in...
Definition ObjectMacros.h:468
@ CPF_ExperimentalOverridableLogic
****Experimental*** Property will use different logic to serialize knowing what changes are done agai...
Definition ObjectMacros.h:476
@ CPF_Deprecated
Property is deprecated. Read it from an archive, but don't save it.
Definition ObjectMacros.h:448
@ CPF_ExportObject
Object can be exported with actor.
Definition ObjectMacros.h:422
@ CPF_ExperimentalExternalObjects
Property saves objects in separate files, breaks hard links and reload them based on discovery.
Definition ObjectMacros.h:439
@ CPF_BlueprintVisible
This property can be read by blueprint code.
Definition ObjectMacros.h:421
@ CPF_BlueprintReadOnly
This property cannot be modified by blueprint code.
Definition ObjectMacros.h:423
@ CPF_NoClear
Hide clear button.
Definition ObjectMacros.h:444
@ CPF_Config
Property should be loaded/saved as permanent profile.
Definition ObjectMacros.h:433
@ CPF_RequiredParm
Parameter must be linked explicitly in blueprint. Leaving the parameter out results in a compile erro...
Definition ObjectMacros.h:434
@ CPF_ContainsInstancedReference
Property contains component references.
Definition ObjectMacros.h:458
@ CPF_NativeAccessSpecifierPublic
Public native access specifier.
Definition ObjectMacros.h:471
@ CPF_RepNotify
Notify actors when a property is replicated.
Definition ObjectMacros.h:451
@ CPF_NonTransactional
Property isn't transacted.
Definition ObjectMacros.h:453
@ CPF_EditConst
Property is uneditable in the editor.
Definition ObjectMacros.h:436
@ CPF_ZeroConstructor
memset is fine for construction
Definition ObjectMacros.h:428
@ CPF_Protected
property is protected from the perspective of script
Definition ObjectMacros.h:462
@ CPF_NoDestructor
No destructor.
Definition ObjectMacros.h:455
@ CPF_InstancedReference
Property is a component references.
Definition ObjectMacros.h:438
@ CPF_Edit
Property is user-settable in the editor.
Definition ObjectMacros.h:419
@ CPF_UObjectWrapper
Property was parsed as a wrapper class like TSubclassOf<T>, FScriptInterface etc.,...
Definition ObjectMacros.h:469
@ CPF_Interp
interpolatable property for use with cinematics
Definition ObjectMacros.h:452
@ CPF_GlobalConfig
Load config from base class, not subclass.
Definition ObjectMacros.h:437
@ CPF_DisableEditOnTemplate
Disable editing of this property on an archetype/sub-blueprint.
Definition ObjectMacros.h:430
@ CPF_SaveGame
Property should be serialized for save games, this is only checked for game-specific archives with Ar...
Definition ObjectMacros.h:443
@ CPF_HasGetValueTypeHash
This property can generate a meaningful hash value.
Definition ObjectMacros.h:470
@ CPF_NativeAccessSpecifierPrivate
Private native access specifier.
Definition ObjectMacros.h:473
@ CPF_OutParm
Value is copied out after function call.
Definition ObjectMacros.h:427
@ CPF_ConstParm
This is a constant function parameter.
Definition ObjectMacros.h:420
@ CPF_NonPIEDuplicateTransient
Property should only be copied in PIE.
Definition ObjectMacros.h:466
@ CPF_IsPlainOldData
If this is set, then the property can be memcopied instead of CopyCompleteValue / CopySingleValue.
Definition ObjectMacros.h:449
@ CPF_NonNullable
Object property can never be null.
Definition ObjectMacros.h:431
@ CPF_BlueprintAuthorityOnly
MC Delegates only. This delegate accepts (only in blueprint) only events with BlueprintAuthorityOnly.
Definition ObjectMacros.h:464
@ CPF_AdvancedDisplay
The property is advanced and not visible by default in the editor details view.
Definition ObjectMacros.h:461
@ CPF_TObjectPtr
Property is a TObjectPtr<T> instead of a USomething*. Need to differentiate between TObjectclassOf an...
Definition ObjectMacros.h:475
@ CPF_ReferenceParm
Value is passed by reference; CPF_OutParam and CPF_Param should also be set.
Definition ObjectMacros.h:446
@ CPF_DuplicateTransient
Property should always be reset to the default value during any type of duplication (copy/paste,...
Definition ObjectMacros.h:440
@ CPF_EditorOnly
Property should only be loaded in the editor.
Definition ObjectMacros.h:454
@ CPF_TextExportTransient
Property shouldn't be exported to text format (e.g. copy/paste)
Definition ObjectMacros.h:465
@ CPF_Virtual
Property is defined on an interface and does not include a useful Offset_Internal.
Definition ObjectMacros.h:445
@ CPF_ExperimentalAlwaysOverriden
****Experimental*** Property should never inherit from the parent when using overridable serializatio...
Definition ObjectMacros.h:477
@ CPF_EditFixedSize
Indicates that elements of an array can be modified, but its size cannot be changed.
Definition ObjectMacros.h:425
@ CPF_None
Definition ObjectMacros.h:417
@ CPF_SimpleDisplay
The property is visible by default in the editor details view.
Definition ObjectMacros.h:460
@ CPF_AllowSelfReference
Enables the instancing graph self referencing logic, delegates and verse function are already using t...
Definition ObjectMacros.h:479
@ CPF_DisableEditOnInstance
Disable editing on an instance of this class.
Definition ObjectMacros.h:435
@ CPF_ReturnParm
Return value.
Definition ObjectMacros.h:429
ESaveFlags
Definition ObjectMacros.h:97
@ SAVE_FromAutosave
Used to indicate this save was initiated automatically.
Definition ObjectMacros.h:100
@ SAVE_CutdownPackage
Saving cutdown packages in a temp location WITHOUT renaming the package.
Definition ObjectMacros.h:105
@ SAVE_AllowTimeout
If present, if SavePackage is blocked by an asynchronous operation, it will quickly fail with ESavePa...
Definition ObjectMacros.h:116
@ SAVE_NoError
Don't generate errors on save.
Definition ObjectMacros.h:99
@ SAVE_Async
Save to a memory writer, then actually write to disk async.
Definition ObjectMacros.h:103
@ SAVE_RehydratePayloads
Any virtualized payloads in the package should be pulled and stored locally in the package file durin...
Definition ObjectMacros.h:117
@ SAVE_BulkDataByReference
When saving to a different file than the package's LoadedPath, point bulkdata in the new file to be l...
Definition ObjectMacros.h:112
@ SAVE_KeepEditorOnlyCookedPackages
Keep packages which are marked as editor only even though we are cooking.
Definition ObjectMacros.h:106
@ SAVE_Unversioned_Properties
Definition ObjectMacros.h:113
@ SAVE_Unversioned_Native
Save all versions as zero. Upon load this is changed to the current version. This is only reasonable ...
Definition ObjectMacros.h:104
@ SAVE_None
No flags.
Definition ObjectMacros.h:98
@ SAVE_Optional
Indicate that we to save optional exports. This flag is only valid while cooking. Optional exports ar...
Definition ObjectMacros.h:115
@ SAVE_CookSoftPackageReferences
Indicate that we want to save soft package references for cooked packages.
Definition ObjectMacros.h:118
@ SAVE_Concurrent
We are save packages in multiple threads at once and should not call non-threadsafe functions or rely...
Definition ObjectMacros.h:107
@ SAVE_KeepDirty
Do not clear the dirty flag when saving.
Definition ObjectMacros.h:101
@ SAVE_Unversioned
Definition ObjectMacros.h:119
EMapPropertyFlags
Definition ObjectMacros.h:525
uint64 ScriptPointerType
Definition ObjectMacros.h:22
uint32 ERenameFlags
Definition ObjectMacros.h:2302
EClassFlags
Definition ObjectMacros.h:199
@ CLASS_Constructed
Definition ObjectMacros.h:270
@ CLASS_Hidden
Definition ObjectMacros.h:260
@ CLASS_NeedsDeferredDependencyLoading
Definition ObjectMacros.h:241
@ CLASS_RequiredAPI
Definition ObjectMacros.h:250
@ CLASS_Transient
Definition ObjectMacros.h:209
@ CLASS_Deprecated
Definition ObjectMacros.h:262
@ CLASS_DefaultToInstanced
Definition ObjectMacros.h:253
@ CLASS_Intrinsic
Definition ObjectMacros.h:268
@ CLASS_Native
Definition ObjectMacros.h:217
@ CLASS_DefaultConfig
Definition ObjectMacros.h:205
@ CLASS_GlobalUserConfig
Definition ObjectMacros.h:266
@ CLASS_Abstract
Definition ObjectMacros.h:203
@ CLASS_ProjectUserConfig
Definition ObjectMacros.h:215
@ CLASS_PerPlatformConfig
Definition ObjectMacros.h:236
@ CLASS_ConfigDoNotCheckDefaults
Definition ObjectMacros.h:272
@ CLASS_NewerVersionExists
Definition ObjectMacros.h:274
@ CLASS_CompiledFromBlueprint
Definition ObjectMacros.h:244
@ CLASS_MatchedSerializers
Definition ObjectMacros.h:213
@ CLASS_HasInstancedReference
Definition ObjectMacros.h:258
@ CLASS_TokenStreamAssembled
Definition ObjectMacros.h:256
@ CLASS_EditInlineNew
Definition ObjectMacros.h:230
@ CLASS_Const
Definition ObjectMacros.h:238
@ CLASS_ReplicationDataIsSetUp
Definition ObjectMacros.h:227
@ CLASS_Interface
Definition ObjectMacros.h:234
@ CLASS_None
Definition ObjectMacros.h:201
@ CLASS_NotPlaceable
Definition ObjectMacros.h:222
@ CLASS_PerObjectConfig
Definition ObjectMacros.h:224
@ CLASS_HideDropDown
Definition ObjectMacros.h:264
@ CLASS_MinimalAPI
Definition ObjectMacros.h:247
@ CLASS_Config
Definition ObjectMacros.h:207
@ CLASS_Optional
Definition ObjectMacros.h:211
@ CLASS_CollapseCategories
Definition ObjectMacros.h:232
EStaticConstructor
Definition ObjectMacros.h:174
@ EC_StaticConstructor
Definition ObjectMacros.h:174
EPackageFlags
Definition ObjectMacros.h:129
@ PKG_DisallowExport
Editor should not export asset in this package.
Definition ObjectMacros.h:152
@ PKG_ForDiffing
This package was loaded just for the purposes of diffing.
Definition ObjectMacros.h:135
@ PKG_PlayInEditor
Set if the package was created for the purpose of PIE.
Definition ObjectMacros.h:150
@ PKG_IsSaving
Temporarily set on a package while it is being saved.
Definition ObjectMacros.h:145
@ PKG_CookGenerated
This package was generated by the cooker and does not exist in the WorkspaceDomain.
Definition ObjectMacros.h:157
@ PKG_ClientOptional
Purely optional for clients.
Definition ObjectMacros.h:132
@ PKG_ReloadingForCooker
This package is reloading in the cooker, try to avoid getting data we will never need....
Definition ObjectMacros.h:160
@ PKG_ContainsScript
Package is allowed to contain UClass objects.
Definition ObjectMacros.h:151
@ PKG_ServerSideOnly
Only needed on the server side.
Definition ObjectMacros.h:133
@ PKG_RuntimeGenerated
This package contains elements that are runtime generated, and may not follow standard loading order ...
Definition ObjectMacros.h:159
@ PKG_Compiling
package is currently being compiled
Definition ObjectMacros.h:146
@ PKG_UncookedOnly
Loaded only in uncooked builds (i.e. runtime in editor)
Definition ObjectMacros.h:138
@ PKG_None
No flags.
Definition ObjectMacros.h:130
@ PKG_RequiresLocalizationGather
Set if the package contains any data to be gathered by localization.
Definition ObjectMacros.h:148
@ PKG_EditorOnly
This is editor-only package (for example: editor module script package)
Definition ObjectMacros.h:136
@ PKG_LoadUncooked
This package must be loaded uncooked from IoStore/ZenStore (set only when cooking,...
Definition ObjectMacros.h:149
@ PKG_ContainsMap
Set if the package contains a ULevel/ UWorld object.
Definition ObjectMacros.h:147
@ PKG_ContainsMapData
Contains map data (UObjects only referenced by a single ULevel) but is stored in a different package.
Definition ObjectMacros.h:144
@ PKG_CompiledIn
This package is from "compiled in" classes.
Definition ObjectMacros.h:134
@ PKG_UnversionedProperties
Uses unversioned property serialization instead of versioned tagged property serialization.
Definition ObjectMacros.h:143
@ PKG_AccessSpecifierEpicInternal
Objects in this package can only be referenced in a different plugin or mount point by Epic.
Definition ObjectMacros.h:142
@ PKG_Developer
Developer module.
Definition ObjectMacros.h:137
@ PKG_NotExternallyReferenceable
Objects in this package cannot be referenced in a different plugin or mount point (i....
Definition ObjectMacros.h:141
@ PKG_FilterEditorOnly
Package has editor-only data filtered out.
Definition ObjectMacros.h:161
@ PKG_NewlyCreated
Newly created package, not saved yet. In editor only.
Definition ObjectMacros.h:131
@ PKG_ContainsNoAsset
Package doesn't contain any asset object (although asset tags can be present)
Definition ObjectMacros.h:140
@ PKG_Cooked
Package is cooked.
Definition ObjectMacros.h:139
@ PKG_DynamicImports
This package should resolve dynamic imports from its export at runtime.
Definition ObjectMacros.h:158
ECppProperty
Definition ObjectMacros.h:176
@ EC_CppProperty
Definition ObjectMacros.h:176
EArrayPropertyFlags
Definition ObjectMacros.h:514
constexpr EObjectFlags RF_InternalMirroredFlags
Definition ObjectMacros.h:607
EInternalObjectFlags
Definition ObjectMacros.h:631
@ AsyncLoadingPhase2
Object is being asynchronously loaded.
@ ReachabilityFlag1
One of the flags used by Garbage Collector to determine UObject's reachability state.
@ Async
Object exists only on a different thread than the game thread.
@ ClusterRoot
Root of a cluster.
@ Unreachable
Object is not reachable on the object graph.
@ ReachabilityFlag2
One of the flags used by Garbage Collector to determine UObject's reachability state.
@ ReachabilityFlag0
One of the flags used by Garbage Collector to determine UObject's reachability state.
@ ReachableInCluster
External reference to object in cluster exists.
@ PendingConstruction
Object didn't have its class constructor called yet (only the UObjectBase one to initialize its most ...
@ LoaderImport
Object is ready to be imported by another package during loading.
@ Garbage
Garbage from logical point of view and should not be referenced. This flag is mirrored in EObjectFlag...
@ Native
Native (UClass only).
@ RootSet
Object will not be garbage collected, even if unreferenced.
@ AsyncLoadingPhase1
Object is being asynchronously loaded.
constexpr EObjectFlags RF_InternalGarbage
Definition ObjectMacros.h:605
constexpr EObjectFlags RF_InternalPendingKill
Definition ObjectMacros.h:603
void(* FAsyncCompletionCallback)(UObject *LinkerRoot, void *CallbackUserData)
Definition ObjectMacros.h:2329
EObjectFlags
Definition ObjectMacros.h:552
@ RF_ImmutableDefaultObject
Hidden version of the class default object that cannot and will never be mutated.
Definition ObjectMacros.h:591
@ RF_MarkAsRootSet
Object will be marked as root set on construction and not be garbage collected, even if unreferenced ...
Definition ObjectMacros.h:568
@ RF_DuplicateTransient
Object should not be included in any type of duplication (copy/paste, binary duplication,...
Definition ObjectMacros.h:588
@ RF_NoFlags
No flags, used to avoid a cast.
Definition ObjectMacros.h:555
@ RF_ClassDefaultObject
This object is used as the default template for all instances of a class. One object is created for e...
Definition ObjectMacros.h:563
@ RF_HasExternalPackage
This object has an external package assigned and should look it up when getting the outermost package...
Definition ObjectMacros.h:593
@ RF_MirroredGarbage
Garbage from logical point of view and should not be referenced. This flag is mirrored in EInternalOb...
Definition ObjectMacros.h:598
@ RF_StrongRefOnFrame
References to this object from persistent function frame are handled as strong ones.
Definition ObjectMacros.h:589
@ RF_Public
Object is visible outside its package.
Definition ObjectMacros.h:559
@ RF_NeedInitialization
This object has not completed its initialization process. Cleared when ~FObjectInitializer completes.
Definition ObjectMacros.h:572
@ RF_NeedPostLoad
Object needs to be postloaded.
Definition ObjectMacros.h:575
@ RF_Transactional
Object is transactional.
Definition ObjectMacros.h:562
@ RF_MigratingAsset
Objects marked as MigratingAsset can be migrated to another server even if they've been loaded from d...
Definition ObjectMacros.h:594
@ RF_NewerVersionExists
Object has been consigned to oblivion due to its owner package being reloaded, and a newer version cu...
Definition ObjectMacros.h:577
@ UE_DEPRECATED
BulkData identifiers should be regenerated as they are loaded.
Definition ObjectMacros.h:80
@ RF_FinishDestroyed
FinishDestroy has been called on the object.
Definition ObjectMacros.h:579
@ RF_BeingRegenerated
Flagged on UObjects that are used to create UClasses (e.g. Blueprints) while they are regenerating th...
Definition ObjectMacros.h:582
@ RF_BeginDestroyed
BeginDestroy has been called on the object.
Definition ObjectMacros.h:578
@ RF_WillBeLoaded
This object was constructed during load and will be loaded shortly.
Definition ObjectMacros.h:592
@ RF_DefaultSubObject
Flagged on subobject templates that were created in a class constructor, and all instances created fr...
Definition ObjectMacros.h:583
@ RF_AllocatedInSharedPage
Allocated from a ref-counted page shared with other UObjects.
Definition ObjectMacros.h:599
@ RF_TextExportTransient
Do not export object to text form (e.g. copy/paste). Generally used for sub-objects that can be regen...
Definition ObjectMacros.h:585
@ RF_MarkAsNative
Object (UField) will be marked as native on construction (DO NOT USE THIS FLAG in HasAnyFlags() etc)
Definition ObjectMacros.h:561
@ RF_LoadCompleted
Object has been completely serialized by linkerload at least once. DO NOT USE THIS FLAG,...
Definition ObjectMacros.h:586
@ RF_NonPIEDuplicateTransient
Object should not be included for duplication unless it's being duplicated for a PIE session.
Definition ObjectMacros.h:590
@ RF_Standalone
Keep object around for editing even if unreferenced.
Definition ObjectMacros.h:560
@ RF_WasLoaded
Flagged on UObjects that were loaded.
Definition ObjectMacros.h:584
@ RF_Transient
Don't save object.
Definition ObjectMacros.h:565
@ RF_NeedPostLoadSubobjects
During load, indicates that the object still needs to instance subobjects and fixup serialized compon...
Definition ObjectMacros.h:576
@ RF_NeedLoad
During load, indicates object needs loading.
Definition ObjectMacros.h:573
@ RF_ArchetypeObject
This object can be used as a template for instancing objects. This is set on all types of object temp...
Definition ObjectMacros.h:564
@ RF_TagGarbageTemp
This is a temp user flag for various utilities that need to use the garbage collector....
Definition ObjectMacros.h:569
@ RF_InheritableComponentTemplate
Flagged on subobject templates stored inside a class instead of the class default object,...
Definition ObjectMacros.h:587
EEnumFlags
Definition ObjectMacros.h:690
@ NewerVersionExists
constexpr EObjectFlags RF_HasPlaceholderType
Definition ObjectMacros.h:609
COREUOBJECT_API const TCHAR * LexToString(EPropertyObjectReferenceType Type)
Definition Property.cpp:615
ELoadFlags
Definition ObjectMacros.h:68
@ LOAD_Async
Loads the package using async loading path/ reader.
Definition ObjectMacros.h:70
@ LOAD_EditorOnly
Load for editor-only purposes and by editor-only code.
Definition ObjectMacros.h:72
@ LOAD_Verify
Only verify existance; don't actually load.
Definition ObjectMacros.h:74
@ LOAD_ResolvingDeferredExports
Denotes that we should not defer export loading (as we're resolving them)
Definition ObjectMacros.h:73
@ LOAD_IsVerifying
Is verifying imports.
Definition ObjectMacros.h:78
@ LOAD_FindIfFail
Tries FindObject if a linker cannot be obtained (e.g. package is currently being compiled)
Definition ObjectMacros.h:84
@ LOAD_DisableDependencyPreloading
Bypass dependency preloading system.
Definition ObjectMacros.h:82
@ LOAD_DisableCompileOnLoad
Prevent this load call from running compile on load for the loaded blueprint (intentionally not recur...
Definition ObjectMacros.h:91
@ LOAD_DisableEngineVersionChecks
Prevent this load call from running engine version checks.
Definition ObjectMacros.h:92
@ LOAD_None
No flags.
Definition ObjectMacros.h:69
@ LOAD_NoVerify
Don't verify imports yet.
Definition ObjectMacros.h:77
@ LOAD_SkipLoadImportedPackages
Assume that all import packages are already loaded and don't call LoadPackage when creating imports.
Definition ObjectMacros.h:79
@ LOAD_Quiet
No log warnings.
Definition ObjectMacros.h:83
@ LOAD_NoRedirects
Never follow redirects when loading objects; redirected loads will fail.
Definition ObjectMacros.h:86
@ LOAD_NoWarn
Don't display warning if load fails.
Definition ObjectMacros.h:71
@ LOAD_MemoryReader
Loads the file into memory and serializes from there.
Definition ObjectMacros.h:85
@ LOAD_ForDiff
Loading for diffing in the editor.
Definition ObjectMacros.h:87
@ LOAD_DeferDependencyLoads
Do not load external (blueprint) dependencies (instead, track them for deferred loading)
Definition ObjectMacros.h:89
@ LOAD_PackageForPIE
This package is being loaded for PIE, it must be flagged as such immediately.
Definition ObjectMacros.h:88
@ LOAD_ForFileDiff
Load the package (not for diffing in the editor), instead verify at the two packages serialized outpu...
Definition ObjectMacros.h:90
EPropertyObjectReferenceType
Definition ObjectMacros.h:533
EInternal
Definition ObjectMacros.h:175
@ EC_InternalUseOnlyConstructor
Definition ObjectMacros.h:175
if(Failed) console_printf("Failed.\n")
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition UObjectGlobals.h:1292
Definition UnrealType.h:3087
Definition UnrealType.h:174
Definition UObjectGlobals.h:2492
Definition ObjectMacros.h:2402
virtual void Restore() const =0
virtual ~FRestoreForUObjectOverwrite()
Definition ObjectMacros.h:2405
Definition ObjectMacros.h:180
FVTableHelper()
Definition ObjectMacros.h:183
Definition Array.h:670
Definition Class.h:3793
Definition Object.h:95
Definition ObjectMacros.h:2332
Definition ObjectMacros.h:791
@ AdvancedClassDisplay
All the properties of the class are hidden in the main display by default, and are only shown in the ...
Definition ObjectMacros.h:904
@ SparseClassDataType
Some properties are stored once per class in a sidecar structure and not on instances of the class.
Definition ObjectMacros.h:916
@ prioritizeCategories
Specifies category display order, unspecified will follow default display order.
Definition ObjectMacros.h:901
@ perObjectConfig
Handle object configuration on a per-object basis, rather than per-class.
Definition ObjectMacros.h:862
@ notplaceable
This class cannot be placed in the editor (it cancels out an inherited placeable flag).
Definition ObjectMacros.h:835
@ customConstructor
Prevents automatic generation of the constructor declaration.
Definition ObjectMacros.h:818
@ hideCategories
Hides the specified categories in a property viewer. Usage: hideCategories=CategoryName or hideCatego...
Definition ObjectMacros.h:883
@ showCategories
Shows the specified categories in a property viewer. Usage: showCategories=CategoryName or showCatego...
Definition ObjectMacros.h:881
@ Experimental
Marks this class as 'experimental' (a totally unsupported and undocumented prototype)
Definition ObjectMacros.h:910
@ dontCollapseCategories
Display properties in the editor using categories (default behaviour).
Definition ObjectMacros.h:899
@ autoCollapseCategories
Specifies which categories should be automatically collapsed in a property viewer.
Definition ObjectMacros.h:893
@ Blueprintable
Exposes this class as an acceptable base class for creating blueprints. The default is NotBlueprintab...
Definition ObjectMacros.h:808
@ NotBlueprintable
Specifies that this class is NOT an acceptable base class for creating blueprints....
Definition ObjectMacros.h:811
@ Intrinsic
Definition ObjectMacros.h:825
@ nonTransient
This class should be saved normally (it cancels out an inherited transient flag).
Definition ObjectMacros.h:853
@ Const
All properties and functions in this class are const and should be exported as const....
Definition ObjectMacros.h:841
@ NotBlueprintType
Prevents this class from being used for variables in blueprints. This is inherited by subclasses unle...
Definition ObjectMacros.h:805
@ classGroup
This keyword is used to set the actor group that the class is show in, in the editor.
Definition ObjectMacros.h:796
@ config
Definition ObjectMacros.h:860
@ DefaultToInstanced
All instances of this class are considered "instanced". Instanced classes (components) are duplicated...
Definition ObjectMacros.h:838
@ Within
Declares that instances of this class should always have an outer of the specified class....
Definition ObjectMacros.h:799
@ EditorConfig
Mark the editor config file to load from if loading into this object.
Definition ObjectMacros.h:870
@ collapseCategories
Display properties in the editor without using categories.
Definition ObjectMacros.h:897
@ placeable
Allow users to create and place this class in the editor. This flag is inherited by subclasses.
Definition ObjectMacros.h:832
@ defaultconfig
Save object config only to Default INIs, never to local INIs.
Definition ObjectMacros.h:867
@ ConversionRoot
A root convert limits a sub-class to only be able to convert to child classes of the first root class...
Definition ObjectMacros.h:907
@ dontAutoCollapseCategories
Clears the list of auto collapse categories.
Definition ObjectMacros.h:895
@ noexport
Definition ObjectMacros.h:829
@ configdonotcheckdefaults
Determine whether on serialize to configs a check should be done on the base/defaults ini's.
Definition ObjectMacros.h:864
@ CustomThunkTemplates
Specifies the struct that contains the CustomThunk implementations.
Definition ObjectMacros.h:919
@ hidedropdown
Class not shown in editor drop down for class selection.
Definition ObjectMacros.h:878
@ EarlyAccessPreview
Marks this class as an 'early access' preview (while not considered production-ready,...
Definition ObjectMacros.h:913
@ Optional
This class is optional and might not be available in certain context. reference from non optional dat...
Definition ObjectMacros.h:856
@ CustomFieldNotify
Prevents automatic generation of the FieldNotify declaration.
Definition ObjectMacros.h:821
@ Abstract
Class is abstract and can't be instantiated directly.
Definition ObjectMacros.h:844
@ hideFunctions
Hides the specified function in a property viewer. Usage: hideFunctions=FunctionName or hideFunctions...
Definition ObjectMacros.h:889
@ MinimalAPI
Definition ObjectMacros.h:815
@ editinlinenew
Definition ObjectMacros.h:874
@ showFunctions
Shows the specified function in a property viewer. Usage: showFunctions=FunctionName or showFunctions...
Definition ObjectMacros.h:887
@ deprecated
This class is deprecated and objects of this class won't be saved when serializing....
Definition ObjectMacros.h:847
@ Transient
This class can't be saved; null it out at save time. This flag is inherited by subclasses.
Definition ObjectMacros.h:850
@ autoExpandCategories
Specifies which categories should be automatically expanded in a property viewer.
Definition ObjectMacros.h:891
@ BlueprintType
Exposes this class as a type that can be used for variables in blueprints. This is inherited by subcl...
Definition ObjectMacros.h:802
@ noteditinlinenew
Class can't be constructed from editinline New button.
Definition ObjectMacros.h:876
@ ComponentWrapperClass
Indicates that this class is a wrapper class for a component with little intrinsic functionality (thi...
Definition ObjectMacros.h:885
Definition ObjectMacros.h:2385
Definition AdvancedWidgetsModule.cpp:13
Definition ObjectMacros.h:944
@ BlueprintCallable
This function can be called from blueprint code and should be exposed to the user of blueprint editin...
Definition ObjectMacros.h:987
@ Category
Definition ObjectMacros.h:1012
@ Exec
This function is executable from the command line.
Definition ObjectMacros.h:962
@ BlueprintSetter
This function is used as the set accessor for a blueprint exposed property. Implies BlueprintCallable...
Definition ObjectMacros.h:993
@ Client
Definition ObjectMacros.h:970
@ WithValidation
This function must supply a _Validate implementation.
Definition ObjectMacros.h:1018
@ Reliable
Definition ObjectMacros.h:977
@ Unreliable
Definition ObjectMacros.h:981
@ BlueprintNativeEvent
Definition ObjectMacros.h:955
@ IgnoreTypePromotion
[FunctionMetadata] Indicates that the function should be ignored when considered for blueprint type p...
Definition ObjectMacros.h:1040
@ Variadic
Definition ObjectMacros.h:1028
@ BlueprintInternalUseOnly
Indicates that a Blueprint exposed function should not be exposed to the end user.
Definition ObjectMacros.h:1002
@ ForceAsFunction
Definition ObjectMacros.h:1037
@ BlueprintPure
This function will not have visible exec pins by default. Implies BlueprintCallable.
Definition ObjectMacros.h:984
@ CustomThunk
The UnrealHeaderTool code generator will not produce a execFoo thunk for this function; it is up to t...
Definition ObjectMacros.h:1008
@ ServiceRequest
This function is RPC service request.
Definition ObjectMacros.h:1021
@ BlueprintAuthorityOnly
This function will not execute from blueprint code if running on something without network authority.
Definition ObjectMacros.h:996
@ BlueprintGetter
This function is used as the get accessor for a blueprint exposed property. Implies BlueprintPure and...
Definition ObjectMacros.h:990
@ SealedEvent
Definition ObjectMacros.h:959
@ NetMulticast
This function is both executed locally on the server and replicated to all clients,...
Definition ObjectMacros.h:973
@ CallInEditor
This function can be called in the editor on selected instances via a button in the details panel.
Definition ObjectMacros.h:1005
@ ServiceResponse
This function is RPC service response.
Definition ObjectMacros.h:1024
@ InternalUseParam
[FunctionMetadata] Indicates that a particular function parameter is for internal use only,...
Definition ObjectMacros.h:1034
@ BlueprintCosmetic
This function is cosmetic and will not run on dedicated servers.
Definition ObjectMacros.h:999
@ Server
Definition ObjectMacros.h:966
@ BlueprintImplementableEvent
Definition ObjectMacros.h:950
@ ReturnDisplayName
[FunctionMetadata] Indicates the display name of the return value pin
Definition ObjectMacros.h:1031
@ FieldNotify
Generate a field entry for the NotifyFieldValueChanged interface.
Definition ObjectMacros.h:1015
Definition ObjectMacros.h:924
@ ConversionRoot
Sets IsConversionRoot metadata flag for this interface.
Definition ObjectMacros.h:939
@ Blueprintable
Specifies that this interface can be directly implemented by blueprints, this is implied if the inter...
Definition ObjectMacros.h:933
@ NotBlueprintable
Specifies that this interface cannot be implemented by blueprints, equivalent to CannotImplementInter...
Definition ObjectMacros.h:936
@ MinimalAPI
Definition ObjectMacros.h:930
Definition ObjectMacros.h:1201
@ Bitflags
[InterfaceMetadata] Metadata that identifies an enum as a set of explicitly-named bitflags.
Definition ObjectMacros.h:1766
@ ArrayParam
[FunctionMetadata] [InterfaceMetadata] Metadata that flags TArray function parameters that will have ...
Definition ObjectMacros.h:1775
@ LatentInfo
[FunctionMetadata] For Latent BlueprintCallable functions indicates which parameter is the LatentInfo...
Definition ObjectMacros.h:1715
@ ScriptMethodMutable
[FunctionMetadata] Used with ScriptMethod to denote that the first argument of the function should be...
Definition ObjectMacros.h:1677
@ AutoCreateRefTerm
Definition ObjectMacros.h:1619
@ HidePinAssetPicker
[FunctionMetadata] Forcibly hide the asset picker for pins matching any parameter names in this piece...
Definition ObjectMacros.h:1624
@ BlueprintInternalUseOnly
[FunctionMetadata] This function is an internal implementation detail, used to implement another func...
Definition ObjectMacros.h:1627
@ CompactNodeTitle
[FunctionMetadata] Indicates that a BlueprintCallable function should display in the compact display ...
Definition ObjectMacros.h:1639
@ CustomStructureParam
[FunctionMetadata] Used with CustomThunk to declare that a parameter is actually polymorphic
Definition ObjectMacros.h:1642
@ AdvancedDisplay
Definition ObjectMacros.h:1609
@ DefaultToSelf
[FunctionMetadata] For BlueprintCallable functions indicates that the object property named's default...
Definition ObjectMacros.h:1645
@ UseEnumValuesAsMaskValuesInEditor
[InterfaceMetadata] Metadata that signals to the editor that enum values correspond to mask values in...
Definition ObjectMacros.h:1769
@ Latent
[FunctionMetadata] Indicates that a BlueprintCallable function is Latent
Definition ObjectMacros.h:1712
@ MapParam
[FunctionMetadata] [InterfaceMetadata] Metadata that flags TMap function parameters that will have th...
Definition ObjectMacros.h:1751
@ MaterialParameterCollectionFunction
[FunctionMetadata] For BlueprintCallable functions indicates that the material override node should b...
Definition ObjectMacros.h:1718
@ AnimBlueprintFunction
[InterfaceMetadata] Stub function used internally by animation blueprints
Definition ObjectMacros.h:1772
@ ScriptConstant
Definition ObjectMacros.h:1697
@ ScriptConstantHost
[FunctionMetadata] Used with ScriptConstant to override the host type for a constant....
Definition ObjectMacros.h:1700
@ ExpandEnumAsExecs
[ClassMetadata] [FunctionMetadata] Used in conjunction with DeprecatedNode or DeprecatedFunction to c...
Definition ObjectMacros.h:1655
@ BitmaskEnum
[FunctionMetadata] [InterfaceMetadata] Metadata that associates a bitmask property with a bitflag enu...
Definition ObjectMacros.h:1763
@ Bitmask
[FunctionMetadata] [InterfaceMetadata] Metadata that identifies an integral property as a bitmask.
Definition ObjectMacros.h:1760
@ CallableWithoutWorldContext
[FunctionMetadata] Used for BlueprintCallable functions that have a WorldContext pin to indicate that...
Definition ObjectMacros.h:1633
@ HideSpawnParms
[FunctionMetadata] For some functions used by async task nodes, specify this parameter should be skip...
Definition ObjectMacros.h:1706
@ BlueprintProtected
[FunctionMetadata] This function is only accessible from within its class and derived classes.
Definition ObjectMacros.h:1630
@ CommutativeAssociativeBinaryOperator
[FunctionMetadata] Indicates that a BlueprintCallable function should use the Commutative Associative...
Definition ObjectMacros.h:1636
@ DataTablePin
[FunctionMetadata][InterfaceMetadata] Metadata to identify an DataTable Pin. Depending on which DataT...
Definition ObjectMacros.h:1745
@ Keywords
[FunctionMetadata] For BlueprintCallable functions provides additional keywords to be associated with...
Definition ObjectMacros.h:1709
@ UnsafeDuringActorConstruction
[FunctionMetadata] Used by BlueprintCallable functions to indicate that this function is not to be al...
Definition ObjectMacros.h:1727
@ DeterminesOutputType
[FunctionMetadata] [InterfaceMetadata] Metadata that flags function params that govern what type of o...
Definition ObjectMacros.h:1739
@ NotBlueprintThreadSafe
Definition ObjectMacros.h:1736
@ NativeMakeFunc
[FunctionMetadata] For BlueprintCallable functions indicates that the function should be displayed th...
Definition ObjectMacros.h:1724
@ ScriptOperator
Definition ObjectMacros.h:1692
@ HidePin
[FunctionMetadata] For BlueprintCallable functions indicates that the parameter pin should be hidden ...
Definition ObjectMacros.h:1703
@ ArrayParm
[FunctionMetadata] Indicates that a BlueprintCallable function should use a Call Array Function node ...
Definition ObjectMacros.h:1612
@ BlueprintAutocast
[FunctionMetadata] Used only by static BlueprintPure functions from BlueprintLibrary....
Definition ObjectMacros.h:1733
@ DeprecatedFunction
[FunctionMetadata] This function is deprecated, any blueprint references to it cause a compilation wa...
Definition ObjectMacros.h:1648
@ MapValueParam
[FunctionMetadata][InterfaceMetadata] Metadata that flags TMap function parameter that will have thei...
Definition ObjectMacros.h:1757
@ DynamicOutputParam
[FunctionMetadata] [InterfaceMetadata] Metadata that flags the function output param that will be con...
Definition ObjectMacros.h:1742
@ NativeBreakFunc
[FunctionMetadata] For BlueprintCallable functions indicates that the function should be displayed th...
Definition ObjectMacros.h:1721
@ ScriptMethod
[ClassMetadata] [PropertyMetadata] [FunctionMetadata] The name to display for this class,...
Definition ObjectMacros.h:1671
@ UE_DEPRECATED
Definition ObjectMacros.h:1621
@ ArrayTypeDependentParams
[FunctionMetadata] Used when ArrayParm has been specified to indicate other function parameters that ...
Definition ObjectMacros.h:1615
@ ExpandBoolAsExecs
Definition ObjectMacros.h:1658
@ WorldContext
[FunctionMetadata] Used by BlueprintCallable functions to indicate which parameter is used to determi...
Definition ObjectMacros.h:1730
@ SetParam
[FunctionMetadata][InterfaceMetadata] Metadata that flags TSet parameters that will have their type d...
Definition ObjectMacros.h:1748
@ ScriptMethodSelfReturn
[FunctionMetadata] Used with ScriptMethod to denote that the return value of the function should over...
Definition ObjectMacros.h:1674
@ MapKeyParam
[FunctionMetadata] [InterfaceMetadata] Metadata that flags TMap function parameters that will have th...
Definition ObjectMacros.h:1754
@ NoElementDuplicate
[PropertyMetadata] Used for array properties. Indicates that the duplicate icon should not be shown f...
Definition ObjectMacros.h:1458
@ GetAssetFilter
Definition ObjectMacros.h:1548
@ SliderExponent
[PropertyMetadata] Used by numeric properties. Indicates how rapidly the value will grow when moving ...
Definition ObjectMacros.h:1491
@ NoSpinbox
[PropertyMetadata] Used for integer and float properties. Indicates that the spin box element of the ...
Definition ObjectMacros.h:1467
@ AllowPreserveRatio
[PropertyMetadata] Used for FVector properties. It causes a ratio lock to be added when displaying th...
Definition ObjectMacros.h:1306
@ ForceRebuildProperty
[PropertyMetaData] Force the specified sibling Editor PropertyNode to refresh itself when this proper...
Definition ObjectMacros.h:1394
@ AllowPrivateAccess
[PropertyMetadata] Indicates that a private member marked as BluperintReadOnly or BlueprintReadWrite ...
Definition ObjectMacros.h:1309
@ ConfigHierarchyEditable
[PropertyMetadata] Property is serialized to config and we should be able to set it anywhere along th...
Definition ObjectMacros.h:1330
@ ShowTreeView
[PropertyMetadata] Used for Subclass and SoftClass properties. Shows the picker as a tree view instea...
Definition ObjectMacros.h:1488
@ MetaClass
[PropertyMetadata] Used FSoftClassPath properties. Indicates the parent class that the class picker w...
Definition ObjectMacros.h:1437
@ GetDisallowedClasses
Definition ObjectMacros.h:1566
@ DisallowedClasses
[PropertyMetadata] Used for FSoftObjectPath, ActorComponentReference and UClass properties....
Definition ObjectMacros.h:1354
@ BlueprintBaseOnly
[PropertyMetadata] Used for Subclass and SoftClass properties. Indicates whether the class picker sho...
Definition ObjectMacros.h:1318
@ TitleProperty
[PropertyMetadata] Used by arrays of structs. Indicates a single property inside of the struct that s...
Definition ObjectMacros.h:1494
@ ForceUnits
[PropertyMetadata] Used instead of 'Units' metadata to forcibly show a property in a fixed unit,...
Definition ObjectMacros.h:1508
@ HideViewOptions
[PropertyMetadata] Used for Subclass and SoftClass properties. Specifies to hide the ability to chang...
Definition ObjectMacros.h:1409
@ RelativeToGameContentDir
[PropertyMetadata] Used by FDirectoryPath properties. Indicates that the directory dialog will output...
Definition ObjectMacros.h:1476
@ HideInDetailPanel
[PropertyMetadata] Indicates that the property should be hidden in the details panel....
Definition ObjectMacros.h:1406
@ ValidEnumValues
[PropertyMetadata] Used for enum properties to define the subset of valid values as a comma-separated...
Definition ObjectMacros.h:1533
@ DisplayAfter
[PropertyMetadata] Indicates that the property should be displayed immediately after the property nam...
Definition ObjectMacros.h:1357
@ GetRestrictedEnumValues
Definition ObjectMacros.h:1542
@ Delta
[PropertyMetadata] Used for float and integer properties. Specifies the step size when the slider is ...
Definition ObjectMacros.h:1336
@ BlueprintCompilerGeneratedDefaults
[PropertyMetadata] Property defaults are generated by the Blueprint compiler and will not be copied w...
Definition ObjectMacros.h:1321
@ AllowEditInlineCustomization
[PropertyMetadata] Used for edit inline UObject* properties, enables detail class customization for i...
Definition ObjectMacros.h:1569
@ OnlyPlaceable
[PropertyMetadata] Used for Subclass properties. Indicates whether only placeable classes should be s...
Definition ObjectMacros.h:1470
@ DevelopmentOnly
[PropertyMetadata] For functions that should be compiled in development mode only.
Definition ObjectMacros.h:1514
@ RelativeToGameDir
[PropertyMetadata] Used by FFilePath properties. Indicates that the FilePicker dialog will output a p...
Definition ObjectMacros.h:1388
@ LatentCallbackTarget
[PropertyMetadata] (Internal use only) Used for the latent action manager to track where it's re-entr...
Definition ObjectMacros.h:1520
@ FixedIncrement
[PropertyMetadata] Deprecated.
Definition ObjectMacros.h:1391
@ GetOptions
Definition ObjectMacros.h:1527
@ ForceShowPluginContent
[PropertyMetadata] Used by asset properties. Indicates that the asset pickers should always show plug...
Definition ObjectMacros.h:1400
@ LinearDeltaSensitivity
Definition ObjectMacros.h:1422
@ ContentDir
[PropertyMetadata] Used by FDirectoryPath properties. Indicates that the path will be picked using th...
Definition ObjectMacros.h:1333
@ ClampMin
[PropertyMetadata] Used for float and integer properties. Specifies the minimum value that may be ent...
Definition ObjectMacros.h:1324
@ GetAllowedClasses
Definition ObjectMacros.h:1560
@ ExposeFunctionCategories
[PropertyMetadata] Specifies a list of categories whose functions should be exposed when building a f...
Definition ObjectMacros.h:1379
@ DisallowedAssetDataTags
[ClassMetadata] [PropertyMetadata] [FunctionMetadata] Used in conjunction with DeprecatedNode,...
Definition ObjectMacros.h:1351
@ ForceShowEngineContent
[PropertyMetadata] Used by asset properties. Indicates that the asset pickers should always show engi...
Definition ObjectMacros.h:1397
@ ShowOnlyInnerProperties
[PropertyMetadata] Used by struct properties. Indicates that the inner properties will not be shown i...
Definition ObjectMacros.h:1485
@ ObjectMustImplement
[PropertyMetadata] Used for object properties. Indicates the selected object must be of a class which...
Definition ObjectMacros.h:1443
@ HideAlphaChannel
[PropertyMetadata] Used for FColor and FLinearColor properties. Indicates that the Alpha property sho...
Definition ObjectMacros.h:1403
@ ExactClass
[PropertyMetadata] Used for FSoftObjectPath properties in conjunction with AllowedClasses....
Definition ObjectMacros.h:1376
@ PasswordField
[PropertyMetadata] Used for FString and FText properties. Indicates that the edit field is a secret f...
Definition ObjectMacros.h:1455
@ UIMax
[PropertyMetadata] Used for float and integer properties. Specifies the highest that the value slider...
Definition ObjectMacros.h:1500
@ InlineEditConditionToggle
[PropertyMetadata] Signifies that the bool property is only displayed inline as an edit condition tog...
Definition ObjectMacros.h:1415
@ MakeStructureDefaultValue
[PropertyMetadata] For properties in a structure indicates the default value of the property in a blu...
Definition ObjectMacros.h:1434
@ RequiredAssetDataTags
[PropertyMetadata] Used by asset properties. Filters out asset that do not have matching data registr...
Definition ObjectMacros.h:1479
@ FilePathFilter
[PropertyMetadata] Used by FFilePath properties. Indicates the path filter to display in the file pic...
Definition ObjectMacros.h:1385
@ Units
Definition ObjectMacros.h:1505
@ AllowAbstract
[PropertyMetadata] Used for Subclass and SoftClass properties. Indicates whether abstract class types...
Definition ObjectMacros.h:1297
@ GetClassFilter
Definition ObjectMacros.h:1554
@ MultiLine
[PropertyMetadata] Used for FString and FText properties. Indicates that the edit field should be mul...
Definition ObjectMacros.h:1452
@ EditCondition
[PropertyMetadata] Specifies a boolean property that is used to indicate whether editing of this prop...
Definition ObjectMacros.h:1367
@ MakeEditWidget
[PropertyMetadata] Used for Transform/Rotator properties (also works on arrays of them)....
Definition ObjectMacros.h:1431
@ MustImplement
[PropertyMetadata] Used for Subclass and SoftClass properties. Indicates the selected class must impl...
Definition ObjectMacros.h:1440
@ DisplayPriority
Definition ObjectMacros.h:1361
@ PinHiddenByDefault
[PropertyMetadata] The property can be exposed as a data pin, but is hidden by default.
Definition ObjectMacros.h:1530
@ DeprecatedProperty
[PropertyMetadata] This property is deprecated, any blueprint references to it cause a compilation wa...
Definition ObjectMacros.h:1339
@ NoResetToDefault
[PropertyMetadata] Property wont have a 'reset to default' button when displayed in property windows
Definition ObjectMacros.h:1461
@ ExposeOnSpawn
[PropertyMetadata] Specifies whether the property should be exposed on a Spawn Actor for the class ty...
Definition ObjectMacros.h:1382
@ NeedsLatentFixup
[PropertyMetadata] (Internal use only) Used for the latent action manager to fix up a latent action w...
Definition ObjectMacros.h:1517
@ InvalidEnumValues
[PropertyMetadata] Used for enum properties to define the subset of invalid values as a comma-separat...
Definition ObjectMacros.h:1536
@ ClampMax
[PropertyMetadata] Used for float and integer properties. Specifies the maximum value that may be ent...
Definition ObjectMacros.h:1327
@ AllowAnyActor
[PropertyMetadata] Used for ComponentReference properties. Indicates whether other actor that are not...
Definition ObjectMacros.h:1300
@ ArrayClamp
[PropertyMetadata] Used for integer properties. Clamps the valid values that can be entered in the UI...
Definition ObjectMacros.h:1312
@ LongPackageName
[ClassMetadata] [PropertyMetadata] Used by TObjectPtr properties. Allows the referenced object to be ...
Definition ObjectMacros.h:1428
@ Multiple
[PropertyMetadata] Used for numeric properties. Stipulates that the value must be a multiple of the m...
Definition ObjectMacros.h:1446
@ IgnoreForMemberInitializationTest
[PropertyMetadata] Used for bypassing property initialization tests when the property cannot be safel...
Definition ObjectMacros.h:1412
@ RelativePath
[PropertyMetadata] Used by FDirectoryPath properties. Indicates that the directory dialog will output...
Definition ObjectMacros.h:1473
@ NoEditInline
[PropertyMetadata] Object properties pointing to an UObject instance whos class is marked editinline ...
Definition ObjectMacros.h:1464
@ DisplayThumbnail
[PropertyMetadata] Indicates that the property is an asset type and it should display the thumbnail o...
Definition ObjectMacros.h:1364
@ MaxLength
[PropertyMetadata] Used for FString and FText properties. Indicates the maximum length of the value t...
Definition ObjectMacros.h:1449
@ EditFixedOrder
[PropertyMetadata] Keeps the elements of an array from being reordered by dragging
Definition ObjectMacros.h:1373
@ ScriptNoExport
[PropertyMetadata] [FunctionMetadata] Flag set on a property or function to prevent it being exported...
Definition ObjectMacros.h:1482
@ AssetBundles
[PropertyMetadata] Used for SoftObjectPtr/SoftObjectPath properties. Comma separated list of Bundle n...
Definition ObjectMacros.h:1315
@ AllowedClasses
[PropertyMetadata] Used for FSoftObjectPath, ComponentReference and UClass properties....
Definition ObjectMacros.h:1303
@ Untracked
[PropertyMetadata] Used for SoftObjectPtr/SoftObjectPath properties to specify a reference should not...
Definition ObjectMacros.h:1511
@ EditConditionHides
[PropertyMetadata] Specifies a boolean property that is used to indicate whether this property should...
Definition ObjectMacros.h:1370
@ UIMin
[PropertyMetadata] Used for float and integer properties. Specifies the lowest that the value slider ...
Definition ObjectMacros.h:1497
@ CannotImplementInterfaceInBlueprint
[InterfaceMetadata] This interface cannot be implemented by a blueprint (e.g., it has only non-expose...
Definition ObjectMacros.h:1782
@ CannotGenerateMessageNodes
Definition ObjectMacros.h:1795
@ ProhibitedInterfaces
[ClassMetadata] Specifies interfaces that are not compatible with the class.
Definition ObjectMacros.h:1255
@ DebugTreeLeaf
[ClassMetadata] Used for objects with hundreds of nested properties like animation data to stop the e...
Definition ObjectMacros.h:1228
@ DontUseGenericSpawnObject
Definition ObjectMacros.h:1265
@ LoadBehavior
[ClassMetadata] [PropertyMetadata] Used by TObjectPtr properties. Specifies that references to object...
Definition ObjectMacros.h:1252
@ DeprecationMessage
[ClassMetadata] [PropertyMetadata] [FunctionMetadata] Used in conjunction with DeprecatedNode,...
Definition ObjectMacros.h:1237
@ ExposedAsyncProxy
Definition ObjectMacros.h:1268
@ BlueprintThreadSafe
Definition ObjectMacros.h:1271
@ DisplayName
[ClassMetadata] [PropertyMetadata] [FunctionMetadata] The name to display for this class,...
Definition ObjectMacros.h:1240
@ BlueprintSpawnableComponent
[ClassMetadata] Used for Actor Component classes. If present indicates that it can be spawned by a Bl...
Definition ObjectMacros.h:1219
@ ChildCanTick
[ClassMetadata] Used for Actor and Component classes. If the native class cannot tick,...
Definition ObjectMacros.h:1222
@ RestrictedToClasses
[ClassMetadata] Used by BlueprintFunctionLibrary classes to restrict the graphs the functions in the ...
Definition ObjectMacros.h:1258
@ DeprecatedNode
[ClassMetadata] For BehaviorTree nodes indicates that the class is deprecated and will display a warn...
Definition ObjectMacros.h:1234
@ ChildCannotTick
[ClassMetadata] Used for Actor and Component classes. If the native class cannot tick,...
Definition ObjectMacros.h:1225
@ ScriptName
[ClassMetadata] [PropertyMetadata] [FunctionMetadata] The name to use for this class,...
Definition ObjectMacros.h:1243
@ UsesHierarchy
[ClassMetadata] Indicates the class uses hierarchical data. Used to instantiate hierarchical editing ...
Definition ObjectMacros.h:1274
@ ShowWorldContextPin
Definition ObjectMacros.h:1262
@ IgnoreCategoryKeywordsInSubclasses
[ClassMetadata] Used to make the first subclass of a class ignore all inherited showCategories and hi...
Definition ObjectMacros.h:1231
@ IsBlueprintBase
[ClassMetadata] Specifies that this class is an acceptable base class for creating blueprints.
Definition ObjectMacros.h:1246
@ KismetHideOverrides
[ClassMetadata] Comma delimited list of blueprint events that are not be allowed to be overridden in ...
Definition ObjectMacros.h:1249
@ HasNativeMake
[StructMetadata] Indicates that the struct has a custom make node (and what the path to the Blueprint...
Definition ObjectMacros.h:1284
@ HiddenByDefault
[StructMetadata] Pins in Make and Break nodes are hidden by default.
Definition ObjectMacros.h:1287
@ HasNativeBreak
[StructMetadata] Indicates that the struct has a custom break node (and what the path to the Blueprin...
Definition ObjectMacros.h:1281
@ DisableSplitPin
[StructMetadata] Indicates that node pins of this struct type cannot be split
Definition ObjectMacros.h:1290
@ RequiredInput
[PropertyMetadata] Used for FMaterialExpression properties in MaterialExpression classes....
Definition ObjectMacros.h:1600
@ OverridingInputProperty
[PropertyMetadata] Used for float properties in MaterialExpression classes. If the specified FMateria...
Definition ObjectMacros.h:1597
@ NeverAsPin
[PropertyMetadata] The property is not exposed as a data pin and is only be editable in the details p...
Definition ObjectMacros.h:1580
@ PinShownByDefault
[PropertyMetadata] The property can be exposed as a data pin and is visible by default....
Definition ObjectMacros.h:1583
@ AlwaysAsPin
[PropertyMetadata] The property is always exposed as a data pin. Applicable only to properties that w...
Definition ObjectMacros.h:1586
@ CustomizeProperty
[PropertyMetadata] Indicates that the property has custom code to display and should not generate a s...
Definition ObjectMacros.h:1589
@ ShortTooltip
A short tooltip that is used in some contexts where the full tooltip might be overwhelming (such as t...
Definition ObjectMacros.h:1209
@ ToolTip
Overrides the automatically generated tooltip from the class comment.
Definition ObjectMacros.h:1206
@ DocumentationPolicy
A setting to determine validation of tooltips and comments. Needs to be set to "Strict".
Definition ObjectMacros.h:1212
Definition ObjectMacros.h:1045
@ SaveGame
Definition ObjectMacros.h:1152
@ AdvancedDisplay
Properties are in the advanced dropdown in a details panel.
Definition ObjectMacros.h:1113
@ Interp
Interpolatable property for use with cinematics. Always user-settable in the editor.
Definition ObjectMacros.h:1095
@ Replicated
Property is relevant to network replication.
Definition ObjectMacros.h:1086
@ NonTransactional
Property isn't transacted.
Definition ObjectMacros.h:1098
@ AssetRegistrySearchable
Definition ObjectMacros.h:1148
@ BlueprintSetter
This property has an accessor to set the value. Implies BlueprintReadWrite. (usage: BlueprintSetter=F...
Definition ObjectMacros.h:1143
@ BlueprintReadOnly
This property can be read by blueprints, but not modified.
Definition ObjectMacros.h:1134
@ VisibleAnywhere
Indicates that this property is visible in property windows, but cannot be edited at all.
Definition ObjectMacros.h:1125
@ BlueprintGetter
This property has an accessor to return the value. Implies BlueprintReadOnly if BlueprintSetter or Bl...
Definition ObjectMacros.h:1137
@ Transient
Property is transient: shouldn't be saved, zero-filled at load time.
Definition ObjectMacros.h:1062
@ Export
Object property can be exported with it's owner.
Definition ObjectMacros.h:1077
@ FieldNotify
Generate a field entry for the NotifyFieldValueChanged interface.
Definition ObjectMacros.h:1170
@ BlueprintAuthorityOnly
MC Delegates only. This delegate accepts (only in blueprint) only events with BlueprintAuthorityOnly.
Definition ObjectMacros.h:1158
@ NonPIETransient
Property should always be reset to the default value unless it's being duplicated for a PIE session -...
Definition ObjectMacros.h:1068
@ Instanced
Property is a component reference. Implies EditInline and Export.
Definition ObjectMacros.h:1101
@ BlueprintReadWrite
This property can be read or written from a blueprint.
Definition ObjectMacros.h:1140
@ GlobalConfig
Same as above but load config from base class, not subclass.
Definition ObjectMacros.h:1056
@ Category
Specifies the category of the property. Usage: Category=CategoryName.
Definition ObjectMacros.h:1107
@ EditAnywhere
Indicates that this property can be edited by property windows in the editor.
Definition ObjectMacros.h:1116
@ DuplicateTransient
Property should always be reset to the default value during any type of duplication (copy/paste,...
Definition ObjectMacros.h:1065
@ SimpleDisplay
Properties appear visible by default in a details panel.
Definition ObjectMacros.h:1110
@ TextExportTransient
Property shouldn't be exported to text format (e.g. copy/paste)
Definition ObjectMacros.h:1161
@ NoClear
Hide clear button in the editor.
Definition ObjectMacros.h:1080
@ NonPIEDuplicateTransient
Property should always be reset to the default value unless it's being duplicated for a PIE session.
Definition ObjectMacros.h:1071
@ EditInstanceOnly
Indicates that this property can be edited by property windows, but only on instances,...
Definition ObjectMacros.h:1119
@ EditFixedSize
Indicates that elements of an array can be modified, but its size cannot be changed.
Definition ObjectMacros.h:1083
@ Config
Property should be loaded/saved to ini file as permanent profile.
Definition ObjectMacros.h:1053
@ SkipSerialization
Property shouldn't be serialized, can still be exported to text.
Definition ObjectMacros.h:1164
@ Const
This property is const and should be exported as const.
Definition ObjectMacros.h:1050
@ NotReplicated
Skip replication (only for struct members and parameters in service request functions).
Definition ObjectMacros.h:1092
@ BlueprintCallable
MC Delegates only. Property should be exposed for calling in blueprint code.
Definition ObjectMacros.h:1155
@ ReplicatedUsing
Property is relevant to network replication. Notify actors when a property is replicated (usage: Repl...
Definition ObjectMacros.h:1089
@ HideSelfPin
If true, the self pin should not be shown or connectable regardless of purity, const,...
Definition ObjectMacros.h:1167
@ Ref
Value is copied out after function call. Only valid on function param declaration.
Definition ObjectMacros.h:1074
@ VisibleDefaultsOnly
Indicates that this property is only visible in property windows for archetypes, and cannot be edited...
Definition ObjectMacros.h:1131
@ VisibleInstanceOnly
Indicates that this property is only visible in property windows for instances, not for archetypes,...
Definition ObjectMacros.h:1128
@ Localized
Property should be loaded as localizable text. Implies ReadOnly.
Definition ObjectMacros.h:1059
@ EditDefaultsOnly
Indicates that this property can be edited by property windows, but only on archetypes.
Definition ObjectMacros.h:1122
@ BlueprintAssignable
MC Delegates only. Property should be exposed for assigning in blueprints.
Definition ObjectMacros.h:1104
Definition ObjectMacros.h:1175
@ NoExport
No autogenerated code will be created for this class; the header is only provided to parse metadata f...
Definition ObjectMacros.h:1180
@ Immutable
Immutable is only legal in Object.h and is being phased out, do not use on new structs!
Definition ObjectMacros.h:1186
@ BlueprintType
Exposes this struct as a type that can be used for variables in blueprints.
Definition ObjectMacros.h:1189
@ Atomic
Indicates that this struct should always be serialized as a single unit.
Definition ObjectMacros.h:1183
@ BlueprintInternalUseOnly
Indicates that a BlueprintType struct should not be exposed to the end user.
Definition ObjectMacros.h:1192
@ BlueprintInternalUseOnlyHierarchical
Indicates that a BlueprintType struct and its derived structs should not be exposed to the end user.
Definition ObjectMacros.h:1195
Definition UObjectBase.h:498
Definition Stack.h:114
Definition ObjectMacros.h:723
COREUOBJECT_API FReferencerInformationList()
Definition ReferencerInformation.cpp:16
TArray< FReferencerInformation > InternalReferences
Definition ObjectMacros.h:724
TArray< FReferencerInformation > ExternalReferences
Definition ObjectMacros.h:725
Definition ObjectMacros.h:708
int32 TotalReferences
Definition ObjectMacros.h:713
UObject * Referencer
Definition ObjectMacros.h:710
TArray< const FProperty * > ReferencingProperties
Definition ObjectMacros.h:716
Definition TopLevelAssetPath.h:38
Definition ObjectMacros.h:2059
AddReferencedObjectsType GetAddReferencedObjects() const
Definition ObjectMacros.h:2114
bool IsInitialized() const
Definition ObjectMacros.h:2102
void(* AddReferencedObjectsType)(UObject *ThisObject, FReferenceCollector &Ar)
Definition ObjectMacros.h:2061
constexpr FUObjectCppClassStaticFunctions(AddReferencedObjectsType InAddReferencedObjects)
Definition ObjectMacros.h:2076
void Reset()
Definition ObjectMacros.h:2108
consteval FUObjectCppClassStaticFunctions(TClass *Null)
Definition ObjectMacros.h:2071
void SetAddReferencedObjects(AddReferencedObjectsType InAddReferencedObjects)
Definition ObjectMacros.h:2118