This seems to happen because FObjectReplicator::ReadyForDormancy will continually return false while FObjectReplicator::CanSkipUpdate returns true. In ReadyForDormancy, the actor's SendingRepState history will not be at its end (SendingRepState->HistoryStart != SendingRepState->HistoryEnd), but because CanSkipUpdate returns true, UpdateChangelistHistory will not be called to update the value of HistoryStart. This prevents the actor from going dormant, leading to the actor being considered for replication much more often than when push model is disabled.
In a project with push model enabled, create an initially dormant, replicated actor that enables push model for all of its replicated properties.
With bad network emulation settings enabled, have the server flush the actor's net dormancy and change one of its properties' values.
Expected: the client will receive the change to the replicated property, and the actor will become dormant again
Actual: the actor is unable to go back to being dormant
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-191014 in the post.
1 |
Component | UE - Networking |
---|---|
Affects Versions | 5.3 |
Target Fix | 5.3 |
Created | Jul 24, 2023 |
---|---|
Resolved | Aug 1, 2023 |
Updated | Mar 1, 2024 |