Skip to main content

Timers

Run a function or custom event after a delay, once or on a loop, with Blueprint timers.

Published Updated |
Blueprints
Events
Functions
Event Tick
graphic

Use Timers to execute a function or custom event after a given interval, which can be looped. These are useful for functionality such as stat regen, cooldowns, attack intervals, damage over time, and much more. And for logic that only needs to run every so often, a timer saves you from checking elapsed time on Event Tick.

How do I set a timer?

Blueprint has two nodes for starting a timer:

NodeDescription
Set Timer by EventCalls the event or function wired into its Event pin.
Set Timer by Function NameCalls a function or custom event by name on Object, which defaults to self.

Both share the same inputs.

InputDescription
TimeSeconds to wait before each call. A value of 0 or less clears the timer.
LoopingRepeats the call every Time seconds instead of running once.
Max Once Per FrameFor looping timers, fires once per frame even if the timer would expire several times in that frame.
Initial Start DelayExtra seconds added before the first call. Advanced pin.
Initial Start Delay VarianceRandom variance, in seconds, added to the start delay. Advanced pin.
Timeline of a looping timer with Time 1.0 and Initial Start Delay 0.5. The first call runs at 1.5 seconds, then every second. During one long frame from 3.2 to 5.8 seconds, three calls come due. With Max Once Per Frame off, all three run at 5.8 seconds. With it on, one runs and the other two are dropped. Both resume at 6.5 seconds.

How do I control a timer after it starts?

Both nodes return a Timer Handle. Promote it to a variable, and you can control the timer later with nodes like Pause Timer by Handle, Unpause Timer by Handle, Get Timer Remaining Time by Handle, and Clear and Invalidate Timer by Handle.

Frequently asked questions

What happens if I set a timer that’s already running?

It resets with the new values.

Do timers keep running while the game is paused?

No. Timers run on game time, so they stay put until the game unpauses.

Can Set Timer by Function Name call a function with inputs?

No, it only works with functions that take no parameters. Passing one with inputs logs a warning and returns an invalid handle.

Why is my start delay variance ignored?

In Unreal Engine 5.8, Set Timer by Function Name drops Initial Start Delay Variance on the way to the timer. Use Set Timer by Event when you need the variance.

How do I run something once on the next frame?

Use Set Timer for Next Tick by Event.

Can a timer call an event in another object?

Yes, and you can set timers from inside functions too. Check out Timers and the Create Event node to see how.

Check out the following resources to learn more about the subject.

Unreal Directive is free and ad-free.

If it saved you time, you can help keep it that way.

Donate