Because the subobject's RepLayout is empty, it won't write anything to the bunch when recording a replay checkpoint. This means that when scrubbing to a time past a checkpoint, the destroyed subobject will not be recreated when the checkpoint's state is loaded.
The subobject will be recreated if scrubbing to a time before the checkpoint, since UActorChannel::WriteSubObjectInBunch will write an empty payload for any new subobjects, even if no properties are replicated.
Create a replicated subobject without any replicated properties, and spawn an instance of this object while recording a replay with checkpoints. When playing back the replay, scrub to a time past a checkpoint.
Expected: the replicated subobject will still exist
Actual: the replicated subobject will not exist after the scrub
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-156156 in the post.
| 0 |
| Component | UE - Networking |
|---|---|
| Affects Versions | 5.0 |
| Target Fix | 5.1 |
| Fix Commit | 20704432 |
|---|---|
| Main Commit | 20706805 |
| Created | Jun 8, 2022 |
|---|---|
| Resolved | Jun 17, 2022 |
| Updated | Jul 11, 2022 |