How to Make a Double Jump in UE5 Blueprints

The honest secret: basic double jump is a checkbox. Character Movement supports multiple jumps natively — the Blueprint work only starts when you want the second jump to feel different from the first.

What it’s made of

Variables

Jump Max Count on the Character (2 = double jump — that’s the whole basic version), plus a SecondJumpZVelocity float if you customize the second hop.

Events

The template’s existing IA_Jump input; Landed event resets any custom jump counters.

The logic

Stock version: set Jump Max Count to 2 in the Character defaults. Custom version: count jumps yourself — on the second press, instead of Jump, use Launch Character with a Z velocity (enable XY Override with zero XY if you also want to kill horizontal momentum) to give the second jump its own force, a burst particle, or a directional boost from input.

Key nodes you’ll wire

Jump / Stop JumpingJump Max Count (Character defaults)Launch CharacterEvent On LandedGet Last Input VectorBranch

The mistake that breaks it

Rebuilding jump counting from scratch when Jump Max Count already exists — write custom logic only for behavior the built-in genuinely can’t do.

New to how Blueprint systems fit together? Read the anatomy of a Blueprint system first.

Or skip the wiring — generate it

BlueprintStudio builds this system from a plain-language prompt — the right nodes, exec and data pins wired, defaults set — and tells you whether it is ready to paste or what to set up first. The prompt is prefilled:

Build “Double Jump” in BlueprintStudio

Prompt variations to try

Paste it into your Blueprint, or apply it with the free Cosindra desktop app (Windows & macOS).

Common questions

How do I get a double jump in UE5 with no Blueprint logic at all?

Select the Character, find Jump Max Count in the Details panel, set it to 2. The built-in Jump node consumes counts per press, refuses a third press, and Landed resets the count automatically. That covers the plain version completely — graph logic only earns its place when the second jump needs its own velocity, effects, or direction.

Why does Launch Character add to my velocity instead of replacing it?

The Override checkboxes on the node are off by default, so the launch velocity is added to what the character already has — a second jump during a fast fall barely registers. Tick Z Override so the vertical burst replaces the downward velocity; tick XY Override too (with zero XY) if the second jump should also kill horizontal momentum.

How can I tell whether the character is on its first or second jump?

While you’re using the built-in Jump node, read Jump Current Count off the Character — 0 grounded, 1 after the first press — and Branch on it to attach second-jump-only effects. Once you replace the second press with Launch Character, the engine no longer counts that jump for you, so keep your own integer and reset it on Event On Landed.

More systems