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

Workspace

Show deprecated

Workspace

Show deprecated

The Workspace is the service in which any objects that are to be rendered in the 3D world exist. Objects not descending from Workspace will not be rendered or physically interact with the world.

What does the Workspace do?

The core job of the Workspace is to hold objects that exist in the 3D world, BasePart|BaseParts and Attachment|Attachments. Whilst 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 objects adorned to them, such as ParticleEmitter|ParticleEmitters, Beam|Beams and BillboardGui|BillboardGuis will render.

Understanding this behavior is important, as it means objects can be removed from the Workspace when they are not needed. For example, map Model|Models can be removed from the Workspace when a different map is being played on. Objects that are not immediately needed in the Workspace 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. Commonly used are the Workspace’s raycasting functions, such as Workspace/FindPartOnRay.

Accessing the Workspace

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

workspace -- a global variable
game.Workspace -- a property of the DataModel
game:GetService("Workspace") -- workspace is a service

Notes

  • Objects that require adornment, such as ParticleEmitters and BillboardGuis will be adorned to the 0, 0, 0 position when adorned to the Workspace (parented to it without an adornee otherwise being set)
  • The Model/MakeJoints and Model/BreakJoints functions inherited from the Model class are overridden by the Workspace’s own Workspace/MakeJoints and Workspace/BreakJoints functions, which can only be used in plugins
  • It is impossible to delete the Workspace
  • The Workspace will also clean up BaseParts that fall beneath Workspace/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

Properties

bool

AllowThirdPartySales

[NotReplicated]

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

AutoJointsMode

AutoJointsMode

[NotScriptable]
Camera

CurrentCamera

[NotReplicated]

The Camera object being used by the local player.

double

DistributedGameTime

[NotReplicated]

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

float

FallenPartsDestroyHeight

Determines the height at which falling BasePart|BaseParts (and their ancestor Model|Models) are destroyed

bool

FilteringEnabled

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

float

Gravity

Determines the acceleration due to gravity applied to falling BaseParts.

bool

StreamingEnabled

Whether network streaming is enabled for the place or not.

int

StreamingMinRadius

[NotScriptable]
int

StreamingTargetRadius

[NotScriptable]
bool

TemporaryLegacyPhysicsSolverOverride

[NotReplicated] [NotScriptable]
Instance

Terrain

[ReadOnly] [NotReplicated]

A reference to the Terrain object parented to the Workspace

Inherited from Model: Show Hide

BasePart

PrimaryPart

Points to the Model's primary part. The part is the BasePart that is used as a basis when positioning the model using the Model/MoveTo and Model/SetPrimaryPartCFrame functions.

Inherited from Instance: Show Hide

int

DataCost

[ReadOnly] [NotReplicated]

The cost of saving the instance using data persistence.

Instance

Parent

Determines the hierarchical parent of the Instance.

bool

RobloxLocked

If true, the Instance and its descendants cannot be indexed or edited by a Script or LocalScript and will throw an error if it is attempted.

string

ClassName

[ReadOnly] [NotReplicated]

A read-only string representing the class this Instance belongs to.

string

Name

A non-unique identifier of the Instance.

bool

Archivable

Determines if an Instance can be cloned using /Instance/Clone or saved to file.

Functions

void

BreakJoints ( Objects objects )

Goes through all BaseParts given, breaking any joints connected to these parts.

bool

ExperimentalSolverIsEnabled ( )

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

Tuple

FindPartOnRay ( Ray ray , Instance ignoreDescendantsInstance , bool terrainCellsAreCubes , bool ignoreWater )

Returns the first BasePart intersecting with the given DataType/Ray.

Tuple

FindPartOnRayWithIgnoreList ( Ray ray , Objects ignoreDescendantsTable , bool terrainCellsAreCubes , bool ignoreWater )

Returns the first BasePart intersecting with the given DataType/Ray that isn’t in, or a descendant of an object in, the given ignore list

Tuple

FindPartOnRayWithWhitelist ( Ray ray , Objects whitelistDescendantsTable , bool ignoreWater )

Returns the first BasePart intersecting with the given DataType/Ray that is in, or is a descendant of an object in, the given white-list

Objects

FindPartsInRegion3 ( Region3 region , Instance ignoreDescendantsInstance , int maxParts )

Returns an array of BaseParts in the given DataType/Region3.

Objects

FindPartsInRegion3WithIgnoreList ( Region3 region , Objects ignoreDescendantsTable , int maxParts )

Returns an array of BaseParts in the given DataType/Region3 that aren’t in, or a descendant of an entry in, the given IgnoreList.

Objects

FindPartsInRegion3WithWhiteList ( Region3 region , Objects whitelistDescendantsTable , int maxParts )

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

int

GetNumAwakeParts ( )

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

int

GetPhysicsThrottling ( )

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

double

GetRealPhysicsFPS ( )

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

bool

IsRegion3Empty ( Region3 region , Instance ignoreDescendentsInstance )

Returns a bool stating if no BaseParts are in the given DataType/Region3.

bool

