Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.
Bone
Inherits from: Attachment → Instance → Object
Bones are non-rendered objects that drive the movement of one or more parts for the purposes of animation, or creating clothing and characters. Bones are part of a Model or MeshPart object's skeletal rig that you typically access and animate through the Animation Editor.
Rigs are created during the modeling process in third-party software such as Blender or Maya. After importing the rigged model into Studio, you can add the model directly to your experience, or save and share the model as an asset. See Rigging for more details on creating and using rigged models.
Note that you can parent Bones under other Bones and parts. When parenting a bone to another bone, the child bone's world position will be relative to the parent bone's position, and the hierarchy of parented Bone objects can change the behavior of affected parts during posing or animation.
Relationship with Motor6D
To support animations with older rigs using joints, such as Motor6D, you can use the Bone.Transform property in the same way as Motor6D.Transform. Roblox uses the offset of the bones from the default pose to drive an animation, and bones are not replicated or serialized.
Bone.CFrame
Bones inherit the CFrame property of Attachments which Roblox uses as the bone's reference position. The inherited WorldCFrame and other world properties return the initial un-transformed position.
Inherits from: Attachment
Memory category: Instances
Properties
| Name | Type / Returns | Description |
|---|---|---|
| Bone.Transform | CFrame | Determines the current animated offset of the bone in its local space. |
| Bone.TransformedCFrame | CFrame | Describes the combined CFrame offset of the bone and the current animation offset in the bone local space. |
| Bone.TransformedWorldCFrame | CFrame | Describes the combined CFrame offset of the bone and the current animation offset in world space. |
Inherited from Attachment
| Name | Type / Returns | Description |
|---|---|---|
| Attachment.Axis | Vector3 | Direction of the X axis of the attachment, represented as a unit Vector3. |
| Attachment.CFrame | CFrame | CFrame offset of the attachment. |
| Attachment.Orientation | Vector3 | Orientation of the attachment relative to the orientation of its parent. |
| Attachment.Position | Vector3 | Positional offset of the attachment, relative to the position and orientation of its parent. |
| Attachment.Rotation | Vector3 | Rotation of the attachment relative to the rotation of its parent. |
| Attachment.SecondaryAxis | Vector3 | Direction of the Y axis of the attachment, represented as a unit Vector3. |
| Attachment.Visible | boolean | Toggles the in-experience visibility of the attachment. |
| Attachment.WorldAxis | Vector3 | Direction of the X axis of the attachment relative to the world, represented as a unit Vector3 with a length of 1. |
| Attachment.WorldCFrame | CFrame | The exact CFrame of the attachment in world space coordinates. |
| Attachment.WorldOrientation | Vector3 | Orientation of the attachment relative to the world rather than its own parent. |
| Attachment.WorldPosition | Vector3 | Position of the attachment relative to the world rather than its own parent. |
| Attachment.WorldRotation | Vector3 | Rotation of the attachment relative to the world rather than its own parent. |
| Attachment.WorldSecondaryAxis | Vector3 | Direction of the Y axis of the attachment relative to the world, represented as a unit Vector3 with a length of 1. |
Inherited from Instance
| Name | Type / Returns | Description |
|---|---|---|
| Instance.Archivable | boolean | Determines if an Instance and its descendants can be cloned using Instance:Clone(), and can be saved/published. |
| Instance.archivable | boolean | |
| Instance.Capabilities | SecurityCapabilities | The set of capabilities allowed to be used for scripts inside this container. |
| Instance.IsInSandbox | boolean | Indicates whether the instance is inside a sandboxed container. |
| Instance.Name | string | A non-unique identifier of the Instance. |
| Instance.Parent | Instance | Determines the hierarchical parent of the Instance. |
| Instance.PredictionMode | PredictionMode | Reflects the client-side prediction mode applied to the instance under server-authoritative physics. |
| Instance.RobloxLocked | boolean | A deprecated property that used to protect CoreGui objects. |
| Instance.Sandboxed | boolean | When enabled, the instance can only access abilities in its Capabilities list. |
| Instance.UniqueId | UniqueId | A unique identifier for the instance. |
Inherited from Object
| Name | Type / Returns | Description |
|---|---|---|
| Object.ClassName | string | A read-only string representing the class this Object belongs to. |
| Object.className | string |
Bone.Transform
Transform determines the current animated offset of the bone relative to its CFrame. This property is set by Roblox when animations on skinned meshes are played, although it can be manipulated manually in a manner similar to Motor6D.Transform.
See also:
Motor6D.Transform, a property which plays a similar role in character rig animationTransformedCFrameandTransformedWorldCFrame, whose values are partially determined by this property
| Field | Value |
|---|---|
| type | CFrame |
| tags | ["NotReplicated"] |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Transform |
| serialization | {"can_load":true,"can_save":false} |
| capabilities | ["Basic","Animation"] |
Bone.TransformedCFrame
TransformedCFrame describes the combined CFrame offset of the bone and the current animation offset (Transform) in the bone's local space.
See also:
Transform, a property which partially determines this property's valueBone.TransformedWorldCFrame, a world-space variant of this property
| Field | Value |
|---|---|
| type | CFrame |
| tags | ["Hidden","ReadOnly","NotReplicated"] |
| security | {"read":"None","write":"None"} |
| thread safety | ReadSafe |
| category | Derived Data |
| serialization | {"can_load":false,"can_save":false} |
| capabilities | ["Basic","Animation"] |
Bone.TransformedWorldCFrame
TransformedWorldCFrame describes the combined CFrame offset of the bone and the current animation offset (Transform) in world space.
See also:
Transform, a property which partially determines this property's valueBone.TransformedCFrame, a local-space variant of this property
| Field | Value |
|---|---|
| type | CFrame |
| tags | ["ReadOnly","NotReplicated"] |
| security | {"read":"None","write":"None"} |
| thread safety | Unsafe |
| category | Derived World Data |
| serialization | {"can_load":false,"can_save":false} |
| capabilities | ["Basic","Animation"] |
Methods
Inherited from Attachment
| Name | Type / Returns | Description |
|---|---|---|
| Attachment:GetAxis | Vector3 | Returns the value of the attachment's Axis. |
| Attachment:GetConstraints | List | Returns a list of Constraints connected to the attachment. |
| Attachment:GetSecondaryAxis | Vector3 | Returns the value of the attachment's SecondaryAxis. |
| Attachment:SetAxis | () | Sets the value of the attachment's Axis. |
| Attachment:SetSecondaryAxis | () | Sets the value of the attachment's SecondaryAxis. |
Inherited from Instance
| Name | Type / Returns | Description |
|---|---|---|
| Instance:AddTag | () | Applies a tag to the instance. |
| Instance:children | Instances | Returns an array of the object's children. |
| Instance:ClearAllChildren | () | This method destroys all of an instance's children. |
| Instance:Clone | Instance | Create a copy of an instance and all its descendants, ignoring instances that are not Archivable. |
| Instance:clone | Instance | |
| Instance:Destroy | () | Sets the Instance.Parent property to nil, locks the Instance.Parent property, disconnects all connections, and calls Destroy() on all children. |
| Instance:destroy | () | |
| Instance:FindFirstAncestor | Instance? | Returns the first ancestor of the Instance whose Instance.Name is equal to the given name. |
| Instance:FindFirstAncestorOfClass | Instance? | Returns the first ancestor of the Instance whose Object.ClassName is equal to the given className. |
| Instance:FindFirstAncestorWhichIsA | Instance? | Returns the first ancestor of the Instance for whom Object:IsA() returns true for the given className. |
| Instance:FindFirstChild | Instance? | Returns the first child of the Instance found with the given name. |
| Instance:findFirstChild | Instance | |
| Instance:FindFirstChildOfClass | Instance? | Returns the first child of the Instance whose ClassName is equal to the given class name. |
| Instance:FindFirstChildWhichIsA | Instance? | Returns the first child of the Instance for whom Object:IsA() returns true for the given className. |
| Instance:FindFirstDescendant | Instance? | Returns the first descendant found with the given Instance.Name. |
| Instance:GetActor | Actor? | Returns the Actor associated with the Instance, if any. |
| Instance:GetAttribute | Variant | Returns the value which has been assigned to the given attribute name. |
| Instance:GetAttributeChangedSignal | RBXScriptSignal | Returns an event that fires when the given attribute changes. |
| Instance:GetAttributes | Dictionary | Returns a dictionary of the instance's attributes. |
| Instance:GetChildren | Instances | Returns an array containing all of the instance's children. |
| Instance:getChildren | Instances | |
| Instance:GetDebugId | string | Returns a coded string of the debug ID used internally by Roblox. |
| Instance:GetDescendants | Instances | Returns an array containing all of the descendants of the instance. |
| Instance:GetFullName | string | Returns a string describing the instance's ancestry. |
| Instance:GetStyled | Variant | Returns the styled or explicitly modified value of the specified property, or else the default property value if it hasn't been styled/modified. |
| Instance:GetStyledPropertyChangedSignal | RBXScriptSignal | Returns an event that fires when the given style property changes on the instance. |
| Instance:GetTags | Array | Gets an array of all tags applied to the instance. |
| Instance:HasTag | boolean | Check whether the instance has a given tag. |
| Instance:IsAncestorOf | boolean | Returns true if an Instance is an ancestor of the given descendant. |
| Instance:IsDescendantOf | boolean | Returns true if an Instance is a descendant of the given ancestor. |
| Instance:isDescendantOf | boolean | |
| Instance:IsPropertyModified | boolean | Returns true if the value stored in the specified property is not equal to the code-instantiated default. |
| Instance:QueryDescendants | Instances | Returns an array containing all descendants of the instance that match the selector string. |
| Instance:Remove | () | Sets the object's Parent to nil, and does the same for all its descendants. |
| Instance:remove | () | |
| Instance:RemoveTag | () | Removes a tag from the instance. |
| Instance:ResetPropertyToDefault | () | Resets a property to its default value. |
| Instance:SetAttribute | () | Sets the attribute with the given name to the given value. |
| Instance:WaitForChild | Instance | 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. |
Inherited from Object
| Name | Type / Returns | Description |
|---|---|---|
| Object:GetPropertyChangedSignal | RBXScriptSignal | Get an event that fires when a given property of the object changes. |
| Object:IsA | boolean | Returns true if an object's class matches or inherits from a given class. |
| Object:isA | boolean |
Events
Inherited from Instance
| Name | Type / Returns | Description |
|---|---|---|
| Instance.AncestryChanged | Fires when the Instance.Parent property of this object or one of its ancestors is changed. | |
| Instance.AttributeChanged | Fires whenever an attribute is changed on the Instance. | |
| Instance.ChildAdded | Fires after an object is parented to this Instance. | |
| Instance.childAdded | ||
| Instance.ChildRemoved | Fires after a child is removed from this Instance. | |
| Instance.DescendantAdded | Fires after a descendant is added to the Instance. | |
| Instance.DescendantRemoving | Fires immediately before a descendant of the Instance is removed. | |
| Instance.Destroying | Fires immediately before (or is deferred until after) the instance is destroyed via Instance:Destroy(). | |
| Instance.StyledPropertiesChanged | Fires whenever any style property is changed on the instance, including when a property is set to nil. |
Inherited from Object
| Name | Type / Returns | Description |
|---|---|---|
| Object.Changed | Fires immediately after a property of the object changes, with some limitations. |