diff --git a/README.md b/README.md index 1bcb8da..f3b214c 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ Example entry: documentation: text: Indicates that this property is visible in all property windows, but cannot be edited. This Specifier is incompatible with the "Edit" Specifiers. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/property-specifiers - images: [ /assets/unreal/uproperty/visibility-defaults-selected.png, /assets/unreal/uproperty/visibility-instance-selected.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/visibility-defaults-selected.png, /assets/data/UE-Specifier-Docs/images/uproperty/visibility-instance-selected.jpg ] ``` ## Format Description diff --git a/yaml/uclass.yml b/yaml/uclass.yml index 1035e55..772e671 100644 --- a/yaml/uclass.yml +++ b/yaml/uclass.yml @@ -30,7 +30,7 @@ specifiers: { GENERATED_BODY() }; - images: [ /uclass/classgroup.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uclass/classgroup.jpg ] documentation: text: Indicates that Unreal Editor's Actor Browser should include this class and any subclass of this class within the specified GroupName when Group View is enabled in the Actor Browser. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/class-specifiers diff --git a/yaml/ufunction.yml b/yaml/ufunction.yml index 7e4fe06..0ce367a 100644 --- a/yaml/ufunction.yml +++ b/yaml/ufunction.yml @@ -56,7 +56,7 @@ specifiers: default functions marked `const` will be exposed as pure functions. To make a const function not a pure function, use `BlueprintPure=false`. Pure functions do not cache their results, so be careful when doing any non-trivial amount of work a blueprint pure function. It is good practice to avoid outputting array properties in blueprint pure functions. - images: [ /ufunction/blueprintpure.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/ufunction/blueprintpure.jpg ] samples: - | UFUNCTION(BlueprintPure) @@ -118,7 +118,7 @@ specifiers: UFUNCTION(BlueprintCallable, meta=(AutoCreateRefTerm="Color")) void SomeColorWithRef(const FLinearColor& Color) {} - images: [ /ufunction/autocreaterefterm.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/ufunction/autocreaterefterm.jpg ] documentation: text: 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. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/ufunctions-in-unreal-engine#functionspecifiers @@ -141,7 +141,7 @@ specifiers: documentation: text: 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. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/ufunctions-in-unreal-engine#functionspecifiers - images: [ /ufunction/blueprintautocast.png, /ufunction/blueprintautocast-drag.png ] + images: [ /assets/data/UE-Specifier-Docs/images/ufunction/blueprintautocast.png, /assets/data/UE-Specifier-Docs/images/ufunction/blueprintautocast-drag.png ] - name: BlueprintInternalUseOnly group: Blueprint Logic @@ -267,7 +267,7 @@ specifiers: documentation: text: This function can be called in the editor on selected instances via a button in the Details panel. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/ufunctions-in-unreal-engine#functionspecifiers - images: [ /ufunction/callineditor.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/ufunction/callineditor.jpg ] ############################################################################### @@ -331,12 +331,35 @@ specifiers: ############################################################################### # Appearance + - name: Category + group: Appearance + type: string + utility: 3 + position: main + comment: | + Using `Category`, it's possible to group Blueprint-exposed functions together into expandable folders in the Blueprint context menu and My Blueprint panel. The pipe character `|` can be used to create sub-folders. For example `Category="Character Info|Health"` would create two folders\: `Character Info`, and within that, `Health`. + + This only affects how the function is organized when searching or browsing in the Blueprint editor; it has no effect on functions that aren't exposed to Blueprints via `BlueprintCallable`, `BlueprintPure`, `BlueprintImplementableEvent`, or `BlueprintNativeEvent`. + + Note that whitespace is important; if there are two functions, one marked with `Category="Parent|Child"` and one with `Category="Parent | Child"`, it will result in two folders being displayed. + documentation: + text: Specifies the category of the function when displayed in the Blueprint editor. Define nested categories using the \| operator. + source: https://dev.epicgames.com/documentation/en-us/unreal-engine/ufunctions-in-unreal-engine#functionspecifiers + samples: + - | + UFUNCTION(BlueprintCallable, Category="Animals") + void MakeSound(); + + - | + UFUNCTION(BlueprintCallable, Category="Animals|Dogs") + void Bark(); + - name: CompactNodeTitle group: Appearance type: string utility: 2 position: meta - images: [ /ufunction/compactnodetitle.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/ufunction/compactnodetitle.jpg ] samples: - | UFUNCTION(BlueprintPure) @@ -400,7 +423,7 @@ specifiers: UFUNCTION(BlueprintCallable, meta=(ExpandEnumAsExecs="Animal")) static void SwitchAnimalByName(FString Name, EAnimalType& Animal); - images: [ /ufunction/expandenumsasexecs.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/ufunction/expandenumsasexecs.jpg ] documentation: text: 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. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/ufunctions-in-unreal-engine#functionspecifiers @@ -488,6 +511,14 @@ specifiers: documentation: text: Only valid in Blueprint function libraries. This function will be treated as an exception to the owning Class's general BlueprintThreadSafe metadata. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/ufunctions-in-unreal-engine#functionspecifiers + - name: ScriptName + group: General + type: string + position: meta + comment: Also used on `UCLASS()`, `UPROPERTY()`, and `UENUM()`. + documentation: + text: The name to use for this function when exporting it to a scripting language. May include deprecated names as additional semi-colon separated entries. + source: "https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Source/Runtime/CoreUObject/Public/UObject/ObjectMacros.h" - name: ShortToolTip group: Appearance type: string @@ -668,9 +699,9 @@ specifiers: UFUNCTION(BlueprintCallable, meta=(RectColor="(R=0,G=1,B=0,A=1)")) void DefaultStructValue(FLinearColor RectColor); images: - - /ufunction/parametername.jpg - - /ufunction/defaulttsubclassofvalue.jpg - - /ufunction/defaultstructvalue.jpg + - /assets/data/UE-Specifier-Docs/images/ufunction/parametername.jpg + - /assets/data/UE-Specifier-Docs/images/ufunction/defaulttsubclassofvalue.jpg + - /assets/data/UE-Specifier-Docs/images/ufunction/defaultstructvalue.jpg - name: DataTablePin position: meta type: string @@ -694,7 +725,7 @@ specifiers: Using `SetParam` allows you to make "templated" Blueprint functions for Set containers that work for any datatype. It requires a `CustomThunk`-generated function definition for it to work. For an example check `BlueprintSetLibrary`. In the Blueprint function declaration you write `int32` but with these metadata specifiers and CustomThunk you can make it work for any datatype. - images: [ /ufunction/setparam.png ] + images: [ /assets/data/UE-Specifier-Docs/images/ufunction/setparam.png ] samples: - | // An arbitrary function that takes a set of any type and does something with it diff --git a/yaml/uinterface.yml b/yaml/uinterface.yml index cc33a51..2362a2c 100644 --- a/yaml/uinterface.yml +++ b/yaml/uinterface.yml @@ -20,7 +20,7 @@ specifiers: text: All classes listed will be compiled before this class. ClassName must specify a class in the same (or a previous) package. Multiple dependency classes can be specified using a single `DependsOn` line delimited by commas, or can be specified using a separate `DependsOn` line for each class. This is important when a class uses a struct or enum declared in another class as the compiler only knows what is in the classes it has already compiled. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/interfaces-in-unreal-engine#interfacespecifiers - - name: MinimalApi + - name: MinimalAPI group: Blueprint type: flag position: main @@ -28,6 +28,26 @@ specifiers: text: Causes only the class's type information to be exported for use by other modules. The class can be cast to, but the functions of the class cannot be called (with the exception of inline methods). This improves compile times by not exporting everything for classes that do not need all of their functions accessible in other modules. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/interfaces-in-unreal-engine#interfacespecifiers + - name: Blueprintable + group: Blueprint + type: flag + utility: 3 + position: main + antonyms: [ NotBlueprintable ] + documentation: + text: Exposes this interface as an acceptable base class for creating Blueprints. The default is NotBlueprintable, unless inherited otherwise. This Specifier is inherited by subclasses. + source: https://dev.epicgames.com/documentation/en-us/unreal-engine/interfaces-in-unreal-engine#interfacespecifiers + + - name: NotBlueprintable + group: Blueprint + type: flag + utility: 1 + position: main + antonyms: [ Blueprintable ] + documentation: + text: Specifies that this interface is not an acceptable base class for creating Blueprints. This is the default and is inherited by subclasses. + source: https://dev.epicgames.com/documentation/en-us/unreal-engine/interfaces-in-unreal-engine#interfacespecifiers + - name: Category group: Blueprint type: string diff --git a/yaml/uparam.yml b/yaml/uparam.yml index 11deca4..022b0b0 100644 --- a/yaml/uparam.yml +++ b/yaml/uparam.yml @@ -30,7 +30,7 @@ specifiers: * `FillDogInfo` takes an empty data structure that is provided to it, and fills it out. In Blueprints it is shown as an output pin. * `UseAndFillDogInfo` takes a **reference** to a data structure as input. That means it can change the values within the data structure. If you do not need to change the values of the data structure, then see `UseDogInfo`. * `UseDogInfo` takes a `const` reference data structure. It cannot change the values of the data. - images: [ /uparam/uparam-ref.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uparam/uparam-ref.jpg ] samples: - | // Fill an empty data structure @@ -83,7 +83,7 @@ specifiers: - | UFUNCTION(unreliable, client, BlueprintCallable, Category="Game|Feedback") void ClientSpawnGenericCameraLensEffect(UPARAM(meta=(MustImplement="CameraLensEffectInterface")) TSubclassOf LensEffectEmitterClass); - images: [/uparam/spawn-generic-camera-lens-effect.png] + images: [/assets/data/UE-Specifier-Docs/images/uparam/spawn-generic-camera-lens-effect.png] - name: AllowedClasses group: Pickers @@ -101,3 +101,22 @@ specifiers: position: meta comment: | Unknown, but it works the same as the UPROPERTY specifier of the same name. + + - name: Bitmask + group: Pickers + type: flag + position: meta + related: [ BitmaskEnum ] + comment: | + This works the same as the UPROPERTY specifier of the same name. Shows a dropdown box containing all bitmask options for this function parameter. Clicking on them enables or disables that flag. + samples: + - | + UFUNCTION(BlueprintCallable) + static void SetFlags(UPARAM(meta = (Bitmask, BitmaskEnum = "EColorBits")) int32 NewFlags); + + - name: BitmaskEnum + group: Pickers + type: string + position: meta + related: [ Bitmask ] + comment: See [Bitmask](#bitmask). This works the same as the UPROPERTY specifier of the same name. diff --git a/yaml/uproperty.yml b/yaml/uproperty.yml index 13f99b0..b78fdc6 100644 --- a/yaml/uproperty.yml +++ b/yaml/uproperty.yml @@ -22,7 +22,7 @@ specifiers: documentation: text: Indicates that this property is visible in all property windows, but cannot be edited. This Specifier is incompatible with the "Edit" Specifiers. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/property-specifiers - images: [ /uproperty/visibility-defaults-selected.png, /uproperty/visibility-instance-selected.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/visibility-defaults-selected.png, /assets/data/UE-Specifier-Docs/images/uproperty/visibility-defaults-selected.png ] - name: VisibleDefaultsOnly group: Editor subgroup: Visibility @@ -43,7 +43,7 @@ specifiers: documentation: text: Indicates that this property is only visible in property windows for archetypes, and cannot be edited. This Specifier is incompatible with any of the "Edit" Specifiers. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/property-specifiers - images: [ /uproperty/visibility-defaults-selected.png ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/visibility-defaults-selected.png ] - name: VisibleInstanceOnly group: Editor subgroup: Visibility @@ -64,7 +64,7 @@ specifiers: documentation: text: Indicates that this property is only visible in property windows for instances, not for archetypes, and cannot be edited. This Specifier is incompatible with any of the "Edit" Specifiers. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/property-specifiers - images: [ /uproperty/visibility-instance-selected.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/visibility-instance-selected.jpg ] - name: EditAnywhere group: Editor subgroup: Visibility @@ -84,7 +84,7 @@ specifiers: documentation: text: Indicates that this property can be edited by property windows, on archetypes and instances. This Specifier is incompatible with any of the the "Visible" Specifiers. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/property-specifiers - images: [ /uproperty/visibility-defaults-selected.png, /uproperty/visibility-instance-selected.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/visibility-defaults-selected.png, /assets/data/UE-Specifier-Docs/images/uproperty/visibility-defaults-selected.png ] - name: EditInstanceOnly group: Editor subgroup: Visibility @@ -102,7 +102,7 @@ specifiers: documentation: text: Indicates that this property can be edited by property windows, but only on instances, not on archetypes. This Specifier is incompatible with any of the "Visible" Specifiers. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/property-specifiers - images: [ /uproperty/visibility-instance-selected.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/visibility-instance-selected.jpg ] - name: EditDefaultsOnly group: Editor subgroup: Visibility @@ -118,7 +118,7 @@ specifiers: documentation: text: Indicates that this property can be edited by property windows, but only on archetypes. This Specifier is incompatible with any of the "Visible" Specifiers. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/property-specifiers - images: [ /uproperty/visibility-defaults-selected.png ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/visibility-defaults-selected.png ] - name: HideInDetailPanel group: Editor subgroup: Visibility @@ -143,7 +143,7 @@ specifiers: documentation: text: Used by struct properties. Indicates that the inner properties will not be shown inside an expandable struct, but promoted up a level. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/CoreUObject/UObject/UM_3 - images: [ /uproperty/show-only-inner-properties.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/show-only-inner-properties.jpg ] samples: - | USTRUCT() @@ -170,7 +170,7 @@ specifiers: type-comment: class path utility: 1 related: [ ExcludeBaseStruct ] - images: [ /uproperty/basestruct.webp ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/basestruct.webp ] comment: | There are two different ways of limiting which instanced structs can be chosen in the editor: @@ -219,7 +219,7 @@ specifiers: type: flag utility: 1 related: [ BaseStruct ] - images: [ /uproperty/excludebasestruct.webp ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/excludebasestruct.webp ] comment: | Used in combination with `BaseStruct`, but with this flag the base struct cannot be chosen. - name: StructTypeConst @@ -263,7 +263,7 @@ specifiers: - | UPROPERTY(EditAnywhere, Category="Animals|Birds") int32 FlyingSpeed = 99; - images: [ /uproperty/category.jpg, /uproperty/category-blueprint-graph.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/category.jpg, /assets/data/UE-Specifier-Docs/images/uproperty/category-blueprint-graph.jpg ] - name: DisplayName group: Editor subgroup: Display @@ -278,7 +278,7 @@ specifiers: - | UPROPERTY(EditAnywhere, meta=(DisplayName="Display Font")) FSoftObjectPath DisplayFontPath; - images: [ /uproperty/displayname.jpg, /uproperty/displayname-blueprint-graph.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/displayname.jpg, /assets/data/UE-Specifier-Docs/images/uproperty/displayname-blueprint-graph.jpg ] - name: ToolTip group: Editor subgroup: Display @@ -313,7 +313,7 @@ specifiers: documentation: text: The property will be placed in the advanced (dropdown) section of any panel where it appears. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/property-specifiers - images: [ /uproperty/advanceddisplay.gif ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/advanceddisplay.gif ] - name: SimpleDisplay group: Editor subgroup: Display @@ -448,7 +448,7 @@ specifiers: UPROPERTY(EditAnywhere, meta=(EditCondition="bCanFly", Units="s")) float FlapPeriodSeconds; - images: [ /uproperty/inline-edit-condition-toggle.gif ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/inline-edit-condition-toggle.gif ] documentation: text: Signifies that the bool property is only displayed inline as an edit condition toggle in other properties, and should not be shown on its own row. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/CoreUObject/UObject/UM_3 @@ -485,7 +485,7 @@ specifiers: int32 ShowFirst; UPROPERTY(EditAnywhere) int32 ShowNext; - images: [ /uproperty/displayafter.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/displayafter.jpg ] - name: DisplayPriority group: Editor subgroup: Display @@ -516,7 +516,7 @@ specifiers: int32 NoPriority; UPROPERTY(EditAnywhere, meta=(DisplayPriority=-1) int32 PriorityNegative1; - images: [ /uproperty/displaypriority.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/displaypriority.jpg ] - name: DisplayThumbnail group: Editor subgroup: Display @@ -602,7 +602,7 @@ specifiers: This hides the little return arrow that is shown to reset a value back to the value defined in the parent Blueprint or C++ class. This can be especially useful for large structs or arrays, where you would want to avoid people being able to accidentally wipe the entire contents. - images: [ /uproperty/noresettodefault.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/noresettodefault.jpg ] samples: - | UPROPERTY(EditAnywhere, meta=(NoResetToDefault)) @@ -727,7 +727,7 @@ specifiers: utility: 2 keywords: [number, editor] related: [ Multiple ] - images: [ /uproperty/delta.gif ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/delta.gif ] samples: - | // Dragging this will make it step up in increments of 12 @@ -753,7 +753,7 @@ specifiers: subgroup: Numeric comment: Sets a unit to be shown after the number. For all possible values see the `TEXT` entries in `FParseCandidates` inside [`UnitConversion.cpp`](https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Source/Runtime/Core/Private/Math/UnitConversion.cpp#L20). Using an unknown value will result in a compile error. Many units have mutliple aliases, for example "Kilometers" and "km" will result in the same unit being used. Units are case-insensitive. `Units` also allows users to input in related units. Entering `100f` into a field with `Units="Celsius"` results in `37.77779 °C`. - images: [ /uproperty/units.jpg, /uproperty/units-conversion.gif ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/units.jpg, /assets/data/UE-Specifier-Docs/images/uproperty/units-conversion.gif ] position: meta type: string utility: 2 @@ -928,7 +928,7 @@ specifiers: UFUNCTION() TArray GetPlantTypeNames(); } - images: [ /uproperty/getoptions.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/getoptions.jpg ] - name: GetKeyOptions group: Data Decorators subgroup: Text @@ -940,23 +940,24 @@ specifiers: Use to limit what are acceptable string values for the key values of a `TMap`, `TMap` or `TMap`. See the `GetOptions` documentation for details. - samples: | - UPROPERTY(EditAnywhere, Meta=(GetKeyOptions="GetLootOptions")) - TMap Loot; - - UFUNCTION() - TArray GetLootOptions() const - { - // Get data from a DataTable, or hard-coded - if (const UDataTable* LootDatabase = GetLootDatabase()) + samples: + - | + UPROPERTY(EditAnywhere, Meta=(GetKeyOptions="GetLootOptions")) + TMap Loot; + + UFUNCTION() + TArray GetLootOptions() const { - TArray Result; - LootDatabase->GetRowMap().GetKeys(Result); - return Result; + // Get data from a DataTable, or hard-coded + if (const UDataTable* LootDatabase = GetLootDatabase()) + { + TArray Result; + LootDatabase->GetRowMap().GetKeys(Result); + return Result; + } + return TArray(); } - return TArray(); - } - images: [ /uproperty/getkeyoptions.webp ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/getkeyoptions.webp ] - name: GetValueOptions group: Data Decorators subgroup: Text @@ -977,7 +978,7 @@ specifiers: Shows a text box that will grow as the user adds multiple lines. Use `Shift+Enter` to enter a newline character. Note that this is *not* a flag property but a *bool* property. `meta=(MultiLine)` won't do anything. It has to be `meta=(MultiLine=true)` - images: [ /uproperty/multiline.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/multiline.jpg ] samples: - | UPROPERTY(EditAnywhere, meta=(MultiLine=true)) @@ -989,7 +990,7 @@ specifiers: group: Data Decorators subgroup: Text position: meta - images: [ /uproperty/passwordfield.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/passwordfield.jpg ] type: bool comment: Note that this is *not* a flag property but a *bool* property. `meta=(PasswordField)` won't do anything. It has to be `meta=(PasswordField=true)` samples: @@ -1026,14 +1027,14 @@ specifiers: }; UPROPERTY(EditAnywhere, meta=(ArraySizeEnum="EArmorSlots")) FColor ColorForSlot[EArmorSlots::Num]; - images: [ /uproperty/arraysizeenum.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/arraysizeenum.jpg ] - name: EditFixedSize group: Data Decorators subgroup: Array position: main type: flag related: [ EditFixedOrder ] - images: [ /uproperty/editfixedsize.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/editfixedsize.jpg ] samples: - | UMyObject() { @@ -1053,7 +1054,7 @@ specifiers: type: flag position: meta related: [ EditFixedSize ] - images: [ /uproperty/editfixedorder.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/editfixedorder.jpg ] samples: - | UPROPERTY(EditAnywhere, meta=(EditFixedOrder)) @@ -1074,7 +1075,7 @@ specifiers: documentation: text: Used by arrays of structs. Indicates a single property inside of the struct that should be used as a title summary when the array entry is collapsed. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/CoreUObject/UObject/UM_3 - images: [ /uproperty/titleproperty.png, /uproperty/titleproperty-format.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/titleproperty.png, /assets/data/UE-Specifier-Docs/images/uproperty/titleproperty-format.jpg ] samples: - | USTRUCT() @@ -1134,7 +1135,7 @@ specifiers: position: meta type: flag comment: Works for both `FColor` and `FLinearColor` properties. The alpha property is hidden both in the details panel and in the Color Picker window. - images: [ /uproperty/hidealphachannel.jpg, /uproperty/hidealphachannel-colorpicker.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/hidealphachannel.jpg, /assets/data/UE-Specifier-Docs/images/uproperty/hidealphachannel-colorpicker.jpg ] documentation: text: Used for FColor and FLinearColor properties. Indicates that the Alpha property should be hidden when displaying the property widget in the details. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/CoreUObject/UObject/UM_3 @@ -1156,7 +1157,7 @@ specifiers: documentation: text: Prevents this Object reference from being set to none from the editor. Hides clear (and browse) button in the editor. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/property-specifiers - images: [ /uproperty/noclear.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/noclear.jpg ] ############################################################################### # Data Decorators - Bitmask @@ -1183,7 +1184,7 @@ specifiers: UPROPERTY(EditDefaultsOnly, meta = (Bitmask, BitmaskEnum = EAnimalFlags)) int32 AnimalFlags; examples: [ c3caf7b6bf12ae4c8e09b606f10a09776b4d1f38/Engine/Plugins/Experimental/VirtualProductionUtilities/Source/VPUtilities/Public/VPViewportTickableActorBase.h#L11 ] - images: [ /uproperty/bitmask.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/bitmask.jpg ] - name: BitmaskEnum group: Data Decorators subgroup: Bitmask @@ -1204,7 +1205,7 @@ specifiers: - | UPROPERTY(EditAnywhere, meta=(AllowPreserveRatio)) FVector CustomScale; - images: [ /uproperty/allowpreserveratio.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/allowpreserveratio.jpg ] documentation: text: Used for `FVector` properties. It causes a ratio lock to be added when displaying this property in details panels. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/CoreUObject/UObject/UM_3 @@ -1221,8 +1222,8 @@ specifiers: This shows a kind of janky-looking wireframe diamond in-world at an offset relative to the parent actor. It also shows some debug text. See the screenshot. A lot of examples seem to treat this like a boolean, but it's a flag; it just checks for `HasMetaData`. images: - - /uproperty/makeeditwidget-property.jpg - - /uproperty/makeeditwidget-world.jpg + - /assets/data/UE-Specifier-Docs/images/uproperty/makeeditwidget-property.jpg + - /assets/data/UE-Specifier-Docs/images/uproperty/makeeditwidget-world.jpg documentation: text: Used for Transform/Rotator properties (also works on arrays of them). Indicates that the property should be exposed in the viewport as a movable widget. source: https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/CoreUObject/UObject/UM_3 @@ -1303,7 +1304,7 @@ specifiers: type: flag incompatible: [ BlueprintReadWrite, BlueprintSetter ] related: [ AllowPrivateAccess, BlueprintGetter ] - images: [ /uproperty/blueprintvisibility.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/blueprintvisibility.jpg ] comment: | `BlueprintReadOnly` and its sibling `BlueprintReadWrite` allow Blueprints to access C++-defined variables. `BlueprintReadOnly` variables can be read/used in Blueprint graphs but their values cannot be changed. @@ -1318,7 +1319,7 @@ specifiers: position: main type: flag incompatible: [ BlueprintReadOnly ] - images: [ /uproperty/blueprintvisibility.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/blueprintvisibility.jpg ] comment: | Allows Blueprint graphs to change the values of C++-defined variables. documentation: @@ -1450,7 +1451,7 @@ specifiers: // Better UPROPERTY(BlueprintReadWrite, meta=(DisplayName="PlantName", DeprecatedProperty, DeprecationMessage="PlantName is deprecated, instead use PlantDisplayName.")) FString DEPRECATED_PlantName; - images: [ /uproperty/deprecatedproperty-simple.jpg, /uproperty/deprecatedproperty-complex.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/deprecatedproperty-simple.jpg, /assets/data/UE-Specifier-Docs/images/uproperty/deprecatedproperty-complex.jpg ] required: [ DeprecationMessage ] related: [ BlueprintGetter ] documentation: @@ -1500,7 +1501,7 @@ specifiers: You must mark `ExposeOnSpawn` properties as either `BlueprintReadOnly` or `BlueprintReadWrite`. It doesn't seem to matter which for the purposes of `ExposeOnSpawn`. If you add `ExposeOnSpawn` without `BlueprintReadOnly` or `BlueprintReadWrite`, the UBT shows an error mentioning `BlueprintVisible` but I guess this is a generic term for both `BlueprintReadOnly` and `BlueprintReadWrite`. Some editor code that uses this meta flag checks for non-null string, some checks for `\"true\"` for truthiness. Some examples in the codebase use it like a flag, others like a bool. I would recommend to treat it like a bool. - images: [ /uproperty/exposeonspawn.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/exposeonspawn.jpg ] samples: - | UPROPERTY(BlueprintReadOnly, meta=(ExposeOnSpawn=true)) @@ -1705,7 +1706,7 @@ specifiers: type: bool position: meta utility: 2 - images: [ /uproperty/datatableimportoptional.webp ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/datatableimportoptional.webp ] comment: | When importing data to fill out a data table, by default all columns are required to exist in the CSV file. If an column does not exist in the CSV, an error is shown (see screenshot). @@ -2355,6 +2356,24 @@ specifiers: documentation: text: "Used for bypassing property initialization tests when the property cannot be safely tested in a deterministic fashion. Example: random numbers, guids, etc." source: https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/CoreUObject/UObject/UM_3 + - name: GetByRef + group: C++ + subgroup: Sparse Class Data + position: meta + type: flag + related: [ NoGetter ] + documentation: + text: Makes the "Get" Blueprint Node for this property return a const reference to the property instead of a copy of its value. Only usable with Sparse Class Data, and only when `NoGetter` is not present. + source: https://dev.epicgames.com/documentation/en-us/unreal-engine/metadata-specifiers-in-unreal-engine + - name: NoGetter + group: C++ + subgroup: Sparse Class Data + position: meta + type: flag + related: [ GetByRef ] + documentation: + text: Causes Blueprint generation not to generate a "get" Node for this property. Only usable with Sparse Class Data. + source: https://dev.epicgames.com/documentation/en-us/unreal-engine/metadata-specifiers-in-unreal-engine - name: AssetBundles position: meta type: string @@ -2450,7 +2469,7 @@ specifiers: type: flag comment: | Show key-value TMaps in a table format. - images: [ /uproperty/force-inline-row.png ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/force-inline-row.png ] samples: - | UPROPERTY(EditAnywhere) @@ -2468,7 +2487,7 @@ specifiers: For info on how this works check out [Choosing Functions in Editor](https://benui.ca/unreal/choosing-function-in-editor/). related: [ AllowFunctionLibraries, PrototypeFunction, DefaultBindingName ] - images: [ /uproperty/function-reference.webp ] + images: [ /assets/data/UE-Specifier-Docs/images/uproperty/function-reference.webp ] samples: - | UPROPERTY(EditAnywhere, meta=(FunctionReference, AllowFunctionLibraries, PrototypeFunction="/Script/Bruno.DiceFunctionLibrary.Prototype_DiceCheck", DefaultBindingName="DiceCheck"), DisplayName="Dice Check") diff --git a/yaml/ustruct.yml b/yaml/ustruct.yml index 3eaf1da..5984497 100644 --- a/yaml/ustruct.yml +++ b/yaml/ustruct.yml @@ -198,7 +198,7 @@ specifiers: UPROPERTY(VisibleAnywhere, Category = GameplayTags) FName TagName; }; - images: [ /ustruct/disablesplitpin.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/ustruct/disablesplitpin.jpg ] - name: HasNativeBreak @@ -243,7 +243,7 @@ specifiers: OutName = Cat.Name; OutCoatColor = Cat.CoatColor; } - images: [ /ustruct/hasnativebreak.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/ustruct/hasnativebreak.jpg ] - name: HasNativeMake @@ -253,7 +253,7 @@ specifiers: utility: 1 related: [ HasNativeBreak, DisableSplitPin ] position: meta - images: [ /ustruct/hasnativemake.jpg ] + images: [ /assets/data/UE-Specifier-Docs/images/ustruct/hasnativemake.jpg ] comment: | Similar to `HasNativeBreak`, `HasNativeMake` allows you to specify a `static` `UFUNCTION()` to use to create and fill the values of a struct, without having to make the values within the struct `BlueprintReadWrite`.