Gameplay Ability System - cooldown recovery rate

Hello, I would like to implement a dynamic cooldown time, known as skill cooldown recovery rate, which may appear in some games. The principle is that in each tick, the cooldown time should be reduced by DeltaTime. However, if I have a 30% skill cooldown recovery rate, it should be reduced by DeltaTime multiplied by 1.3.

Intuitively speaking, a 30% skill cooldown recovery rate would be DeltaTime multiplied by 0.3, not 1.3. A 30% rate would be about a third of the normal rate. 1.3 would be the result of a 30% skill cooldown recovery rate increase. Either way, that could be done just using a multiply node- as you said.

RemainingCooldown = Cooldown;


RemainingCooldown -= DeltaTime * RecoveryRate;
if (RemainingCooldown <= 0)…

I think I may not have expressed myself clearly, causing some misunderstanding. In the Gameplay Ability System (GAS), skill cooldowns are usually implemented using Gameplay Effects (GE). GAS determines the remaining cooldown time of a GE by calculating the difference between the StartWorldTime and Duration. Now, I want to incorporate a skill cooldown recovery rate, but I’m unsure how to modify it.

Ah- I didn’t know you were using GAS.

In that case, that’s already built in via duration magnitude.

You’ll want to change MagnitudeCalculationType and AttributeToCapture. You may also need to adjust the coefficient, pre/post multiply additive value, and the AttributeCalculationType to get your desired effect.