Try disabling players.CharacterAutoLoads maybe? Sounds like the reparenting of the character may be causing it to fire CharacterRemoving or in some way flagging as the character being removed. Only thing is that you’d have to manually load the character on the server though.
Well disabling autoloads might ruin the game itself, since this is a kind of thing that can be loaded across any game if you have permissions to run requires in any way.
Could you try and see if it keeps the player from having their character removed though? You can still call player:LoadCharacter(), it’s just that it shouldn’t automatically cause a new character to be spawned once the character is removed/dies/similar
Yeah, you should be able to manually recreate character auto loading though. You’d just have to hook into humanoid.Died, then once that fires, optionally wait a certain amount of time, then respawn the character via player:LoadCharacter. You might need to destroy the character as well, not too sure if loading the character will remove the old character