Need help with player control script

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)
1 Like