How to find models that are touching part?

Hello, I am trying to make a script which finds a number of how many models are touching a part. The model is NPC and it has same name as other NPCS there is ussualy alot of them.

How it looks outside script:
vaizdas_2022-07-21_224406226

How it should look like:

Inside of the script:

local part = script.Parent

local TopLeftFrontOfPart = part.Position - (0.5 * part.Size)
local TopRightBackOfPart = part.Position + (0.5 * part.Size)

local region = Region3.new(TopLeftFrontOfPart,TopRightBackOfPart)
local count = 0
script.Parent.Touched:Connect(function()
	for _,Part in pairs(game.Workspace:FindPartsInRegion3(region,nil,math.huge)) do
		if Part.Parent.Name == "Dummy" then
			count = count + 1
			script.Parent.Parent.MainS.SurfaceGui.TextLabel.Text = count
		end
		
	end
	print(count)
	count = 0
end)

Hope you can solve my problem.

You can use CollectionService and add a tag to the dummy. You can do this by saying CollectionService:AddTag(Dummy,“ModelIsInCount”). In the if statement where you see if Part.Parent.Name == “Dummy”, you can also add “and not table.find(CollectionService:GetTags(Dummy),“ModelIsInCount”)”

It would be useful but what should i do if there is multiple checkers?

id probably create a table of all parts touching, use instance:findfirstancestorwhichisa(“model”), add 1 to a counter, then remove all children of that model from the table. repeat from step 2 until table is empty

The only thing you need is Region3