Reproduction Steps
Hit play in the place I attached. It destroys a part in workspace from the server. The client listens using a ChildRemoved
event and is able to reparent it to workspace.
--LocalScript
workspace.ChildRemoved:Connect(function(Descendant)
print(Descendant, "Removed!")
wait(1)
Descendant.Parent = workspace
print(Descendant,"Parent set to", Descendant.Parent)
end)
--ServerScript
workspace.Part:Destroy()
Output:
> Part Removed!
> Part Parent set to Workspace
Uploading: destroy_not_replicated.rbxl…
Expected Behavior
Parent should be locked on client and Destroy()
should be called disconnecting client sided connections.
Actual Behavior
Instances destroyed on the server can be reparented on the client. Is this supposed to happen? This would mean parts made on the server that have connections on the client would never be GC’ed.
Workaround
Manually calling Destroy()
on the client
Issue Area: Engine
Issue Type: Performance
Impact: Moderate
Frequency: Constantly
Date First Experienced: 2021-12-23 13:12:00 (-05:00)