The array works like a table of properties, so weapon 1 is on row 1, weapon 2 is on row 2 etc, that's how they relate to the weapon global variable in the event. Each column is different properties so 1st column could be name, 2nd column damage etc
Then for the one event that assigns all is like an equip weapon function - using my example above, set weapon name to array.at(var,0) and set weapon damage to array.at(var,1) with the variable var giving the row/weapon
You could attempt this with a few weapon examples. Create an array file in the side bar. On start of layout Load array file into the array. That fills the array with the table of data. When you see it working with a few then all you need to do is add more weapons to the file.