Choose your operating system:
Windows
macOS
Linux
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.
To add Metadata Specifiers, use the word
meta
, followed by a list of the specifiers and, if appropriate, their values, to your
UCLASS
,
UENUM
,
UINTERFACE
,
USTRUCT
,
UFUNCTION
, or
UPROPERTY
macro, as follows:
{UCLASS/UENUM/UINTERFACE/USTRUCT/UFUNCTION/UPROPERTY}(SpecifierX, meta=(MetaTag1="Value1", MetaTag2, ..), SpecifierY)
To add Metadata Specifiers to a specific value within an enumerated type, add the
UMETA
tag to the value itself before the separating comma (if one exists). It should look like:
UENUM()
enum class EMyEnum : uint8
{
// DefaultValue Tooltip
DefaultValue = 0 UMETA(MetaTag1="Value1", MetaTag2, ..),
// ValueWithoutMetaSpecifiers Tooltip
ValueWithoutMetaSpecifiers,
// ValueWithMetaSpecifiers Tooltip
ValueWithMetaSpecifiers UMETA((MetaTag1="Value1", MetaTag2, ..),
// FinalValue Tooltip
FinalValue (MetaTag1="Value1", MetaTag2, ..)
};
Class Metadata Specifiers
Classes can use the following Metatag Specifiers:
Class Meta Tag |
Effect |
---|---|
|
If present, the component Class can be spawned by a Blueprint. |
|
Only valid on Blueprint function libraries. This specifier marks the functions in this class as callable on non-game threads in animation Blueprints. |
|
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
|
|
Used for Actor and Component classes. If the native class cannot tick, Blueprint-generated classes based this Actor or Component can have the
|
|
For behavior tree nodes, indicates that the class is deprecated and will display a warning when compiled. |
|
Deprecated classes with this metadata will include this text with the standard deprecation warning that Blueprint Scripts generate during compilation. |
|
The name of this node in a Blueprint Script will be replaced with the value provided here, instead of the code-generated name. |
|
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. |
|
Expose a proxy Object of this class in Async Task nodes. |
|
Used to make the first subclass of a class ignore all inherited
|
|
States that this class is (or is not) an acceptable base class for creating Blueprints, similar to the
|
|
List of Blueprint events that are not allowed to be overridden. |
|
Lists Interfaces that are not compatible with the class. |
|
Blueprint function library classes can use this to restrict usage to the classes named in the list. |
|
A short tooltip that is used in some contexts where the full tooltip might be overwhelming, such as the Parent Class Picker dialog. |
|
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. |
|
Indicates the class uses hierarchical data. Used to instantiate hierarchical editing features in Details panels. |
|
Overrides the automatically generated tooltip from code comments. |
Enum Metadata Specifiers
Enumerated types can use the following Metadata Specifiers:
Enumerated Type Meta Tag |
Effect |
---|---|
|
Indicates that this enumerated type can be used as flags by integer
|
|
Labels this type as experimental and unsupported. |
|
The quoted string will be used as the name of this enumerated type in the editor, rather than the default name generated by Unreal Header Tool. |
|
Overrides the automatically generated tooltip from code comments. |
Individual values within an enumerated type have their own Metadata Specifiers. These differ slightly from other Metadata Specifiers in that they use top-level keyword
UMETA
, and are specified after the value they modify, rather than before.
Enumerated Value UMeta Tag |
Effect |
---|---|
|
This value's name will be the text provided here, rather than the code-generated name. |
|
This value will not appear in the Editor. |
|
Overrides the automatically generated tooltip from code comments. |
Interface Metadata Specifiers
Interfaces can use the following Metatag Specifier:
Ensure that Blueprint events are only allowed in implementable interfaces. Internal only functions allowed Ensure that if this interface contains Blueprint callable functions that are not Blueprint defined, that it must be implemented natively
Interface Meta Tag |
Effect |
---|---|
|
This interface may not contain
|
Struct Metadata Specifiers
Structs can use the following Metatag Specifiers:
Struct Meta Tag |
Effect |
---|---|
|
Indicates that this struct has a custom Break Struct node. The module, class, and function name must be provided. |
|
Indicates that this struct has a custom Make Struct node. The module, class, and function name must be provided. |
|
Pins in Make Struct and Break Struct nodes are hidden by default. |
|
A short tooltip that is used in some contexts where the full tooltip might be overwhelming, such as the Parent Class Picker dialog. |
|
Overrides the automatically generated tooltip from code comments. |
Function Metadata Specifiers
Function Meta Tag |
Effect |
---|---|
|
The comma-separated list of parameters will show up as advanced pins (requiring UI expansion). |
|
Replace
|
|
Indicates that a
|
|
When
|
|
The listed parameters, although passed by reference, will have an automatically created default if their pins are left disconnected. This is a convenience feature for Blueprints, often used on array pins. |
|
Used only by static
|
|
This function is an internal implementation detail, used to implement another function or node. It is never directly exposed in a Blueprint graph. |
|
This function can only be called on the owning Object in a Blueprint. It cannot be called on another instance. |
|
Used for
|
|
Indicates that a
|
|
Indicates that a
|
|
The listed parameters are all treated as wildcards. This specifier requires the
To declare a custom
|
|
For
|
|
Any Blueprint references to this function will cause compilation warnings telling the user that the function is deprecated. You can add to the deprecation warning message (for example, to provide instructions on replacing the deprecated function) using the
|
|
If the function is deprecated, this message will be added to the standard deprecation warning when trying to compile a Blueprint that uses it. |
|
The return type of the function will dynamically change to match the input that is connected to the named parameter pin. The parameter should be a templated type like
|
|
Functions marked as
|
|
The name of this node in a Blueprint will be replaced with the value provided here, instead of the code-generated name. |
|
For
|
|
For
|
|
Hides the "self" pin, which indicates the object on which the function is being called. The "self" pin is automatically hidden on
|
|
Similar to
|
|
Specifies a set of keywords that can be used when searching for this function, such as when placing a node to call the function in a Blueprint Graph. |
|
Indicates a latent action. Latent actions have one parameter of type
|
|
For Latent
|
|
For
|
|
For
|
|
Only valid in Blueprint function libraries. This function will be treated as an exception to the owning Class's general
|
|
A short tooltip that is used in some contexts where the full tooltip might be overwhelming, such as the Parent Class Picker dialog. |
|
Overrides the automatically generated tooltip from code comments. |
|
This function is not safe to call during Actor construction. |
|
Used by
|
Property Metadata Specifiers
Property Meta Tag |
Effect |
---|---|
|
Used for
|
|
Used for
|
|
Used for
|
|
Used for integer properties. Clamps the valid values that can be entered in the UI to be between 0 and the length of the array property named. |
|
Used for
|
|
Used for
|
|
Property defaults are generated by the Blueprint compiler and will not be copied when the
|
|
Used for float and integer properties. Specifies the minimum value
|
|
Used for float and integer properties. Specifies the maximum value
|
|
This property is serialized to a config (
|
|
Used by
|
|
This property will show up in the Blueprint Editor immediately after the property named
|
|
The name to display for this property, instead of the code-generated name. |
|
If two properties feature the same
|
|
Indicates that the property is an Asset type and it should display the thumbnail of the selected Asset. |
|
Names a boolean property that is used to indicate whether editing of this property is disabled. Putting "!" before the property name inverts the test. The EditCondition meta tag is no longer limited to a single boolean property. It is now evaluated using a full-fledged expression parser, meaning you can include a full C++ expression. |
|
Keeps the elements of an array from being reordered by dragging. |
|
Used for
|
|
Specifies a list of categories whose functions should be exposed when building a function list in the Blueprint Editor. |
|
Specifies whether the property should be exposed on a Spawn Actor node for this Class type. |
|
Used by
|
|
Makes the "Get" Blueprint Node for this property return a const reference to the property instead of a copy of its value. Only usable with Sparse Class Data, and only when
|
|
Used for
|
|
Used for
|
|
Signifies that the boolean property is only displayed inline as an edit condition toggle in other properties, and should not be shown on its own row. |
|
Used by
|
|
Used for Transform or Rotator properties, or Arrays of Transforms or Rotators. Indicates that the property should be exposed in the viewport as a movable widget. |
|
Causes Blueprint generation not to generate a "get" Node for this property. Only usable with Sparse Class Data. |