Old Characters Aren't Destroyed

In a place of good size like our game that is depicted, if a player is :LoadCharacter()'d while they are already undergoing that process, their past character still exists in the nil space. The video below highlights the output during the respawning of a local scripting printing :GetFullName() of the HumanoidRootPart. After the player begins respawning, it then starts referencing their old Character since it doesn’t start with “Workspace.”

The image below depicts the output and evidence older scripts are still running. The scripts are localscripts located in StarterCharacterScripts. They reference the character as such:

and print(HRP:GetFullName()) in a loop.


The above output shows multiple instances of the script are currently running, since the only one that is actually in the active character says “- Client - Building Lighting:433”

Respawn Test Script:

This issue occurs 100% of the time when given a sizable place. In a baseplate, I was unsuccessful in reproducing it.


I have attempted to reproduce this but have been unable to. Can you maybe share more of the localscript, more specifically if the printing is being done in any new threads or if the script gets destroyed by itself (strange request but this will cause the script to no longer stop when :Destroy() gets called on it). Here is my attempted repro file, you can see that even when the server calls :LoadCharacter() 10 times on separate threads (I did this because :LoadCharacter() is yielding), only one guid gets printed at a time.
File.rbxl (28.8 KB)

1 Like

i’ve put a ticket in to investigate this issue. If you manage to create a repro place you can give me, that would be very helpful


It looks like the biggest factor is what the script is parented too and he hasn’t responded to what it is.
A Model, Folder, BasePart, Value Object? That could contribute alot potentially to the cause.

I’m having this issue as well on my game and am losing several players. It only happens to the zombies (they have custom characters) and it isn’t allowing them to move at all. This all came from the new ROBLOX update, before the update this did not occur. I’m very frustrated with this bug, I’ve lost over 200 concurrent players. I tried to make a post earlier about it, but don’t have access to do so.

My game: 🧟Zombie Outbreak - Roblox

1 Like

Instead of :LoadCharacter() have you tried cloning a dummy model and then applying a HumanoidDescription to it by using:

(Assuming you’re using :LoadCharacter())

local desc = Players:GetHumanoidDescriptionFromUserId(userid)