This was previously reported to DevForum under ScriptingSupport, but not addressed as a bug within the engine: Parenting character to nil then parenting…
To produce this, simply set a character’s parent to nil, then set it back to Workspace. Below is some sample code that will work 100% of the time in a Script placed in ServerScriptService on an empty baseplate. It seems that :MoveTo() is fired toward 0,0,0. Occasionally forcefield will stay on forever. This is completely unexpected and “phantom” behavior.
game.Players.PlayerAdded:connect(function(player)
local character = player.Character or player.CharacterAdded:Wait()
task.wait(3)
character.Parent = nil
task.wait(1)
character.Parent = game.Workspace
end)
The “phantom” invocation of :MoveTo(0,0,0) and forcefield persistence needs to be addressed as a bug.