Need some direction for my fps problem

I am currently working on an fps game. but like most fps engines on roblox, you can see the guns people are using. My fps does not use tools but rather uses a framework I made which is put into the player’s backpack. I tried to look at engines and how they do it but can’t find or can’t understand how they do it. I’m not sure if i need to use animations,CFrames, or inverse kinematics to get the player to hold the gun. I also need to create a model based on the gun the player has. I’m not requesting a script, but rather asking where i should start or what i should look into to make a solution.

For my FPS games i create a viewmodel script, and a rigged model with arms, the gun, and a humanoid inside it for animations. The script places the viewmodel relative to the camera and handles the gun itself like firing and animations + remote firing for when the player fires or reloads. And of course verification on the server.

Thanks! I’ll be sure to investigate into this method.