local player = game.Players.LocalPlayer local UIS = game:GetService("UserInputService") local mouse = player:GetMouse() local char = player.Character or player.CharacterAdded:Wait() local root = char:WaitForChild("HumanoidRootPart") local cam = workspace.CurrentCamera local angle = 45 local waitTime = 0.1 local function rotateY(part, delta) local ori = part.Orientation part.Orientation = Vector3.new(ori.X, ori.Y + delta, ori.Z) wait(waitTime) part.Orientation = ori end local function rotateCamera(delta) cam.CFrame = cam.CFrame * CFrame.Angles(0, math.rad(delta), 0) wait(waitTime) cam.CFrame = cam.CFrame * CFrame.Angles(0, math.rad(-delta), 0) end mouse.Button1Down:Connect(function() if UIS.MouseBehavior == Enum.MouseBehavior.LockCenter then rotateCamera(angle) else rotateY(root, angle) end end) mouse.Button2Down:Connect(function() if UIS.MouseBehavior == Enum.MouseBehavior.LockCenter then rotateCamera(-angle) else rotateY(root, -angle) end end)