How would I do something like this?

I do think this would be more elgant in C++. If i had to do it in BP then i would probably make a buff manager class that had an array of structs (buffs). Each tick/timer interval i would check each index in the array for a time attribute.