local player = game.Players.LocalPlayer local UIP = game:GetService("UserInputService") local Mouse = player:GetMouse() local Ammo = 30 function Shoot() if Ammo > 0 and script.Parent.Equipped then local ray = Ray.new(script.Parent.Handle.CFrame.Position, (Mouse.Hit.Position - script.Parent.Handle.CFrame.Position)) local Hit,position = workspace:FindPartOnRayWithIgnoreList(ray,{script.Parent.Handle}) local magnitude = (script.Parent.Handle.Position - Mouse.Hit.Position).Magnitude if Hit ~= nil then print(Hit.Parent.Name) if Hit.Parent:FindFirstChild("Humanoid") then Hit.Parent.Humanoid:TakeDamage(5) elseif Hit.Parent.Parent:FindFirstChild("Humanoid") then Hit.Parent.Parent.Humanoid:TakeDamage(5) end end end end function Check() while MB1Down == true do wait(0.1) if Ammo > 0 then script.Parent.Handle["G36 Single Fire"]:Play() Ammo = Ammo - 1 Shoot() end end end UIP.InputBegan:Connect(function(Key) if Key.KeyCode == Enum.KeyCode.R then Ammo = 30 end end) Mouse.Button1Down:Connect(function() MB1Down = true Check() end) Mouse.Button1Up:Connect(function() MB1Down = false Check() end)
It does not register every bullet, it sometimes skips and returns nil. I have seen other free models gun work, but why does mine not work properly?