Roblox Mesh IDs

6,827 mesh IDs — set any of them on a MeshPart in Studio.

Browse every mesh

6,827 meshes

h a t0:00soniczanjoe20

What a mesh ID is, and what it is not

A mesh is pure geometry: a bag of triangles describing one 3D shape, uploaded to Roblox as its own asset with its own ID. That is all it is. It has no colour, no scripts, no moving parts and no children. When you set a MeshPart's MeshId to a number, you are telling that part “stop being a box, be this shape instead”.

The confusion that sends most people searching for mesh IDs is the gap between a mesh and the things built out of meshes. A model is a container that can hold dozens of meshes plus code. A decal is a flat image, not geometry at all. And a catalog accessory — a hat, a pair of wings, a hair — is a wrapper object whose ID is what the catalog page shows you, while the mesh sitting inside it has a completely different ID. Pasting the accessory's number into MeshId does nothing, which is exactly why “how do I get the mesh ID of this hat” is one of the most-asked Roblox Studio questions there is.

The other pairing to keep straight is mesh and texture. They are two separate uploads and two separate IDs: MeshId gives you the shape, TextureID gives you the surface. A mesh that loads perfectly but comes out flat grey is not broken — you have simply given it the first ID and not the second.

Use a mesh ID on a MeshPart in four steps

1. Put a MeshPart in the workspace

In Studio, right-click Workspace in the Explorer and insert a MeshPart, or drop in a normal Part and convert it. A fresh MeshPart looks like a plain grey block until you point it at some geometry — that block is the placeholder, not a bug.

2. Set MeshId to rbxassetid://ID

Select the MeshPart, find MeshId in the Properties panel, and type rbxassetid:// followed by the number you copied from the grid above. Press Enter and the shape snaps in. The older http://www.roblox.com/asset/?id= form still resolves, but rbxassetid:// is the current syntax and the one to use in new work.

3. Add the texture with TextureID

A mesh ID carries geometry only, so what you have now is a grey sculpture. The paint lives in a separate asset: set the TextureID property on the same MeshPart to its rbxassetid:// value. For a modern PBR look, add a SurfaceAppearance child instead and give it colour, normal, metalness and roughness maps.

4. Fix the size, fidelity and collisions

A MeshPart honours the Size property, so scale it there rather than re-exporting the source file. Then check the two settings people forget: RenderFidelity, which decides how much detail survives at distance, and CollisionFidelity. Leave CollisionFidelity on Default for scenery, switch it to Box or Hull for anything players walk on, and use Precise only where the exact shape matters — it is the expensive option.

Pulling the mesh ID out of a catalog item

If what you actually want is the mesh from a specific hat, hair or accessory, the catalog page will not give it to you. The number in the catalog URL belongs to the accessory, and the mesh is one level down inside it. The reliable route runs through Studio.

Open any place, then load the accessory by ID. The quickest way is the Toolbox: paste the catalog ID into its search box and insert the result. If it does not appear there, open View → Command Bar and run game:GetService("InsertService"):LoadAsset(ID).Parent = workspace, which pulls the asset in as a model regardless of how the Toolbox indexes it.

Now expand what you inserted in the Explorer. Inside the Accessory you will find a Handle, and inside or as the Handle itself there will be a MeshPart or a SpecialMesh. Click it, look at the Properties panel, and MeshId holds the number you came for — along with TextureId, which is the matching surface. Copy both. Older accessories use SpecialMesh and newer ones use MeshPart, so do not be surprised when the tree looks slightly different from one item to the next.

When a mesh misbehaves

It is grey. You set MeshId but not TextureID. Add the texture asset, or a SurfaceAppearance if you want proper PBR maps.

It is still a plain block. The value in MeshId is not a valid content string. Check you used the rbxassetid:// prefix, and check the number really is a mesh — a model or decal ID pasted into MeshId will not resolve.

Players get stuck on it, or fall through it. That is CollisionFidelity. Default approximates the shape loosely, Box wraps it in a rectangle, Hull shrink-wraps it, and Precise matches the triangles exactly at real performance cost. Detailed scenery with Precise collision is one of the more common causes of a laggy place.

It looks smooth up close and melted at distance. RenderFidelity is on Automatic, which swaps in lower-detail versions as the camera pulls away. Set it to Precise for hero objects and leave it automatic for everything else.

Your own upload was rejected. Roblox caps meshes at roughly 10,000 triangles, so decimate in Blender before importing. Meshes also import at the scale you modelled them; if yours arrives microscopic or enormous, fix the unit scale in your 3D tool rather than fighting the Size property afterwards.

Mesh questions

How do I use a mesh ID in Roblox Studio?

Insert a MeshPart into your workspace, then paste the ID into its MeshId property as rbxassetid://ID. The mesh loads instantly. For the classic SpecialMesh object the property is also MeshId, with TextureId taking a texture.

What is the difference between a mesh and a model?

A mesh is a single 3D shape (one MeshId); a model is a container of parts, meshes and scripts assembled together. If you want one object’s shape, use the mesh; if you want a working thing, insert the model.

Why does a mesh load grey?

The mesh and its texture are separate assets. Set the TextureID property (or a SurfaceAppearance) as well — a mesh ID alone gives you the shape with no paint.

How do I get the mesh ID of a catalog item like a hat or hair?

The catalog page gives you the accessory’s asset ID, which is not the mesh ID — the accessory is a wrapper that contains the mesh. To get the real number, insert the accessory into Studio (Toolbox search by its ID, or game:GetService("InsertService"):LoadAsset(id) in the Command Bar), expand it in the Explorer until you reach the MeshPart or SpecialMesh inside, and read the MeshId property off that object. That value is the mesh asset you actually want.

Why is my mesh ID not loading at all?

Usually one of three things. The asset was deleted or moderated, so there is nothing behind the number. You pasted a model or decal ID rather than a mesh ID — those are different asset types and MeshId will reject them. Or you typed the number without the rbxassetid:// prefix, which Studio treats as an invalid content string and quietly leaves the part as a plain block.

What is the difference between MeshPart and SpecialMesh?

SpecialMesh is the old approach: a mesh object parented inside a normal Part, scaled with a Scale property and textured with TextureId. MeshPart is the modern one, where the mesh is the part — it gets a real Size, proper collision geometry via CollisionFidelity, SurfaceAppearance support and better performance. New builds should use MeshPart; SpecialMesh mostly turns up inside old free models and classic accessories.

Can I upload my own mesh?

Yes. Model it in Blender, Maya or anything that exports .fbx or .obj, then in Studio use the Avatar tab → 3D Importer, or right-click Workspace → Insert Object → MeshPart and pick your file. Roblox enforces limits — most importantly a cap of around 10,000 triangles per mesh — so decimate a dense sculpt before importing rather than after the error message.

Do mesh IDs work in a published game, or only in Studio?

Both. A MeshId set in Studio and published with the place works for every player. Setting MeshId at runtime from a script also works, but the asset has to load over the network first, so the part shows as a plain block for a moment on slower connections. Preloading with ContentProvider:PreloadAsync() avoids that pop-in.

Keep going

Meshes are rarely the only asset a build needs. Grab whole assembled objects from the model ID list, surface images from the decal ID list, and audio from the music and sound ID list. Not sure what an unlabelled number points at? The ID lookup tool will tell you the asset type before you paste it into a property. If the meshes you are after are avatar accessories, browse them in the catalog or the bundles list first, then pull the IDs out in Studio using the method above. The guides cover the wider Studio workflow.