Description

In 4.14, changes were introduced to share replicated state between objects on the server (Shadow State) this was done to allow sharing property comparisons to determine when objects needed to replicate to clients.

On the server, the shared replicated state is stored in FRepChangelistState::StaticBuffer. For clients, or when receiving properties, the state is stored in FRepState::StaticBuffer.

FObjectReplicator::ValidateAgainstState was never updated to reflect that, so on the server we still use the FRepState version, which always reports errors.

Steps to Reproduce
  1. Run a FN Server and Client.
  2. On the server, make sure the "net.DormancyValidate" CVar is set to 1.
  3. Gather some materials, and build something.
  4. Wait a few seconds for the building actor to go dormant.
  5. Hit the building actor with a pickaxe (or any weapon)

Expected:
No warnings are logged

Actual:
Warnings like "FDiffPropertiesImpl: Property different: <PropertyType> <PathToProperty> always complain about being different when the actor becomes dormant and when it becomes no longer dormant.

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-65603 in the post.

0
Login to Vote

Fixed
ComponentNetworking
Affects Versions4.154.164.174.184.194.20
Target Fix4.22
Fix Commit4707991
CreatedOct 22, 2018
ResolvedJan 11, 2019
UpdatedJan 14, 2019