Cage meshes are invisible surfaces of a MeshPart that allow other supported meshes to stretch and deform over each other. With cage meshes, you can create a set of meshes that can dynamically resize, reshape, and layer over another mesh of any shape or size.
They power layered accessories — 3D accessories such as jackets, dresses, and cardigans that stretch to fit a character body and stack naturally on top of one another — and you can also apply them to any MeshPart, as long as all the cage meshes share the same UV mapping.

A cage mesh is a simplified copy of a render mesh that defines a wrapping surface. Unlike Roblox's collision system, which works universally, cage meshes can only work with other paired cage meshes.
To fit one mesh over another, Roblox pairs the vertices of one cage with those of the other by their UV coordinates, then reshapes the render mesh so that its cage matches the target cage. Cage meshes are typically configured in a modeling tool such as Blender or Maya.
Cage mesh components
In Studio, cage meshes are children of a MeshPart and are represented by descendants of the BaseWrap class:
| Cage mesh type | In Blender | In Studio |
|---|---|---|
WrapTarget | ![]() A render mesh with a single _OuterCage mesh. | ![]() A MeshPart with a child WrapTarget. |
WrapLayer | ![]() A render mesh with an _InnerCage and an _OuterCage mesh. | ![]() |
Because a cage behaves like a component of its parent, a MeshPart is the only valid parent for these objects. You author cage meshes alongside your render mesh in a modeling application like Blender or Maya and import them together.
How cages pair
Roblox pairs cages by their UV coordinates rather than by position, so any two cages that share a UV layout can wrap over each other, even when their shapes differ. This is what lets a single accessory fit bodies of completely different shapes and sizes without remodeling it for each one.

The following shapes are completely different, but they all share the identical UV map above, so a single layered mesh can deform onto any of them.



Create caged assets
Use the following guides to create caged assets. Each guide includes downloadable files and basic implementation steps to follow along.
- Create cages in Blender — author the outer and inner cages for a model and import them into Studio.
- Apply deformation — deform a caged mesh onto a target with a WrapLayer.
- Create your own layered accessory — create a layered accessory using Roblox's provided reference cages.



