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

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 the Bitmask Metadata Specifier.

Unreal Documentation
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.

Unreal Documentation
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.

Unreal Documentation
UENUM(

ToolTip

)
Position:

Main

Type:

flag

Overrides the automatically generated tooltip from code comments.

Unreal Documentation
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 how MovieSceneBuiltInEasingFunctionCustomization.cpp uses UMETA(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.

Unreal Documentation
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.

Unreal Documentation
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.

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

RowType

="abc")
Position:

Main

Type:

string

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;