It's a tool in StarterPack running on a server script. Check 3 doesn't print. I'm not sure why.

print("Check 1")

gun = script.Parent
firing = false

bullet = Instance.new("Part")
bullet.BrickColor = BrickColor.new("Bright orange")
bullet.Reflectance = 0.2
bullet.TopSurface = Enum.SurfaceType.Smooth
bullet.BottomSurface = Enum.SurfaceType.Smooth
bullet.FormFactor = Enum.FormFactor.Custom
bullet.Size = Vector3.new(0.2, 0.2, 0.6)

velocity = Instance.new("BodyVelocity", bullet)
velocity.maxForce = Vector3.new(math.huge, math.huge, math.huge)

hashit = Instance.new("BoolValue", bullet)
hashit.Name = "HasHit"

print("Check 2")

function onButton1Down(mouse)
	print("Check 3")
	firing = true
	
	coroutine.resume(coroutine.create(function()
		print("Check 4")
		while firing == true do
			print("Check 5")
			local newbullet = bullet:Clone()
			newbullet.Parent = workspace
			newbullet.CFrame = CFrame.new(gun.Handle.Position + gun.Handle.CFrame.lookVector * 2, mouse.Hit.p)
			newbullet.BodyVelocity.velocity = mouse.Hit.lookVector * 300
			
			newbullet.Touched:connect(function(hit)
				if newbullet.HasHit.Value == false then
					newbullet.HasHit.Value = true
					if hit.Parent:FindFirstChild("Humanoid") and hit.Parent ~= gun.Parent then hit.Parent.Humanoid:TakeDamage(30) end
					newbullet.BodyVelocity:Destroy()
				end
			end)
	
			game:GetService("Debris"):AddItem(newbullet, 6)
			wait(.125)
		end
	end))
	
	mouse.Button1Up:connect(function() firing = false end)
end

function onEquipped(mouse)
	mouse.Button1Down:connect(function() onButton1Down(mouse) end)
end

gun.Equipped:connect(onEquipped)