Workspace¶
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.
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.
workspacegame:GetService("Workspace")game.Workspace
Notes¶
- Objects that require adornment, such as
ParticleEmitters and
BillboardGuis, will be at the
position when parented to Workspace without an adornee otherwise being set.(0, 0, 0) - The Model.MakeJoints() and Model.BreakJoints() methods inherited from the Model class are overridden by Workspace.MakeJoints() and Workspace.BreakJoints() which can only be used in plugins.
- It is impossible to delete Workspace.
- Workspace automatically cleans up BaseParts that fall beneath FallenPartsDestroyHeight.
- A client's current Camera object can be accessed using the Workspace.CurrentCamera property.
- The Terrain object can be accessed using the Workspace.Terrain property.
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.
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.
CurrentCamera Supported Property The Camera object being used by the local player.
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.
DistributedGameTime Supported Property The amount of time, in seconds, that the game has been running.
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.
FallenPartsDestroyHeight Supported Property Determines the height at which falling BaseParts and their ancestor Models are removed from Workspace.
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.
FilteringEnabled Supported Property Deprecated Determines whether changes made from the client will replicate to the server or not.
Determines whether changes made from the client will replicate to the server or not.
This property is discontinued and no longer takes effect.
GlobalWind Supported Property Specifies the global wind vector for animated terrain grass, dynamic clouds, and particles.
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.
Gravity Supported Property Determines the acceleration due to gravity applied to falling BaseParts.
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.
StreamingEnabled Supported Property Whether content streaming is enabled for the place.
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¶
StreamingIntegrityMode Supported Property Determines whether streaming integrity mode is active.
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.
StreamingMinRadius Supported Property Minimum distance that content will be streamed to players with high priority.
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¶
- Workspace.StreamingEnabled which controls whether content streaming is enabled
- Workspace.StreamingTargetRadius
- Workspace.StreamingIntegrityMode
StreamingPauseMode Supported Property
StreamingTargetRadius Supported Property Maximum distance that content will be streamed to players.
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¶
- Workspace.StreamingEnabled which controls whether content streaming is enabled
- Workspace.StreamingMinRadius
- Workspace.StreamingIntegrityMode
StreamOutBehavior Supported Property Configures how the engine decides when to stream content away from players.
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¶
- Workspace.StreamingEnabled which controls whether content streaming is enabled
- Workspace.StreamingMinRadius
- Workspace.StreamingTargetRadius
- Workspace.StreamingIntegrityMode
Terrain Supported Property A reference to the Terrain object parented to the Workspace.
This property is a reference to the Terrain object parented to the Workspace.

See Environmental Terrain for more information.
Methods¶
BreakJoints Supported Function Deprecated Goes through all BaseParts given, breaking any joints connected to these parts.
Goes through all BaseParts given, breaking any joints connected to these parts. This function will break any of the following types of joints:
- JointInstances such as Welds
- WeldConstraints
Unlike Model.MakeJoints(), this function requires an array of BaseParts as a parameter. This array is given as follows:
Note, this function cannot be used in developer-facing Luau and will only function in plugins.
PluginSecurityExperimentalSolverIsEnabled Supported Function
No description available.
LocalUserSecurityFindPartOnRay 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
niland 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
findPartOnRay Supported Function Deprecated
Workspace:findPartOnRay(Ray ray, Instance ignoreDescendentsInstance = nil, bool terrainCellsAreCubes = false, bool ignoreWater = false): Tuple
No description available.
Roblox reference signature
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
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
findPartsInRegion3 Supported Function Deprecated
Workspace:findPartsInRegion3(Region3 region, Instance ignoreDescendentsInstance = nil, int maxParts = 20): Objects
No description available.
Roblox reference signature
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
GetNumAwakeParts Supported Function Returns the number of BaseParts that are deemed physically active, due to being recently under the influence of physics.
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.
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.
GetPhysicsAnalyzerBreakOnIssue Supported Function
No description available.
PluginSecurityGetPhysicsAnalyzerIssue Supported Function
No description available.
PluginSecurityGetPhysicsThrottling Supported Function 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.
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¶
GetRealPhysicsFPS Supported Function Returns the number of frames per second that physics is currently being simulated at.
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.
IsRegion3Empty Supported Function Deprecated Returns a bool indicating whether there are no BaseParts within the given Region3.
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
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…
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
JoinToOutsiders Supported 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 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
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.
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:
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.
PluginSecurityPGSIsEnabled Supported Function Returns true if the game has the PGS Physics solver enabled.
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.
SetPhysicsAnalyzerBreakOnIssue Supported Function
No description available.
PluginSecuritySetPhysicsThrottleEnabled Supported Function
No description available.
LocalUserSecurityUnjoinFromOutsiders Supported Function Breaks all joints between the specified BaseParts and other BaseParts.
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
ZoomToExtents Supported Function Positions and zooms the Workspace.CurrentCamera to show the extent of BaseParts currently in the Workspace.
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.
PluginSecurityEvents¶
PhysicsAnalyzerIssuesFound Supported Event
No description available.
PluginSecurityInherited 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.