How to Make a Dash System in UE5 Blueprints

Dash is the feel-multiplier of action games: a burst of velocity in the input direction, a cooldown so it’s a decision, and just enough polish (trail, sound, brief i-frames) to feel earned. In Blueprints it’s a compact, satisfying graph.

What it’s made of

Variables

DashStrength float (1500–3000 range feels right for most character scales), DashCooldown float, and a bCanDash bool.

Events

An Enhanced Input action (IA_Dash) triggers it; a timer re-arms bCanDash after the cooldown.

The logic

On input: Branch on bCanDash. Take Get Last Input Vector (fall back to actor forward when idle), Normalize, multiply by DashStrength, and feed Launch Character with XY Override so the burst replaces momentum instead of stacking on it. Clear bCanDash, start the cooldown timer, and drive the UI cooldown from the same timer.

Key nodes you’ll wire

Enhanced Input Action (IA_Dash)Get Last Input VectorNormalizeMultiply (Vector × Float)Launch CharacterSet Timer by EventBranch

The mistake that breaks it

Launching along the camera or actor forward only — a dash that ignores the movement input direction feels wrong the first time a player dashes while strafing.

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 “Dash System” in BlueprintStudio

Prompt variations to try

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

Common questions

What does XY Override on Launch Character actually do?

It makes the launch velocity replace the character’s current horizontal velocity instead of adding to it. Without it, dashing at full sprint stacks DashStrength on top of sprint speed, so dash distance depends on how fast you were already moving. With it, every dash covers the same ground — which is what makes a cooldown ability feel fair.

How do I put a cooldown on a Blueprint ability?

Gate the input with a Branch on bCanDash, set it false on use, and re-arm it with Set Timer by Event after DashCooldown seconds. Keep the returned handle: Get Timer Remaining Time by Handle divided by DashCooldown drives a radial cooldown material or progress bar for free. A Delay node works too, but a timer handle is queryable and cancelable.

Can players dash in the air, but only once until they land?

Add a bHasAirDashed bool next to bCanDash. In the dash input, when Get Character Movement → Is Falling returns true, also Branch on bHasAirDashed and set it after launching; Event On Landed clears it. Keeping the air flag separate from the cooldown flag means a ground dash taken just before a ledge doesn’t eat the air dash too.

More systems