I wouldn’t recommend using .Touched
for a zone detection, I recently needed to do a zone detection to damage players and used ZonePlus - a much better and efficient alternative. It uses Roblox’s Spatial Query API and has little to no affects performance wise.
local container = workspace.AModelOfPartsRepresentingTheZone
local zone = Zone.new(container)
zone.playerEntered:Connect(function(player)
print(("%s entered the zone!"):format(player.Name))
end)
zone.playerExited:Connect(function(player)
print(("%s exited the zone!"):format(player.Name))
end)