Making an airship suspend itself in the air

I am currently trying to make a controllable airship as my first scripting project and the first thing I need to make it do is float in mid-air, even when no one is at the helm. I am having a few issues with this:

  1. The airship currently functions by using an old and insecure technique - it parents a LocalScript to the player that handles all of the ship’s movement. I had intended to fix this once the ship is fully functional, but I think I’ll have to handle it now. The problem with that is that the ship makes the pilot into its parent, meaning that if the pilot gets out of the seat the ship no longer flies. It also means that the pilot dying destroys the ship, which is not acceptable.

  2. Simply using a BodyMover to counteract gravity is not an option, since the mass of the ship will not be fixed - any number of players may be able to board the ship, and there is no way to account for this that I am aware of.

Essentially, to fix this, I need to figure out how to make the ship able to be controlled by a player without the player being the ship’s parent. I know this is a pretty specific problem, but can anyone help?

read into body velocities and take a look at the userinputservice. I’m sorry about the lack of detail but this should work for you