How to add recoil to a gun while maintaining a 3rd person view camera lock

I have a very basic solution.
This is my old recoil script. Indeed, it is very basic and disappointing, but it get the job done.
This will work on First Person Camera and Third Person Camera.
Method : Multiplying camera current CFrame with CFrame.Angles

local function changeCamaraRecoilUp(numberOfStep, maxValue, minValue, waitNumber)
	for Count = numberOfStep, 1, -1 do
		local ValX = maxValue / minValue
		
		camera.CFrame = camera.CFrame * CFrame.Angles(ValX, 0, 0) -- camera is game.Workspace.CurrentCamera
		task.wait(waitNumber) 
	end
end

tool.Activated:Connect(function()
   changeCamaraRecoilUp(3, 1, 60, 0.006)
end)
5 Likes