There seems to be a bit of confusion about timers in this thread. Hopefully this will clear things up.
The timer manager tick function gets called once per frame, just like other objects that need to update. It does not get called a fixed number of times per second. If your game is running at 60 FPS it will be called 60 times per second. If it’s running at 30 FPS it will be called 30 times per second.
Someone asked about reasons to use UE4’s timers instead of ticking individual objects and tracking them individually. I’ll cover a few of the reasons to use timers here.
Maintainability - I touched on this in my earlier reply in this thread. Having all of the code in one place instead of scattered in various classes makes it easier to update and fix. You also get the benefits of any future improvements to timers.
Efficiency - Lets pretend we have 10 actors that all need timers. You could have all ten tick every frame, check the time remaining, and do something if necessary. If you use timers you only need to tick the timer manager. It maintains a sorted list of timers so it usually only needs to check a few timers to see if they’ve expired. Ticking less objects and doing less comparisons is a good thing.
Accuracy - Imagine you have two objects that need timers and they should both be doing something on the current frame. If you use timers then the two timers will be run in the correct order. Whichever one would execute earlier based on the time remaining will be called first. If you’re ticking the objects and manually tracking the time remaining you have no control over which timer will expire first. They will be run in whatever order the objects receive their tick calls and not necessarily in the order of which one has less time remaining. If the order is important you should be using UE4 timers.
I’m making an RTS game that will rely on deterministic ticks on client side. I’d like my timers to tick every x amount of seconds, and be synchronized across clients in the game. Will timers be accurate in that sense? Can i rely on timers on different clients ticking at the same time?