you could bound your input for shooting and gameplay to unhandledinput(event):
which would block inputs that happens on gui's that filters mouse
but that option adds a LOT of latency, which could be an issue for your game
-as a work around you could have a canvas layer with its layer lower than all of your gui
-add a child control node
-connect its signal for mouse enter and exit for enabling and disabling your mouse inputs for your gameplay
-make sure to set it to full rect on layout
-whenever the mouse enters your control node it means that its not being blocked by a gui, else there is a gui on top
its a clunky solution but it gets the job done, you could even use singletons for this