Actually it wasn't that it was the wait feature or timer it was just one thing it was the fact that the cooldown system used a local number and it started working as intended after it was switched to a global number. Weird
I don't see how that's correct, if you use a global variable instead it would still be broken in the same way. But to be honest you never mentioned how it was broken in the original post.