A quick tutorial on how to add/set up a new weapon to your game, including animations. Using available assets from the Marketplace (e.g. Military Weapon Silver).
I. Add the new Weapon to Skeleton
Select/Upload/Migrate/Add your selected weapon to your game (Content folder)
Open the weapon folder to see all the related assets (Mesh, Material, Texture, Anims)
Open Character Skeletal Mesh, go to Skeleton (top right section tab)
On the left side, select the Skeleton Tree tab
In the list, Find your right-hand bone (hand_r), click, and Add socket
Rename with PistolSocket
Right-click on it, add Preview asset, scroll down, search for Pistol_A
Adjust the pistol position using W.E.R. commands (rotation, size, angle) + camera speed
Under Preview Animation (sub nav bar at the top), Pause animation/Idle
Go to BP_Character BB, left side, add a new Skeletal Mesh, rename (e.g. PistolMesh), select then...
Right side, under Mesh, clear Skeletal Mesh and replace with Pistol_A (Weapon file name)
The weapon will appear on the screen
Right side, under Sockets, Parent Sockets, search for PistolSocket
It should now be snapped to the Hand
Click play to test
If needed, debug by watching this great video: https://youtu.be/qOam3QjGE8g?t=1800
II. Setting up aiming states
Go to Content Drawer, Anims folder
Open TSSAnim_BP, Go to Idle/Run tab
Select New state Machine (nav breadcrumbs)
Drag Idle/Run to create another state, named IdleToAim
Drag from it and create another state, named Aim
Drag from Aim, create another state, name AimToIdle, and drag it back to Idle/Run
Compile (see errors = normal) - Time to set up the transitions (arrows between states) - see step 11
Before that, let's set up States.
Double click on IdleToAim, select IdleToAim animation (bottom right), drag to Result, compile
Same for all the others, select the related animation and hook that with Result, compile
To setup animations, double click on the Arrows between states (e.g. Idle/Run to IdleToAim), drag left side, and promote to variable
Name variable IsAiming?
Compile and Save
For IdleToAim to Aim, click on the arrows
Right-click, select Time Remaining (ratio) IdleToAIm
Drag the return value and select "Less" (e.g. Less < 0.7)
Hook that to Can Enter Transition
For Aim to AimToIdle, click on the arrows, drag the IsAiming Variable, select Not Boolean
Link to Result (if not aiming, then we enter the AimToIdle state
AimToIdle to Idle/Run, add Time Remaining(ratio) AimToIdle, drag return value, and select Less, <0.7, link to can enter transition.
Compile and Save
III. Using/Binding right-click as Aiming
Open BP_Character
Create a new variable, "Aiming?"
Compile/Save
Go to TSSAnim_BP, Event Graph
Find Event Try Get Pawn Owner, drag return value, cast to [BP_Character] (or whatever your file name is) (and hook to Set Speed)
Drag As BP_Character -> Get Aiming?
Drag IsAiming variable, Set IsAiming, hook to Exec pin
Go to BP_Character, Event Graph
In the Graph, right-click, Get Right Mouse Button (Legacy)
Drag Aiming variable, Set Aiming? Now hook Pressed to it and -> Tick.
Drag Aiming variable, Set Aiming? Now hook Released to it and -> Untick
Test
To slow down character when Aiming, do as follow,
Go to BP_Character, Event Graph
On the left side, select Character Movement and drag to the graph,
Drag off and type Set Max walk Speed, hook to exec pin
Set Max Walk Speed to 200
Copy this for the released aiming section, and set that max speed back to 600
IV. Add additional Animations (e.g. IdleFire or HipFire)
Find the weapon (e.g. Pistol animations) in the Weapons/Animations folder
Find the Fire_Pistal_W and double-click to see the animation as well as the Muzzle Flash (Particle effect) and sound
To add, right-click, Add Notify (...)
Select AimFire + IdleFire, right-click, and create animation montages
Go to BP_Character
On the Event Graph, add Left Mouse Button.
Get Aiming? variable, drag and get branch, hook exec pin (Pressed)
From True, play anim montage
In skeletal mesh component, drag and hook to the FirstPersonMesh (from Component, top left side)
Montage to Play will be AimFire_Montage
Compile/Save
Duplicate that Play Montage, hook to False, and hook to FirstPersonMesh as well
Montage to Play, select IdleFire montage
Open TSSAnim_BP, Go to New State Machine, and back to Anim Graph.
Drag New State machine, select Slot Default Slot, and link this to Output Pose. Compile/Save

16. To play the firing animation, incl muzzle flash + sound, in the BP_Character, Event Graph, Drag the PistolMesh, Drag and select Play Animation, hook to both exec pins.
17. Select Fire_Pistol_W as anim to play.
This is a simplified tutorial. For the full tutorial & video, visit this excellent channel - https://youtu.be/qOam3QjGE8g