We use cookies on this site to enhance your user experience
Collapse Sidebar


Returns an array of BaseParts in the given DataType/Region3 that are in, or descendant of an object in, a given white list.

This function takes an optional maxParts parameter (default 20) which limits the number of BaseParts that can be returned. Once this number has been reached, the search for BaseParts will stop. This means some BaseParts may not be returned even if they are within the DataType/Region3

If no BaseParts are found, an empty array will be returned.

This function is a variant of Workspace/FindPartsInRegion3 with the addition of a white list. Those looking to find BaseParts in a Region3 using an ignore list, should use Workspace/FindPartsInRegion3WithIgnoreList.

How do Region3 checks work?

Checking if a part overlaps a DataType/Region3 is not a simple process. It actually is time consuming and complicated. Instead it checks if parts are roughly in the same area. When this function is called, it figures out which voxels contain the DataType/Region3. It then figures out which parts might be in those voxels. It does this by comparing the axis-aligned bounding box (sometimes called the AABB) of the part with the voxels. The axis-aligned bounding box can be seen in Roblox Studio when a part is selected.

This means that the area that is inspected by the function may be larger than the DataType/Region3. For this reason it is recommended to make sure that the DataType/Region3 is on the voxel grid. The best way to do this is by setting the coordinates of the DataType/Region3 to multiples of 4 (since voxels are 4 x 4 x 4 studs).

This method is a fairly quick and easy way to see if parts are in a general area. If a game needs to know if parts are exactly in an area, then BasePart/GetTouchingParts should be used. There is a higher cost to using BasePart/GetTouchingParts since a part is needed in the Workspace and the function takes more time to run.


  • If a nil value is given in the white list, instances after this value will be disregarded


Name Type Default Description

The DataType/Region3 to be checked.

An array of objects to check.


The maximum number of BaseParts to be returned.


Return Type Summary

An array of BaseParts within the DataType/Region3.

Code Samples


Click the link to go to a working place that runs this code sample. It is not copy locked so anyone may open it.

-- Set up Region3 and return only the red parts
parts = workspace:FindPartsInRegion3WithWhiteList(,-20,-100),,20,100)), {workspace.Reds}, 1000)

-- loop through the parts array and print the name of each part
for partIndex, part in pairs(parts) do