When using infinite or duration-based effects, required and ignored tags will have no effect on attribute modifiers. This appears to be caused by OnAttributeAggregatorDirty (GameplayEffect.cpp:2917) not populationg the FAggregatorEvaluateParameters structure with source or target tags prior to evaluating the aggregator. The lack of tags later results the checks in UpdateQualifies (GameplayEffectAggregator:10) being performed with an empty tag container.
This issue is similar to, but not fixed by, [Link Removed] and [Link Removed].
Callstack:
FAggregatorMod::UpdateQualifies(const FAggregatorEvaluateParameters &) GameplayEffectAggregator.cpp:15
FAggregatorModChannel::UpdateQualifiesOnAllMods(const FAggregatorEvaluateParameters &) GameplayEffectAggregator.cpp:156
FAggregatorModChannelContainer::EvaluateQualificationForAllMods(const FAggregatorEvaluateParameters &) GameplayEffectAggregator.cpp:291
[Inlined] FAggregator::EvaluateQualificationForAllMods(const FAggregatorEvaluateParameters &) GameplayEffectAggregator.cpp:402
[Inlined] FAggregator::Evaluate(const FAggregatorEvaluateParameters &) GameplayEffectAggregator.cpp:359
FActiveGameplayEffectsContainer::OnAttributeAggregatorDirty(FAggregator *, FGameplayAttribute, bool) GameplayEffect.cpp:2968
UAbilitySystemComponent::OnAttributeAggregatorDirty(FAggregator *, FGameplayAttribute, bool) AbilitySystemComponent.cpp:1794
[Inlined] Invoke(void (UAbilitySystemComponent::*)(FAggregator *, FGameplayAttribute, bool), UAbilitySystemComponent *&, FAggregator *&&, const FGameplayAttribute &, const bool &) Invoke.h:66
[Inlined] UE::Core::Private::Tuple::TTupleBase::ApplyAfter(void (UAbilitySystemComponent::*&)(FAggregator *, FGameplayAttribute, bool), UAbilitySystemComponent *&, FAggregator *&&) Tuple.h:311
TBaseUObjectMethodDelegateInstance::ExecuteIfSafe(FAggregator *) DelegateInstancesImpl.h:665
[Inlined] TMulticastDelegateBase::Broadcast(FAggregator *) MulticastDelegateBase.h:254
TMulticastDelegate::Broadcast(FAggregator *) DelegateSignatureImpl.inl:956
FAggregator::BroadcastOnDirty() GameplayEffectAggregator.cpp:605
FScopedAggregatorOnDirtyBatch::EndLock() GameplayEffectAggregator.cpp:671
FScopedAggregatorOnDirtyBatch::~FScopedAggregatorOnDirtyBatch() GameplayEffectAggregator.cpp:656
UAbilitySystemComponent::InhibitActiveGameplayEffect(FActiveGameplayEffectHandle, bool, bool) AbilitySystemComponent.cpp:304
FActiveGameplayEffectsContainer::InternalOnActiveGameplayEffectAdded(FActiveGameplayEffect &) GameplayEffect.cpp:3903
FActiveGameplayEffectsContainer::ApplyGameplayEffectSpec(const FGameplayEffectSpec &, FPredictionKey &, bool &) GameplayEffect.cpp:3871
UAbilitySystemComponent::ApplyGameplayEffectSpecToSelf(const FGameplayEffectSpec &, FPredictionKey) AbilitySystemComponent.cpp:842
UAbilitySystemComponent::ApplyGameplayEffectSpecToTarget(const FGameplayEffectSpec &, UAbilitySystemComponent *, FPredictionKey) AbilitySystemComponent.cpp:756
UAbilitySystemComponent::ApplyGameplayEffectToTarget(UGameplayEffect *, UAbilitySystemComponent *, float, FGameplayEffectContextHandle, FPredictionKey) AbilitySystemComponent.cpp:535
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-207719 in the post.
4 |
Component | UE - Gameplay |
---|---|
Affects Versions | 5.3.2 |
Target Fix | 5.6 |
Created | Feb 21, 2024 |
---|---|
Updated | Sep 30, 2024 |