GameplayAbility Instantly Cancels

Hi all,

I’m creating my first GameplayAbility using Blueprints. I’m seeing that the GameplayAbility is activated, but is instantly cancelled.

I have a PlayerState which contains an AbilitySystemComponent. My Character (default pawn class) accesses the AbilitySystemComponent from GetPlayerState[0] and registers the GameplayAbility.

Then using an EnhancedInputAction event on my Character I activate the registered GameplayAbility via a Gameplay Tag Container.

The GameplayAbility simply plays a montage and waits for it to end. However, the montage never plays and the “OnCancelled” execution of the “PlayMontageAndWait” block is immediately called.

GameplayAbility:


Character:


Thank you!

Nevermind, I have found the issue:

“LogAbilitySystem: Warning: UAbilityTask_PlayMontageAndWait called in Ability GA_Attack_C_0 failed to play montage AM_Slash; Task Instance Name None.”

Edit: curious why the Animation Montage isn’t playing
Edit: Thinking it has to do with my Animation Blueprint

Back to square one haha. My Gameplay Ability is not being activated.

I am adding the Gameplay Ability to an AbilitySystemComponent and then activate the ability by tag. Using the blueprint debugger I can see that the TryActivateAbilitiesByTag and GiveAbility actions are reached. I access the same AbilitySystemComponent in both actions (or so im assuming, unless the player state changes, but it should not).

I can see that the Gameplay Ability is added to the AbilitySystemComponent:

I also see that the owner is my ARPGAbilitySystemComponent, not my Character blueprint, perhaps that is the issue?

Issue resolved!

Solution:

  1. The PlayerState (PS) creates the AbilitySystemComponent (ASC) in its constructor.
  2. The PlayerCharacter’s (PC) GetAbilitySystemComponent() accesses the PlayerState’s ASC
  3. The PC gives the ability to the PS’s AbilitySystemComponent
  4. The PC calls TryActivateAbility on the PS’s AbilitySystemComponent
1 Like