Skip to content

Workspace

Supported Class Services NotCreatable Service

Workspace houses 3D objects which are rendered to the 3D world. Objects not descending from it will not be rendered or physically interact with the world.

37 Nova members · 47 modern Roblox members not implemented yet

Description

The core job of Workspace is to hold objects that exist in the 3D world, effectively BaseParts and Attachments. While such objects are descendant of Workspace, they will be active. For BaseParts, this means they will be rendered, and physically interact with other parts and the world. For Attachments, this means that objects adorned to them, such as ParticleEmitters, Beams, and BillboardGuis, will render.

Understanding this behavior is important, as it means objects can be removed from Workspace when they are not needed. For example, map Models can be removed when a different map is being played on. Objects that are not immediately needed in the 3D world are generally stored in ReplicatedStorage or ServerStorage.

In its role as the holder of active 3D objects, Workspace includes a number of useful functions related to parts, their positions, and joints between them.

Accessing the Workspace

Workspace can be accessed several ways, all of which are valid.

  • workspace
  • game:GetService("Workspace")
  • game.Workspace

Notes

Inheritance

Object → Instance → PVInstance → Model → WorldRoot → Workspace

Nova inheritance: Instance → PVInstance → Model → RootInstance → Workspace

Properties

AllowThirdPartySales Supported Property Determines whether assets created by other users can be sold in the game.
AllowThirdPartySales: bool

Determines whether assets created by other users can be sold in the game.

This Workspace property determines whether assets created by other uses can be sold in the game.

Roblox documentation

CurrentCamera Supported Property The Camera object being used by the local player.
CurrentCamera: Object

The Camera object being used by the local player.

How to use CurrentCamera

When looking for a client's Camera object, use this property rather than looking for a child of Workspace named "Camera".

When you set this property, all other Camera objects in the Workspace are destroyed, including the previous CurrentCamera. If you set this property to nil or to a camera that is not a descendant of the Workspace (or the CurrentCamera is otherwise destroyed), a new Camera will be created and assigned. Avoid these scenarios, as destroying the camera can have unintended consequences.

For more information, see Script the camera.

Roblox reference signature
CurrentCamera: Camera

Roblox documentation

DistributedGameTime Supported Property The amount of time, in seconds, that the game has been running.
DistributedGameTime: double

The amount of time, in seconds, that the game has been running.

Despite the title, this value is currently not 'Distributed' across the client and the server. Instead, on the server it represents how long the server has been running. On the client, it represents how long the client has been connected to the server.

Developers should not rely on the above behavior, and it is possible this property will be synchronized across clients and the server in the future.

Those looking for the time since the program started running should use the 'time' function instead. See below for a comparison between DistributedGameTime and its alternatives.

Roblox documentation

FallenPartsDestroyHeight Supported Property Determines the height at which falling BaseParts and their ancestor Models are removed from Workspace.
FallenPartsDestroyHeight: float

Determines the height at which falling BaseParts and their ancestor Models are removed from Workspace.

This property determines the height at which the engine automatically removes falling BaseParts and their ancestor Models from Workspace by parenting them to nil. This is to prevent parts that have fallen off the map from continuing to fall forever.

If a part removed due to this behavior is the last part in a Model, that model will also be removed. This applies to all model ancestors of the part.

This property is clamped between -50,000 and 50,000 because BaseParts do not simulate or render properly at a great distance from the origin due to floating point inaccuracies.

This property can be read by scripts, but can only be set by plugins, the command bar, or the properties window in Studio.

Roblox documentation

FilteringEnabled Supported Property Deprecated Determines whether changes made from the client will replicate to the server or not.
FilteringEnabled: bool

Determines whether changes made from the client will replicate to the server or not.

This property is discontinued and no longer takes effect.

Nova note: Auto-enabled for saves from v483 onward when the property is absent; explicit values from older saves win.

Roblox documentation

GlobalWind Supported Property Specifies the global wind vector for animated terrain grass, dynamic clouds, and particles.
GlobalWind: Vector3

Specifies the global wind vector for animated terrain grass, dynamic clouds, and particles.

This property specifies the direction and strength that wind blows through the experience, affecting terrain grass, dynamic clouds, and particles. See the Global Wind article for details.

Roblox documentation

