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).
The CartoonFactor property determines the tendency of the part to face the Target. By default, this property is set to 0.7. If set to 0, the part will make no effort to face the target.
The MaxSpeed property determines the upper limit of the velocity at which the part will move toward the Target. A RocketPropulsion will apply a force to decelerate a part if it exceeds this speed limit.
The MaxThrust property determines the upper limit of the thrust that may be exerted to move the part. Parts or assemblies that have high mass will require more thrust in order to remain airborne, and thus track the Target.
The TargetOffset property determines the world offset from the Target. Basically, it makes the RocketPropulsion behave as if the target were really offset by this property. It is especially useful when Target is set to nil, since this property then acts as the target position.
The TargetRadius property determines the maximum distance from the RocketPropulsion.Target the part must be in order for the RocketPropulsion.ReachedTarget event to be fired. It does not affect the exerted forces in any way.
The P property determines how much power is used while applying force in order to reach the Target position. The higher this value, the more power will be used and the faster it will be used. This property works similarly to BodyPosition.P.
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.
Causes the Rocket to stop moving towards its target, making it fall.
Causes the rocket to fly towards Target.
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.