Roblox Mesh IDs
6,827 mesh IDs — set any of them on a MeshPart in Studio.
Browse every mesh
6,827 meshes
Meshes/ship2 (2)1257304279
Dominus Lightningus10863555173
Lord Team Spider Hat :O14625397984
Gun Mesh430070525
top hat16900947792
Meshes/Cubone557320438
Sankt Zwinger 3106097140302785
Banjo (Free)6214119653
Wario Party105708784330422
OBJ file of me16314219892
Meshes/Agumon ###11129102455
Nondescript Dynasty14081206859
Meshes/h_evil_h_merged7252586537
682_reference139966128839349
Meshes/wdsa (1)93027799178045
Giga Bowser2667198307
Belphmon Rage Mode Head843593143
Meshes/it works13727331576
Meshes/scp 93912894262197
DOrugreymon Body843766973
Meshes/shadu139322283201657
afo right arm72776920313411
Dragon Scimitar1189089315
model dragon11541282087
frog hat18217877279
hat of thorns15782985672
Green Black top Hat14867570899
Spiked Hat Mesh5235195096
Brutez Hat621501572
Meshes/fort12128092803822254
Luger no virus6888418088
Meshes/deserteagle12864182142
Desert eagle no virus7057631774
star gun arm3106924994264184
otogi gun mag full107928603791363
Otogi gun mag no ammo104453963566301
star gun arm 293459628137581
Cylinder.001125332930717174
Rick Portal Gun121495774742305
stone torii gate10690205364
Melantha Katana100875549931032
Rivers of Blood Katana89668112225909
Long Arrow101096061395057
T headphones13706834764
Meshes/GunCable3135394496159304
Object_3120016290496107
Meshes/fence14381956931
Uhaga Grayish Purple97099621234383
Flat Arrow Half Loop Alt135077922052939
Flat Arrow Loop133532565342846
Sunny Horns80313611714078
Rubble_JJS77117907378265
Meshes/bogie_a98330351550265
Rebar Club583576039
yuga chain seal74171688771528
Chucky Chain80536445985809
stone samurai hat with chain11311079580
chain mondle11315695751
taxi_cab489616532
Warbird Body10442939793
Meshes/분당선주둥이_원형.00718268346375
2004 Dodge Stratus116658822209634
nissan altima97467025617497
LOL CAR462732025
mud boarder10271731779
tribal wolf right lower arm13503762542
Mao Jong Un1575844437
Meshes/เวฟ110งานแรก_Plane015390747747561328
Wolf Mask16766814250
Peterbilt interior88248794681436
Meshes/BlueThingII105880104022383
MIG-33658037985
Meshes/elite bronze spearman123783932992036
Haavk Logo87997999486935
plane_idk_thing_fix14696124351
Squid Game Possibly Young-hee’s Eyes131218393435513
Mikoyan 2594911145493654
Blocky fern137709877274585
Meshes/Paps ##########13615950068
Meshes/shortswordhilt9350830055
lolololo item :DDDD135784562296247
Meshes/testimport6 (1)6011313341
Meshes/Turbine thing6140876538
Squid Game Possibly Cheol-su’s Eyes96496963396871
Modern sculpture112168506944897
SoiFon Bankai116140744085223
Meshes/Plane_004 (4)18295654590
Dragon Wings Grey17377613560
Meshes/Balloon Fairy17099864998
Meshes/StriderBody182944529858285
Meshes/god wings14936106870
Skeleton Wings15235891047
Belphmon Rage Mode Wings843574420
Devil wings12654271717
Angel's wings14982657783
Meshes/Bluegoldhelmet113126273454
Gourd thing for a friend for the 50th time100388762390992
SimDev Small Crystal6927675980
Meshes/GunMid95871067785200
Meshes/badge ball_bribble4496470973
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.