Gravity Supported Property Determines the acceleration due to gravity applied to falling BaseParts.
Gravity: float

Determines the acceleration due to gravity applied to falling BaseParts. This value is measured in studs per second squared and by default is set to 196.2 studs/second2. By changing this value, developers can simulate the effects of lower or higher gravity in game.

Roblox documentation

StreamingEnabled Supported Property Whether content streaming is enabled for the place.
StreamingEnabled: bool

Whether content streaming is enabled for the place.

This property determines whether in-experience content streaming is enabled for the place. This property is not scriptable and therefore must be set on the Workspace object in Studio.

See also

Roblox documentation

StreamingIntegrityMode Supported Property Determines whether streaming integrity mode is active.
StreamingIntegrityMode: StreamingIntegrityMode

Determines whether streaming integrity mode is active.

If instance streaming is enabled, an experience may behave in unintended ways if a player's character moves into a region of the world that has not been streamed to their client. The streaming integrity feature offers a way to avoid those potentially problematic situations.

Roblox documentation

StreamingMinRadius Supported Property Minimum distance that content will be streamed to players with high priority.
StreamingMinRadius: int

Minimum distance that content will be streamed to players with high priority.

This property indicates the radius around the player's character or the current ReplicationFocus in which content will be streamed in at the highest priority. Defaults to 64 studs.

Care should be taken when increasing the default minimum radius since doing so will require more memory and more server bandwidth at the expense of other components.

See also

Roblox documentation

StreamingPauseMode Supported Property
StreamingPauseMode: StreamingPauseMode

No description available.

Roblox documentation

StreamingTargetRadius Supported Property Maximum distance that content will be streamed to players.
StreamingTargetRadius: int

Maximum distance that content will be streamed to players.

This property controls the maximum distance away from the player's character or the current ReplicationFocus in which content will be streamed in. Defaults to 1024 studs.

Note that the engine is allowed to retain previously loaded content beyond the target radius, memory permitting.

See also

Roblox documentation

StreamOutBehavior Supported Property Configures how the engine decides when to stream content away from players.
StreamOutBehavior: StreamOutBehavior

Configures how the engine decides when to stream content away from players.

This property controls where content will be unloaded from the ReplicationFocus based on device memory conditions, or based on the streaming radius.

See also

Roblox documentation

Terrain Supported Property A reference to the Terrain object parented to the Workspace.
Terrain: Object

This property is a reference to the Terrain object parented to the Workspace.

Terrain object within the Workspace hierarchy

See Environmental Terrain for more information.

Roblox reference signature
Terrain: Terrain

Roblox documentation

Methods

BreakJoints Supported Function Deprecated Goes through all BaseParts given, breaking any joints connected to these parts.
Workspace:BreakJoints(Objects objects)

Goes through all BaseParts given, breaking any joints connected to these parts. This function will break any of the following types of joints:

Unlike Model.MakeJoints(), this function requires an array of BaseParts as a parameter. This array is given as follows:

local Workspace = game:GetService("Workspace")

Workspace:BreakJoints({part1, part2, part3})

Note, this function cannot be used in developer-facing Luau and will only function in plugins.

Roblox reference signature
Workspace:BreakJoints(objects: Instances): null
Security: PluginSecurity

Roblox documentation

ExperimentalSolverIsEnabled Supported Function
Workspace:ExperimentalSolverIsEnabled(): bool

No description available.

Security: LocalUserSecurity

Roblox documentation

FindPartOnRay Supported Function Deprecated Returns the first BasePart or Terrain cell intersecting with the given Ray.
Workspace:FindPartOnRay(Ray ray, Instance ignoreDescendentsInstance = nil, bool terrainCellsAreCubes = false, bool ignoreWater = false): Tuple

Returns the first BasePart or Terrain cell intersecting with the given Ray.

FindPartOnRay uses raycasting to find the first BasePart or Terrain cell intersecting with a given Ray. This function returns the BasePart or terrain cell hit, the point of intersection, the surface normal at the point of intersection, and the associated Material hit.

If the ignoreDescendantsInstance parameter is provided, the raycasting calculation will ignore the given object and all of its descendants. It behaves similar to the Mouse.TargetFilter property.

The terrainCellsAreCubes and ignoreWater parameters determine whether Terrain cells should be treated as cubes or not, and whether water should be ignored or not.

