local Players = game:GetService("Players") local UIS = game:GetService("UserInputService") local player = Players.LocalPlayer local camera = workspace.CurrentCamera local SHIFT_KEY = Enum.KeyCode.LeftShift local OFFSET = Vector3.new(1.75, 0, 0) local enabled = false local humanoid local function getHumanoid() local char = player.Character or player.CharacterAdded:Wait() humanoid = char:WaitForChild("Humanoid") end getHumanoid() player.CharacterAdded:Connect(getHumanoid) local function enableShiftLock() enabled = true UIS.MouseBehavior = Enum.MouseBehavior.LockCenter humanoid.AutoRotate = false humanoid.CameraOffset = OFFSET end local function disableShiftLock() enabled = false UIS.MouseBehavior = Enum.MouseBehavior.Default humanoid.AutoRotate = true humanoid.CameraOffset = Vector3.zero end UIS.InputBegan:Connect(function(input, gpe) if gpe then return end if input.KeyCode == SHIFT_KEY then if enabled then disableShiftLock() else enableShiftLock() end end end) game:GetService("RunService").RenderStepped:Connect(function() if enabled and humanoid then local root = humanoid.RootPart if root then root.CFrame = CFrame.new( root.Position, root.Position + Vector3.new(camera.CFrame.LookVector.X, 0, camera.CFrame.LookVector.Z) ) end end end)