What I recommend is that you create a new Blueprint class of type Actor. Name this new Actor “Master_Weapon”. Any gun you make, make it by Content Browser → Add New → Blueprint Class → Actor → Search for “Master_Weapon” and make it a child of that as shown in the picture.
Make the damage, accuracy, and all other statistics for the weapons in the Master_Weapon class, then open the weapon you made, click on Class Defaults, and set the statistics that way. Changing statistics in Weapons is shown below.
Now, in the Player Blueprint, add a child actor and name it Equipped Weapon. Do this by clicking Add Component → Child Actor. Then, when you want to change your weapon, you can simply set the child actor class as shown.
Now open the skeletal mesh for your arm model and add a socket to the weapon holding hand called “HoldingPoint”.
Now go back to your Player Blueprint and go to the Construction Script. Add an Attach to Component node and attach your arms, then set the socket to attach to to your “HoldingPoint” socket. Make sure that Location and Rotation are snap to target.
Hope this helps, and let me know if you need a little more help!
[Learn more about sockets and how to use them.][6]
[Learn more about Child Blueprints and how to use their children.][7]
[Learn more about using functions with the Child Actor Component to shoot, reload, etc…][8]