How I've always gotten this to work is using a global something like this:
On Key Pressed
Global Variable 'Cooldown' set 'false'
Set value 'Cooldown' to 'true'
(Fire stuff here)
Wait 0.5 seconds
Set value 'Cooldown' to 'false'
I'm away from my computer so I can't check C2 for exact verbiage, but that should work. A few things to note, if you use touch input or 'if key is down' add 'trigger once while true' to your conditions for something like this or you'll get strange problems sometimes for events such as this. Let me know if this way works for you.