Skip to content

WorldRoot

Not yet Class Other NotCreatable

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

Not implemented yet

The modern base class that adds Raycast, GetPartBoundsInBox, GetPartsInPart, and spatial queries. Nova's Workspace inherits the older RootInstance chain.

Workaround: Use the legacy Workspace spatial-query methods listed on the Workspace page.

0 Nova members · 44 modern Roblox members not implemented yet

Description

This base class provides an API for any instance intended for handling 3D spatial queries and simulation, such as Workspace and WorldModel.

Inheritance

Object → Instance → PVInstance → Model → WorldRoot

Known subclasses: Workspace, WorldModel

Properties

Member Signature Summary
AutoSimulate AutoSimulate: bool —
CollisionGroupData CollisionGroupData: BinaryString —
GravityDirection GravityDirection: Vector3 —
PhysicsStepTime PhysicsStepTime: float —
SimulationRate SimulationRate: float —
Wind Wind: float —
WindDirection WindDirection: Vector3 —

Methods

Member Signature Summary
ArePartsTouchingOthers WorldRoot:ArePartsTouchingOthers(partList: Instances, overlapIgnored: float = 0.000199999995): bool Returns true if any of the given BasePart are touching any other parts.
Blockcast WorldRoot:Blockcast(cframe: CFrame, size: Vector3, direction: Vector3, params: RaycastParams = RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): RaycastResult? Casts a block shape in a given direction and returns a RaycastResult if the shape hits a BasePart or [Terrain](Terrain.md…
BulkMoveTo WorldRoot:BulkMoveTo(partList: Instances, cframeList: Array, eventMode: BulkMoveMode = FireAllEvents): null Moves an array of BaseParts to an array of CFrames.
CacheCurrentTerrain WorldRoot:CacheCurrentTerrain(id: string, center: Vector3, radius: float): string —
ClearCachedTerrain WorldRoot:ClearCachedTerrain(id: string): bool —
CollisionGroupsAreCollidable WorldRoot:CollisionGroupsAreCollidable(name1: string, name2: string): bool Returns whether the two groups will collide in this world.
CollisionGroupSetCollidable WorldRoot:CollisionGroupSetCollidable(name1: string, name2: string, collidable: bool): null Sets the collision status between two groups in this world.
FindPartOnRay WorldRoot:FindPartOnRay(ray: Ray, ignoreDescendantsInstance: Instance = nil, terrainCellsAreCubes: bool = false, ignoreWater: bool = false): Tuple Returns the first BasePart or Terrain cell intersecting with the given Ray.
findPartOnRay WorldRoot:findPartOnRay(ray: Ray, ignoreDescendantsInstance: Instance = nil, terrainCellsAreCubes: bool = false, ignoreWater: bool = false): Tuple —
FindPartOnRayWithIgnoreList WorldRoot:FindPartOnRayWithIgnoreList(ray: Ray, ignoreDescendantsTable: Instances, terrainCellsAreCubes: bool = false, ignoreWater: bool = false): Tuple Returns the first BasePart or Terrain cell intersecting with the given Ray that isn't in, nor is a descendant of an o…
FindPartOnRayWithWhitelist WorldRoot:FindPartOnRayWithWhitelist(ray: Ray, whitelistDescendantsTable: Instances, ignoreWater: bool = false): Tuple Returns the first BasePart or Terrain cell intersecting with the given Ray that is in, or is a descendant of an objec…
FindPartsInRegion3 WorldRoot:FindPartsInRegion3(region: Region3, ignoreDescendantsInstance: Instance = nil, maxParts: int = 20): Instances Returns an array of BaseParts in the given Region3.
findPartsInRegion3 WorldRoot:findPartsInRegion3(region: Region3, ignoreDescendantsInstance: Instance = nil, maxParts: int = 20): Instances —
FindPartsInRegion3WithIgnoreList WorldRoot:FindPartsInRegion3WithIgnoreList(region: Region3, ignoreDescendantsTable: Instances, maxParts: int = 20): Instances Returns an array of BaseParts in the given Region3 that aren't in, or a descendant of an entry in, the given ignore list.
FindPartsInRegion3WithWhiteList WorldRoot:FindPartsInRegion3WithWhiteList(region: Region3, whitelistDescendantsTable: Instances, maxParts: int = 20): Instances Returns an array of BaseParts in the given Region3 that are in, or descendant of an entry in, the given inclusion list.
GetAwakeContactNormals WorldRoot:GetAwakeContactNormals(): Array —
GetAwakeContactParts WorldRoot:GetAwakeContactParts(): Array —
GetAwakeContactPositions WorldRoot:GetAwakeContactPositions(): Array —
GetAwakeRootParts WorldRoot:GetAwakeRootParts(): Instances —
GetMaxCollisionGroups WorldRoot:GetMaxCollisionGroups(): int Returns the maximum number of collision groups in this world.
GetPartBoundsInBox WorldRoot:GetPartBoundsInBox(cframe: CFrame, size: Vector3, overlapParams: OverlapParams = OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): Instances Returns an array of parts whose bounding boxes overlap a given box.
GetPartBoundsInRadius WorldRoot:GetPartBoundsInRadius(position: Vector3, radius: float, overlapParams: OverlapParams = OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): Instances Returns an array of parts whose bounding boxes overlap a given sphere.
GetPartsInPart WorldRoot:GetPartsInPart(part: BasePart, overlapParams: OverlapParams = OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): Instances Returns an array of parts whose occupied space is shared with the given part.
GetRegisteredCollisionGroups WorldRoot:GetRegisteredCollisionGroups(): Array Returns a table with info on all of this world's collision groups.
IKMoveTo WorldRoot:IKMoveTo(part: BasePart, target: CFrame, translateStiffness: float = 0.5, rotateStiffness: float = 0.5, collisionsMode: IKCollisionsMode = OtherMechanismsAnchored): null 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 par…
IsCollisionGroupRegistered WorldRoot:IsCollisionGroupRegistered(name: string): bool Checks if a collision group is registered in this world.
IsRegion3Empty WorldRoot:IsRegion3Empty(region: Region3, ignoreDescendentsInstance: Instance = nil): bool Returns a bool indicating whether there are no BaseParts within the given Region3.
IsRegion3EmptyWithIgnoreList WorldRoot:IsRegion3EmptyWithIgnoreList(region: Region3, ignoreDescendentsTable: Instances): bool Returns a boolean indicating whether there are no BaseParts within the given Region3, ignoring any BaseParts tha…
Raycast WorldRoot:Raycast(origin: Vector3, direction: Vector3, raycastParams: RaycastParams = RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): RaycastResult? Casts a ray using an origin, direction, and optional RaycastParams, then returns a RaycastResult if an…
RaycastCachedTerrain WorldRoot:RaycastCachedTerrain(id: string, origin: Vector3, direction: Vector3, ignoreWater: bool): RaycastResult? —
RegisterCollisionGroup WorldRoot:RegisterCollisionGroup(name: string): null Registers a new collision group in this world with the given name.
RenameCollisionGroup WorldRoot:RenameCollisionGroup(from: string, to: string): null Renames specified collision group in this world.
SetInsertPoint WorldRoot:SetInsertPoint(point: Vector3): null —
Shapecast WorldRoot:Shapecast(part: BasePart, direction: Vector3, params: RaycastParams = RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): RaycastResult? Casts the shape of a given BasePart in a direction and returns a RaycastResult if the shape hits a [BasePart](BasePart.md…
Simulate WorldRoot:Simulate(dt: float): null —
Spherecast WorldRoot:Spherecast(position: Vector3, radius: float, direction: Vector3, params: RaycastParams = RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): RaycastResult? Casts a spherical shape in a given direction and returns a RaycastResult if the shape hits a BasePart or [Terrain](Terrai…
StepPhysics WorldRoot:StepPhysics(dt: float, parts: Instances = {}): null Advances the simulation for parts in the world forward based on a specified time increment and an optional set of BaseParts.
UnregisterCollisionGroup WorldRoot:UnregisterCollisionGroup(name: string): null Unregisters the collision group for the given name in this world.

Events

Member Signature Summary
CollisionGroupCollidableChanged CollisionGroupCollidableChanged(collisionGroupIndex1: int, collisionGroupIndex2: int) —

Roblox reference: WorldRoot

Generated from Nova's API dump and Roblox creator-docs. Nova-only members come from the engine's reflection metadata.