# WorldRoot

Roblox Engine API class from Roblox Studio 0.744.0.7441077 (version-7aaa6838d36c4448).

- Inherits from, nearest first: [Model](https://rapi.sleaze.dev/classes/Model.md), [PVInstance](https://rapi.sleaze.dev/classes/PVInstance.md), [Instance](https://rapi.sleaze.dev/classes/Instance.md), [Object](https://rapi.sleaze.dev/classes/Object.md)
- Subclasses: [Workspace](https://rapi.sleaze.dev/classes/Workspace.md), [WorldModel](https://rapi.sleaze.dev/classes/WorldModel.md)
- Tags: Not creatable
- Memory category: BaseParts
- HTML page: https://rapi.sleaze.dev/classes/WorldRoot/
- Roblox documentation: https://create.roblox.com/docs/reference/engine/classes/WorldRoot

Base class for handling physics simulation and 3D spatial queries.

## Properties

### Wind

```luau
WorldRoot.Wind: number
```

- Tags: Hidden, Roblox engine security, Simulation access

### WindDirection

```luau
WorldRoot.WindDirection: Vector3
```

- Tags: Hidden, Roblox engine security, Simulation access

### AutoSimulate

```luau
WorldRoot.AutoSimulate: boolean
```

- Tags: Hidden, Roblox engine security

### CollisionGroupData

```luau
WorldRoot.CollisionGroupData: string
```

- Tags: Hidden, Not scriptable, Roblox engine security

### GravityDirection

```luau
WorldRoot.GravityDirection: Vector3
```

- Tags: Hidden, Roblox engine security, Simulation access

### SimulationRate

```luau
WorldRoot.SimulationRate: number
```

- Tags: Hidden, Roblox engine security

### PhysicsStepTime

```luau
WorldRoot.PhysicsStepTime: number
```

- Tags: Hidden, Read only, Roblox script security

## Methods

### ArePartsTouchingOthers

```luau
WorldRoot:ArePartsTouchingOthers(partList: { Instance }, overlapIgnored: number? = 0.000199999995): boolean
```

- Tags: Simulation access

Returns true if any of the given [`BasePart`](https://rapi.sleaze.dev/classes/BasePart.md) are touching any other parts.

Parameters:

- `partList`: A list of parts checks to see if any parts in the list are touching any parts not in the list.
- `overlapIgnored`: The part overlap threshold in studs that is ignored before parts are considered to be touching.

Returns: True if and only if any of the `parts` in `partList` are touching any other parts (parts not in the partList). False if no parts are passed.

### Blockcast

```luau
WorldRoot:Blockcast(cframe: CFrame, size: Vector3, direction: Vector3, params: RaycastParams? = RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): RaycastResult?
```

- Tags: Thread safe, Simulation access

Casts a block shape in a given direction and returns a [`RaycastResult`](https://rapi.sleaze.dev/index/types/RaycastResult.md) if the shape hits a [`BasePart`](https://rapi.sleaze.dev/classes/BasePart.md) or [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) cell.

Parameters:

- `cframe`: The initial position and rotation of the cast block shape.
- `size`: The size of the cast block shape in studs. The maximum size is 512 studs.
- `direction`: Direction of the shapecast, with the magnitude representing the maximum distance the shape can travel. The maximum distance is 1024 studs.
- `params`: An object used to specify hit eligibility in the shapecast operation. If not provided, default values are used where all parts are considered and [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) water is not ignored.

Returns: Contains the result of the shapecast operation, or `nil` if no eligible [`BasePart`](https://rapi.sleaze.dev/classes/BasePart.md) or [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) cell was hit.

### BulkMoveTo

```luau
WorldRoot:BulkMoveTo(partList: { Instance }, cframeList: { any }, eventMode: Enum.BulkMoveMode? = Enum.BulkMoveMode.FireAllEvents)
```

- Tags: Simulation access

Moves an array of `BaseParts` to an array of `CFrames`.

Parameters:

- `partList`: An array of `BaseParts` to be moved. Each entry is matched by index to the corresponding entry in `cframeList`.
- `cframeList`: An array of `CFrames` that the parts will be moved to, matched by index to `partList`. Both arrays must be the same length.
- `eventMode`: An `BulkMoveMode` enum specifying which [`Changed`](https://rapi.sleaze.dev/classes/Object.md) events fire during the move. Default is `FireAllEvents`.

### CacheCurrentTerrain

```luau
WorldRoot:CacheCurrentTerrain(id: string, center: Vector3, radius: number): string
```

- Tags: Roblox script security

### ClearCachedTerrain

```luau
WorldRoot:ClearCachedTerrain(id: string): boolean
```

- Tags: Roblox script security

### CollisionGroupsAreCollidable

```luau
WorldRoot:CollisionGroupsAreCollidable(name1: string, name2: string): boolean
```

- Tags: Capabilities: Physics, Simulation access

Returns whether the two groups will collide in this world.

### CollisionGroupSetCollidable

```luau
WorldRoot:CollisionGroupSetCollidable(name1: string, name2: string, collidable: boolean)
```

- Tags: Capabilities: Physics, Simulation access

Sets the collision status between two groups in this world.

### GetAwakeContactNormals

```luau
WorldRoot:GetAwakeContactNormals(): { any }
```

- Tags: Custom Lua state, Roblox script security, Thread safe

### GetAwakeContactParts

```luau
WorldRoot:GetAwakeContactParts(): { any }
```

- Tags: Custom Lua state, Roblox script security, Thread safe

### GetAwakeContactPositions

```luau
WorldRoot:GetAwakeContactPositions(): { any }
```

- Tags: Custom Lua state, Roblox script security, Thread safe

### GetAwakeRootParts

```luau
WorldRoot:GetAwakeRootParts(): { Instance }
```

- Tags: Custom Lua state, Roblox script security, Thread safe

### GetMaxCollisionGroups

```luau
WorldRoot:GetMaxCollisionGroups(): number
```

- Tags: Capabilities: Physics, Simulation access

Returns the maximum number of collision groups in this world.

### GetPartBoundsInBox

```luau
WorldRoot:GetPartBoundsInBox(cframe: CFrame, size: Vector3, overlapParams: OverlapParams? = OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): { Instance }
```

- Tags: Custom Lua state, Thread safe, Simulation access

Returns an array of parts whose **bounding boxes** overlap a given box.

Parameters:

- `cframe`: The location of the center of the given box volume to be queried.
- `size`: The size of the given box volume to be queried.
- `overlapParams`: Contains reusable portions of the spatial query parameters.

Returns: An array of `BaseParts` which matched the spatial query.

### GetPartBoundsInRadius

```luau
WorldRoot:GetPartBoundsInRadius(position: Vector3, radius: number, overlapParams: OverlapParams? = OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): { Instance }
```

- Tags: Custom Lua state, Thread safe, Simulation access

Returns an array of parts whose **bounding boxes** overlap a given sphere.

Parameters:

- `position`: The location of the center of the given sphere volume to be queried.
- `radius`: The radius of the given sphere volume to be queried.
- `overlapParams`: Contains reusable portions of the spatial query parameters.

Returns: An array of `BaseParts` which matched the spatial query.

### GetPartsInPart

```luau
WorldRoot:GetPartsInPart(part: BasePart, overlapParams: OverlapParams? = OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): { Instance }
```

- Tags: Custom Lua state, Thread safe, Simulation access

Returns an array of parts whose occupied space is shared with the given part.

Parameters:

- `part`: The part whose volume is to be checked against other parts.
- `overlapParams`: Contains reusable portions of the spatial query parameters.

Returns: An array of `BaseParts` which matched the spatial query.

### GetRegisteredCollisionGroups

```luau
WorldRoot:GetRegisteredCollisionGroups(): { any }
```

- Tags: Capabilities: Physics, Simulation access

Returns a table with info on all of this world's collision groups.

### IKMoveTo

```luau
WorldRoot:IKMoveTo(part: BasePart, target: CFrame, translateStiffness: number? = 0.5, rotateStiffness: number? = 0.5, collisionsMode: Enum.IKCollisionsMode? = Enum.IKCollisionsMode.OtherMechanismsAnchored)
```

- Tags: Plugin security, Simulation access

Moves the specified part to the specified location via inverse kinematics rather than moving it there directly, to ensure any joints, constraints, or collisions that part is participating in remain physically satisfied.

Parameters:

- `part`: The part being moved.
- `target`: The location to move the specified part.
- `translateStiffness`: A number between 0 and 1 specifying how aggressively to match the part's position to the position part of the target [`CFrame`](https://rapi.sleaze.dev/index/types/CFrame.md).
- `rotateStiffness`: A number between 0 and 1 specifying how aggressively to match the part's rotation to the rotation part of the target [`CFrame`](https://rapi.sleaze.dev/index/types/CFrame.md).
- `collisionsMode`: Allows you to specify what objects should be effected by the physical resolution.

### IsCollisionGroupRegistered

```luau
WorldRoot:IsCollisionGroupRegistered(name: string): boolean
```

- Tags: Capabilities: Physics, Simulation access

Checks if a collision group is registered in this world.

### Raycast

```luau
WorldRoot:Raycast(origin: Vector3, direction: Vector3, raycastParams: RaycastParams? = RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): RaycastResult?
```

- Tags: Thread safe, Simulation access

Casts a ray using an origin, direction, and optional [`RaycastParams`](https://rapi.sleaze.dev/index/types/RaycastParams.md), then returns a [`RaycastResult`](https://rapi.sleaze.dev/index/types/RaycastResult.md) if an eligible object or terrain intersects the ray.

Parameters:

- `origin`: The origin point of the ray.
- `direction`: The directional vector of the ray. Note that the length of this vector matters, as parts/terrain further away than its length will not be tested.
- `raycastParams`: An object used to specify hit eligibility in the raycast operation. If not provided, default values are used where all parts are considered and [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) water is not ignored.

Returns: Contains the results of a raycast operation, or `nil` if no eligible [`BasePart`](https://rapi.sleaze.dev/classes/BasePart.md) or [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) cell was hit.

### RaycastCachedTerrain

```luau
WorldRoot:RaycastCachedTerrain(id: string, origin: Vector3, direction: Vector3, ignoreWater: boolean): RaycastResult?
```

- Tags: Roblox script security

### RegisterCollisionGroup

```luau
WorldRoot:RegisterCollisionGroup(name: string)
```

- Tags: Capabilities: Physics, Simulation access

Registers a new collision group in this world with the given name.

### RenameCollisionGroup

```luau
WorldRoot:RenameCollisionGroup(from: string, to: string)
```

- Tags: Capabilities: Physics, Simulation access

Renames specified collision group in this world.

### SetInsertPoint

```luau
WorldRoot:SetInsertPoint(point: Vector3)
```

- Tags: Roblox script security

### Shapecast

```luau
WorldRoot:Shapecast(part: BasePart, direction: Vector3, params: RaycastParams? = RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}, cframeOverride: CFrame? = nil, sizeOverride: Vector3? = nil): RaycastResult?
```

- Tags: Simulation access

Casts the shape of a given [`BasePart`](https://rapi.sleaze.dev/classes/BasePart.md) in a direction and returns a [`RaycastResult`](https://rapi.sleaze.dev/index/types/RaycastResult.md) if the shape hits a [`BasePart`](https://rapi.sleaze.dev/classes/BasePart.md) or [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) cell.

Parameters:

- `part`: The part whose shape is cast. The cast uses this part's geometry (block, ball, mesh, and so on) and size; excessively large parts may not be supported, and it cannot be a [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) part.
- `direction`: Direction of the shapecast, with the magnitude representing the maximum distance the shape can travel. The maximum distance is 1024 studs.
- `params`: An object used to specify hit eligibility in the shapecast operation. If not provided, default values are used where all other parts are considered and [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) water is not ignored. The part being cast is always excluded from the results.

Returns: Contains the result of the shapecast operation, or `nil` if no eligible [`BasePart`](https://rapi.sleaze.dev/classes/BasePart.md) or [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) cell was hit.

### Simulate

```luau
WorldRoot:Simulate(dt: number)
```

- Tags: Roblox engine security

### Spherecast

```luau
WorldRoot:Spherecast(position: Vector3, radius: number, direction: Vector3, params: RaycastParams? = RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): RaycastResult?
```

- Tags: Thread safe, Simulation access

Casts a spherical shape in a given direction and returns a [`RaycastResult`](https://rapi.sleaze.dev/index/types/RaycastResult.md) if the shape hits a [`BasePart`](https://rapi.sleaze.dev/classes/BasePart.md) or [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) cell.

Parameters:

- `position`: The initial position of the cast spherical shape.
- `radius`: The radius of the cast spherical shape in studs. The maximum radius is 256 studs.
- `direction`: Direction of the shapecast, with the magnitude representing the maximum distance the shape can travel. The maximum distance is 1024 studs.
- `params`: An object used to specify hit eligibility in the shapecast operation. If not provided, default values are used where all parts are considered and [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) water is not ignored.

Returns: Contains the result of the shapecast operation, or `nil` if no eligible [`BasePart`](https://rapi.sleaze.dev/classes/BasePart.md) or [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) cell was hit.

### StepPhysics

```luau
WorldRoot:StepPhysics(dt: number, parts: { Instance }? = {})
```

- Tags: Plugin security

Advances the simulation for parts in the world forward based on a specified time increment and an optional set of `BaseParts`.

Parameters:

- `dt`: The amount of time that will be simulated. This argument must be a positive number. Larger values will increase the runtime of this function.
- `parts`: Optional array of parts that will be simulated. This set must contain instances that are of type [`BasePart`](https://rapi.sleaze.dev/classes/BasePart.md); any other types will be ignored.

### UnregisterCollisionGroup

```luau
WorldRoot:UnregisterCollisionGroup(name: string)
```

- Tags: Capabilities: Physics, Simulation access

Unregisters the collision group for the given name in this world.

### FindPartOnRay

```luau
WorldRoot:FindPartOnRay(ray: Ray, ignoreDescendantsInstance: Instance? = nil, terrainCellsAreCubes: boolean? = false, ignoreWater: boolean? = false): ...any
```

- Tags: Deprecated
- Use instead: [`WorldRoot.Raycast`](https://rapi.sleaze.dev/classes/WorldRoot.md)

**Deprecated:** This function has been deprecated. Use [`WorldRoot:Raycast()`](https://rapi.sleaze.dev/classes/WorldRoot.md) along with [`RaycastParams`](https://rapi.sleaze.dev/index/types/RaycastParams.md) for new work.

Returns the first [`BasePart`](https://rapi.sleaze.dev/classes/BasePart.md) or [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) cell intersecting with the given [`Ray`](https://rapi.sleaze.dev/index/types/Ray.md).

Parameters:

- `ray`: A [`Ray`](https://rapi.sleaze.dev/index/types/Ray.md) whose origin and direction define the raycast.
- `ignoreDescendantsInstance`: An [`Instance`](https://rapi.sleaze.dev/classes/Instance.md) whose descendants are ignored in the raycast.
- `terrainCellsAreCubes`: Whether [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) cells are treated as full cubes when calculating intersection. Default is false.
- `ignoreWater`: Whether [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) water cells are ignored by the ray. Default is false.

Returns: The [`BasePart`](https://rapi.sleaze.dev/classes/BasePart.md) or [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) cell hit, the [`Vector3`](https://rapi.sleaze.dev/index/types/Vector3.md) point of intersection, the [`Vector3`](https://rapi.sleaze.dev/index/types/Vector3.md) surface normal at the point of intersection, and the `Material` of the [`BasePart`](https://rapi.sleaze.dev/classes/BasePart.md) or terrain cell hit.

### FindPartOnRayWithIgnoreList

```luau
WorldRoot:FindPartOnRayWithIgnoreList(ray: Ray, ignoreDescendantsTable: { Instance }, terrainCellsAreCubes: boolean? = false, ignoreWater: boolean? = false): ...any
```

- Tags: Deprecated
- Use instead: [`WorldRoot.Raycast`](https://rapi.sleaze.dev/classes/WorldRoot.md)

**Deprecated:** This function has been deprecated. Use [`WorldRoot:Raycast()`](https://rapi.sleaze.dev/classes/WorldRoot.md) along with [`RaycastParams`](https://rapi.sleaze.dev/index/types/RaycastParams.md) for new work.

Returns the first [`BasePart`](https://rapi.sleaze.dev/classes/BasePart.md) or [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) cell intersecting with the given [`Ray`](https://rapi.sleaze.dev/index/types/Ray.md) that isn't in, nor is a descendant of an object in, the given ignore list.

Parameters:

- `ray`: A [`Ray`](https://rapi.sleaze.dev/index/types/Ray.md) whose origin and direction define the raycast.
- `ignoreDescendantsTable`: An array of objects whose descendants are excluded from the raycast.
- `terrainCellsAreCubes`: Whether [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) cells are treated as full cubes when calculating intersection. Default is false.
- `ignoreWater`: Whether [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) water cells are ignored by the ray. Default is false.

Returns: The [`BasePart`](https://rapi.sleaze.dev/classes/BasePart.md) or [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) cell hit, the [`Vector3`](https://rapi.sleaze.dev/index/types/Vector3.md) point of intersection, the [`Vector3`](https://rapi.sleaze.dev/index/types/Vector3.md) surface normal at the point of intersection, and the `Material` of the [`BasePart`](https://rapi.sleaze.dev/classes/BasePart.md) or terrain cell hit.

### FindPartOnRayWithWhitelist

```luau
WorldRoot:FindPartOnRayWithWhitelist(ray: Ray, whitelistDescendantsTable: { Instance }, ignoreWater: boolean? = false): ...any
```

- Tags: Deprecated
- Use instead: [`WorldRoot.Raycast`](https://rapi.sleaze.dev/classes/WorldRoot.md)

**Deprecated:** This function has been deprecated. Use [`WorldRoot:Raycast()`](https://rapi.sleaze.dev/classes/WorldRoot.md) along with [`RaycastParams`](https://rapi.sleaze.dev/index/types/RaycastParams.md) for new work.

Returns the first [`BasePart`](https://rapi.sleaze.dev/classes/BasePart.md) or [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) cell intersecting with the given [`Ray`](https://rapi.sleaze.dev/index/types/Ray.md) that is in, or is a descendant of an object in, the given inclusion list.

Parameters:

- `ray`: A [`Ray`](https://rapi.sleaze.dev/index/types/Ray.md) whose origin and direction define the raycast.
- `whitelistDescendantsTable`: An array of objects whose descendants are the only candidates considered in the raycast.
- `ignoreWater`: Whether [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) water cells are ignored by the ray. Default is false.

Returns: The [`BasePart`](https://rapi.sleaze.dev/classes/BasePart.md) or [`Terrain`](https://rapi.sleaze.dev/classes/Terrain.md) cell hit, the [`Vector3`](https://rapi.sleaze.dev/index/types/Vector3.md) point of intersection, the [`Vector3`](https://rapi.sleaze.dev/index/types/Vector3.md) surface normal at the point of intersection, and the `Material` of the [`BasePart`](https://rapi.sleaze.dev/classes/BasePart.md) or terrain cell hit.

### FindPartsInRegion3

```luau
WorldRoot:FindPartsInRegion3(region: Region3, ignoreDescendantsInstance: Instance? = nil, maxParts: number? = 20): { Instance }
```

- Tags: Deprecated
- Use instead: [`WorldRoot.GetPartBoundsInBox`](https://rapi.sleaze.dev/classes/WorldRoot.md)

**Deprecated:** This function has been deprecated. Use [`WorldRoot:GetPartBoundsInBox()`](https://rapi.sleaze.dev/classes/WorldRoot.md) along with [`OverlapParams`](https://rapi.sleaze.dev/index/types/OverlapParams.md) for new work.

Returns an array of `BaseParts` in the given [`Region3`](https://rapi.sleaze.dev/index/types/Region3.md).

Parameters:

- `region`: The [`Region3`](https://rapi.sleaze.dev/index/types/Region3.md) to be checked.
- `ignoreDescendantsInstance`: An [`Instance`](https://rapi.sleaze.dev/classes/Instance.md) to be ignored.
- `maxParts`: The maximum amount of `BaseParts` to be returned.

Returns: An array of `BaseParts` within the [`Region3`](https://rapi.sleaze.dev/index/types/Region3.md).

### FindPartsInRegion3WithIgnoreList

```luau
WorldRoot:FindPartsInRegion3WithIgnoreList(region: Region3, ignoreDescendantsTable: { Instance }, maxParts: number? = 20): { Instance }
```

- Tags: Deprecated
- Use instead: [`WorldRoot.GetPartBoundsInBox`](https://rapi.sleaze.dev/classes/WorldRoot.md)

**Deprecated:** This function has been deprecated. Use [`WorldRoot:GetPartBoundsInBox()`](https://rapi.sleaze.dev/classes/WorldRoot.md) along with [`OverlapParams`](https://rapi.sleaze.dev/index/types/OverlapParams.md) for new work.

Returns an array of `BaseParts` in the given [`Region3`](https://rapi.sleaze.dev/index/types/Region3.md) that aren't in, or a descendant of an entry in, the given ignore list.

Parameters:

- `region`: The [`Region3`](https://rapi.sleaze.dev/index/types/Region3.md) to be checked.
- `ignoreDescendantsTable`: An array of objects to be ignored.
- `maxParts`: The maximum number of `BaseParts` to be returned.

Returns: An array of `BaseParts` found within the [`Region3`](https://rapi.sleaze.dev/index/types/Region3.md).

### FindPartsInRegion3WithWhiteList

```luau
WorldRoot:FindPartsInRegion3WithWhiteList(region: Region3, whitelistDescendantsTable: { Instance }, maxParts: number? = 20): { Instance }
```

- Tags: Deprecated
- Use instead: [`WorldRoot.GetPartBoundsInBox`](https://rapi.sleaze.dev/classes/WorldRoot.md)

**Deprecated:** This function has been deprecated. Use [`WorldRoot:GetPartBoundsInBox()`](https://rapi.sleaze.dev/classes/WorldRoot.md) along with [`OverlapParams`](https://rapi.sleaze.dev/index/types/OverlapParams.md) for new work.

Returns an array of `BaseParts` in the given [`Region3`](https://rapi.sleaze.dev/index/types/Region3.md) that are in, or descendant of an entry in, the given inclusion list.

Parameters:

- `region`: The [`Region3`](https://rapi.sleaze.dev/index/types/Region3.md) to be checked.
- `whitelistDescendantsTable`: An array of objects to check.
- `maxParts`: The maximum number of `BaseParts` to be returned.

Returns: An array of `BaseParts` within the [`Region3`](https://rapi.sleaze.dev/index/types/Region3.md).

### IsRegion3Empty

```luau
WorldRoot:IsRegion3Empty(region: Region3, ignoreDescendentsInstance: Instance? = nil): boolean
```

- Tags: Deprecated
- Use instead: [`WorldRoot.GetPartBoundsInBox`](https://rapi.sleaze.dev/classes/WorldRoot.md)

**Deprecated:** This function has been deprecated. Use [`WorldRoot:GetPartBoundsInBox()`](https://rapi.sleaze.dev/classes/WorldRoot.md) along with [`OverlapParams`](https://rapi.sleaze.dev/index/types/OverlapParams.md) for new work.

Returns a bool indicating whether there are no `BaseParts` within the given [`Region3`](https://rapi.sleaze.dev/index/types/Region3.md).

Parameters:

- `region`: The [`Region3`](https://rapi.sleaze.dev/index/types/Region3.md) to be checked.
- `ignoreDescendentsInstance`: An [`Instance`](https://rapi.sleaze.dev/classes/Instance.md) to be ignored.

Returns: True if the [`Region3`](https://rapi.sleaze.dev/index/types/Region3.md) is empty.

### IsRegion3EmptyWithIgnoreList

```luau
WorldRoot:IsRegion3EmptyWithIgnoreList(region: Region3, ignoreDescendentsTable: { Instance }): boolean
```

- Tags: Deprecated
- Use instead: [`WorldRoot.GetPartBoundsInBox`](https://rapi.sleaze.dev/classes/WorldRoot.md)

**Deprecated:** This function has been deprecated. Use [`WorldRoot:GetPartBoundsInBox()`](https://rapi.sleaze.dev/classes/WorldRoot.md) along with [`OverlapParams`](https://rapi.sleaze.dev/index/types/OverlapParams.md) for new work.

Returns a boolean indicating whether there are no `BaseParts` within the given [`Region3`](https://rapi.sleaze.dev/index/types/Region3.md), ignoring any `BaseParts` that are descendants of the objects within the given ignore list.

Parameters:

- `region`: The [`Region3`](https://rapi.sleaze.dev/index/types/Region3.md) to be checked.
- `ignoreDescendentsTable`: An array of objects to be ignored.

Returns: True if the [`Region3`](https://rapi.sleaze.dev/index/types/Region3.md) is empty.

### findPartOnRay

```luau
WorldRoot:findPartOnRay(ray: Ray, ignoreDescendantsInstance: Instance? = nil, terrainCellsAreCubes: boolean? = false, ignoreWater: boolean? = false): ...any
```

- Tags: Deprecated
- Use instead: [`WorldRoot.Raycast`](https://rapi.sleaze.dev/classes/WorldRoot.md)

**Deprecated:** This deprecated function is a variant of [`WorldRoot:FindPartOnRay()`](https://rapi.sleaze.dev/classes/WorldRoot.md) which should be used instead.

### findPartsInRegion3

```luau
WorldRoot:findPartsInRegion3(region: Region3, ignoreDescendantsInstance: Instance? = nil, maxParts: number? = 20): { Instance }
```

- Tags: Deprecated
- Use instead: [`WorldRoot.GetPartBoundsInBox`](https://rapi.sleaze.dev/classes/WorldRoot.md)

**Deprecated:** This deprecated function is a variant of [`WorldRoot:FindPartsInRegion3()`](https://rapi.sleaze.dev/classes/WorldRoot.md) which should be used instead.

## Events

### CollisionGroupCollidableChanged

```luau
WorldRoot.CollisionGroupCollidableChanged: RBXScriptSignal<(collisionGroupIndex1: number, collisionGroupIndex2: number)>
```

- Tags: Hidden, Roblox engine security

## Inherited members

- From [Model](https://rapi.sleaze.dev/classes/Model.md): `LevelOfDetail`, `ModelStreamingMode`, `LodEntity`, `ModelMeshCFrame`, `ModelMeshData`, `ModelMeshSize`, `NeedsPivotMigration`, `SlimAnimationTarget`, `SlimHash`, `PrimaryPart`, `Scale`, `ScaleFactor`, `WorldPivot`, `WorldPivotData`, `AddPersistentPlayer`, `GetBoundingBox`, `GetExtentsSize`, `GetPersistentPlayers`, `GetScale`, `MoveTo`, `RemovePersistentPlayer`, `ScaleTo`, `TranslateBy`, `BreakJoints`, `GetModelCFrame`, `GetModelSize`, `GetPrimaryPartCFrame`, `MakeJoints`, `ResetOrientationToIdentity`, `SetIdentityOrientation`, `SetPrimaryPartCFrame`, `breakJoints`, `makeJoints`, `move`, `moveTo`
- From [PVInstance](https://rapi.sleaze.dev/classes/PVInstance.md): `Pivot Offset`, `Origin`, `GetPivot`, `PivotTo`
- From [Instance](https://rapi.sleaze.dev/classes/Instance.md): `Archivable`, `archivable`, `Attributes`, `AttributesReplicate`, `AttributesSerialize`, `HistoryId`, `Name`, `Parent`, `PredictionMode`, `PropertyStatusStudio`, `RobloxLocked`, `SerializedOverrides`, `SourceAssetId`, `Tags`, `UniqueId`, `numExpectedDirectChildren`, `DataCost`, `Capabilities`, `DefinesCapabilities`, `IsInSandbox`, `Sandboxed`, `AddTag`, `ClearAllChildren`, `Clone`, `Destroy`, `FindFirstAncestor`, `FindFirstAncestorOfClass`, `FindFirstAncestorWhichIsA`, `FindFirstChild`, `FindFirstChildOfClass`, `FindFirstChildWhichIsA`, `FindFirstDescendant`, `GetActor`, `GetAttribute`, `GetAttributeChangedSignal`, `GetAttributes`, `GetChildren`, `GetDebugId`, `GetDescendants`, `GetFullName`, `GetStyled`, `GetStyledPropertyChangedSignal`, `GetTags`, `HasTag`, `IsAncestorOf`, `IsDescendantOf`, `IsPropertyModified`, `QueryDescendants`, `RemoveTag`, `ResetPropertyToDefault`, `SetAttribute`, `WaitForChild`, `Remove`, `children`, `clone`, `destroy`, `findFirstChild`, `getChildren`, `isDescendantOf`, `remove`, `AncestryChanged`, `AttributeChanged`, `ChildAdded`, `ChildRemoved`, `DescendantAdded`, `DescendantRemoving`, `Destroying`, `StyledPropertiesChanged`, `childAdded`
- From [Object](https://rapi.sleaze.dev/classes/Object.md): `ClassName`, `className`, `GetPropertyChangedSignal`, `IsA`, `isA`, `Changed`
