Pull Request #107

Fix TriggerEventData not forwarded to parent call in PreActivateAbility

on September 11th, 2026

Fix TriggerEventData not forwarded to parent call in PreActivateAbility #

This issue was originally created here as I did not have access to this repository at the time.

Describe the bug
The UGSCGameplayAbility does not forward the TriggerEventData in its super call. This results in CurrentEventData never being assigned.

Specifically without passing it to the super, this line will not function correctly:
https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Plugins/Runtime/GameplayAbilities/Source/GameplayAbilities/Private/Abilities/GameplayAbility.cpp#L980

To Reproduce

  1. Activate an ability subclassed from UGSCGameplayAbility.
  2. Perform some operation needing CurrentEventData from UGameplayAbility
  3. Observe that it is null

Expected behavior
TriggerEventData should be passed in the super call and CurrentEventData should be correctly assigned.

Actual behavior
CurrentEventData is null.

Code

void UGSCGameplayAbility::PreActivate(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo* ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, FOnGameplayAbilityEnded::FDelegate* OnGameplayAbilityEndedDelegate, const FGameplayEventData* TriggerEventData)
{
Super::PreActivate(Handle, ActorInfo, ActivationInfo, OnGameplayAbilityEndedDelegate);

Should instead be:

void UGSCGameplayAbility::PreActivate(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo* ActorInfo, const FGameplayAbilityActivationInfo ActivationInfo, FOnGameplayAbilityEnded::FDelegate* OnGameplayAbilityEndedDelegate, const FGameplayEventData* TriggerEventData)
{
Super::PreActivate(Handle, ActorInfo, ActivationInfo, OnGameplayAbilityEndedDelegate, TriggerEventData);

Environment (please complete the following information):

  • Engine version: 5.7
  • GAS Companion Plugin version:6.2.1+5.7
  • OS: Windows

Additional context
This is not likely to affect many other users. I am deferring ability activations via a delegate in C++, and when trying to handle the delegate callback the CurrentEventData is unassigned. Users implementing void K2_ActivateAbilityFromEvent(const FGameplayEventData& EventData) are unaffected as it receives the current event data in parameters.