Animation - game object not staying in place
In the Dopesheet press the Only Include Channels button (arrow icon, allows to only see the keyframes of the selected object), select the weapon, you'll see if your object has an action assigned. You've given your gun an action called "Action", this action has bones keyframes, so I guess it is supposed to be used by your armature, not your gun. And this action also has LocRotScale keyframes, your gun will be affected by those LocRotScale. It makes no sense to use such an action, don't give any action to your gun (except for example propelling a bullet), your gun should rather follow the hand of your armature. So in the Dopesheet remove the action with the X button on the right of its name (Unlink this Action). Now your gun is free from any action. Now parent it to the hand bone, so that it will be moved by the hand, it's much more logical.