Developer Notes

This issue has been closed as 'Won't Fix' due to an extended period of time without updates. If this issue is important to you please let us know by posting on the AnswerHub or UDN, and Epic will re-open the ticket for further review.

Description

User Description:

In USceneComponent::PreNetReceive the old (in this case, non-null) AttachParent is being cached into NetOldAttachParent. In USceneComponent::PostRepNotifies, AttachParent and NetOldAttachParent are exchanged before then running AttachToComponent on NetOldAttachParent.

After the exchange, and before the AttachToComponent, this means that AttachParent is its original, pre-replicated, value (which in this case is not null), and NetOldAttachParent now has the newly replicated value. In the case of a non-null parent being replicated, the value of NetOldAttachParent goes through AttachToComponent, causing AttachParent to be overwritten, which means it then matches the host. BUT, when it's null, AttachToComponent will basically just ignore it, which means AttachParent will stay the original, pre-replicated value (which in this case, is non-null).

Steps to Reproduce
  1. Download and open the project: [Link Removed]
  2. Play in New Window with 2 Players
  3. Walk over to the "Incorrect Parent on Client on Detach" example

Result: When the server detaches from its parent, the client is offset and remains attached to the original parent.

Expected: The client would detach from the parent

Have Comments or More Details?

Head over to the existing Questions & Answers thread and let us know what's up.

6
Login to Vote

Won't Fix
ComponentUE - Networking
Affects Versions4.15
CreatedApr 6, 2017
ResolvedMar 26, 2018
UpdatedJan 30, 2019