In order to include or exclude multiple objects and their descendants, use the WorldRoot.FindPartOnRayWithWhitelist() and WorldRoot.FindPartOnRayWithIgnoreList() variants.

Notes

  • Theoretically, a ray extends infinitely in one direction. However, the max length of the direction vector on Roblox is 15000 studs.
  • The length (magnitude) of the directional vector is important, as parts further away than its length will not be tested.
  • If the ray does not intersect anything, the return values will be nil and the point at the end of the ray, respectively.
  • Parts that are in a collision group that does not collide with the "Default" collision group are ignored implicitly.
Roblox reference signature
WorldRoot:FindPartOnRay(ray: Ray, ignoreDescendantsInstance: Instance = nil, terrainCellsAreCubes: bool = false, ignoreWater: bool = false): Tuple

Roblox documentation

findPartOnRay Supported Function Deprecated
Workspace:findPartOnRay(Ray ray, Instance ignoreDescendentsInstance = nil, bool terrainCellsAreCubes = false, bool ignoreWater = false): Tuple

No description available.

Roblox reference signature
WorldRoot:findPartOnRay(ray: Ray, ignoreDescendantsInstance: Instance = nil, terrainCellsAreCubes: bool = false, ignoreWater: bool = false): Tuple
Nova behaviour: Nova keeps this legacy member for compatibility. Roblox's modern deprecation wording may describe later Roblox behaviour; verify it against Nova before relying on the copied text.

Roblox documentation

FindPartOnRayWithIgnoreList Supported Function Deprecated Returns the first BasePart or Terrain cell intersecting with the given Ray that isn't in, nor is a descendant of an object in, the given ignore list.
Workspace:FindPartOnRayWithIgnoreList(Ray ray, Objects ignoreDescendentsTable, bool terrainCellsAreCubes = false, bool ignoreWater = false): Tuple

Returns the first BasePart or Terrain cell intersecting with the given Ray that isn't in, nor is a descendant of an object in, the given ignore list.

This function is a variant of WorldRoot.FindPartOnRay() with the addition of an ignore list. This lets you ignore certain parts or Models.

Those looking to include a specific group of objects should instead use WorldRoot.FindPartOnRayWithWhitelist().

Roblox reference signature
WorldRoot:FindPartOnRayWithIgnoreList(ray: Ray, ignoreDescendantsTable: Instances, terrainCellsAreCubes: bool = false, ignoreWater: bool = false): Tuple

Roblox documentation

FindPartsInRegion3 Supported Function Deprecated Returns an array of BaseParts in the given Region3.
Workspace:FindPartsInRegion3(Region3 region, Instance ignoreDescendentsInstance = nil, int maxParts = 20): Objects

Returns an array of BaseParts in the given Region3.

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 Region3

The optional ignoreDescendantsInstance parameter can be used to specify a specific instance for whom itself and all of its descendants should be ignored by this function. This can be useful when, for example, looking to see if any BaseParts are inside a BasePart other than the BasePart itself.

local min = part.Position - (0.5 * part.Size)
local max = part.Position + (0.5 * part.Size)
local region = Region3.new(min, max)
local parts = worldroot:FindPartsInRegion3(region, part)  -- Ignore part

The WorldRoot.FindPartsInRegion3WithIgnoreList() and WorldRoot.FindPartsInRegion3WithWhiteList() variants of this method exist to provide specific exclusion and inclusion functionality.

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

Roblox reference signature
WorldRoot:FindPartsInRegion3(region: Region3, ignoreDescendantsInstance: Instance = nil, maxParts: int = 20): Instances

Roblox documentation

findPartsInRegion3 Supported Function Deprecated
Workspace:findPartsInRegion3(Region3 region, Instance ignoreDescendentsInstance = nil, int maxParts = 20): Objects

No description available.

Roblox reference signature
WorldRoot:findPartsInRegion3(region: Region3, ignoreDescendantsInstance: Instance = nil, maxParts: int = 20): Instances
Nova behaviour: Nova keeps this legacy member for compatibility. Roblox's modern deprecation wording may describe later Roblox behaviour; verify it against Nova before relying on the copied text.

Roblox documentation

