You can add Struct Specifiers to the struct definition to control how it behaves with various aspects of the Engine and Editor.
Struct Specifier | Effect |
---|---|
Atomic |
Indicates that this struct should always be serialized as a single unit. No autogenerated code will be created for this class; the header is only provided to parse metadata from. |
BlueprintType |
Exposes this struct as a type that can be used for variables in Blueprints. |
Immutable |
Immutable is only legal in Object.h and is being phased out, do not use on new structs!. |
NoExport |
No autogenerated code will be created for this class; the header is only provided for parsing metadata. |
Metadata Specifiers
When declaring classes, interfaces, structs, enums, enum values, functions, or properties, you can add Metadata Specifiers to control how they interact with various aspects of the engine and editor. Each type of data structure or member has its own list of Metadata Specifiers.
Metadata only exists in the editor; do not write game logic that accesses metadata.
Classes can use the following Metatag Specifiers:
| Class Meta Tag | Effect | | --- | --- | |BlueprintSpawnableComponent
| If present, the component Class can be spawned by a Blueprint. |
| BlueprintThreadSafe
| Only valid on Blueprint function libraries. This specifier marks the functions in this class as callable on non-game threads in animation Blueprints. |
| ChildCannotTick
| Used for Actor and Component classes. If the native class cannot tick, Blueprint-generated classes based this Actor or Component can never tick, even if bCanBlueprintsTickByDefault
is true. |
| ChildCanTick
| Used for Actor and Component classes. If the native class cannot tick, Blueprint-generated classes based this Actor or Component can have the bCanEverTick
flag overridden, even if bCanBlueprintsTickByDefault
is false. |
| DeprecatedNode
| For behavior tree nodes, indicates that the class is deprecated and will display a warning when compiled. |
| DeprecationMessage="Message Text"
| Deprecated classes with this metadata will include this text with the standard deprecation warning that Blueprint Scripts generate during compilation. |
| DisplayName="Blueprint Node Name"
| The name of this node in a Blueprint Script will be replaced with the value provided here, instead of the code-generated name. |
| DontUseGenericSpawnObject
| Do not spawn an Object of the class using Generic Create Object node in Blueprint Scripts; this specifier applies only to Blueprint-type classes that are neither Actors nor Actor Components. |
| ExposedAsyncProxy
| Expose a proxy Object of this class in Async Task nodes. |
| IgnoreCategoryKeywordsInSubclasses
| Used to make the first subclass of a class ignore all inherited ShowCategories
and HideCategories
Specifiers. |
| IsBlueprintBase="true/false"
| States that this class is (or is not) an acceptable base class for creating Blueprints, similar to the Blueprintable
or 'NotBlueprintable` Specifiers. |
KismetHideOverrides="Event1, Event2, .." |
List of Blueprint events that are not allowed to be overridden. |
ProhibitedInterfaces="Interface1, Interface2, .." |
Lists Interfaces that are not compatible with the class. |
RestrictedToClasses="Class1, Class2, .." |
Blueprint function library classes can use this to restrict usage to the classes named in the list. |
ShortToolTip="Short tooltip" |
A short tooltip that is used in some contexts where the full tooltip might be overwhelming, such as the Parent Class Picker dialog. |
ShowWorldContextPin |
Indicates that Blueprint nodes placed in graphs owned by this class must show their World context pins, even if they are normally hidden, because Objects of this class cannot be used as World context. |
UsesHierarchy |
Indicates the class uses hierarchical data. Used to instantiate hierarchical editing features in Details panels. |
ToolTip="Hand-written tooltip" |
Overrides the automatically generated tooltip from code comments. |