I took the deltaTime from your script which made it work but also caused a bug where if I would look down or up my camera would rotate too much, if I look perfectly straight ahead then the camera follows the platform just fine.
(The submarine’s AssemblyAngularVelocity is 1 on the Y axis)
Run.Heartbeat:Connect(function(dT)
if toFollow then
local newRotation = toFollow.AssemblyAngularVelocity * dT
cam.CFrame *= CFrame.Angles(newRotation.X, newRotation.Y, newRotation.Z)
end
end)
I believe it’s because you’re rotating the Camera relative to the Camera CFrame, while the Platform’s Spinning direction is Relative to the World!
Not sure if this will fix it, but try multiplying the CFrame.Angles by the Part.CFrame instead of the opposite
Example (not sure if it’ll work… just try!)
Run.Heartbeat:Connect(function(dT)
if toFollow then
local newRotation = toFollow.AssemblyAngularVelocity * dT
cam.CFrame = CFrame.Angles(newRotation.X, newRotation.Y, newRotation.Z) * Cam.CFrame
end
end)