local partsInArea = workspace:GetPartBoundsInBox(CFrame, Vector3, OverlapParams)
local foundModels = {}
for _,v in pairs(partsInArea) do
if v.Parent:IsA("Model") and not table.find(foundModels,v.Parent) then
table.insert(foundModels, v.Parent)
end
end
Make an array of currently retrieved models.
Use the part finder and check to make sure they are NPCs.
Add any found to the array, make sure there will be no duplicates.