FindPartsInRegion3WithIgnoreList Supported Function Deprecated Returns an array of BaseParts in the given Region3 that aren't in, or a descendant of an entry in, the given ignore list.
Workspace:FindPartsInRegion3WithIgnoreList(Region3 region, Objects ignoreDescendentsTable, int maxParts = 20): Objects

Returns an array of BaseParts in the given Region3 that aren't in, or a descendant of an entry in, the given ignore list.

If a nil value is given in the ignore list, instances after this value will not be ignored. If no BaseParts are found, an empty array will be returned.

This function is a variant of WorldRoot.FindPartsInRegion3() with the addition of an ignore list. This allows the developer to exclude certain BaseParts or Models from the search. Those looking to find BaseParts in a Region3 using an inclusion list should use WorldRoot.FindPartsInRegion3WithWhiteList().

Roblox reference signature
WorldRoot:FindPartsInRegion3WithIgnoreList(region: Region3, ignoreDescendantsTable: Instances, maxParts: int = 20): Instances

Roblox documentation

GetNumAwakeParts Supported Function Returns the number of BaseParts that are deemed physically active, due to being recently under the influence of physics.
Workspace:GetNumAwakeParts(): int

Returns the number of BaseParts that are deemed physically active, due to being recently under the influence of physics.

This function provides a measure of how many BaseParts are being influenced by, or recently under the influence of, physical forces.

local Workspace = game:GetService("Workspace")

print(Workspace:GetNumAwakeParts())

In order to ensure good performance, the engine sets BaseParts in which physics are not being applied to a "sleeping" state. BaseParts with BasePart.Anchored set to true, for example, will always be sleeping as physics doesn't apply to them. When a force is applied to a non‑anchored BasePart, an "awake" state will be applied. Whilst a BasePart is awake, the physics engine will perform continuous calculations to ensure physical forces interact correctly with the part. Once the BasePart is no longer subject to physical forces, it will revert to a "sleeping" state.

Roblox documentation

GetPhysicsAnalyzerBreakOnIssue Supported Function
Workspace:GetPhysicsAnalyzerBreakOnIssue(): bool

No description available.

Security: PluginSecurity

Roblox documentation

GetPhysicsAnalyzerIssue Supported Function
Workspace:GetPhysicsAnalyzerIssue(int index): Objects

No description available.

Security: PluginSecurity

Roblox documentation

GetPhysicsThrottling Supported Function Returns an integer, between 0 and 100, representing the percentage of real time that physics simulation is currently being throttled to.
Workspace:GetPhysicsThrottling(): int

Returns an integer, between 0 and 100, representing the percentage of real time that physics simulation is currently being throttled to.

Returns an integer, between 0 and 100, representing the percentage of real time that physics simulation is currently being throttled to. Physics throttling occurs when the physics engine detects it cannot keep up with the game in real time. When physics is being throttled, it will update less frequently causing BaseParts to appear to move slower.

Objects associated with Humanoids are exempt from physics throttling.

See also

Roblox documentation

GetRealPhysicsFPS Supported Function Returns the number of frames per second that physics is currently being simulated at.
Workspace:GetRealPhysicsFPS(): double

Returns the number of frames per second that physics is currently being simulated at.

Using GetRealPhysicsFPS to combat exploiters

A common use of this function is to detect if exploiters are increasing their local physics frame rate to move faster. This is generally done by comparing the result returned by a client's GetRealPhysicsFPS to a maximum that will not be breached in normal circumstances (usually 65 or 70). If this limit is breached, developers can use the Player.Kick() function to remove that Player from the game. It is important to remember that, although this practice may be effective sometimes, client-side anti-exploiter measures are never 100% reliable.

Roblox documentation

IsRegion3Empty Supported Function Deprecated Returns a bool indicating whether there are no BaseParts within the given Region3.
Workspace:IsRegion3Empty(Region3 region, Instance ignoreDescendentsInstance = nil): bool

IsRegion3Empty returns a bool indicating whether there are no BaseParts within the given Region3.

The optional ignoreDescendantsInstance parameter can be used to specify a specific instance for whom itself and all of its descendants should be ignored by this function. This can be useful when, for example, looking to see if any BaseParts are inside a BasePart other than the BasePart itself.

