Note: This page is still a work in progress. There are a lot of meta specifiers still to document!
Unreal's Enum Specifiers page lists all of the core specifiers and many of the metadata specifiers, but it is not an exhaustive list.
This page attempts to be an exhaustive list of all the UENUM
specifiers,
giving explanations, sample code, screenshots and related links for each.
If you know of any not listed here, or see any mistakes, feel free to contact me.
Special thanks to Erekose Craft, Ben Fox, Aquanox, ATankNoMore for finding meta properties, giving feedback and giving great examples of usage.
The YAML files used to generate this documentation are available on GitHub. Feel free to submit pull requests or submit any incorrect or missing information there.
General Points
- Tags are case insensitive, but I would recommend sticking to the case example here for readability.
- Quotation marks are optional if the values does not have spaces. e.g.
someBool=true
is treated the same assomeBool="true"
. Again, for readability I would recommend using quotation marks only around string-type properties.
UENUM
General
UENUM(
Category
)
Position:
Main
Type:
flag
UENUM(meta=(
Bitflags
))
Position:
Meta
Type:
flag
Indicates that this enumerated type can be used as flags by integer
UPROPERTY
variables that are set up with theBitmask
Metadata Specifier.
UENUM(meta=(
UseEnumValuesAsMaskValuesInEditor
=true))
Position:
Meta
Type:
bool
UENUM(meta=(
Experimental
))
Position:
Meta
Type:
flag
As far as I can tell, this doesn't affect functionality in any way, it's more as "user documentation".
Labels this type as experimental and unsupported.
UENUM(
ScriptName
)
Position:
Main
Type:
flag
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.
UENUM(
ToolTip
)
Position:
Main
Type:
flag
Overrides the automatically generated tooltip from code comments.
UENUM(
BlueprintType
)
Position:
Main
Type:
flag
Exposes the UENUM to be used as a variable type in Blueprint scripts.
UMETA
- Technically all properties on UMETA properties are counted as MetaData, but
unlike others they do not have to be grouped into a
meta
category - It's possible to add and use your own tags to
UMETA
because they are counted as MetaData. Look howMovieSceneBuiltInEasingFunctionCustomization.cpp
usesUMETA(Grouping)
to group together enum values.
Display
UMETA(
DisplayName
="abc")
Position:
Main
Type:
string
This value's name will be the text provided here, rather than the code-generated name.
UENUM(BlueprintType)
enum class UMetaExample : uint8
{
Cat UMETA(DisplayName="Kitty"),
Dog,
Rooster,
};
UMETA(
Hidden
)
Position:
Main
Type:
flag
This can be used in conjunction with ENUM_RANGE_BY_COUNT
to allow iteration over UENUM
.
It looks like "Spacer" used to be an alternative name for this.
This value will not appear in the Editor.
UENUM(BlueprintType)
enum class UMetaExample : uint8
{
Cat,
Dog,
Rooster,
Count UMETA(Hidden),
};
UMETA(
ToolTip
="abc")
Position:
Main
Type:
string
Overrides the automatically generated tooltip from code comments.
UENUM(BlueprintType)
enum class UMetaExample : uint8
{
Cat,
Dog,
Rooster UMETA(ToolTip="It's like a chicken"),
Count,
};