Hi!
Once you mentioned this, I looked a bit deeper into the replication problem and did some tests. The character on client’s side won’t be completely removed automatically.
With the last year’s Destroy() news (Destroy() Can Now Replicate to Clients), one would expect local character to be cleaned up too, but the automatic removal apparently differs from manual.
The behaviour puzzled me for a while until I saw this at the very beginning of the announcement haha:
Which means,
-
unaltered automatic behavior will not destroy the character locally;
-
setting
player.Charactertonilwill not destroy the character locally; -
calling
player:LoadCharacter()will not destroy the character locally; -
calling
player.Character:Destroy()will destroy the character locally (but don’t do this*); -
calling
player.Character:Destroy()afterplayer.Characterhas been set tonilwill not destroy the character locally.
*Destroying immediately causes a bunch of “Player:Move called, but player currently has no humanoid. (x953)” warnings.
I guess we’ll be using a good old remote event for local removal (along with option 5).