Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

How do I make this teleportation Script not reset rotation?

Whenever I teleport, the rotation of the player is reset

local Player = game.Players.LocalPlayer
local Mouse = Player:GetMouse()

Mouse.KeyDown:connect(function(Key)
    Key = Key:lower()
    if Key == 'e' then
        local humroot = game.Workspace[Player.Name]:FindFirstChild("HumanoidRootPart")
        humroot.CFrame = CFrame.new(humroot.Position.X + 50, humroot.Position.Y, humroot.Position.Z - 30)
    end
end)

1 answer

✓ Accepted answer

Your script seems a little out of the ordinary; I'll give you another simpler one that you can use for reference.

So instead of moving the player's humanoid around using CFrames (used in camera positions), you can use vectors (which are the same thing but for moving around objects such as blocks or players). You can do this by moving the player's character. The player's character is actually a grouped model in workspace with the player's name (game.Workspace["Player's name"]). Grouped models are a bit different from normal parts in game. Rather than using "game.workspace["Player's name"].position", you use "game.workspace["Player's name"]:MoveTo()".

Here's an example as follows:

local plr = game.Players.LocalPlayer --The localplayer
local Mouse = Player:GetMouse() --Gets the mouse

Mouse.KeyDown:connect(function(key) --The function you used to get what key the player pushed
	Key = Key:lower() --Makes sure the the key is turned lower case
	if Key == 'e' then --Checks if the key "e" is pressed
		plr.Character:MoveTo(Vector3.new(x, y, z)) --The player's character (game.Workspace["Player's name"]) is moved to a vector in which the coordinates are as follows: x, y, z
	end
end)

If you have any problems or questions please contact me. ;)

This discussion is preserved as it was. New answers, comments, and votes are closed.