> For the complete documentation index, see [llms.txt](https://heroicsolo.gitbook.io/heroic-engine/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://heroicsolo.gitbook.io/heroic-engine/basics/useful-components/ragdoll.md).

# Ragdoll

This component allows to turn your character with humanoid skeleton to ragdoll mode.

{% hint style="info" %}
You should not add this component manually, use Tools/Heroic Engine/Components/Add Ragdoll option in Editor menu as shown below
{% endhint %}

<figure><img src="/files/vzKWd40WhU9KwK83XBJF" alt=""><figcaption><p>How to add ragdoll to your character</p></figcaption></figure>

<figure><img src="/files/KZ31KEHNlfkq5Wj44boq" alt=""><figcaption><p>How to add ragdoll to your character</p></figcaption></figure>

After this, Ragdoll component will appear on your character gameobject.

<figure><img src="/files/8D7atJnYcOaURRcbjUms" alt=""><figcaption><p>Ragdoll component</p></figcaption></figure>

{% hint style="info" %}
This component will be added only in case if gameobject with Animator and Humanoid rig was selected in scene hierarchy!
{% endhint %}

### Parameters in inspector

**Animator** – animator of humanoid character; this field will be automatically assigned by RagdollAdder utility

**Hips** – hips rigidbody of humanoid character; this field will be also automatically assigned by RagdollAdder utility

**Ragdoll Mode At Start** – if enabled, ragdoll mode will be activated automatically when character gameobject becomes active on scene

***

### Available methods

```csharp
public void SetRagdollMode(bool enable)
```

*This method sets ragdoll mode. If enabled, character Animator will be disabled and skeleton will become completely physical. Otherwise, Animator will be active and bones will be moved by animations.*

*Example:*

```csharp
void Die()
{
    // If character dies, enable ragdoll so it falls to the ground
    if (ragdoll != null)
    {
        ragdoll.SetRagdollMode(true);
    }
}
```

***

```csharp
public void Push(Vector3 direction, float force, ForceMode forceMode = ForceMode.Impulse)
```

*Hehe, what can be more funny than pushing ragdoll? This method applies certain **force** to the character body with certain **direction** and automatically activates ragdoll mode on it.*

*Example:*

```csharp
// Push first found ragdoll on scene by F button push
if (Input.GetKeyDown(KeyCode.F))
{
    Ragdoll ragdoll = FindObjectOfType<Ragdoll>();
    if (ragdoll != null)
    {
        ragdoll.Push(ragdoll.transform.position - transform.position, 150f);
    }
}
```

***

```csharp
public void AddTorque(Vector3 direction, float torque, ForceMode forceMode = ForceMode.Impulse)
```

*This method applies certain rotation force to the character body and automatically activates its ragdoll mode.*

***

{% hint style="info" %}
Btw, you can see how it works on example scene which can be launched by the most top button in main menu.
{% endhint %}

<figure><img src="/files/j3Y3mdpsIa9VUUO7PgCp" alt=""><figcaption><p>Here you can start example scene with ragdoll interaction</p></figcaption></figure>
