An alternative solution for this is using timers. Forget all those horrible gate and sequence nodes it’s far to complicated and messy for quite a simple thing
The way firing an automatic weapon is handled in most of the stuff I’ve gone through is through timers and it gives you alot more control.
On button press start a ‘BeginFire’ function timer with 0 as the InFirstDelay, this will make the weapon fire instantly the button is pressed.
Then you set the timer to looping = true and everytime the timer ends it fires another shot, on button release the EndFire is called and stops the timer running.
You can create a variable for the timers InRate so you can control the length of time between shots (fire rate) whilst you’re holding down the button.
Simple as that
Here’s the doc page for Blueprint timers:
Although after having just opened that page I see there seems to be no ‘InFirstDelay’ on the set timer node in blueprint…which is…erm…rubbish…and kinda makes everything I just said pointless…
Maybe on button press call the fire function manually the 1st time then start the timer to run on a loop.
I don’t really get why that Blueprint node doesn’t have the same input parameters as C++…