I had a function that when called would use TweenService to move the camera, but it cant start at the players location, so I moved it. The problem was that it would not let me use camera.CFrame when wrapping the function in coroutine unless it was done by Tween:Play(). The problem is solved when using spawn() instead, but I have no idea why it is doing this. Although this doesnt break the code, the included wait in spawn is a bit annoying, but the code still functions. If anybody could explain that would be great.