UGameplayAbility
#include "Abilities/GameplayAbility.h" Description
The base class for all GAS abilities. Subclass this (in C++ or Blueprint) to define what an ability does: override ActivateAbility to run logic and call EndAbility when done.
Caveats & Gotchas
- • Every ActivateAbility path must eventually call EndAbility — failing to do so leaks the ability activation and can break future activations.
- • InstancingPolicy controls whether a new instance is created per activation. NonInstanced abilities share the CDO; do not store per-activation data on the ability object when using NonInstanced.
- • CommitAbility must be called inside ActivateAbility to consume costs and cooldowns. Forgetting it allows the ability to fire without cost.
Example
Minimal ability override C++
void UMyFireAbility::ActivateAbility(const FGameplayAbilitySpecHandle Handle,
const FGameplayAbilityActorInfo* ActorInfo,
const FGameplayAbilityActivationInfo ActivationInfo,
const FGameplayEventData* TriggerEventData)
{
if (!CommitAbility(Handle, ActorInfo, ActivationInfo))
{
EndAbility(Handle, ActorInfo, ActivationInfo, true, true);
return;
}
// Do ability logic here
EndAbility(Handle, ActorInfo, ActivationInfo, true, false);
} Tags
Version History
Introduced in: unknown
| Version | Status | Notes |
|---|---|---|
| 5.6 | stable | — |
Feedback
Was this helpful?