There are many different resources on making an fps viewmodel. The one I feel is probably the most simplest while still looking decent is Egomoose’s method.
What I did to animate the viewmodel was using Headstackk’s animation method. Do note however, you will have to alter egomoose’s viewmodel by deleting the motor6d attached to the viewmodel head to the tool (I learnt this the hard way). The M6D used in this animation method should also be done locally
There’s a lot of information I would have to cover, so if you have any questions just ask.
(At some point in the future you’re probably gonna encounter problems with the animation not looking correct on the viewmodel when being played in game, if so just PM me, I can solve it)