Roblox Mesh IDs
7,056 mesh IDs — set any of them on a MeshPart in Studio.
Browse every mesh
7,056 meshes
Meshes/ship2 (2)1257304279
Dominus Lightningus10863555173
Lord Team Spider Hat :O14625397984
Gun Mesh430070525
top hat16900947792
Tricky the clown6776141648
This A new Wolf3590526470
XM-29 OICW16506405197
Lincoln's Repeater584165950
Military LandCruiser SUV79255098134424
flexy mask16857209986
cool mask15530341022
vampire toxic horn10439618175
Stun Rocket14595840084
Meshes/Poisoned Horns of the Toxic Wasteland Roblo10439614157
VASTO HORN13343186278
Black to purple horns14756063577
cat_ears105612014249025
closed detainern claw for angel!134012196820042
Nissan GTR Vented Hood2859413754
Korkblox horns13374564264
Meshes/redhorseparts5370356811
Meshes/papercraft106063526718152
Meshes/horns14290394608
2.0105161331541282
Meshes/Pet_Circle.001 (1)8048927878
Meshes/inner5748779197
Meshes/rear430351174
Meshes/bhead73695460467047
Meshes/_noo_Cylinder.00285318257218375
Back spikes11961763515
trident for build a boat5093035930
Meshes/Trigger3035564072
Horns blue18115428648
Object_33886596384002144
Black Demon Horns15555147076
guillotina_head102877950565712
Alpahmon Up843538923
Flexble funner968733512
Interceptor Striker's Hull114880209657544
primal spikes95367812273230
Meshes/RenderMesh (1)6560404198
Lava Horns10195402096
Han_g_head3 2587427817
M-FD/Vert007-0812682840244
Tiger logo1057817529
Meshes/Flag thing (1)10857376543
Meshes/AK-47 mag883075103
Boeing 737-10016904462253
Meshes/pyramid_Cube.00112249418710
I'm Getting Sick of This83606503244562
Meshes/planet1saturn74030396649011
black horns121564115304667
circle wings14824983894
Coolest Cone12734075323
Meshes/12890183750
Gary Head6972762698
Valkyrie Portalus15087086623
Meshes/Kings Logo5241004305
Slanted Tophat13450525800
Meshes/wizard (1)8679368752
Fancy Blue Hat17326507065
Meshes/pawnv293326321296727
Oldshcool Conus16139496854
Long Spikes5773764950
Meshes/universe2 hat17530057128
Spike ball11117677122
Meshes/werwerwerweio878978_domnis14819570116
Meshes/aeaeaeeaeaeaeaeaeea11291654244
purple cool hat14986245341
Meshes/elevator_blades2649076810
Meshes/meh79311951302
Meshes/Spike cylinder6230478715
white-horns86224977372204
noobvalk3.014972893485
SPIKE MATTER5498326754
Blue Fox110324072413202
Meshes/brif (2)1567319279
Meshes/SSJ Goten6769833541
red hat of the phoenix110355951557096
Style tophat10942231862
Spiked Head13269921466
Chongyun hand thing7200787583
Meshes/My Roblox UGC_Circle ###11092281901
back gggg13134124295
Sonky the Hinge Pog6002675901
Meshes/SM_Env_Grass_022667820997
Plain Witch hat.10914772003
Samnite Infantry 13588589302
Hand Brooch (TEXTURE IN DESC)5701546738
Meshes/1444 rtx11871723444
Hello Halo13833242364
Pink_Flower7365916130
emld blade2469813563
AAABB BBBCCC8646886344
Meshes/Spiky_Bomb7096054244
Black Elebit539214734
Fishl Butterfly Tie (Failed)8092210336
Chinesee lantern multiple rods7866711854
Meshes/monster110595727928
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
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.
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.
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.
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.
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.
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.
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.
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.