unreal-gas-attributes-effects

Design and implement Gameplay Attributes and Gameplay Effects in Unreal Engine 5.8 GAS.

Updated May 28, 2023
One-click install
npx skills add https://github.com/steveulrich/ProjectB --skill unreal-gas-attributes-effects-steveulrich
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: unreal-gas-attributes-effects
Source: https://github.com/steveulrich/ProjectB/tree/main/.cursor/skills/unreal-gas-attributes-effects
Command: npx skills add https://github.com/steveulrich/ProjectB --skill unreal-gas-attributes-effects-steveulrich

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Unreal Engine's Gameplay Ability System has subtle rules around base versus current attribute values, effect duration types, clamping, stacking, and replication that frequently cause bugs like buffs that never revert, values exceeding bounds, or server/client disagreement. This Skill provides structured guidance to model, implement, tune, replicate, and debug Attributes and Gameplay Effects correctly. ## Core Features & Use Cases - Attribute and Effect Modeling: Choose between Instant, Duration, and Infinite Gameplay Effects, and between SetByCaller, Modifier Magnitude Calculations, and Execution Calculations, with clear selection tables. - Implementation Patterns: Ready-made flows for damage with meta-attributes, healing, timed buffs, equipment modifiers, regeneration, and max-value change policies. - Replication, UI, and Troubleshooting: Covers attribute replication with RepNotify macros, delegate-driven UI updates instead of Tick polling, and diagnostics for doubled modifiers, stale UI, and repeated death events. - Use Case: You are adding a damage system to a UE 5.8 project. The Skill walks you through defining a Health AttributeSet, building an Instant damage effect with an Execution Calculation writing to IncomingDamage, clamping in PostGameplayEffectExecute, and wiring UI to attribute-change delegates. ## Quick Start Use the unreal-gas-attributes-effects skill to design a Health attribute with damage, healing, and a timed buff for my Unreal Engine 5.8 project.

Frequently Asked Questions about unreal-gas-attributes-effects

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement damage with Gameplay Attributes in Unreal Engine GAS?▼

Create an Instant damage Gameplay Effect and use an Execution Calculation that captures source and target attributes, computes mitigated damage on the server, and writes it to a transient IncomingDamage meta-attribute. In PostGameplayEffectExecute, consume IncomingDamage, subtract from Health, clamp, and signal death only on the zero transition.

When should I use Instant vs Duration vs Infinite Gameplay Effects?▼

Use Instant effects for permanent base-value changes like damage, healing, or initialization. Use Duration effects for timed buffs and debuffs, and Infinite effects for equipment or passive modifiers that you remove explicitly by active effect handle.

Does Unreal Engine AttributeSet clamp values automatically?▼

No, AttributeSets have no automatic min/max clamping, and Data Table MinValue/MaxValue columns do not enforce bounds. Clamp proposed changes in PreAttributeChange and final executed results in PostGameplayEffectExecute or the authoritative calculation path.

Why does my GAS buff never revert after expiring?▼

A buff that never reverts is usually an Instant effect instead of Duration or Infinite, or removal does not target the retained active effect handle. Also check stacking, since another source or stack may still be active, and avoid direct attribute writes that bypass the effect aggregator.

How do I update UI from Gameplay Attributes without polling?▼

Bind the widget to the correct Ability System Component, read the initial value once, then subscribe to GetGameplayAttributeValueChangeDelegate for that attribute. Rebind when the represented actor or ASC changes, and never poll attributes on Tick.

Why do server and client damage values disagree in GAS?▼

Disagreement usually comes from non-authoritative damage execution or incorrect captured attribute snapshot intent. Keep final damage execution on the server, log source/target context, spec level, and SetByCaller magnitudes, and separate predicted hit feedback from the confirmed Health change.