Using get world delta seconds node with delays and timers give different results than using event tick. But not always?

I have exact same setup in the same blueprint they work fine most of the time but this one just doesn’t work. variable on the delay node is decreasing half as fast for some reason. I tried everything I can think of and double checked everything, deleted everything made from scratch still same thing.

What are you trying to accomplish?

I’m trying to make a skill bar with accurate cooldowns. 2 of the skills worked perfectly fine, but it started acting weird after 3rd one and I tested it like this. (they are all in the same blueprint class and have the exact same logic for cooldowns) delta seconds don’t work with delays or timers properly. I tried in different blueprints too. when I print delta seconds everything looks normal but doing subtractions sometimes removes half the intended value or something.
EDIT: forgot to mention this print string always gets lower. I expected it to be at least stabilizing at some point

Passing frame time to a delay can easily make it wait 2 or more frames to execute.

Okay thanks, I really couldn’t find any info about this anywhere else. I think delay until next tick node works fine for what I want to do. I’ve never learned traditional coding but as far as I know adding stuff with delta time is really common for mechanics that needs to be precise. using timers with regular time inputs makes everything in my game very inconsistent

Is it any different than no delay at all?

Do you mean like using delay nodes set to 0 seconds? not sure, but this allows you to use delta time multiplications each frame similar to Event Tick

Why not just use tick?

I only wanted cooldowns to tick when they are actually on cooldown. My game is very chaotic has 100s of enemies on screen most of the time, I want to optimize as much as I can

You can toggle tick at any time. Set it to true in the function that drains stamina, and in the tick event have a branch to set it to false when stamina is full (turns it off).

Yes I’m aware of this, but I kept everything separate like hp regen, 4 skill cooldowns, proc chances, stun/knockback cooldowns etc. using tick would disable them all.

Ok, let me see if I understand: what is needed is to have everything update every frame, independent of each other in a way that don’t consume resources when no active cooldowns?

kind of. I already have this now with delay until next tick node, I could’ve also used Timelines with lerps for much easier setup actually, if timers worked I could’ve make it update every 3-4 frames instead but still stay consistent. My biggest problem was I was using regular delay node for actual cooldown time logic but for UI I used timers to smoothly decrement and realized really late that Ui didn’t match the actual time of the cooldown. This made me wonder if I should use delta time on everything important in the game. For example if I use a 3 second delay on an enemies attack people could be getting anything from 2.7 to 3.2 seconds? probably not gonna worry about making my first game deterministic or add leaderboards but it’s still fun to learn this stuff

IMO look into GAS, it has everything you need. If not then consider moving everything to components.

You are shooting yourself in the foot trying to reinvent tick.