Space game mechanic help

Hi, I’m a scripter and I’m working on a game about space and gravity. I want players to be able to hop on to other planets, and walk on and around them. Now I’ve already gotten the gravity down, I just need help with the character and camera. I’ll explain the character first.

For the character, I want it to automatically orientate depending on where it is on the planet, like in real life. If it’s on the “bottom” of the planet, the character will be upside down. Now, either I’m being paranoid, or this is just a problem. First of all, to achieve this I’m using align orientation, and calculating the net force active on the character, then align them on that axis. The problem with this is that this will remove the spacey feel, I want them to have good control over the character, but still feel wobbly and spacey, not just a physics game which NOBODY is ever good at.

My next idea was to store the current planet that the player was on, when they touched a planet, that value changed, and then the orientation was aligned based on that. Once the player reached a certain distance away from the body, they switch back into the physics state, and float around. This one I prefer better, but I need an opinion on the best way to execute this?

For the camera, this problem is harder. The camera should not have any limits, and should rotate freely, because it’s space after all. Now I already have a script for the unlocking of the camera, but my next problem is shiftlock? I’m just not smart enough to create camera script like this. Maybe this isn’t the right way to go, making my own camera script? How would I edit the camera module to remove the camera limits while keeping shiftlock?

If this isn’t possible, how would I make sure that the camera is always relative to the character, no matter what their orientation is?