This Blueprint Function Library provides designers with comprehensive tag-based attribute access and manipulation without requiring C++ knowledge. It abstracts the WC GAS Ally attribute system's registry and definition system, enabling designers to get/set attribute values, access attribute metadata, perform attribute comparisons, and format attributes for UI display entirely through gameplay tags in visual scripting.
Any Blueprint context where you have access to an Ability System Component (ASC) and World Context Object. This library works with the WC GAS Ally attribute registry system to provide runtime attribute operations using gameplay tags (e.g., "Attribute.Vital.Health"). Functions are available in Blueprint graphs including Event Graphs, Functions, and Macros for Actors, ActorComponents, Widgets, and Subsystems.
| Blueprint Name | C++ Name | Pins | Brief Description of Purpose |
|---|---|---|---|
| Get Attribute Value (By Tag) | GetAttributeValueByTag |
Input: World Context, ASC, Attribute Tag<br>Output: Return (float) | Gets current attribute value including all modifiers using gameplay tag lookup |
| Get Attribute Base Value (By Tag) | GetAttributeBaseValueByTag |
Input: World Context, ASC, Attribute Tag<br>Output: Return (float) | Gets attribute base value before modifiers are applied using gameplay tag lookup |
| Set Attribute Base Value (By Tag) | SetAttributeBaseValueByTag |
Input: World Context, ASC, Attribute Tag, New Value<br>Output: None | Sets attribute base value using gameplay tag lookup without affecting modifiers |
| Does Attribute Exist | DoesAttributeExist |
Input: World Context, Attribute Tag<br>Output: Return (bool) | Validates if an attribute tag is registered in the WC GAS Ally registry |
| Get Attribute Definition (By Tag) | GetAttributeDefinitionByTag |
Input: World Context, Attribute Tag<br>Output: Return (Attribute Definition) | Retrieves full attribute definition data asset containing display name, icon, clamping rules, etc. |
| Get All Attributes | GetAllAttributes |
Input: World Context<br>Output: Return (Array of Attribute Definitions) | Returns all registered attributes sorted by SortPriority for dynamic UI generation |
| Get Attributes By Category | GetAttributesByCategory |
Input: World Context, Category Tags, Match Any (bool)<br>Output: Return (Array of Attribute Definitions) | Filters and returns attributes matching category tags (e.g., "Attribute.Type.Vital") |
| Get Gameplay Attribute (By Tag) | GetGameplayAttributeByTag |
Input: World Context, Attribute Tag<br>Output: Return (FGameplayAttribute) | Converts attribute tag to FGameplayAttribute struct for use in native GAS functions |
| Format Attribute Value | GetFormattedAttributeValue |
Input: Attribute Definition, Value (float)<br>Output: Return (Text) | Formats attribute value using definition's DisplayFormat string (e.g., "{0:F0}", "{0:F1}%") for UI display |
| Get Attribute Display Name | GetAttributeDisplayName |
Input: Attribute Definition<br>Output: Return (Text) | Extracts localized display name from attribute definition for UI labels |
| Get Attribute Icon | GetAttributeIcon |
Input: Attribute Definition<br>Output: Return (Texture2D) | Extracts icon texture from attribute definition for UI representation |
| Get Attribute Display Color | GetAttributeDisplayColor |
Input: Attribute Definition<br>Output: Return (Linear Color) | Extracts UI color from attribute definition for visual theming |
| Get Attribute Percentage | GetAttributePercentage |
Input: World Context, ASC, Attribute Tag, Max Attribute Tag<br>Output: Return (float) | Calculates ratio between attribute and its max (e.g., Health/MaxHealth) as 0.0-1.0 for progress bars |
| Is Attribute At Max | IsAttributeAtMax |
Input: World Context, ASC, Attribute Tag, Max Attribute Tag, Tolerance (float)<br>Output: Return (bool) | Checks if attribute equals or exceeds its maximum value within floating point tolerance |
UObject* - Required for accessing the WC GAS Ally attribute registry subsystemUAbilitySystemComponent* - The Ability System Component containing the attributes to query/modifyFGameplayTag - Gameplay tag identifying the attribute (e.g., "Attribute.Vital.Health")