Resource
Specifier Reference
All the specifiers and metadata keys you can put inside UPROPERTY, UFUNCTION, UCLASS, USTRUCT, UENUM, and UMETA. Filter by macro, kind, or category.
Macro Builder
Pick specifiers, fill in values, and copy the full macro line. Conflicts are caught automatically.
Name
Macro
Kind
Description
EditAnywhereProperty is editable on class defaults and placed instances.
EditInstanceOnlyProperty is editable only on placed instances, not on class defaults.
EditDefaultsOnlyProperty is editable only on class defaults (the CDO), not on placed instances.
VisibleAnywhereProperty is visible in the editor on defaults and instances but not editable. Use for components and runtime state.
VisibleInstanceOnlyProperty is visible only on placed instances but not editable.
VisibleDefaultsOnlyProperty is visible only on class defaults but not editable.
BlueprintReadWriteProperty can be read and written from Blueprint. Requires an Edit or Visible specifier to also appear in details.
BlueprintReadOnlyProperty can be read from Blueprint but not written. The safer default — only promote to ReadWrite when Blueprint genuinely needs to write.
BlueprintSetterSpecifies a custom setter function that Blueprint calls when writing this property.
BlueprintGetterSpecifies a custom getter function that Blueprint calls when reading this property.
BlueprintAssignableMulticast delegate can be assigned (bound to) in Blueprint. Use on dynamic multicast delegates.
BlueprintCallableMulticast delegate can be called (broadcast) from Blueprint.
BlueprintAuthorityOnlyMulticast delegate only accepts events marked BlueprintAuthorityOnly in Blueprint.
ReplicatedProperty is replicated over the network. Requires GetLifetimeReplicatedProps implementation.
ReplicatedUsingProperty is replicated and calls the specified function when the value changes on the client.
NotReplicatedProperty is skipped during replication. Only valid on struct members or RPC service request parameters. Using it on a class property is a compile error.
ConfigProperty value is loaded from and saved to the class config .ini file.
GlobalConfigProperty is loaded from the global (base) config, not subclass-specific configs.
TransientProperty is not saved or loaded. Reset to default on load. Use for runtime-only state.
DuplicateTransientProperty is reset to default when the object is duplicated (copy/paste, Play In Editor).
TextExportTransientProperty is not exported to text format (copy/paste).
NonPIEDuplicateTransientProperty is only duplicated in Play In Editor, reset in all other duplication.
SaveGameProperty is included in save game serialization.
SkipSerializationProperty is not serialized at all but can still be exported to text.
NonTransactionalProperty changes are not recorded in the undo/redo transaction buffer.
CategoryGroups the property under a named category in the details panel. Use | for subcategories.
SimpleDisplayProperty is shown in the simple (non-advanced) view of the details panel.
AdvancedDisplayProperty is hidden behind the Advanced dropdown in the details panel.
NoClearHides the Clear button on object reference properties in the editor.
InstancedObject property is a component-like instance. The referenced object is duplicated with the outer and is editable inline.
ExportObject can be exported with its outer actor. Used for subobject serialization.
EditFixedSizeArray elements can be modified in the editor, but the array size cannot be changed.
InterpProperty can be driven by Sequencer tracks. Implies EditAnywhere and BlueprintVisible.
AssetRegistrySearchableProperty value is indexed in the Asset Registry for fast queries without loading the asset.
ExposeOnSpawnProperty is exposed as a pin on the SpawnActor node in Blueprint.
FieldNotifyEnables the field notification system for this property. Used with MVVM and UI binding.
GetterSpecifies a custom native getter function for the property.
SetterSpecifies a custom native setter function for the property.
ClampMinHard minimum value in the editor UI. The slider and text input will not allow values below this. Does not enforce at runtime — add your own clamping in code if needed.
ClampMaxHard maximum value in the editor UI. The slider and text input will not allow values above this. Does not enforce at runtime — add your own clamping in code if needed.
UIMinMinimum value for the editor slider. The value can still be typed below this.
UIMaxMaximum value for the editor slider. The value can still be typed above this.
SliderExponentExponent for logarithmic slider scaling. Values above 1 cluster precision near the low end.
DeltaIncrement amount when using the spinbox arrows in the editor.
FixedIncrementFixed increment for value adjustments. The value snaps to multiples of this.
LinearDeltaSensitivitySensitivity multiplier for linear delta changes when dragging the value.
UnitsDisplay unit label next to the value. Supports Centimeters, Meters, Kilometers, Degrees, Seconds, etc.
AllowedClassesComma-separated list of classes allowed for a soft or object reference property.
DisallowedClassesComma-separated list of classes not allowed for a soft or object reference property.
MetaClassRestricts a TSubclassOf property to subclasses of the specified class.
MetaStructRestricts an FInstancedStruct property to instances of the specified struct.
MustImplementObject reference must implement the specified interface.
BitmaskMarks an integer property as a bitmask. Enables the bitmask editor widget. Only valid on non-float numeric properties. Pair with BitmaskEnum to name individual bits.
BitmaskEnumEnum to use for naming individual bits in a bitmask property. Requires Bitmask on the same property.
ArraySizeEnumEnum that determines the fixed size of a static array. Array indices map to enum values.
GetOptionsName of a UFUNCTION that returns a TArray<FString> to populate a dropdown for this property.
DisplayNameCustom display name for the property in the editor details panel.
ToolTipCustom tooltip shown when hovering over the property in the editor.
ShortToolTipShort tooltip used in compact UI contexts.
EditConditionBoolean expression that controls whether this property is editable. Grays out the field when false.
EditConditionHidesWhen combined with EditCondition, hides the property entirely instead of graying it out.
InlineEditConditionToggleBoolean property that shows as an inline checkbox next to the property it controls via EditCondition.
MultiLineFString or FText property uses a multi-line text editor.
AllowPrivateAccessAllows Blueprint to access a private property. Use with BlueprintReadWrite or BlueprintReadOnly.
MakeStructureDefaultValueDefault value for a struct member when the struct is used as a function parameter.
TitlePropertyStruct member whose value is shown as the array element title in the editor. Makes struct arrays readable.
EditInlineInternal metadata set automatically by the Instanced specifier. Don't set manually — use Instanced instead, which also sets PersistentInstance and ExportObject.
ShowOnlyInnerPropertiesStruct property shows its members directly in the parent category without a collapsible header.
ValidEnumValuesComma-separated list of enum values that are valid for this property. Others are hidden from the dropdown.
InvalidEnumValuesComma-separated list of enum values that are invalid for this property. These are hidden from the dropdown.
BlueprintCallableFunction can be called from Blueprint graphs. The most common UFUNCTION specifier.
BlueprintPureFunction has no side effects and no execution pin. Implies BlueprintCallable. Use for getters and math.
BlueprintImplementableEventC++ declares the function signature, Blueprint provides the implementation. No C++ body.
BlueprintNativeEventC++ provides a default implementation (_Implementation suffix), Blueprint can override it.
BlueprintAuthorityOnlyFunction only executes if the object has network authority. Silently skipped on clients.
BlueprintCosmeticFunction is cosmetic and won't run on dedicated servers. Use for VFX, sound, and UI feedback.
BlueprintGetterFunction serves as the Blueprint getter for a UPROPERTY with BlueprintGetter specified.
BlueprintSetterFunction serves as the Blueprint setter for a UPROPERTY with BlueprintSetter specified.
SealedEventBlueprint event cannot be overridden in child Blueprints. The implementation is sealed.
ServerFunction is an RPC from client to server. Requires Reliable or Unreliable.
ClientFunction is an RPC from server to the owning client. Requires Reliable or Unreliable.
NetMulticastFunction is an RPC from server to all connected clients. Requires Reliable or Unreliable.
ReliableRPC is guaranteed to arrive. Uses a queue — overuse causes buffer overflow and disconnects.
UnreliableRPC is best-effort. May be dropped under congestion. Use for frequent non-critical calls.
WithValidationRPC must have a _Validate function that returns bool. If it returns false, the client is disconnected.
ServiceRequestFunction is a network service request.
ServiceResponseFunction is a network service response.
ExecFunction is callable from the in-game console (~). Only works on PlayerControllers, Pawns, HUDs, Cheat Managers, and Game Modes.
CallInEditorFunction gets a button in the details panel that calls it while in the editor (not at runtime).
CustomThunkFunction has a custom Blueprint VM thunk instead of the auto-generated one. For advanced use.
CategoryCategory under which the function appears in the Blueprint action menu. Required for BlueprintCallable.
DisplayNameCustom display name for the function in the Blueprint action menu and node title.
ReturnDisplayNameCustom display name for the return value pin on the Blueprint node.
ToolTipCustom tooltip shown when hovering over the function in the Blueprint action menu.
ShortToolTipShort tooltip used in compact contexts.
DefaultToSelfSpecified parameter defaults to Self (the calling object). Hides the pin when Self is valid.
WorldContextSpecified parameter is auto-filled with the world context. Required for static Blueprint Function Library functions.
HidePinHides the specified parameter pin from the Blueprint node. The parameter uses its default value.
AdvancedDisplayComma-separated parameter names that are hidden behind the Advanced dropdown on the Blueprint node.
ExpandBoolAsExecsBool return or output parameter becomes multiple execution output pins (true/false branches).
ExpandEnumAsExecsEnum parameter or return becomes multiple execution output pins, one per enum value.
LatentFunction is latent — it doesn't complete immediately. Shows a clock icon on the Blueprint node.
LatentInfoSpecifies which parameter holds the FLatentActionInfo. Required with Latent.
DeprecatedFunctionMarks the function as deprecated. Blueprint shows a warning when the node is used.
DeprecationMessageMessage shown when a deprecated function is used in Blueprint.
DevelopmentOnlyFunction is stripped from shipping builds. Use for debug and development tools.
BlueprintInternalUseOnlyFunction can't be placed directly by users. Used for internal engine functions that drive async nodes.
CommutativeAssociativeBinaryOperatorBinary operator that allows adding extra input pins in Blueprint.
UnsafeDuringActorConstructionFunction is not safe to call during actor construction. Blueprint shows a warning.
BlueprintProtectedFunction can only be called on the owning object in Blueprint, not on other references.
DeterminesOutputTypeSpecified parameter determines the output type. Used for functions with wildcard returns.
DynamicOutputParamOutput parameter whose type changes based on DeterminesOutputType.
AutoCreateRefTermSpecified pass-by-reference parameters auto-create a temporary when unconnected in Blueprint.
KeyWordsAdditional search keywords for finding the function in the Blueprint action menu.
CompactNodeTitleShort title shown on a compact Blueprint node (like operator nodes).
HideSelfPinHides the self pin on the Blueprint node. Used for static-like functions.
BlueprintableClass can be used as a base class for Blueprints. This is inherited by child classes.
NotBlueprintableClass cannot be used as a base class for Blueprints. Use to block subclassing in BP.
BlueprintTypeClass can be used as a variable type in Blueprint. Does not imply Blueprintable.
AbstractClass cannot be instantiated directly. Must be subclassed.
DeprecatedClass is deprecated. Instances are loaded but flagged as deprecated in the editor.
TransientInstances of this class are never saved to disk. Inherited by child classes.
NonTransientOverrides inherited Transient flag. Instances of this class are saved normally.
DefaultToInstancedAll instances of this class are instanced by default. Used with EditInlineNew.
EditInlineNewInstances can be created inline in the editor from a property dropdown. Pairs with Instanced UPROPERTY.
NotEditInlineNewOverrides inherited EditInlineNew. Instances cannot be created inline.
PlaceableClass can be placed in a level via the editor.
NotPlaceableClass cannot be placed in a level. Overrides inherited Placeable from parent.
ConstAll properties are const in Blueprint. Blueprint cannot modify this class.
HiddenClass is hidden from the class browser and other editor UI.
HideDropDownClass does not appear in class picker dropdown menus.
MinimalAPIOnly the class type info is exported. Other modules can use pointers but not call functions.
WithinClass can only exist as a subobject of the specified outer class.
CollapseCategoriesProperties are not grouped into categories in the details panel.
DontCollapseCategoriesOverrides inherited CollapseCategories.
AdvancedClassDisplayAll properties default to AdvancedDisplay in the details panel.
ShowCategoriesRe-shows categories hidden by a parent class.
HideCategoriesHides the specified categories from the details panel.
AutoExpandCategoriesSpecified categories are expanded by default in the details panel.
AutoCollapseCategoriesSpecified categories are collapsed by default in the details panel.
PrioritizeCategoriesSpecified categories appear at the top of the details panel.
ShowFunctionsRe-shows functions hidden by a parent class.
HideFunctionsHides the specified functions from the Blueprint action menu.
ClassGroupGroups the class under a named group in the editor class browser.
ComponentWrapperClassActor is a wrapper that exists primarily to hold a component. Editor shows the component in place viewers.
SparseClassDataTypesMoves specified struct data out of the CDO into shared sparse storage. Saves memory for data that rarely varies per instance.
ConfigClass reads config properties from the specified .ini file.
DefaultConfigConfig values are only saved to Default .ini files, not per-user overrides.
PerObjectConfigEach object instance has its own config section in the .ini file.
ConfigDoNotCheckDefaultsDon't check default values when saving config. Saves all config properties unconditionally.
BlueprintSpawnableComponentComponent can be added to a Blueprint via the Add Component button.
IsBlueprintBaseExplicitly controls whether this class can be used as a Blueprint base. Overrides Blueprintable for specific cases.
ChildCanTickChild classes can tick even though the parent has ticking disabled.
ChildCannotTickChild classes cannot tick even if the parent has ticking enabled.
ShortTooltipShort tooltip used in compact class picker contexts.
KismetHideOverridesComma-separated list of function overrides to hide from Blueprint.
BlueprintTypeStruct can be used as a variable type in Blueprint.
AtomicStruct is always serialized as a single unit. If any member changes, all members are serialized.
ImmutableStruct is immutable and implies Atomic. Used for engine-level types like FVector.
NoExportUHT does not generate code for this struct. You must provide the declaration manually.
HasNativeMakeStruct has a C++ function for constructing it. Blueprint shows a Make node.
HasNativeBreakStruct has a C++ function for breaking it into components. Blueprint shows a Break node.
HiddenByDefaultStruct pins are hidden by default on Blueprint nodes. User must expand to see them.
DisableSplitPinStruct pin cannot be split into individual member pins on Blueprint nodes.
BlueprintTypeEnum can be used as a variable type in Blueprint.
FlagsEnum is a bitflag enum. Values are powers of two and can be combined.
BitflagsEnum values can be used as individual bit flags in a bitmask property.
UseEnumValuesAsMaskValuesInEditorUse the actual enum values (not bit indices) as mask values in the editor bitmask widget.
DisplayNameCustom display name for an individual enum value in the editor and Blueprint.
HiddenHides the enum value from editor dropdowns. The value still exists in code.
ToolTipTooltip for an individual enum value.
BindWidgetBinds a UPROPERTY to a UMG widget by name. The Blueprint compiler verifies the widget exists in the widget tree.
BindWidgetOptionalLike BindWidget but the widget doesn't have to exist. The property is null if the widget is missing.
BindWidgetAnimBinds a UPROPERTY to a UMG widget animation by name.
BindWidgetAnimOptionalLike BindWidgetAnim but the animation doesn't have to exist.
AllowAbstractAllows abstract classes to appear in the class picker for TSubclassOf or FSoftClassPath properties.
DisplayAfterDisplay this property immediately after the named property in the details panel.
DisplayPriorityNumeric priority controlling display order within a category. Lower values appear first.
DeprecatedPropertyMarks the property as deprecated. Blueprint shows a warning when referencing it.
MakeEditWidgetExposes an FVector or FTransform property as a movable widget in the viewport.
NoResetToDefaultHides the "Reset to Default" button for this property in the details panel.
NoSpinboxNumeric property shows a text field only, no spinbox or slider.
PasswordFieldFString property renders as a password field with dots instead of characters.
HideAlphaChannelHides the alpha channel from FColor and FLinearColor property editors.
ForceShowEngineContentAsset picker shows Engine content even if the user has it hidden.
ForceShowPluginContentAsset picker shows Plugin content even if the user has it hidden.
ShowTreeViewClass or asset picker uses a tree view instead of a flat list.
MaxLengthMaximum character length for FString and FText properties.
FilePathFilterFile extension filter for FFilePath properties in the file picker dialog.
RelativeToGameDirFFilePath picker outputs a path relative to the game directory instead of absolute.
ContentDirFDirectoryPath picker restricts to the Content directory.
AllowPreserveRatioAdds a ratio lock button for FVector properties so components scale together.
UntrackedFSoftObjectPath or FSoftObjectPtr reference is not tracked by the asset registry.
AssetBundlesNames the asset bundle this soft reference belongs to for PrimaryDataAsset loading.
ExactClassFSoftObjectPath picker only shows the exact AllowedClasses, not subclasses.
HideInDetailPanelProperty is hidden from the details panel entirely. Still accessible in code and Blueprint.
NeverAsPinProperty is never exposed as a data pin on Animation Blueprint and UMG nodes.
PinShownByDefaultProperty is exposed as a visible data pin by default on Animation Blueprint and UMG nodes.
AlwaysAsPinProperty is always exposed as a data pin on Animation Blueprint and UMG nodes.
PinHiddenByDefaultProperty is exposed as a data pin but hidden by default. User can show it manually.
EditFixedOrderPrevents array elements from being reordered by dragging in the details panel.
NoElementDuplicateHides the duplicate icon for array entries in the details panel.
DisplayThumbnailShows a thumbnail preview of the selected asset next to the property.
ConfigHierarchyEditableProperty can be edited in the config hierarchy editor.
ForceRebuildPropertyChanging this property forces a refresh of sibling properties in the details panel.
GetAssetFilterName of a UFUNCTION that filters which assets appear in the asset picker.
GetClassFilterName of a static UFUNCTION that filters which classes appear in the class picker.
GetAllowedClassesName of a UFUNCTION that returns allowed classes dynamically (instead of static AllowedClasses).
GetDisallowedClassesName of a UFUNCTION that returns disallowed classes dynamically.
GetRestrictedEnumValuesName of a UFUNCTION that returns restricted enum values dynamically.
MultipleNumeric value must be a multiple of this value.
BlueprintThreadSafeFunction is safe to call from non-game threads in Blueprint. Used heavily in animation and audio.
NotBlueprintThreadSafeOverrides a class-level BlueprintThreadSafe marking for a specific function.
BlueprintAutocastAuto-inserts a cast node between the return value and first parameter types in Blueprint.
CallableWithoutWorldContextBlueprintCallable function can be called without a valid world context object.
NativeBreakFuncFunction displays like a Break Struct node in Blueprint.
NativeMakeFuncFunction displays like a Make Struct node in Blueprint.
ArrayParmFunction uses the Call Array Function node pattern with wildcard array parameters.
ArrayTypeDependentParamsParameters whose wildcard type is linked to the ArrayParm element type.
CustomStructureParamParameter is polymorphic in a CustomThunk function. Accepts any struct type.
MapParamTMap parameter whose key/value types are determined at compile time.
MapKeyParamParameter whose type matches the key type of a MapParam.
MapValueParamParameter whose type matches the value type of a MapParam.
SetParamTSet parameter whose element type is determined at compile time.
ScriptMethodStatic function is hoisted to an instance method on the first parameter's type in scripting languages.
ScriptOperatorStatic function is exposed as an operator in scripting languages.
ScriptConstantStatic function is exposed as a constant in scripting languages.
DataTablePinParameter is a Data Table pin with row type inference in Blueprint.
HideSpawnParmsHides the specified parameter from spawn pins on async task nodes.
CustomConstructorPrevents UHT from generating the constructor declaration. You provide it manually in the CPP block.
CustomFieldNotifyPrevents UHT from generating the FieldNotify declaration. You provide it manually.
OptionalClass may not be available in all contexts. Used for optional platform features.
GlobalUserConfigConfig is saved to the global user settings directory, not the project.
ProjectUserConfigConfig is saved to the project's user settings directory.
PerPlatformConfigConfig can be overridden per platform in platform-specific .ini files.
ExperimentalMarks the class as experimental. Editor shows a warning badge.
EarlyAccessPreviewMarks the class as early access preview. Editor shows a preview badge.
IgnoreCategoryKeywordsInSubclassesFirst subclass ignores all inherited ShowCategories and HideCategories specifiers.
DeprecatedNodeBlueprint node for this class shows a deprecation warning when compiled.
DeprecationMessageCustom warning message displayed when a deprecated node is used.
ExposedAsyncProxyExposes the proxy object on async task Blueprint nodes so you can bind to its delegates.
RestrictedToClassesBlueprint Function Library functions are only available to the specified classes.
ShowWorldContextPinShows the normally hidden world context pin on Blueprint nodes for classes that don't implement GetWorld.
DontUseGenericSpawnObjectPrevents using the generic Construct Object node. Class requires a specialized spawn function.
ProhibitedInterfacesComma-separated interfaces that are incompatible with this class.
CannotImplementInterfaceInBlueprintInterface cannot be implemented by Blueprints. Only C++ classes can implement it.
246 of 246 specifiers
Related Content
TipUse UPROPERTY TitleProperty metadata to make structure arrays readable in the editor.TipDocument UFUNCTION parameters with @param tags for Blueprint tooltip descriptions.CommunityBenUI's UPROPERTY specifier reference with visual examples.CommunityBenUI's UFUNCTION specifier reference with visual examples.CommunityBenUI's UCLASS specifier reference with visual examples.CommunityBenUI's USTRUCT specifier reference.CommunityBenUI's UENUM and UMETA specifier reference.
Unreal Directive is free and ad-free.
If it saved you time, you can help keep it that way.

