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 as someBool="true". Again, for readability I would recommend using quotation marks only around string-type properties.

UENUM

General

Category

Position:

Main

Type:

flag

UENUM(Category)

Bitflags

Position:

Meta

Type:

flag

UENUM(meta=(Bitflags))

Indicates that this enumerated type can be used as flags by integer UPROPERTY variables that are set up with the Bitmask Metadata Specifier.

Unreal Documentation

Use Enum Values As Mask Values In Editor

Position:

Meta

Type:

bool

UENUM(meta=(UseEnumValuesAsMaskValuesInEditor=true))

Experimental

Position:

Meta

Type:

flag

UENUM(meta=(Experimental))

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.

Unreal Documentation

Script Name

Position:

Main

Type:

flag

UENUM(ScriptName)

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.

Unreal Documentation

Tool Tip

Position:

Main

Type:

flag

UENUM(ToolTip)

Overrides the automatically generated tooltip from code comments.

Unreal Documentation

Blueprint Type

Position:

Main

Type:

flag

UENUM(BlueprintType)

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 how MovieSceneBuiltInEasingFunctionCustomization.cpp uses UMETA(Grouping) to group together enum values.

Display

Display Name

Position:

Main

Type:

string

UMETA(DisplayName="abc")

This value's name will be the text provided here, rather than the code-generated name.

Unreal Documentation
UENUM(BlueprintType)
enum class UMetaExample : uint8
{
  Cat UMETA(DisplayName="Kitty"),
  Dog,
  Rooster,
};

Hidden

Position:

Main

Type:

flag

UMETA(Hidden)

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.

Unreal Documentation
UENUM(BlueprintType)
enum class UMetaExample : uint8
{
  Cat,
  Dog,
  Rooster,
  Count UMETA(Hidden),
};

Tool Tip

Position:

Main

Type:

string

UMETA(ToolTip="abc")

Overrides the automatically generated tooltip from code comments.

Unreal Documentation
UENUM(BlueprintType)
enum class UMetaExample : uint8
{
  Cat,
  Dog,
  Rooster UMETA(ToolTip="It's like a chicken"),
  Count,
};

Row Type

Position:

Main

Type:

string

UMETA(RowType="abc")

Allows the editor drop-down of a FDataTableRowHandle to only show data tables of a specific row type. Currently undocumented but implemented in DataTableCustomization.cpp.

USTRUCT(BlueprintType)
struct FMyStruct
{
  ...
};

UPROPERTY(EditAnywhere, meta = (RowType = "/Script/MyModule.MyStruct"))
FDataTableRowHandle RowHandleExample;