General tips
- To select actors with a specific interface, use
meta=(MustImplement="/Script/ModuleName.MyInterface")
(NoU
orI
prefix for the interface). Pre-UE5 this worked with a classname likeMyInterface
, and didn’t need the module path. - To have an interface selector, use
meta=(AllowAbstract)
with aTSubclassOf<UInterface>
- To allow user to select an Actor Component, you can use
FComponentReference
Specifiers
BlueprintAssignable
- allows BP’s to assign listeners for dynamic multicast delegatesBlueprintCallable
- allows BP’s to call dynamic multicast delegatesTransient
- prevents saving or loading value in this prop, zero filled on load. It seems any property that is used only at runtime should have this flag to prevent accidentally filling it with something in editor. NOTE: Multicast delegates should not be marked Transient. This prevents blueprints from binding into them via the actor component event binding node/feature.BlueprintGetter
/BlueprintSetter
- Makes access to get/set functions look like regular variable assignment. Mark get and set function withBlueprintInternalUseOnly
so they don’t show up as separate functions to use. Particularly useful if you need to move a public UPROPERTY to protected/private, as you then need zero BP changes.
See also: https://benui.ca/unreal/uproperty/
Metatags
- Clamp values
ClampMin="1"
ClampMax="5"
ExposeOnSpawn="true"
visible on spawn nodesDisplayThumbnail=false
hides the thumbnail on fields that would normally show one. This can be useful to make the field take less space when the thumbnail isn’t useful, such as when selecting input actions.