Timers Overwriting Each Other When Using "Set Timer by Event" for Multiple Perks

Hello everyone!
I’m working on a perk system similar to Call of Duty Zombies, where each perk grants a temporary ability (e.g. for 30 seconds), and I’m currently facing an issue with how timers behave when applying multiple perks.

Here is the situation:

  • I have a function called “SetPerkTimer”, wich takes a ID from the data given and sets a timer for the specific time of the perk using a Set Timer by Event

  • Each time the player picks up another perk, it assigns a timer and stores it on the TimerHandle of the map using the ID as the key.

  • When the player picks up the first perk it works as wanted, but when another perk is picked up then the first timer goes to -1 and the second perk starts the timer with the correct duration.

Question:

  • What I have to do to make functional different timers with to not face any -1 anymore?
  • Is maybe another way to make the timer part?

The trouble is, you have one ‘set timer’ node.

It’s the same with timelines.

What you could do, is start the timer when any perks are in the map, but use the event to run through the map, and subtract 1 from each perk time, which you also keep as part of the structure, or map.

So each perk has a float time associated with it, and the timer just subtracts one from each.

Thanks mate!
I changed pretty much everything and it worked!
Basically I changed the map values to float and then started giving the duration of each perk and made a for now event tick driven timer.

One more time, thanks mate!