The RocketPropulsion object applies a force on a part so that it both follows and faces a target part. It acts like a hybrid of BodyPosition and BodyGyro. Unlike other BodyMovers, a RocketPropulsion must be instructed to begin applying a force: call Fire to start, or call Abort to stop.
RocketPropulsion has the most physics-related properties out of all the BodyMovers. It is helpful to separate the properties out into categories based on what they control:
Remember, you don't need to use both the translational and rotational force features of a RocketPropulsion: by setting MaxThrust to 0, you can make a part just face the target without having it follow the target around (consider also using a BodyPosition in addition). Similarly, by setting MaxTorque to (0, 0, 0), you can have a part simply follow another object without facing it (use a BodyGyro if you want the object to maintain a specific orientation).
Determines the maximum amount of torque that may be exerted to rotate the part towards the Target.
Determines the world offset from the Target toward which the force/torque is exerted.
Determines the dampening applied to the part in order to prevent it from overshooting the Target.
The D property is how much dampening will be applied to the torque used to face the Target. When the part approaches the goal orientation it needs to decelerate, otherwise it will rotate past the goal and have to stop and re-accelerate back toward the goal. This is often creates undesirable rubber-banding effect, so applying dampening using this property is how that effect is avoided. The higher this value is set, the greater the dampening curve becomes, or the slower the part will approach the goal orientation.
Fired when the Rocket comes within TargetRadius of the Target. This is used to make the rocket work, such as make an explosion when it flies near the Target.