In UE’s GAS, even with the GameplayAbilityInstancingPolicy
set to InstancedPerActor
, it seems possible for abilities of the same class to be instanced multiple times in a actor. Is this a bug, or is it intended behavior?
My initial understanding was that, with this policy, duplicate GA instances would not be created on a single actor; instead, if a second GiveAbility
request occurred, it would reuse the first GA instance. However, in reality, duplicate instances are indeed being created.
This example comes from Lyra, where GA_Interact
is defined in both LAS_InventoryTest
and AbilitySet_InventoryCore
DAs, leading to two GA_Interact
instances on a single actor. This results in an undesirable situation.
I’m considering creating a function in the custom Ability System Component to prevent granting duplicate abilities of the same class (something like GiveAbility_CheckDuplicated
). However, I’m debating whether to handle this scenario by branching based on GameplayAbilityInstancingPolicy::InstancedPerActor
or by creating a custom policy to manage it separately.