I was making a custom camera, and I got everything to work fine, though when I moved, my character started to rapidly change positions...Any way I can fix this?
Code:
local Player=game.Players.LocalPlayer repeat wait() until workspace:FindFirstChild(Player.Name.."_Body") local Body=workspace:FindFirstChild(Player.Name.."_Body") local Character=Player.Character local Camera=workspace.CurrentCamera local Mouse=Player:GetMouse() Character:WaitForChild("Humanoid").AutoRotate=false Character:WaitForChild("HumanoidRootPart") local Settings={ InvertMouse=false, Sensitivity=.1, --0 to 2 } local Prev={X=Mouse.X,Y=Mouse.Y} function Update() local NewX=Mouse.X local NewY=Mouse.Y local NewCF=Camera.CoordinateFrame if NewX>Prev.X then --Turn Right NewCF=NewCF*CFrame.Angles(0,(math.rad(-math.min(5,math.abs(NewX-Prev.X))))*Settings.Sensitivity,0) elseif NewX<Prev.X then --Turn Left NewCF=NewCF*CFrame.Angles(0,math.rad(math.min(5,math.abs(NewX-Prev.X)))*Settings.Sensitivity,0) end if NewY<Prev.Y then --Look Up NewCF=NewCF*CFrame.Angles(math.rad(math.min(5,math.abs(NewY-Prev.Y)))*Settings.Sensitivity,0,0) elseif NewY>Prev.Y then --Look Down NewCF=NewCF*CFrame.Angles(math.rad(-math.min(5,math.abs(NewY-Prev.Y)))*Settings.Sensitivity,0,0) end local a,b,c,d,e,f,g,h,i,j,k,l=NewCF:components() a,b,c=0,0,0 Camera.CoordinateFrame=Body.Head.CFrame*CFrame.new(a,b,c,d,e,f,g,h,i,j,k,l) Prev.X=NewX Prev.Y=NewY end coroutine.wrap(function() while true do game:GetService("RunService").RenderStepped:wait() Camera.CameraType="Scriptable" Update() end end)()