UFUNCTION Specifiers

Note: This page is still under construction. There are a lot of meta specifiers!

Unreal’s UFUNCTION 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 UFUNCTION 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.

Blueprint Logic

UFUNCTION(

BlueprintCallable

)

Main

Meta

flag

The function can be executed in a Blueprint or Level Blueprint graph.

Unreal Documentation
UFUNCTION(

BlueprintImplementableEvent

)

Main

Meta

flag

The function can be implemented in a Blueprint or Level Blueprint graph.

Unreal Documentation
UFUNCTION(

BlueprintNativeEvent

)

Main

Meta

flag

This function is designed to be overridden by a Blueprint, but also has a default native implementation. Declares an additional function named the same as the main function, but with _Implementation added to the end, which is where code should be written. The autogenerated code will call the _Implementation method if no Blueprint override is found.

Unreal Documentation
UFUNCTION(

BlueprintPure

)

Main

Meta

flag

The function does not affect the owning object in any way and can be executed in a Blueprint or Level Blueprint graph.

Unreal Documentation
UFUNCTION(

SealedEvent

)

Main

Meta

flag

This function cannot be overridden in subclasses. The SealedEvent keyword can only be used for events. For non-event functions, declare them as static or final to seal them.

Unreal Documentation
UFUNCTION(meta=(

ArrayParm

="abc"))

Main

Meta

string

Indicates that a BlueprintCallable function should use a Call Array Function node and that the listed parameters should be treated as wild card array properties.

Unreal Documentation
UFUNCTION(meta=(

ArrayTypeDependentParams

="abc"))

Main

Meta

string

When ArrayParm is used, this specifier indicates one parameter which will determine the types of all parameters in the ArrayParm list.

Unreal Documentation
UFUNCTION(meta=(

AutoCreateRefTerm

="abc"))

Main

Meta

string

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.

Unreal Documentation
UFUNCTION(meta=(

BlueprintAutocast

))

Main

Meta

flag

Used only by static BlueprintPure functions from a Blueprint function library. A cast node will be automatically added for the return type and the type of the first parameter of the function.

Unreal Documentation
UFUNCTION(meta=(

BlueprintInternalUseOnly

))

Main

Meta

flag

This function is an internal implementation detail, used to implement another function or node. It is never directly exposed in a Blueprint graph.

Unreal Documentation
UFUNCTION(meta=(

BlueprintProtected

))

Main

Meta

flag

This function can only be called on the owning Object in a Blueprint. It cannot be called on another instance.

Unreal Documentation
UFUNCTION(meta=(

CallableWithoutWorldContext

))

Main

Meta

flag

Used for BlueprintCallable functions that have a WorldContext pin to indicate that the function can be called even if its Class does not implement the GetWorld function.

Unreal Documentation
UFUNCTION(meta=(

CommutativeAssociativeBinaryOperator

))

Main

Meta

flag

Indicates that a BlueprintCallable function should use the Commutative Associative Binary node. This node lacks pin names, but features an Add Pin button that creates additional input pins.

Unreal Documentation
UFUNCTION(meta=(

CustomStructureParam

="abc"))

Main

Meta

string

The listed parameters are all treated as wildcards. This specifier requires the UFUNCTION-level specifier, CustomThunk, which will require the user to provide a custom exec function. In this function, the parameter types can be checked and the appropriate function calls can be made based on those parameter types. The base UFUNCTION should never be called, and should assert or log an error if it is. To declare a custom exec function, use the syntax DECLARE_FUNCTION(execMyFunctionName) where MyFunctionName is the name of the original function.

Unreal Documentation
UFUNCTION(meta=(

DefaultToSelf

))

Main

Meta

flag

For BlueprintCallable functions, this indicates that the Object property’s named default value should be the self context of the node.

Unreal Documentation
UFUNCTION(meta=(

DeprecatedFunction

))

Main

Meta

flag

Related:

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 DeprecationMessage metadata specifier.

Unreal Documentation
UFUNCTION(meta=(

DeprecationMessage

="abc"))

Main

Meta

string

Related:

If the function is deprecated, this message will be added to the standard deprecation warning when trying to compile a Blueprint that uses it.

Unreal Documentation
UFUNCTION(meta=(

DeterminesOutputType

="abc"))

Main

Meta

string

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 TSubClassOf<X> or TSoftObjectPtr<X>, where the function’s original return type is X* or a container with X* as the value type, such as TArray<X*>.

Unreal Documentation
UFUNCTION(meta=(

ExpandEnumAsExecs

="abc"))

Main

Meta

string

For BlueprintCallable functions, this indicates that one input execution pin should be created for each entry in the enum used by the parameter. The parameter must be of an enumerated type that has the UENUM tag.

Unreal Documentation

Editor

UFUNCTION(

CallInEditor

)

Main

Meta

flag

This function can be called in the editor on selected instances via a button in the Details panel.

Unreal Documentation

General

UFUNCTION(

Category

)

Main

Meta

flag

