[GAS + Iris] GameplayTagEventMap is wiped on clients when 'AbilitySystem.Fix.ReplicateTagCountContainerWithIris' is enabled

When AbilitySystem.Fix.ReplicateTagCountContainerWithIris is enabled, any delegates registered in GameplayTagCountContainer.GameplayTagEventMap on the client are silently cleared every time Iris replicates the GameplayTagCountContainer from the server. As a result, tag change events stop firing on the client after the first replication, even though the tag counts themselves are replicated correctly.

Environment

- Unreal Engine 5.7 - 5.8 with Iris Replication System enabled

- GameplayAbilities Plugin in use

- CVar net.Iris.Enable = 1

- CVar AbilitySystem.Fix.ReplicateTagCountContainerWithIris = true

Prerequisites

- A server-client session with an Actor owning a UAbilitySystemComponent being replicated via Iris

Steps to Reproduce

1. On the client, register a tag event delegate on the UAbilitySystemComponent’s GameplayTagCountContainer:

AbilitySystemComponent->RegisterGameplayTagEvent(FGameplayTag::RequestGameplayTag("MyTag"), EGameplayTagEventType::NewOrRemoved).AddUObject(this, &UMyClass::OnTagChanged);2. On the server, modify the tag state of that Actor (add or remove a tag).

3. Iris replicates the GameplayTagCountContainer to the client.

4. Inspect GameplayTagCountContainer.GameplayTagEventMap on the client.

Expected Result

- The delegate registered in GameplayTagEventMap is preserved and fires correctly on subsequent tag changes.

Actual Result

- GameplayTagEventMap is completely cleared (becomes empty).

- All previously registered delegates are lost, and tag change events no longer fire on the client.

Additional Notes

- When AbilitySystem.Fix.ReplicateTagCountContainerWithIris = false, tag presence (whether a tag is active or not) is

replicated, but the exact tag count is not.

TagContainerWithIris.zip(64.6 MB)

Hi,

Thank you for the detailed report and repro project! I’ve opened a new issue for this, UE-381939, which should be visible in the public tracker in a day or so.

Thanks,

Alex