local min = part.Position - (0.5 * part.Size)
local max = part.Position + (0.5 * part.Size)
local region = Region3.new(min, max)
local isPartEmpty = worldroot:IsRegion3Empty(region, part)  -- Ignore part

If more than one object and its descendants need to be excluded from the search, developers should use WorldRoot.IsRegion3EmptyWithIgnoreList().

This function only returns if a region is empty or not. Developers looking to find BaseParts in a region should use WorldRoot.FindPartsInRegion3().

How do Region3 checks work?

Checking if a part overlaps a 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 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 Region3. For this reason it is recommended to make sure that the Region3 is on the voxel grid. The best way to do this is by setting the coordinates of the 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 any 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 WorldRoot and the function takes more time to run.

Roblox reference signature
WorldRoot:IsRegion3Empty(region: Region3, ignoreDescendentsInstance: Instance = nil): bool

Roblox documentation

IsRegion3EmptyWithIgnoreList Supported Function Deprecated Returns a boolean indicating whether there are no BaseParts within the given Region3, ignoring any BaseParts that are descendants of the objects with…
Workspace:IsRegion3EmptyWithIgnoreList(Region3 region, Objects ignoreDescendentsTable): bool

Returns a boolean indicating whether there are no BaseParts within the given Region3, ignoring any BaseParts that are descendants of the objects within the given ignore list. If a nil value is given in the ignore list, instances after this value will not be ignored.

This function only returns if a region is empty or not. Developers looking to find specific BaseParts in a region should use WorldRoot.FindPartsInRegion3WithIgnoreList().

This function is a variant of WorldRoot.IsRegion3Empty() with the addition of an ignore list. In cases where an inclusion list is required instead, developers should check to see if any parts are returned by WorldRoot.FindPartsinRegion3WithWhitelist().

Roblox reference signature
WorldRoot:IsRegion3EmptyWithIgnoreList(region: Region3, ignoreDescendentsTable: Instances): bool

Roblox documentation

JoinToOutsiders Supported Function Creates joints between the specified Parts and any touching parts depending on the parts' surfaces and the specified joint creation mode.
Workspace:JoinToOutsiders(Objects objects, JointCreationMode jointType)

This function creates joints between the specified Parts and any touching parts depending on the parts' surfaces and the specified joint creation mode.

This function creates joints between the specified Parts and any planar touching surfaces, depending on the parts' surfaces and the specified joint creation mode.

  • Glue, Studs, Inlets, Universal, Weld, and Smooth surfaces will all create Weld instances.
  • Spheres will not surface-weld to anything. The rounded sides of cylinders will not surface-weld, but the flat end sides will.
  • Hinge and Motor surfaces will still create Rotate and RotateP joint instances, regardless of part shape.

The first parameter is an array of BaseParts. Joints will only be created between the parts in the array and not in the array. Joints will not be created between the parts in the array.

The second parameter is a JointCreationMode that determines how joints will be created. Passing in either enum value, Enum.JointCreationMode.All or Enum.JointCreationMode.Surface, has the same behavior which equates to Join Always

This function is used by the Roblox Studio Move tool when the user finishes moving a selection. In conjunction with Plugin.GetJoinMode() and Workspace.UnjoinFromOutsiders() it can be used to retain join functionality when developing custom studio build tools. See the snippets below for an example.

local Workspace = game:GetService("Workspace")

-- Finished moving a selection; make joints
local function finishedMovingParts(parts)
    local joinMode = Plugin:GetJoinMode()
    Workspace:JoinToOutsiders(parts, joinMode)
end
local Workspace = game:GetService("Workspace")

-- Started moving a selection; break joints
local function startMovingParts(parts)
    Workspace:UnjoinFromOutsiders(parts)
end
Roblox reference signature
Workspace:JoinToOutsiders(objects: Instances, jointType: JointCreationMode): null

Roblox documentation

MakeJoints Supported Function Deprecated Goes through all BaseParts given. If any part's side has a SurfaceType that can make a joint it will create a joint with any adjacent parts.
Workspace:MakeJoints(Objects objects)

Goes through all BaseParts given. If any part's side has a SurfaceType that can make a joint it will create a joint with any adjacent parts.

Deprecated

SurfaceType based joining is deprecated, do not use MakeJoints for new projects. WeldConstraints and HingeConstraints should be used instead.

