The GameplayDebuggerCategoryReplicator calls SetActorHiddenInGame(!bIsLocal) during its BeginPlay, so this actor is hidden on the server but visible on the client. However, bHidden is a replicated value, so the server will attempt to replicate its value to the client. This normally isn't a problem, as the GameplayDebuggerCategoryReplicator on the client will apply the server's value for bHidden before calling BeginPlay, where the server's value will be overriden. However, if the server doesn't receive the client's acknowledgment that it's received the property before its next net update, such as because of lag or packet loss, it will resend the value for bHidden, resulting in the actor being hidden on the client.
In PIE, use the network emulation settings to increase latency and packet loss between the client and server.
Occasionally, the client's GameplayDebuggerCategoryReplicator will be hidden, despite the actor calling SetActorHiddenInGame(false) during its BeginPlay on the client.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-149710 in the post.
0 |
Component | UE - AI - Debugging |
---|---|
Target Fix | 5.1 |
Created | Apr 20, 2022 |
---|---|
Resolved | May 5, 2022 |
Updated | May 16, 2022 |