Run it
Copy the script and paste it into your executor.
UserInputService = :()
RunService = :()
Camera = .Workspace.CurrentCamera
Players = :()
LocalPlayer = Players.LocalPlayer
PlayerMouse = LocalPlayer:()
shiftLockEnabled =
lockOffset = .(, )
cursorImage =
originalMouseIcon
originalCameraOffset
characterAddedConn, characterRemovingConn
()
characterAddedConn
characterAddedConn:()
characterAddedConn =
characterRemovingConn
characterRemovingConn:()
characterRemovingConn =
()
shiftLockEnabled = shiftLockEnabled
shiftLockEnabled
UserInputService.MouseBehavior = .MouseBehavior.LockCenter
originalMouseIcon = PlayerMouse.Icon
PlayerMouse.Icon = cursorImage
UserInputService.MouseBehavior = .MouseBehavior.Default
PlayerMouse.Icon = originalMouseIcon
()
shiftLockEnabled
humanoid = LocalPlayer.Character:()
humanoid
humanoid.CameraOffset = .(, , )
humanoid = LocalPlayer.Character:()
humanoid
humanoid.CameraOffset = .(, , )
()
()
()
()
characterRemovingConn = LocalPlayer.CharacterRemoving:(onCharacterRemoving)
(input, isProcessed)
isProcessed input.KeyCode == .KeyCode.LeftShift
()
()
()
shiftLockEnabled
player = LocalPlayer
player.Character player.Character:()
player.Character.HumanoidRootPart.CFrame = .(player.Character.HumanoidRootPart.Position) * .(, .(-Camera.CFrame.lookVector.X, -Camera.CFrame.lookVector.Z), )
centerScreen = .(PlayerMouse.X, PlayerMouse.Y)
newMousePosition = centerScreen + lockOffset
humanoid = player.Character:()
humanoid humanoid:(.Workspace)
humanoid.CameraOffset = .(, , )
(input)
shiftLockEnabled
input.UserInputType == .UserInputType.MouseMovement
centerScreen = .(PlayerMouse.X, PlayerMouse.Y)
newMousePosition = centerScreen + lockOffset
characterAddedConn = LocalPlayer.CharacterAdded:(onCharacterAdded)
UserInputService.InputBegan:(onInputBegan)
RunService.Heartbeat:(updateCameraOffset)
RunService.RenderStepped:(onRenderStepped)
UserInputService.InputChanged:(onInputChanged)Its kinda buggy but it works :)

Universal