Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.
Apply deformation
Once a target caged mesh and a layered caged mesh are imported into your experience, you can apply a deformation by parenting both MeshParts within a Model and adding a WeldConstraint.

Deform a mesh
Download the reference files to follow along. The Blender project contains every shape, and each .fbx imports as a ready-made target or layered mesh with its cages.
| File | Description |
|---|---|
| Cage-Mesh-Examples.blend | A Blender project containing every target and layered mesh in this guide, with their cages. |
| Cube_Target.fbx | A cube target, ready to import as a [`MeshPart`](/docs/meshpart) with a [`WrapTarget`](/docs/wraptarget). |
| Sphere_Target.fbx | A sphere target, ready to import as a [`MeshPart`](/docs/meshpart) with a [`WrapTarget`](/docs/wraptarget). |
| Cube-Flattened_Target.fbx | A flattened cube target, ready to import as a [`MeshPart`](/docs/meshpart) with a [`WrapTarget`](/docs/wraptarget). |
| Layered-Mesh1.fbx | A layered mesh with inner and outer cages, ready to import as a [`MeshPart`](/docs/meshpart) with a [`WrapLayer`](/docs/wraplayer). |
| Layered-Mesh2.fbx | A second layered mesh, ready to import as a [`MeshPart`](/docs/meshpart) with a [`WrapLayer`](/docs/wraplayer). |
- Ensure that your workspace includes two 3D objects: a target
MeshPartand a layeredMeshPart.Confirm the target has a
WrapTargetand the deforming mesh has aWrapLayer.<img src="https://prod.docsiteassets.roblox.com/assets/modeling/cage-meshes/WrapTarget-Explorer.png" width="90%" alt="The Studio Explorer showing the target MeshPart with a child WrapTarget object." />
Target: a WrapTarget
<img src="https://prod.docsiteassets.roblox.com/assets/modeling/cage-meshes/WrapLayer-Explorer.png" width="90%" alt="The Studio Explorer showing the layered MeshPart with a child WrapLayer object." /> Deforming mesh: a WrapLayer
(Optional) If testing or applying multiple deformations, make a copy of your layered mesh to ensure you have an original copy later.
In the Explorer, parent both target and layered
MeshPartsin oneModel.
Add a
WeldConstraintto the layeredMeshPart, then:- Set
Part0to the layered mesh. - Set
Part1to the target mesh.
- Set
In the Properties window, change
WrapLayer.Orderfrom the default value to another number, such as2or5.- Changing this property triggers the deformation in the 3D workspace so the layered mesh reshapes to match the shape of the target.
- If the order is incorrect with other layers, such as a T-shirt wrapping over a sweater, you can change this property at any time.
(Optional) The deformation is retained after it computes, so you can delete the duplicated layered mesh and the
WeldConstraintand resetWrapLayer.Order, leaving a single deformed mesh. This is useful to simplify your workspace when applying multiple deformations.
Experiment further. Try deforming the reference layered meshes onto the other target shapes, or deform multiple meshes onto a single target.
Deform multiple meshes to a single target
You can continue to add layered meshes to a target by repeating the process of adding a layered mesh and a weld. Every time a layered mesh is added to a target, Roblox recalculates the surface of the mesh, allowing you to continually add to your target mesh.
Note
Every mesh you layer onto a target must share the same UV layout as the target. Roblox pairs each layer to the target by UV, so mismatched UVs won't deform correctly.
With your existing deformed mesh in the workspace, add a new layered
MeshPartinto yourModel.
Add a
WeldConstraintto the new layeredMeshPart, then:- Set
Part0to the original layered mesh. - Set
Part1to the new layered mesh.
- Set
Change
WrapLayer.Orderin the Properties window. Changing this property triggers the deformation, and the mesh reshapes to match the target. Each layer'sWrapLayer.Orderdetermines which one renders on top.<img src="https://prod.docsiteassets.roblox.com/assets/modeling/cage-meshes/Ordering-Example-1.png" alt="The second layer rendering on top of the first in Studio." />
The first layer's WrapLayer.Order is 1 and the second layer's is 2, so the second layer renders on top.
<img src="https://prod.docsiteassets.roblox.com/assets/modeling/cage-meshes/Ordering-Example-2.png" alt="The first layer rendering on top of the second in Studio." /> Updating the first layer's WrapLayer.Order to 2, and setting the second layer to 1, brings the first layer on top.
Deform an accessory on an avatar
All Roblox avatars share the same standard body cage. Because cages pair by UV, an accessory caged to that shared layout fits every avatar body. Note that the example meshes in this guide use their own cages, so they aren't compatible with Roblox's standard body cage.
When creating avatar characters and avatar accessories, a similar process of layering applies to a Humanoid character's body cages, and the layered accessory pipeline composes the layered mesh automatically. This allows fitting across body types and transferring skinning data through WrapLayer.AutoSkin.
Note
If you are creating your own custom non-Marketplace characters that utilize a unique cage / UV solution, see Layered accessories on non-R15.
For an overview of creating your first layered accessory, see the following video:
For the full avatar workflow, see Layered accessories, the Accessory Fitting Tool, and Automatic Skinning Transfer.