I see this mistake a lot with new developers. well maybe not mistake, but just not really effective and doesn't behave the way the developer wants.
Don't nest an Every X seconds under anything. Only use every X seconds at the root. I know it sound like it should work as in
While condition is met then on every X seconds do this.
but that usually doesn't.
Instead you need work another way of handling the problem of next time.
If Gamepad(loopindex) Right Shoulder is down and array(loopindex) < time
then
shoot
array(loopindex) = time + 0.25
This is psuedo code of course. But that's what your looking for.