Run it
Copy the script and paste it into your executor.
Players = :()
RunService = :()
UserInputService = :()
Player = Players.LocalPlayer
Camera = .CurrentCamera
ScreenGui = .()
ScreenGui.Name =
ScreenGui.ResetOnSpawn =
ScreenGui.Parent = Player:()
ToggleButton = .()
ToggleButton.Name =
ToggleButton.Parent = ScreenGui
ToggleButton.BackgroundTransparency =
ToggleButton.Size = .(, , , )
ToggleButton.Position = .(, -, , -)
ToggleButton.Image =
dragging
dragInput
dragStart
startPos
(input)
delta = input.Position - dragStart
ToggleButton.Position = .(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
ToggleButton.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging =
dragStart = input.Position
startPos = ToggleButton.Position
input.Changed:(()
input.UserInputState == .UserInputState.End
dragging =
)
)
ToggleButton.InputChanged:((input)
input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch
dragInput = input
)
UserInputService.InputChanged:((input)
input == dragInput dragging
(input)
)
Crosshair = .()
Crosshair.Name =
Crosshair.Parent = ScreenGui
Crosshair.BackgroundTransparency =
Crosshair.Position = .(, , , )
Crosshair.AnchorPoint = .(, )
Crosshair.Size = .(, , , )
Crosshair.Image =
Crosshair.Visible =
shiftLockEnabled =
CameraOffset = .(, , )
ToggleButton.Activated:(()
shiftLockEnabled = shiftLockEnabled
shiftLockEnabled
ToggleButton.Image =
Crosshair.Visible =
Player.Character Player.Character:()
Player.Character.Humanoid.AutoRotate =
ToggleButton.Image =
Crosshair.Visible =
Player.Character Player.Character:()
Player.Character.Humanoid.AutoRotate =
Player.Character.Humanoid.CameraOffset = .(, , )
)
RunService.RenderStepped:(()
shiftLockEnabled
Player.Character Player.Character:() Player.Character:()
Player.Character.Humanoid.CameraOffset = CameraOffset
rootPart = Player.Character.HumanoidRootPart
lookVector = Camera.CFrame.LookVector
rootPart.CFrame = .(
rootPart.Position,
rootPart.Position + .(lookVector.X, , lookVector.Z)
)
)works even in games that don't have shiftlock pls tell me if you have any trouble using it