# Making a controllable flying object (helicopter) using BodyMovers

Hello,

I’ve been testing and attempting to create a helicopter using BodyMovers but have had no luck. I have searched the web, finding nothing regarding the implementation of BodyMovers in a vehicle-type form, and I am unsure of how to implement them or which ones to use.

My questions is:
How would I go about making a helicopter that can be controlled by a player, using BodyMovers?

Thank you.

5 Likes

If you’re not looking for something physically correct, I’d probably use a BodyVelocity, combined with an align orientation.

1 Like

I want it to be realistic, so it doesn’t suddenly teleport or move too quickly.

I mean this wouldn’t do that either unless you set the velocity high. But if you want something realistic you’ll need to know how the propellers produce lift and all that mumbo jumbo.

My best guess would be to use TweenService. This will allow you to smoothly increment the bodymovers’ position.

How would I calculate where the helicopter wants to go in order to use TweenService?

I’m not very familiar with these kind of situations you’d have to take into account the CFrame of the player’s camera and stuff like that…

A body gyro and body velocity would work fine. Use the seats property called ‘steer’ and ‘throttle’ to determine the turn angle and acceleration of the helicopter. The body velocity can be used for the acceleration whilst the gyro is used for the turn angle.

3 Likes

How would I use the bodygyro for turning?

You would adjust the cframe of the body gyro based on the ‘steer’ property. The steer property returns a number between -1 and 1 (1 being a right turn,-1 being a left turn and 0 being no turn). So for example you would do:

Gyro.CFrame = Gyro.CFrame *CFrame.Angles(0,math.rad(TurnSpeed x Steer),0) – for instance

3 Likes