Introduction
Blueprint Attributes is a plugin extension for GAS, fully exposing Attribute Sets and Gameplay Attributes to Blueprint. Enabling a workflow 100% within the Editor.
No more native code requirement for Attributes in C++!
It addresses a fundamental limitation of the Gameplay Ability System, making UAttributeSet fully blueprintable. This enhancement allows for a seamless workflow entirely within the Unreal Engine Editor and Blueprints, simplifying the process of working with Attribute Sets and Gameplay Attributes.
Main Features
In the realm of GAS development, the struggle has always been real for Blueprint-centric teams. Until now, the Gameplay Ability System's reliance on native code for Attributes has posed significant hurdles, hindering rapid iteration. This plugin was developed to alleviate this issue!
-
Define Attributes in Blueprints: Create and manage Attributes entirely within the Editor.
-
Interactions with Gameplay Effects: Seamlessly integrate BP Attributes with Gameplay Effects.
-
Built-in Clamping: Built-in clamping functionality.
-
MMC and Exec Classes Support: Magnitude Modifier Calculation and Gameplay Effect Execution Calculation Classes directly within Blueprints.
-
Save Game Support and Serialization: Save game support, save and load attributes out of a Save Game object. Also tested with a higher level Save Game framework such as Easy Multi Save.
-
Compatible with Lyra and integrates nicely with GAS Companion, or your own GAS backend.
It's important to note that it doesn't change the way GAS works and integrates with existing GAS workflows (eg. We're still dealing with UAttributeSet
!)
Links
- Marketplace: https://www.unrealengine.com/marketplace/en-US/product/gameplay-blueprint-attributes (opens in a new tab)
- Example Demo project: GitHub Repository (opens in a new tab) - Latest packaged build (game build with executable) can be downloaded from the release page.
Videos
- Intro and Overview (opens in a new tab)
- Gameplay Effect Execution Calculation class in Blueprint (opens in a new tab)
- Save and Load Attributes (opens in a new tab)
Plugin Features
Blueprint Attributes comes equipped with an extensive set of features to enrich the developer experience and maintain compatibility with the existing Gameplay Abilities ecosystem and workflow. These features include:
-
Runtime Module: A runtime module provides a base UAttributeSet class for inheritance.
-
Custom UBlueprint and FBlueprintEditor: Custom classes that facilitate Blueprint-based Attribute management.
-
Editor Modules: Additional modules for streamlined editor integration.
-
Details Customizations: A wide array of classes and Slate widgets to fine-tune attribute details within the Unreal Editor.
-
Attribute Wizard: (Note: this is totally optional) A powerful tool designed to assist in transitioning from Attributes defined in Blueprints to C++ classes. It generates the appropriate C++ class based on the AttributeSet defined in Blueprints and the Attributes it contains. This allows developers to either inherit from the generated class or migrate entirely to native implementations.
It aims to simplify the workflow and maximize flexibility when working with Attributes in Unreal Engine.
Key Features of Blueprint Attributes Plugin
-
Quicker Iterations
- Empower Game Designers and Blueprint Developers to rapidly iterate on Attribute design.
-
Define Attributes in Blueprint
- Create Attribute property variables in the Blueprint Editor for immediate use in Gameplay Effects, K2 Nodes (e.g., GetFloatAttribute()), and other locations where a Gameplay Attribute picker is applicable.
-
Built-in Clamping
- Support for clamping via Data Table initialization, with handling of "Min Value" and "Max Value" columns.
- Customizable clamping using a special Gameplay Clamped Attribute Data property (a child of FGameplayAttributeData) with float or Attribute-based clamping.
-
Customized Blueprint Editor
- Blueprint Editor with Data Validation.
- Toolbar with quick-access buttons for:
- Adding Gameplay Attribute properties.
- Creation of Data Tables.
- Porting BP Attribute Sets to standard C++ Attribute Sets.
- Details Customizations to expose Attribute BaseValue to Blueprint and set it directly from the Details panel.
-
Interactions with Gameplay Effects
- Attribute Sets can override several functions to control how an Attribute responds when a Gameplay Effect attempts to modify it.
- Most of this API is exposed to Blueprints (e.g., PostGameplayEffectExecute, Pre/PostAttributeChange).
-
Replication
- Replication support for Gameplay Attributes defined in Blueprints, suitable for multiplayer projects.
- Handling of LifetimeReplicatedProps.
- Integration of rep notifies to manage predictively modified attributes by clients (equivalent to the C++ GAMEPLAYATTRIBUTE_REPNOTIFY macro).
-
Integration with K2 Nodes
- K2 Nodes (Blueprint nodes) that use FGameplayAttribute parameters now display a list of Attributes defined in Blueprints in the combo box, similar to Gameplay Attribute properties in Gameplay Effects.
-
Attribute Wizard for Blueprint to C++ Transition (Optional)
- A wizard and Scaffold module facilitate the transition from Blueprint-defined Attributes to C++.
- Generates proper C++ header and source files (with preview!) based on defined Gameplay Attributes in the BP Attribute Set.
-
Referencer Handlers
- Detects Attribute renaming in the Blueprint Editor.
- Replace previous references to the renamed Attribute in Gameplay Effects.
- Displays a list of modified properties and Blueprint nodes (K2Nodes) in the message log with clickable links for easy navigation to the referencers.