Try this?
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local Character = player.Character or player.CharacterAdded:Wait()
local humanoid = Character:WaitForChild("Humanoid")
local Moving = false
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
UserInputService.InputBegan:Connect(function(keyCode, Chatted)
if Chatted then
return
end
local HRP = Character:FindFirstChild("HumanoidRootPart")
if HRP ~= nil and keyCode.KeyCode == Enum.KeyCode.R then
Moving = true
while Moving do
Character:MoveTo(HRP.Position + Vector3.new(0,0,1))
RunService.RenderStepped:Wait()
end
end
end)
UserInputService.InputEnded:Connect(function(keyCode)
local HRP = Character:FindFirstChild("HumanoidRootPart")
if HRP ~= nil and keyCode.KeyCode == Enum.KeyCode.R then
Moving = false
Character:MoveTo(HRP.Position)
end
end)