# Jump Module

This includes:

* Standard jumping
* Variable jump height
* Multiple jumps
* Coyote time
* Jump buffering
* Better gravity
* Apex hang

The module is designed to create responsive, forgiving, and polished platformer movement.

***

## Component

```
JumpModule
```

***

## Responsibilities

The Jump Module controls:

* Jump force
* Airborne movement feel
* Jump timing assistance
* Multiple jumps
* Falling behavior
* Apex jump smoothing

It works together with:

* Rigidbody2D
* CollisionDetector
* PlayerInputHandler

***

## Inspector Settings

## Jump

### Is Enabled

Enables or disables the Jump Module.

| Setting    | Description                |
| ---------- | -------------------------- |
| Is Enabled | Enables jump functionality |

Useful for:

* Testing
* Temporary mechanic disabling
* Custom gameplay states

***

## Jump Force

<figure><img src="/files/HeK90On8LpFw7jklf4bZ" alt="" width="299"><figcaption></figcaption></figure>

Controls the upward jump velocity.

| Setting    | Description          |
| ---------- | -------------------- |
| Jump Force | Strength of the jump |

Higher values create taller jumps.

Recommended Range:

```
10 – 18
```

***

## Max Jump Count

Controls how many jumps the player can perform before touching the ground.

| Value | Result      |
| ----- | ----------- |
| 1     | Single Jump |
| 2     | Double Jump |
| 3     | Triple Jump |

Recommended Range:

```
1 – 2
```

***

## Forgiveness

The Forgiveness section improves jump responsiveness and player comfort.

This includes:

* Coyote Time
* Jump Buffer

These systems help reduce missed jumps during fast gameplay.

***

## Coyote Time

Allows the player to jump shortly after leaving a platform.

This creates more forgiving platforming controls.

| Setting     | Description                            |
| ----------- | -------------------------------------- |
| Coyote Time | Allowed jump time after leaving ground |

Recommended Range:

```
0.1 – 0.2
```

***

## Jump Buffer Time

Stores jump input slightly before landing.

This prevents missed jump inputs during fast gameplay.

| Setting          | Description                  |
| ---------------- | ---------------------------- |
| Jump Buffer Time | Duration to store jump input |

Recommended Range:

```
0.1 – 0.2
```

***

## Variable Jump

Variable Jump Height allows players to control jump height by releasing the jump button early.

| Setting              | Description                                     |
| -------------------- | ----------------------------------------------- |
| Variable Jump Height | Enables shorter jumps when releasing jump early |

Enabled:

* Creates responsive jumps
* Allows precise platforming
* Improves movement control

Disabled:

* All jumps reach full height

***

## Better Gravity

Better Gravity improves airborne movement feel by adjusting gravity during falling.

This creates:

* Faster falling
* Snappier jumps
* Better platforming responsiveness

***

## Fall Multiplier

Controls additional gravity while falling.

| Setting         | Description                          |
| --------------- | ------------------------------------ |
| Fall Multiplier | Extra gravity applied during falling |

Higher values:

* Increase fall speed
* Make jumps feel tighter

Lower values:

* Create floatier jumps

Recommended Range:

```
2 – 4
```

***

## Apex Hang

Apex Hang slightly slows gravity near the top of the jump.

This creates:

* Smoother jump arcs
* Better air control feel
* More polished platforming movement

***

## Use Apex Hang

Enables or disables Apex Hang behavior.

| Setting       | Description                    |
| ------------- | ------------------------------ |
| Use Apex Hang | Enables apex gravity reduction |

***

## Apex Threshold

Controls how close the player must be to the jump apex before Apex Hang activates.

| Setting        | Description                |
| -------------- | -------------------------- |
| Apex Threshold | Apex detection sensitivity |

Lower values:

* Smaller apex window

Higher values:

* Longer apex duration

Recommended Range:

```
0.8 – 1.5
```

***

## Apex Gravity Multiplier

Controls gravity strength while Apex Hang is active.

| Setting                 | Description                    |
| ----------------------- | ------------------------------ |
| Apex Gravity Multiplier | Reduced gravity near jump apex |

Lower values:

* Floatier apex
* Longer hang time

Higher values:

* Faster apex movement

Recommended Range:

```
0.3 – 0.7
```

***

## Recommended Settings

## Responsive Platformer

| Setting                 | Value |
| ----------------------- | ----- |
| Jump Force              | 12    |
| Max Jump Count          | 2     |
| Coyote Time             | 0.15  |
| Jump Buffer Time        | 0.15  |
| Fall Multiplier         | 2.5   |
| Apex Threshold          | 1     |
| Apex Gravity Multiplier | 0.5   |

***

## Precision Platformer

| Setting                 | Value |
| ----------------------- | ----- |
| Jump Force              | 10    |
| Max Jump Count          | 1     |
| Coyote Time             | 0.1   |
| Jump Buffer Time        | 0.1   |
| Fall Multiplier         | 3     |
| Apex Threshold          | 0.8   |
| Apex Gravity Multiplier | 0.6   |

***

## Dependencies

Required Components:

* Rigidbody2D
* PlayerInputHandler
* CollisionDetector

***

## Notes

* Coyote Time and Jump Buffer greatly improve responsiveness
* Better Gravity creates tighter platforming movement
* Apex Hang helps create smoother jump arcs
* Variable Jump Height improves player control
* Proper ground check placement is important for reliable jump resets

***

## Common Setup Tips

* Increase Fall Multiplier for tighter movement
* Use Apex Hang for smoother jump feel
* Lower Apex Gravity Multiplier for floatier jumps
* Enable Variable Jump Height for precision platforming
* Combine Coyote Time and Jump Buffer for maximum responsiveness

***

## What's next?

{% content-ref url="/pages/dwFYNaCsnrZd6yObQ5VI" %}
[Movement Module](/pro-2d-controller-doc/core-module/movement-module.md)
{% endcontent-ref %}

{% content-ref url="/pages/a3VkV5ZsLnOF8QKW1NaN" %}
[Dash Module](/pro-2d-controller-doc/core-module/dash-module.md)
{% endcontent-ref %}

{% content-ref url="/pages/kInZPCp4z8AXp1gru01o" %}
[Wall Module](/pro-2d-controller-doc/core-module/wall-module.md)
{% endcontent-ref %}

{% content-ref url="/pages/A0dIPEOCcdKfsOKLI8cZ" %}
[Ledge Module](/pro-2d-controller-doc/core-module/ledge-module.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://the-code-cm.gitbook.io/pro-2d-controller-doc/core-module/jump-module.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
