Decrease Timer By Event every time it runs


I’m setting a timer by event in my code and I need the event to fire faster and faster so I am decreasing the Time property of the event during runtime using a timeline with a float track that changes the value of “Loop Repeat Time”.

The problem is that a Timer By Event with Looping set to true can accept a MUCH smaller time value than a Timer that isn’t looping and I don’t know why, but it’s stopping me from doing what I need to.

For context, the looping timer’s lowest value is 0.0001, whereas the non-looping timer’s lowest value is 0.008. I need it pushing to 0.001.



I’ll give that a shot when I get home, thank you. I got it in my head that I should stay away from Delays as much as possible and that led me to a bit of a red herring, it seems.

I’m not worried about hardware needs, it’s a minimalist experiment that’s not seeing large distribution, but I’ll remember that.

I am still really confused why the Timer can be restarted with a lowered Time value but can’t go as low as a looping Timer can. That seems so odd to me.

You can invalidate and restart the timer, of course, but now every 100th of a second :slight_smile:

I used the delay method you pointed out and it worked perfectly, thank you so much! Now I can just hook that up to my timeline and it’s all good to go!

I tried adding Invalidate and Clear then restart the timer with the variable amount, but it was the same problem as before.

As an aside, I was messing around and I discovered that the lower limit on the on the timer when I was setting in dynamically was the same amount of time as the tick delta.
I don’t know why that is, but it is an interesting discovery.

Thanks again!

@ClockWorkOcean, would you please change your comment to an answer so that I can mark it as the correct answer for this thread and close it up properly?

Thanks again <3

Best to say what you’re trying to do, as you can’t rely on timers to this level of accuracy, especially if the target hardware is slow.

If you keep changing the length of the timer, then there’s not much point in using a timer.

What about:

I did - thanks :slight_smile:

After a lot of experimenting it’s become clear that solution didn’t work and it has the same problem as what i was trying initially. I’m going to write up an answer and just close this off. Thanks for the help anyway!

There’s no solution to my problem that I can find, so I’m just closing the question off here.

Whether you reduce the delay or use a timeline you run into the same issue: A timer set in real time cannot go lower than the delta of the frame tick. While you can set the timer to a MUCH lower value if it’s looping from start, that’s not a good solution for what I’m trying to do, so I’m going to create an animation that gets faster and faster, then import it into the engine and go from there.