Pull Request #101

Make sure both CommitAbilityCooldown and CommitAbilityCost behave the same as CommitAbility

on August 17th, 2025

Make sure both CommitAbilityCooldown and CommitAbilityCost behave the same as CommitAbility #

Introduced K2_CommitAbilityCost and K2_CommitAbilityCooldown overrides in UGSCGameplayAbility.

This fix is more of a workaround for what could be considered an engine issue.

This change ensures the same behavior for any commit-related delegates (such as OnAbilityCommit, OnCooldownStart, OnCooldownEnd, etc. in both UGSCCoreComponent and UGSCUserWidget) where information like Time Remaining, Duration etc. are not properly calculated when CommitAbilityCooldown or Cost are used instead of CommitAbility.

The reason being NotifyAbilityCommit is called in engine:

  • after commit happens for CommitAbility
  • but before for both K2_CommitAbilityCooldown and K2_CommitAbilityCost

This results in methods such as UGameplayAbility::GetCooldownTimeRemaining() returning a 0 value (since commit didn't happen yet for any synchronous delegate called this frame).