IsRegion3EmptyWithIgnoreList ( Region3 region , Objects ignoreDescendentsTable )

Returns a bool stating if no BaseParts are in the given DataType/Region3, ignoring any BaseParts that are in, or descend from objects in, the ignore list given.

void

JoinToOutsiders ( Objects objects , JointCreationMode jointType )

Creates joints between the specified BasePart|Parts and any touching parts depending on the parts’ surfaces and the specified joint creation mode.

void

MakeJoints ( Objects objects )

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

bool

PGSIsEnabled ( )

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

void

SetPhysicsThrottleEnabled ( bool value )

Determines whether physics throttling is enabled

void

UnjoinFromOutsiders ( Objects objects )

Breaks all joints between the specified BaseParts and other BaseParts.

void

ZoomToExtents ( )

Positions and zooms the Workspace/CurrentCamera to show the extent of BaseParts currently in the Workspace.

Inherited from Model: Show Hide

void

TranslateBy ( Vector3 delta )

Shifts a Model by the given Vector3 offset, preserving the Model's orientation. If another BasePart or Terrain already exists at the new position then the Model will overlap said object.

void

SetPrimaryPartCFrame ( CFrame cframe )

Sets the BasePart/CFrame of the Model's Model/PrimaryPart. All other parts in the model will also be moved and will maintain their orientation and offset respective to the Model/PrimaryPart. This function will throw an error if no Model/PrimaryPart exists for the model.

void

MoveTo ( Vector3 position )

Moves the Model/PrimaryPart to the given position. If a primary part has not been specified then the root part of the model will be used.

void

MakeJoints ( )

Goes through all BaseParts in the Model. If any part’s side has a SurfaceType that can make a joint it will create a joint with any adjacent parts.

CFrame

GetPrimaryPartCFrame ( )

Returns the CFrame of the Model's Model/PrimaryPart. This function will throw an error if no primary part exists for the Model.

Vector3

GetExtentsSize ( )

Returns the size of the smallest bounding box that contains all of the BaseParts in the Model, aligned with the Model/PrimaryPart if it is set.

void

BreakJoints ( )

Breaks connections between BaseParts, including surface connections with any adjacent parts, WeldConstraints and all Welds and other JointInstances.

Inherited from Instance: Show Hide

Instance

FindFirstChild ( string name , bool recursive )

Returns the first child of the Instance found with the given name.

Array

GetDescendants ( )

[CustomLuaState]

Returns an array containing all of the descendants of the instance

Objects

GetChildren ( )

Returns an array containing all of the Instance's children.

void

Destroy ( )

Sets the Instance/Parent property to nil, locks the Instance/Parent property, disconnects all connections and calls Destroy on all children.

RBXScriptSignal

GetPropertyChangedSignal ( string property )

Get an event that fires when a given property of an object changes.

string

GetFullName ( )

Returns a string describing the Instance's ancestry.

Instance

FindFirstChildWhichIsA ( string className , bool recursive )

Returns the first child of the Instance for whom Instance/IsA returns true for the given className.

bool

IsAncestorOf ( Instance descendant )

Returns true if an Instance is an ancestor of the given descendant.

bool

IsDescendantOf ( Instance ancestor )

Returns true if an Instance is a descendant of the given ancestor.

Instance

FindFirstChildOfClass ( string className )

Returns the first child of the Instance whose Instance/ClassName|ClassName is equal to the given className.

Instance

FindFirstAncestorWhichIsA ( string className )

Returns the first ancestor of the Instance for whom Instance/IsA returns true for the given className.

Instance

FindFirstAncestorOfClass ( string className )

Returns the first ancestor of the Instance whose Instance/ClassName is equal to the given className.

Instance

FindFirstAncestor ( string name )

Returns the first ancestor of the Instance whose Instance/Name is equal to the given name.

bool

IsA ( string className )

Returns true if an Instance's class matches or inherits from a given class

Instance

WaitForChild ( string childName , double timeOut )

[CustomLuaState] [CanYield]

Returns the child of the Instance with the given name. If the child does not exist, it will yield the current thread until it does.

string

GetDebugId ( int scopeLength )

[NotBrowsable]

Returns a coded string of the Instances DebugId used internally by Roblox.

Instance

Clone ( )

Create a deep copy of a Roblox instance and descendants where Archivable = true.

void

ClearAllChildren ( )

This function destroys all of an Instance's children.

Events

Inherited from Instance: Show Hide

RBXScriptSignal

DescendantRemoving ( Instance descendant )

Fires immediately before a descendant of the Instance is removed.

RBXScriptSignal

AncestryChanged ( Instance child , Instance parent )

Fires when the Instance/Parent property of the object or one of its ancestors is changed.

RBXScriptSignal

ChildAdded ( Instance child )

Fires when an object is parented to this Instance.

RBXScriptSignal

ChildRemoved ( Instance child )

Fires when a child is removed from this Instance.

RBXScriptSignal

DescendantAdded ( Instance descendant )

Fires when a descendant is added to the Instance.

RBXScriptSignal

Changed ( string property )

Fired immediately after a property of an object changes.