I’ve now come across 2 occasions where this has been an annoyance.
While developing some guns, I created welds on the server and welds from the client in the character. The client was supposed to delete the server welds so that after the client animated and the server event fired, the local animation wouldn’t get overwritten by the choppy server animations. Turns out that :Destroy() replicates on anything inside of a character, so I couldn’t do that. Instead, I had to remove all welds from the character on the server, and then put them back in a model in the workspace called “Player1Joints”, and go back and delete those welds locally and replace them.
While working on death sounds, I have a flatline noise play locally when the player dies, but I play a death/scream noise for other players. Because there is no sound.position property, I have to create a part where the head is (can’t use the head because if I deleted the sound there the change would replicate) from the server, tell the client to delete that part, and then play the sound from the server so that death sound is heard by everyone else.
I don’t see why :Destroy() should replicate inside the character, and if it does need to function, then only the necessary items should be whitelisted. Sounds should not replicate :Destroy(). I recently started passing animations onto the client with no involvement from the server, so #1 isn’t really that much of an issue, but the sound one is.
If anyone has a better method of dealing with this, please let me know. If you had a similar problem with :Destroy() replicating, please post the issue and your solution in case myself or others end up running into the same issue.