local k=script.Parent.Car.Value local A=workspace.CurrentCamera local S=game:GetService("\082\117\110\083\101\114\118\105\099\101")k.DriveSeat.ChildRemoved:connect(function(k)if k.Name=="\083\101\097\116\087\101\108\100"then S:UnbindFromRenderStep("\077\067\097\109")A.CameraType=Enum.CameraType.Custom end end)script.Parent.Values.MouseSteerOn.Changed:connect(function(X)if script.Parent.Values.MouseSteerOn.Value then S:BindToRenderStep("\077\067\097\109",Enum.RenderPriority.Camera.Value,function()A.CameraType=Enum.CameraType.Scriptable local S=math.min(1,k.DriveSeat.Velocity.Magnitude/500)local X=((k.DriveSeat.Position+Vector3.new(0,8+S*2,0))-k.DriveSeat.CFrame.lookVector*17)+(k.DriveSeat.Velocity.Unit*-7)*S A.CoordinateFrame=CFrame.new(X,k.DriveSeat.Position)end)else S:UnbindFromRenderStep("\077\067\097\109")A.CameraType=Enum.CameraType.Custom end end)

local car = script.Parent.Car.Value
local cam = workspace.CurrentCamera
local RS = game:GetService("RunService")
car.DriveSeat.ChildRemoved:connect(function(child)
  if child.Name == "SeatWeld" then
    RS:UnbindFromRenderStep("MCam")
    cam.CameraType = Enum.CameraType.Custom
  end
end)
script.Parent.Values.MouseSteerOn.Changed:connect(function(property)
  if script.Parent.Values.MouseSteerOn.Value then
    RS:BindToRenderStep("MCam", Enum.RenderPriority.Camera.Value, function()
      cam.CameraType = Enum.CameraType.Scriptable
      local pspeed = math.min(1, car.DriveSeat.Velocity.Magnitude / 500)
      local cc = car.DriveSeat.Position + Vector3.new(0, 8 + pspeed * 2, 0) - car.DriveSeat.CFrame.lookVector * 17 + car.DriveSeat.Velocity.Unit * -7 * pspeed
      cam.CoordinateFrame = CFrame.new(cc, car.DriveSeat.Position)
    end)
  else
    RS:UnbindFromRenderStep("MCam")
    cam.CameraType = Enum.CameraType.Custom
  end
end)
