Global variables are not linked to a specific group, in that case they will turn into local variables, and are only available to that group.
I don't think there are any logical or good way to do it. Due to several reason, it would be very inconvenient to work with variables that way, and it will complicate things for you unnecessarily.
Want i would suggest and a way that i personally think is a good way to organise things, as im not a huge fan of global variables in general, as you tend to end up with a very long list and after a while its very hard to maintain an overview of what variables does what and where they are used, so i use them only for very few things. Instead i would suggest you to make a small sprite or a series of them, what you prefer and depending on how many weapons you have, but just a size of 16x16 and place it outside the layout and you use this/these for storing your weapon settings.
So if you give it a name like "Weapon settings" whenever you need to get a value or setting for a weapon you know that these are found in that sprite. And you don't have to worry about loosing control of them, as these are only used for weapons. So when you look through your "Add action/Add event" things will be a lot more organized. And if you ever need to change any settings you can just update the values in that sprite.
I normally use several of these types of sprites, for "Names", "Weapons", "System settings", "Enemy settings" etc. and since they are so small in size they will have near to no impact on performance and they allow you to use Booleans. And if you need them to be global you just set the sprite global value to true.
However just be sure that whenever you need a value that you get it from the sprite, and not just make a "Set weapon damage = 2" etc as that would give you wrong data at some point. However that also means that its very easy to update your whole project in one go, if you decide at some point that a certain weapon should do more damage.