Bone scaling gets very screwy between Blender and UE4. Only way I found to fix it is by scaling everything to one-hundred times it’s normal size in Blender. Assuming your gun should be around 120cm long, you should scale it to be 120m long in Blender.
But to stop it from being to big in UE4, you’ll have to scale your measurements down as well and you have two options.
a) You set your Unit Type to metric and scale it down to 0.01
b) You set you Scale down to 0.01 in the exporter
They both have the same effect.
Unfortunately this is likely to break all your animations.