# JointMotor

> The JointMotor is used to motorize a joint.

## Definition

* **Type:** Struct
* **Namespace:** [UnityEngine](/engine/6000.7/script-reference/unityengine.md)
* **Assembly:** UnityEngine.PhysicsModule

```csharp
public struct JointMotor
```

## Remarks

For example the [HingeJoint](/engine/6000.7/script-reference/unityengine/hingejoint.md) can be told to rotate at a given speed and force. The joint will then attempt to reach the velocity with the given maximum force.

Additional Resources: [HingeJoint](/engine/6000.7/script-reference/unityengine/hingejoint.md)

## Examples

```csharp
using UnityEngine;

public class Example : MonoBehaviour
{
    void Start()
    {
        HingeJoint hinge = GetComponent<HingeJoint>();

        // Make the hinge motor rotate with 90 degrees per second and a strong force.
        JointMotor motor = hinge.motor;
        motor.force = 100;
        motor.targetVelocity = 90;
        motor.freeSpin = false;
        hinge.motor = motor;
    }
}
```

## Properties

| Property                                                                                   | Description                                                                  |
| ------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------- |
| [force](/engine/6000.7/script-reference/unityengine/jointmotor/force.md)                   | The motor will apply a force.                                                |
| [freeSpin](/engine/6000.7/script-reference/unityengine/jointmotor/freespin.md)             | If `freeSpin` is enabled the motor will only accelerate but never slow down. |
| [targetVelocity](/engine/6000.7/script-reference/unityengine/jointmotor/targetvelocity.md) | The motor will apply a force up to `force` to achieve `targetVelocity`.      |
