I have a script that manually loads a character and teleports that player's character to a certain part's position. Here's the script:
script.Parent.loadcharacter.Value = true -- Since :loadcharacter() can only work in a regular script, I made a value and put a Changed function inside the value so that whenever the value changes, the player respawns
repeat wait() until game.Players.LocalPlayer.Character
game.Players.LocalPlayer.Character.Torso.CFrame =
CFrame.new(game.Workspace.teleportPlayerHere.Position)
The problem is that the player doesn't move. I tried putting wait(2) before the player teleports and after the player respawns, which worked, but I want it to do it as fast as it can. Any help?

1 comment
Try using ':wait()' on certain things. Such as "local plr = game.Players.LocalPlayer or game.Players.LocalPlayer:wait()", and "local chr = plr.Character or plr.Character:wait()", the ':wait()' which is built in for objects also works on properties.