From what I’ve seen, most fps on roblox scale their viewmodels down however position them very close to the camera. I’m not that sure, but I’m pretty certain the ways of doing viewmodels not clip through parts are VERY limited.
You could try and change the players FOV whilst in first person or holding a weapon, additionally you could try and move the players hands further back when in the weapons animation.