First Person Issue

Hello Devs! I have a first person problem. The Problem is when you are in first person you can turn your camera still and then see the top of the torso. Here is the code:

local player = game.Players.LocalPlayer
local char = player.Character
local RunService = game:GetService("RunService")

char.Humanoid.CameraOffset = Vector3.new(0, 0, -1)

for i, v in pairs(char:GetChildren()) do
 if v:IsA("BasePart") and v.Name ~= "Head" then
  
  v:GetPropertyChangedSignal("LocalTransparencyModifier"):Connect(function()
   v.LocalTransparencyModifier = v.Transparency
  end)
  
  v.LocalTransparencyModifier = v.Transparency
  
 end
end

RunService.RenderStepped:Connect(function(step)
 local ray = Ray.new(char.Head.Position, ((char.Head.CFrame + char.Head.CFrame.LookVector * 2) - char.Head.Position).Position.Unit)
 local ignoreList = char:GetChildren()
 
 local hit, pos = game.Workspace:FindPartOnRayWithIgnoreList(ray, ignoreList)
 
 if hit then
  char.Humanoid.CameraOffset = Vector3.new(0, 0, -(char.Head.Position - pos).magnitude)
 else
  char.Humanoid.CameraOffset = Vector3.new(0, 0, -1)
 end
end)