Specifies the category of the function when displayed in Blueprint editing tools. Define nested categories using the operator.
Unreal Documentation
UFUNCTION(meta=(

Latent

)

Main

Meta

Related:

Indicates a latent action. Latent actions have one parameter of type FLatentActionInfo, and this parameter is named by the LatentInfo specifier.

Unreal Documentation
UFUNCTION(meta=(

LatentInfo

="abc"))

Main

Meta

string

Related:

For Latent BlueprintCallable functions indicates which parameter is the LatentInfo parameter.

Unreal Documentation
UFUNCTION(meta=(

NativeBreakFunc

)

Main

Meta

For BlueprintCallable functions, indicates that the function should be displayed the same way as a standard Break Struct node.

Unreal Documentation
UFUNCTION(meta=(

NotBlueprintThreadSafe

)

Main

Meta

Only valid in Blueprint function libraries. This function will be treated as an exception to the owning Class’s general BlueprintThreadSafe metadata.

Unreal Documentation
UFUNCTION(meta=(

UnsafeDuringActorConstruction

)

Main

Meta

This function is not safe to call during Actor construction.

Unreal Documentation
UFUNCTION(meta=(

WorldContext

="abc"))

Main

Meta

string

Used by BlueprintCallable functions to indicate which parameter determines the World in which the operation takes place.

Unreal Documentation
UFUNCTION(meta=(

BlueprintAutocast

))

Main

Meta

flag

C++

UFUNCTION(

CustomThunk

)

Main

Meta

flag

The UnrealHeaderTool code generator will not produce a thunk for this function; it is up to the user to provide one with the DECLARE_FUNCTION or DEFINE_FUNCTION macros.

Unreal Documentation

Console

UFUNCTION(

Exec

)

Main

Meta

flag

The function can be executed from the in-game console. Exec commands only function when declared within certain Classes.

Unreal Documentation

Appearance

UFUNCTION(meta=(

AdvancedDisplay

)

Main

Meta

string or integer

The comma-separated list of parameters will show up as advanced pins (requiring UI expansion). Replace N with a number, and all parameters after the Nth will show up as advanced pins (requiring UI expansion). For example, ‘AdvancedDisplay=2’ will mark all but the first two parameters as advanced).
Unreal Documentation
UFUNCTION(meta=(

DisplayName

="abc"))

Main

Meta

string

The name of this node in a Blueprint will be replaced with the value provided here, instead of the code-generated name.

Unreal Documentation
UFUNCTION(meta=(

HidePin

="abc"))

Main

Meta

string

For BlueprintCallable functions, this indicates that the parameter pin should be hidden from the user’s view. Only one pin per function can be hidden in this manner.

Unreal Documentation
UFUNCTION(meta=(

HideSelfPin

)

Main

Meta

Hides the "self" pin, which indicates the object on which the function is being called. The "self" pin is automatically hidden on BlueprintPure functions that are compatible with the calling Blueprint’s Class. Functions that use the HideSelfPin Meta Tag frequently also use the DefaultToSelf Specifier.

Unreal Documentation
UFUNCTION(meta=(

ShortToolTip

="abc"))

Main

Meta

string

A short tooltip that is used in some contexts where the full tooltip might be overwhelming, such as the Parent Class Picker dialog.

Unreal Documentation
UFUNCTION(meta=(

ToolTip

="abc"))

Main

Meta

string

Overrides the automatically generated tooltip from code comments.

Unreal Documentation

Node Appearance

UFUNCTION(meta=(

CompactNodeTitle

="abc"))

Main

Meta

string

Indicates that a BlueprintCallable function should display in the compact display mode, and provides the name to display in that mode.

Unreal Documentation

Debug

UFUNCTION(meta=(

DevelopmentOnly

))

Main

Meta

flag

Functions marked as DevelopmentOnly will only run in Development mode. This is useful for functionality like debug output, which is expected not to exist in shipped products.

Unreal Documentation
UFUNCTION(meta=(

InternalUseParam

="abc"))

Main

Meta

string

Similar to HidePin, this hides the named parameter’s pin from the user’s view, and can only be used for one parameter per function.

Unreal Documentation
UFUNCTION(meta=(

KeyWords

="abc"))

Main

Meta

string

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.

Unreal Documentation

Materials

UFUNCTION(meta=(

MaterialParameterCollectionFunction

)

Main

Meta

For BlueprintCallable functions, indicates that the material override node should be used.

Unreal Documentation

Network

UFUNCTION(

Server

Main

Meta

Incompatible with:

The function is only executed on the server. Declares an additional function named the same as the main function, but with _Implementation added to the end, which is where code should be written. The autogenerated code will call the _Implementation method when necessary.

Unreal Documentation
UFUNCTION(

Client

)

Main

Meta

flag

Incompatible with:

The function is only executed on the client that owns the Object on which the function is called. Declares an additional function named the same as the main function, but with _Implementation added to the end. The autogenerated code will call the _Implementation method when necessary.

Unreal Documentation
UFUNCTION(

NetMulticast

Main

Meta

The function is executed both locally on the server, and replicated to all clients, regardless of the Actor’s NetOwner.

Unreal Documentation
UFUNCTION(

BlueprintAuthorityOnly

)

Main

Meta

flag

This function will only execute from Blueprint code if running on a machine with network authority (a server, dedicated server, or single-player game).

Unreal Documentation
UFUNCTION(

WithValidation

Main

Meta

Declares an additional function named the same as the main function, but with _Validate added to the end. This function takes the same parameters, and returns a bool to indicate whether or not the call to the main function should proceed.

Unreal Documentation
UFUNCTION(

BlueprintCosmetic

)

Main

Meta

flag

This function is cosmetic and will not run on dedicated servers.

Unreal Documentation
UFUNCTION(

Reliable

Main

Meta

The function is replicated over the network, and is guaranteed to arrive regardless of bandwidth or network errors. Only valid when used in conjunction with Client or Server.

Unreal Documentation
UFUNCTION(

Unreliable

Main

Meta

The function is replicated over the network but can fail due to bandwidth limitations or network errors. Only valid when used in conjunction with Client or Server.

Unreal Documentation
UFUNCTION(

ServiceRequest

Main

Meta

Related:

This function is an RPC (Remote Procedure Call) service request. This implies NetMulticast and Reliable.

Unreal Documentation
UFUNCTION(

ServiceResponse

Main

Meta

Related:

This function is an RPC service response. This implies NetMulticast and Reliable.

Unreal Documentation

Special thanks to Erekose Craft for tracking down a bunch of these.

Tags:

Categories:

Posted: