Shotgun SWEP

I’ve spent about 20 minutes now on this shotgun SWEP.
What im trying to do is put each round into the shotgun instead of just using lightning hands like the default CS:S weapons.

I also want the hand and the round to appear and go into the gun, not just some shell flying into the bottom

I am using the cs:s model shotgun.

(I can only see the first bullet and hand going in, then I get around a 1/7 chance of seeing it again.)

[lua]
function SWEP:Reload()

//if ( CLIENT ) then return end

self:SetIronsights( false )

// Already reloading
if ( self.Weapon:GetNetworkedBool( "reloading", false ) ) then return end

// Start reloading if we can
if ( self.Weapon:Clip1() < self.Primary.ClipSize && self.Owner:GetAmmoCount( self.Primary.Ammo ) > 0 ) then
	
	self.Weapon:SetNetworkedBool( "reloading", true )
	self.Weapon:SetVar( "reloadtimer", CurTime() + 0.6 )
	self.Weapon:SendWeaponAnim(ACT_SHOTGUN_RELOAD_START)
	self.Owner:DoReloadEvent()
	
end

end

function SWEP:Think()

if ( self.Weapon:GetNetworkedBool( "reloading", false ) ) then

	if ( self.Weapon:GetVar( "reloadtimer", 0 ) < CurTime() ) then
		
		// Finished reload
		if ( self.Weapon:Clip1() >= self.Primary.ClipSize || self.Owner:GetAmmoCount( self.Primary.Ammo ) <= 0 ) then
			self.Weapon:SetNetworkedBool( "reloading", false )
			return
		end
		
		// Next cycle
		self.Weapon:SetVar( "reloadtimer", CurTime() + 0.6 )
		self.Weapon:SendWeaponAnim( ACT_VM_RELOAD )
		self.Owner:DoReloadEvent()
		
		// Add ammo
		self.Owner:RemoveAmmo( 1, self.Primary.Ammo, false )
		self.Weapon:SetClip1(  self.Weapon:Clip1() + 0.6 )
		
		// Finish filling, final pump
		if ( self.Weapon:Clip1() >= self.Primary.ClipSize || self.Owner:GetAmmoCount( self.Primary.Ammo ) <= 0 ) then
			self.Weapon:SendWeaponAnim( ACT_VM_RELOAD )
			timer.Create("LastPumpTimer", 0.4, 1, function()
				self.Weapon:SendWeaponAnim( ACT_SHOTGUN_RELOAD_FINISH )
			end)
			self.Owner:DoReloadEvent()
		else
		
		end
		
	end

end

end
[/lua]