I want to teleport the player to a position using SetPrimaryPartCFrame, but it teleports me above the roof. Though for a second it teleports me to the right place but a second later teleport me above? I was using :MoveTo and it was the same but people said SetPrimaryPartCFrame would work but its still the same. Heres the code im using: (this is a local script)
local stage = game.workspace.Stages:FindFirstChild(game.Players.LocalPlayer:WaitForChild("le
aderstats").Stage.Value)
local UserInputService = game:GetService("UserInputService")
local function onInputBegan(input,gameProcessed)
if input.UserInputType == Enum.UserInputType.Keyboard then
local keyPressed = input.KeyCode
if keyPressed == Enum.KeyCode.Space then
game.ReplicatedStorage.RespawnEvent:FireServer()
script.Parent:SetPrimaryPartCFrame(CFrame.new(stage.Position))
end
end
end
UserInputService.InputBegan:connect(onInputBegan)
This is the RespawnEvent script:
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local remoteEvent = ReplicatedStorage:WaitForChild("RespawnEvent")
local function Respawn(player)
player:LoadCharacter()
end
remoteEvent.OnServerEvent:Connect(Respawn)
Also tried this, didnt work:
local stage = game.workspace.Stages:FindFirstChild(game.Players.LocalPlayer:WaitForChild("le
aderstats").Stage.Value)
local UserInputService = game:GetService("UserInputService")
local function onInputBegan(input,gameProcessed)
if input.UserInputType == Enum.UserInputType.Keyboard then
local keyPressed = input.KeyCode
if keyPressed == Enum.KeyCode.Space then
game.ReplicatedStorage.RespawnEvent:FireServer()
script.Parent:SetPrimaryPartCFrame(CFrame.new(Vector3.new(stage.Po
sition)))
end
end
end
UserInputService.InputBegan:connect(onInputBegan)
I also tried this: and it didnt even print "teleporting" and did not teleport me, why this?
local stage = game.workspace.Stages:FindFirstChild(game.Players.LocalPlayer:WaitForChild("leaderstats").Stage.Value)
local UserInputService = game:GetService("UserInputService")
local function onInputBegan(input,gameProcessed)
if input.UserInputType == Enum.UserInputType.Keyboard then
local keyPressed = input.KeyCode
if keyPressed == Enum.KeyCode.Space then
game.ReplicatedStorage.RespawnEvent:FireServer()
wait (1)
print "teleporting"
script.Parent:SetPrimaryPartCFrame(CFrame.new(stage.Position))
end
end
end
UserInputService.InputBegan:connect(onInputBegan)
Tried this:
local stage = game.workspace.Stages:FindFirstChild(game.Players.LocalPlayer:WaitForChild("le
aderstats").Stage.Value).Position
local UserInputService = game:GetService("UserInputService")
local function onInputBegan(input,gameProcessed)
if input.UserInputType == Enum.UserInputType.Keyboard then
local keyPressed = input.KeyCode
if keyPressed == Enum.KeyCode.Space then
game.ReplicatedStorage.RespawnEvent:FireServer()
script.Parent:SetPrimaryPartCFrame(CFrame.new(stage))
end
end
end

2 comments
Thanks! Its working now
You're welcome!