So I'm trying to create planetary gravity, and I want the player to be upright anywhere on the planet. I put a BodyGyro in the player's torso but I'm not exactly sure how I would calculate the CFrame angles thing.

My reasoning is that the player isn't really standing on a sphere but rather on a plane tangential to the sphere at that point. The player can face in any direction on that plane, but it cannot leave it.

The simplest route would be to project the "default" lookVector onto the tangent plane and do the whole CFrame.new(current position, currentPosition + projection of lookVector) thing to get it facing in the correct direction.

Any ideas? I'm kind of stuck on how I should do this.