Eventually, the ReplicateUsing function called out for a UPROPERTY is no longer being called. After investigation, it appears that the data is making it from the Server to the Client, but that the data is invalid.
Namely, in RepLayout.cpp : ReceivePropertyHelper, PropertiesAreIdentical always comes back true after the application is run for a certain amount of time.
This may be something related to setting the replicated property to NULL. In this specific case, Cmd.Type == 0x8 (for objects) and both values (Shadow + Cmd.Offset and Data + SwappedCmd.Offset) get evaluated to NULL UObject pointers.
Create a new, empty C++ project.
Download the attached files, and add them to the project.
Change '#include "Replication.h"' in TestReplicator.cpp and TestActor.cpp to the include specific to the new project.
Compile and start the project.
Place a TestActor in the world.
Enable "Run Dedicated Server".
PIE and open the output log.
Expected: Every 5 seconds you will see 2 Error Messages like the following:
LogTemp:Error: nullptr is set on server
LogTemp:Error: Object is set on client, content is : null
Actual: Initially every 5 seconds, you see 2 messages. Eventually, the client message stops displaying.
(Note, files have users Copyright as they were downloaded from UDN).
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-37609 in the post.
6 |
Component | UE - Networking |
---|---|
Affects Versions | 4.12, 4.13, 4.14 |
Target Fix | 4.17 |
Created | Oct 20, 2016 |
---|---|
Resolved | Apr 27, 2017 |
Updated | Jun 30, 2017 |