Gameplay Blueprint Attributes
https://www.fab.com/listings/a7de98c4-51f5-4c4a-8dbc-52aff9d14e40
Blueprint Attributes is a plugin extension for the Gameplay Ability System (GAS).
It addresses a fundamental limitation, making AttributeSet Blueprintable and fully exposing Gameplay Attributes and Attribute Sets to Blueprints.
By default, Unreal Engine and its GAS plugin requires Gameplay Attributes and Attribute Sets to be created exclusively in native code, rendering Blueprint creation impossible. This limitation can be restrictive for Game Designers and Blueprint Developers, hindering their ability to iterate swiftly on Attribute design.
This plugin tries to alleviate this issue and enables a workflow 100% within the Editor and Blueprints for Attribute Sets and Gameplay Attributes.
It is important to note that it doesn't change the way GAS works and integrates fully with existing GAS workflows (BP defined Attribute Set are still UAttributeSet).
Features
This plugin, Blueprint Attributes, seek to enhance the overall experience of creating and managing Attributes and Attribute Sets, entirely in the Editor.
Its main noticeable features include:
- Define Attributes in Blueprints
- Interactions with Gameplay Effects
- Built-in Clamping
- MMC (Magnitude Modifier Calculation) and Exec Classes (Gameplay Effect Execution Calculation), implementable in Blueprint
- Save Game support and Serialization
- Replication and Multiplayer support
- Standalone / No dependencies (Other than GameplayAbilities plugin itself)
- Compatible with Lyra and integrates nicely with GAS Companion, or your own GAS backend.
It was developed as one solution to break free from the constraints of native code when working with GAS Attributes and Attribute Sets in Unreal Engine. By offering a user-friendly and versatile approach to attribute management, it empowers developers, accelerates iteration cycles, and seamlessly integrates with existing GAS workflows.
Scaling your project shouldn't be so difficult
By default, and without the Blueprint Attributes plugin, Attributes and Attribute Sets must be created in native code; they cannot be created in Blueprints. Blueprint Attributes aims to alleviate that issue and empower Game Designers and Blueprint Developers to quickly iterate on their Attribute design.
As your project grows, it inevitably slows down—especially if the team has limited C++ resources or few/no C++ developers. Tasks like defining new Attribute Sets, adding, renaming, or removing Gameplay Attributes begin to consume time and create bottlenecks for C++ engineers.
This plugin seeks to improve that.
It comes with nearly 70 C++ classes to provide the best developer experience and remain faithful to the Gameplay Abilities ecosystem and workflow. These include a runtime module with UAttributeSet to inherit from, custom UBlueprint and FBlueprintEditor, editor modules, multiple Details Customizations classes, and Slate widgets.
Additionally, it includes a scaffolding module, or "Attribute Wizard," to aid in transitioning from Attributes defined in Blueprints to C++ classes once the prototype phase is complete (Note: this is optional). The wizard uses the AttributeSet created in Blueprint and the Attributes it defines to generate the appropriate C++ class. You can then choose to either inherit from it (Attribute properties defined in Blueprints would now be defined in native code, as before), or eliminate the previous Blueprint implementation and update all Gameplay Attribute references (in Gameplay Effects, K2 Nodes, etc.) to their new native counterparts.
Credits
Special thanks to Metaseven, MighteeMouse, Drakynfly, Kite and OneSilverLeaf on Discord for feedback and testing.
To Epic to keep improving GAS release after release, and making it more accessible (to Blueprint developers and in general).
Technical Details
Features
- Define Gameplay Attributes in Blueprint
- UAttributeSet API exposed to Blueprints (PostGameplayEffectExecute, Pre/PostAttributeChange, ...)
- Built-in Clamping
- Customized Blueprint Editor (Toolbar, Data Validation, Details Customizations)
- Replication
- MMC and Exec Classes support (implementable in Blueprints)
- Save Game support (save / load Gameplay Attributes)
Miscellaneous
- Wizard to port Blueprint defined Attributes to C++ (Note: This is optional)
- Referencer Handlers (when an Attribute is renamed in the Blueprint Editor, replaces previous references in Gameplay Effects, to the new Attribute name)
Code Modules
- BlueprintAttributes (Runtime) - Main runtime module
- BlueprintAttributesEditor (Editor) - Main editor module
- BlueprintAttributesDeveloper (UncookedOnly) - Uncooked only implementing custom K2 Nodes
- BlueprintAttributesScaffold (Editor) - Editor module for C++ generation / scaffolding
- BlueprintAttributesEditorCommon (Editor) - Editor module with shared common code and utilities
Plugin Dependencies
- GameplayAbilities (engine plugin)
- RigVM (engine plugin, for engine 5.3 and higher)
Number of Blueprints: 0
Number of C++ Classes: ~70 (67 header files)
Network Replicated: Yes
Supported Development Platforms: Windows, Linux, MacOS
Supported Target Build Platforms: Windows, Linux, MacOS