Why my script don’t see npc if npcs HumanoidRootPart anchor is false?

Hi,
i have a problem i have a npc spawn locations and i use a bool value to check if place ready to spawn new npc. and i want this place be ready if there no more npc i tryed this script:

script.Parent.TouchEnded:Connect(function(hit)
	local player = game.Players:GetPlayerFromCharacter(hit.Parent)
	if not player and hit.Parent.Name == part.Name then
		print(hit.Parent.Name)
		part.Ready.Value = true
	end
end)

but this script don’t see an npc. I noticed that script will see it if i will make npcs HumanoidRootPart anchor false. Anyone know why this happening?