The Duration Magnitude property is not zeroed out if a Gameplay Effect's duration policy is changed from HasDuration to Instant. As a result, UAbilitySystemComponent::ApplyGameplayEffectSpecToSelf early outs, preventing client prediction on instant GEs because the Spec's Period property is greater than zero. 

Steps to Reproduce
  • Create a Gameplay Effect with a HasDuration Duration Policy and set a non zero value in the Duration Magnitude property
  • Compile/Save and then change the Duration policy to instant - Compile/Save
  • Note that the non zero Duration Magnitude is not zeroed out and is serialized into the GE's CDO. This can be quickly verified by switching the Duration Policy back to HasDuration and observing that the duration Magnitude has been preserved.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-192211 in the post.

Login to Vote

ComponentUE - Gameplay - Gameplay Ability System
Affects Versions5.2
Target Fix5.5
CreatedAug 4, 2023
UpdatedFeb 13, 2024
View Jira Issue