GameObject.Destroy = NetworkServer.Destroy

After much experimenting its become clear to me that calling GameObject.Destroy on a networked object on the host is the same thing as calling NetworkServer.Destroy; for some very complex reasons I really dont want to go into explaining right now I dont want this. I want to be able to destroy the objects when I want, where I want, not when unity decides to send the message to the clients. Is there a way to prevent this event from being sent when calling GameObject.Destroy? Also its pretty annoying this is undocumented behavior I lost three days debugging this.

Random necroanswer: UNET source hints that NetworkServer.Destroy() is called by NetworkIdentity in the OnDestroy handler[1]. NetworkIdentity is a sealed class so there’s little hope in overriding that behavior. One thing to try could be removing the NetworkIdentity component on the clients, which should stop them from being destroyed by the server.

[1] https://bitbucket.org/Unity-Technologies/networking/src/07fd9d678e96de1ab215076f5e6fdb1bef7aaac8/Runtime/NetworkIdentity.cs?at=2018.1&fileviewer=file-view-default#NetworkIdentity.cs-282