Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

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. Here is a script that dosen't really work it gives me only an amount of parts touching but not how many models touching.

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
			
		end
	end
	print(count)
	count = 0
end)

Thanks.

3 answers

Try this

if Part.Parent:IsA("Model") then
	
	local model = Part.Parent

end

1 comment

0

It wouldn't work because it would still do it with every part of model

Maybe try this. Basically, I just made a table and inserted models into it.

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

local models = {}

script.Parent.Touched:Connect(function()
    for _,Part in pairs(game.Workspace:FindPartsInRegion3(region,nil,math.huge)) do
        if Part.Parent:IsA('Model') then
			if models[Part.Parent] then
				return
				else
					table.insert(models, Part.Parent)
			end
		end
    end
	count = (#models)
    print(count)
	table.clear(models)
    count = 0
end)

hey you! have you ever heard of enes? if you are in trouble, better call enes!

This discussion is preserved as it was. New answers, comments, and votes are closed.