Goes through all Parts given. If any part's side has a SurfaceType that can make a joint it will create a joint with any adjacent parts.

Joints will be created between the specified Parts and any planar touching surfaces, depending on the parts' surfaces.

  • Smooth surfaces will not create joints
  • Glue surfaces will create a Glue joint
  • Weld will create a Weld joint with any surface except for Unjoinable
  • Studs, Inlet, or Universal will each create a Snap joint with either of other the other two surfaces (e.g. Studs with Inlet and Universal)
  • Hinge and Motor surfaces create Rotate and RotateV joint instances

Unlike Model.MakeJoints(), this function requires an array of parts as a parameter. This array is given as follows:

local Workspace = game:GetService("Workspace")

Workspace:MakeJoints({part1, part2, part3})

Joints are broken if enough force is applied to them due to an Explosion, unless a ForceField object is parented to the BasePart or ancestor Model. For this reason, they are often used to make simple destructible buildings and other models.

Roblox reference signature
Workspace:MakeJoints(objects: Instances): null
Security: PluginSecurity

Roblox documentation

PGSIsEnabled Supported Function Returns true if the game has the PGS Physics solver enabled.
Workspace:PGSIsEnabled(): bool

Returns true if the game has the PGS Physics solver enabled.

As Workspace.PGSPhysicsSolverEnabled cannot be accessed by scripts, the PGSIsEnabled function allows developers to tell which physics solver the game is using.

Roblox documentation

SetPhysicsAnalyzerBreakOnIssue Supported Function
Workspace:SetPhysicsAnalyzerBreakOnIssue(bool enable)

No description available.

Security: PluginSecurity

Roblox documentation

SetPhysicsThrottleEnabled Supported Function
Workspace:SetPhysicsThrottleEnabled(bool value)

No description available.

Roblox reference signature
Workspace:SetPhysicsThrottleEnabled(value: bool): null
Security: LocalUserSecurity

Roblox documentation

UnjoinFromOutsiders Supported Function Breaks all joints between the specified BaseParts and other BaseParts.
Workspace:UnjoinFromOutsiders(Objects objects)

Breaks all joints between the specified BaseParts and other BaseParts.

This function requires an array of BaseParts. Note, joints will not be broken between these BaseParts (each other), only between these BaseParts and other BaseParts not in the array.

This function is used by the Roblox Studio Move tool when the user starts moving a selection. In conjunction with Plugin.GetJoinMode() and Workspace.JoinToOutsiders() it can be used to retain join functionality when developing custom Studio build tools. See the snippets below for an example.

local Workspace = game:GetService("Workspace")

-- Finished moving a selection; make joints
local function finishedMovingParts(parts)
    local joinMode = Plugin:GetJoinMode()
    Workspace:JoinToOutsiders(parts, joinMode)
end
local Workspace = game:GetService("Workspace")

-- Started moving a selection; break joints
local function startMovingParts(parts)
    Workspace:UnjoinFromOutsiders(parts)
end
Roblox reference signature
Workspace:UnjoinFromOutsiders(objects: Instances): null

Roblox documentation

ZoomToExtents Supported Function Positions and zooms the Workspace.CurrentCamera to show the extent of BaseParts currently in the Workspace.
Workspace:ZoomToExtents()

Positions and zooms the Workspace.CurrentCamera to show the extent of BaseParts currently in the Workspace. It exhibits similar behavior to the "focus" command but it shows the extents of the Workspace rather than the currently selected object.

This function cannot be used in developer-facing Luau but will function in the Command Bar or plugins.

Roblox reference signature
Workspace:ZoomToExtents(): null
Security: PluginSecurity

Roblox documentation

Events

PhysicsAnalyzerIssuesFound Supported Event
PhysicsAnalyzerIssuesFound(int count)

No description available.

Security: PluginSecurity

Roblox documentation

Inherited members

Inherited from RootInstance: 12 properties, 54 methods, 7 events. They are documented on the base class page.

47 modern Roblox member(s) are not implemented yet — expand to inspect

Members declared by Roblox's Workspace class (or by a missing base class) that Nova does not expose. Use this list to scope a migration; the compatibility guide has the recommended workaround.

Properties

