Unreal Engine Sprint & Stamina System Without Event Tick – Optimized Performance

Unreal Engine Sprint & Stamina System Without Event Tick – Optimized Performance

Published: March 01, 2025 • Series: Gameplay Systems • Level: intermediate

unreal ue5 blueprints stamina sprint optimization

This is Rambod and in this tutorial we build a sprint and stamina system without Event Tick. Many tutorials rely on Event Tick, but that drains performance. Here we use Set Timer by Function Name and Clear Timer by Function Name for a clean, scalable, and efficient solution.

1) Why not Event Tick?

  • Event Tick runs every frame.
  • Works for small projects, but scales poorly.
  • Timers run at fixed intervals, saving resources.
  • Cleaner, more production-ready approach.

2) Input setup

  • Go to Project Settings → Input.
  • Add an Action Mapping called Sprint.
  • Bind it to Left Shift.

3) Variables to create

Inside BP_ThirdPersonCharacter:

  • IsSprinting (Boolean, default = false).
  • Stamina (Float, default = 100).
  • StaminaConsumptionRate (Float, default = 1).
  • StaminaRecoveryRate (Float, default = 1).
  • WalkSpeed (Float, default = 300).
  • SprintSpeed (Float, default = 600).
  • MaxStamina (Float, default = 100).

4) Functions

  • SprintTimerFunction: handles draining stamina.
  • StaminaRecoveryFunction: handles stamina regen.

5) Sprint logic

  • In Event Graph:
    • On InputAction Sprint (Pressed):
      • Set IsSprinting = true.
      • Use Set Timer by Function NameSprintTimerFunction. Interval = 0.2s, looping.
    • On Released:
      • Set IsSprinting = false.
      • Reset walk speed to WalkSpeed.
      • Clear Timer for sprint.
      • Start stamina recovery with another timer.

6) Sprint timer function

  • Clear stamina recovery timer (don’t regen while sprinting).
  • If IsSprinting = true and Stamina > 0:
    • Set walk speed to SprintSpeed.
    • Subtract StaminaConsumptionRate * 0.1.
    • Update Stamina.
  • If stamina ≤ 0:
    • Stop sprinting.
    • Reset walk speed.
    • Clear sprint timer.
    • Start stamina recovery timer.

7) Stamina recovery function

  • If Stamina < MaxStamina:
    • Add StaminaRecoveryRate * 0.1.
    • Clamp between 0 and MaxStamina.
  • If stamina is full:
    • Clear recovery timer.

8) UI setup

  • Create a Widget Blueprint (WBP_Stamina).
  • Add Text Block and bind it to display Stamina.
  • In Character Blueprint, on Begin Play, create and add this widget to the viewport.

9) Bonus: progress bar

  • Add a Progress Bar to WBP_Stamina.
  • Bind Percent: Stamina / MaxStamina.
  • Updates in real time as stamina drains and recovers.

Wrap up

This system gives you:

  • Efficient stamina logic without Event Tick.
  • Smooth sprinting at defined speed.
  • Automatic stamina drain and regen.
  • A clean UI with progress bar feedback.

This approach scales much better than Tick-based logic and is production-ready.

For more Unreal Engine tutorials, visit rambod.net, subscribe on YouTube, or watch this tutorial here: Watch on YouTube.