#unreal

To determine when a particular ability ended, you can use the OnAbilityEnded delegate on the AbilitySystemComponent.

ASC->OnAbilityEnded.AddUObject(this, &ThisClass::AbilityEnded);

This function is passed a struct containing information about the ability which ended.

If you want to know that a specific ability ended, the easiest way to do it is to compare the spec handle:

//Store the spec handle you get from GiveAbility
SpecHandle = ASC->GiveAbility(...);
 
 
//Compare the spec handle in the delegate handler
void AMyActor::AbilityEnded(const FAbilityEndedData& AbilityEndedData)
{
	if(AbilityEndedData.AbilitySpecHandle == SpecHandle)
	{
		//Do something
	}
}

The ended data contains other info as well, such as the ability instance that ended, which could also be used to check it.