Member Signature Status Notes Flags
AirDensity AirDensity: float Not yet The air density at ground level, used in the aerodynamic force model. —
AirTurbulenceIntensity AirTurbulenceIntensity: float Not yet Controls the strength of turbulence present in the wind velocity field, affecting the aerodynamic force model. —
AuthorityMode AuthorityMode: AuthorityMode Not yet Sets the server authority mode. RobloxScriptSecurity
ClientAnimatorThrottling ClientAnimatorThrottling: ClientAnimatorThrottlingMode Not yet Specifies the animation throttling mode for the local client. —
FallHeightEnabled FallHeightEnabled: bool Not yet Controls whether parts that fall below Workspace.FallenPartsDestroyHeight are automatically destroyed. read None / write PluginSecurity
InsertPoint InsertPoint: Vector3 Not yet The world position at which new objects are placed when inserted from the toolbox. NotReplicated
LuauTypeCheckMode LuauTypeCheckMode: LuauTypeCheckMode Not yet Sets the Luau type checking mode for scripts in the experience. PluginSecurity
Retargeting Retargeting: AnimatorRetargetingMode Not yet Controls whether animation retargeting is enabled for character animations. —
StreamingAdaptiveRadius StreamingAdaptiveRadius: bool Not yet — —

Methods

Member Signature Status Notes Flags
ApplyRecommendedStreamingSettings Workspace:ApplyRecommendedStreamingSettings(): bool Not yet Applies Roblox's recommended instance streaming settings to the Workspace. PluginSecurity
ArePartsTouchingOthers WorldRoot:ArePartsTouchingOthers(partList: Instances, overlapIgnored: float = 0.000199999995): bool Not yet Inherited from WorldRoot. —
Blockcast WorldRoot:Blockcast(cframe: CFrame, size: Vector3, direction: Vector3, params: RaycastParams = RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): RaycastResult? Not yet Inherited from WorldRoot. —
BulkMoveTo WorldRoot:BulkMoveTo(partList: Instances, cframeList: Array, eventMode: BulkMoveMode = FireAllEvents): null Not yet Inherited from WorldRoot. —
CacheCurrentTerrain WorldRoot:CacheCurrentTerrain(id: string, center: Vector3, radius: float): string Not yet Inherited from WorldRoot. RobloxScriptSecurity
CalculateJumpDistance Workspace:CalculateJumpDistance(gravity: float, jumpPower: float, walkSpeed: float): float Not yet — RobloxScriptSecurity
CalculateJumpHeight Workspace:CalculateJumpHeight(gravity: float, jumpPower: float): float Not yet — RobloxScriptSecurity
CalculateJumpPower Workspace:CalculateJumpPower(gravity: float, jumpHeight: float): float Not yet — RobloxScriptSecurity
ClearCachedTerrain WorldRoot:ClearCachedTerrain(id: string): bool Not yet Inherited from WorldRoot. RobloxScriptSecurity
CollisionGroupsAreCollidable WorldRoot:CollisionGroupsAreCollidable(name1: string, name2: string): bool Not yet Inherited from WorldRoot. —
CollisionGroupSetCollidable WorldRoot:CollisionGroupSetCollidable(name1: string, name2: string, collidable: bool): null Not yet Inherited from WorldRoot. —
FindPartOnRayWithWhitelist WorldRoot:FindPartOnRayWithWhitelist(ray: Ray, whitelistDescendantsTable: Instances, ignoreWater: bool = false): Tuple Not yet Inherited from WorldRoot. PreferredDescriptorName, ThreadSafety, PreferredDescriptorN…
FindPartsInRegion3WithWhiteList WorldRoot:FindPartsInRegion3WithWhiteList(region: Region3, whitelistDescendantsTable: Instances, maxParts: int = 20): Instances Not yet Inherited from WorldRoot. PreferredDescriptorName, ThreadSafety, PreferredDescriptorN…
GetAwakeContactNormals WorldRoot:GetAwakeContactNormals(): Array Not yet Inherited from WorldRoot. CustomLuaState, RobloxScriptSecurity
GetAwakeContactParts WorldRoot:GetAwakeContactParts(): Array Not yet Inherited from WorldRoot. CustomLuaState, RobloxScriptSecurity
GetAwakeContactPositions WorldRoot:GetAwakeContactPositions(): Array Not yet Inherited from WorldRoot. CustomLuaState, RobloxScriptSecurity
GetAwakeRootParts WorldRoot:GetAwakeRootParts(): Instances Not yet Inherited from WorldRoot. CustomLuaState, RobloxScriptSecurity
GetMaxCollisionGroups WorldRoot:GetMaxCollisionGroups(): int Not yet Inherited from WorldRoot. —
GetPartBoundsInBox WorldRoot:GetPartBoundsInBox(cframe: CFrame, size: Vector3, overlapParams: OverlapParams = OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): Instances Planned Inherited from WorldRoot. Use FindPartsInRegion3WithIgnoreList. CustomLuaState
GetPartBoundsInRadius WorldRoot:GetPartBoundsInRadius(position: Vector3, radius: float, overlapParams: OverlapParams = OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): Instances Not yet Inherited from WorldRoot. CustomLuaState
GetPartsInPart WorldRoot:GetPartsInPart(part: BasePart, overlapParams: OverlapParams = OverlapParams{MaxParts=0, Tolerance=0, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): Instances Planned Inherited from WorldRoot. Use FindPartsInRegion3WithIgnoreList. CustomLuaState
GetRegisteredCollisionGroups WorldRoot:GetRegisteredCollisionGroups(): Array Not yet Inherited from WorldRoot. —
GetServerTimeNow Workspace:GetServerTimeNow(): double Not yet Returns the server's Unix time in seconds. —
IKMoveTo WorldRoot:IKMoveTo(part: BasePart, target: CFrame, translateStiffness: float = 0.5, rotateStiffness: float = 0.5, collisionsMode: IKCollisionsMode = OtherMechanismsAnchored): null Not yet Inherited from WorldRoot. PluginSecurity
IsCollisionGroupRegistered WorldRoot:IsCollisionGroupRegistered(name: string): bool Not yet Inherited from WorldRoot. —
Raycast WorldRoot:Raycast(origin: Vector3, direction: Vector3, raycastParams: RaycastParams = RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): RaycastResult? Planned Inherited from WorldRoot. Use FindPartOnRayWithIgnoreList until the modern raycast family lands. —
RaycastCachedTerrain WorldRoot:RaycastCachedTerrain(id: string, origin: Vector3, direction: Vector3, ignoreWater: bool): RaycastResult? Not yet Inherited from WorldRoot. RobloxScriptSecurity
RegisterCollisionGroup WorldRoot:RegisterCollisionGroup(name: string): null Not yet Inherited from WorldRoot. —
RenameCollisionGroup WorldRoot:RenameCollisionGroup(from: string, to: string): null Not yet Inherited from WorldRoot. —
SetAvatarUnificationMode Workspace:SetAvatarUnificationMode(value: AvatarUnificationMode): null Not yet — RobloxScriptSecurity
SetInsertPoint WorldRoot:SetInsertPoint(point: Vector3): null Not yet Inherited from WorldRoot. RobloxScriptSecurity
SetMeshPartHeadsAndAccessories Workspace:SetMeshPartHeadsAndAccessories(value: MeshPartHeadsAndAccessories): null Not yet — RobloxScriptSecurity
Shapecast WorldRoot:Shapecast(part: BasePart, direction: Vector3, params: RaycastParams = RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): RaycastResult? Not yet Inherited from WorldRoot. —
Simulate WorldRoot:Simulate(dt: float): null Not yet Inherited from WorldRoot. RobloxSecurity
Spherecast WorldRoot:Spherecast(position: Vector3, radius: float, direction: Vector3, params: RaycastParams = RaycastParams{IgnoreWater=false, BruteForceAllSlow=false, RespectCanCollide=false, CollisionGroup=Default, FilterDescendantsInstances={}}): RaycastResult? Not yet Inherited from WorldRoot. —
StepPhysics WorldRoot:StepPhysics(dt: float, parts: Instances = {}): null Not yet Inherited from WorldRoot. PluginSecurity
UnregisterCollisionGroup WorldRoot:UnregisterCollisionGroup(name: string): null Not yet Inherited from WorldRoot. —

Events

Member Signature Status Notes Flags
PersistentLoaded PersistentLoaded(player: Player) Not yet Fires when persistent models have been sent to the specified player. —

Roblox reference: Workspace

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