Vi3W
Skip to content

Guides

Roblox mesh texture not showing? Why imported meshes come in grey, and how to fix it

Why imported meshes come into Roblox Studio grey (OBJ, unembedded FBX textures, several materials, SurfaceAppearance) and how to fix each cause.

Aman PorwalFounder @ Vi3W

2 min read

Two crates side by side, the left plain grey labelled imported grey, the right wood-brown labelled texture assigned
Illustration. Same mesh, before and after the texture is connected.

Quick answer

Why is my imported mesh grey in Roblox Studio?

Studio didn't get or apply the texture. Usual causes: the file was an .obj, the .fbx didn't embed its images, a .gltf pointed at external image files, the model used more than one material, or a SurfaceAppearance is overriding the TextureID. Re-export as .glb or embed textures, or assign the image in Studio.

Work down the list

1. It's an OBJ

Roblox's Importer lists textures among the features it supports for .fbx and .gltf (Importer docs). With OBJ, plan to assign the texture yourself:

  1. Import the image file (.png, .jpg, .tga or .bmp). Studio uploads it and gives you an asset ID.
  2. Select the MeshPart and paste that ID into TextureID (Meshes).

Or re-export as .glb and import again.

2. The FBX didn't embed its images

Blender's default FBX export references images by path, and Studio may not find them. In the export dialog, set Path Mode ⟩ Copy and toggle Embed Textures on, per Roblox's export settings.

3. A .gltf points at separate image files

A .gltf can keep images as separate files beside it. Export .glb instead, so everything travels in one file.

4. The model has more than one material

Roblox allows one material per mesh, and one UV set. Either bake all materials into one texture set, or split the model so each piece has one material.

Still grey?

  • A SurfaceAppearance is overriding it. If the MeshPart has a SurfaceAppearance child, its ColorMap wins and TextureID is ignored (PBR textures in Roblox).
  • No UVs. A mesh that was never unwrapped has nowhere to put the image. See UV mapping.
  • Procedural materials. Blender node textures aren't images. Bake them first.
  • The image is still processing or was moderated. Wait a moment and check the asset in the Asset Manager.

Texture shows but looks wrong

  • Stretched or swirled: the UVs are distorted, or the texture wasn't made for this mesh. A tiling texture on an unwrapped mesh won't line up with its seams.
  • Bumps look like dents: the normal map is DirectX-style. Roblox expects OpenGL tangent space, so invert the green channel.
  • Normal map has no effect: re-export the mesh with tangents, which Roblox expects.
  • Painted shadows look odd in your lighting: the colour map has baked-in lighting. Use an albedo map without shading.

Avoid it next time

Generate or export models with textures embedded and one material. Vi3W exports a single GLB with its PBR textures inside, which is the format least likely to arrive grey. Generate a textured model in Vi3W.

Frequently asked questions

Mesh importing without a texture even though it has one in blender

Blender showing a texture doesn't mean the exported file contains it. For FBX, set Path Mode to Copy and turn on Embed Textures in the export dialog, and make sure the image is connected to the Principled BSDF's Base Color. Or export .glb, which always packs images inside. If it's still grey, import the image on its own and paste its ID into the MeshPart's TextureID.

No texture when importing from Blender

If the material is built from procedural nodes (noise, gradients, colour ramps) rather than an image, there's nothing to export. Roblox needs image textures. UV-unwrap the mesh, bake the material to an image in Blender, connect that image to Base Color, and then export. For roughness, metalness and normal detail, bake those too and use a SurfaceAppearance.

Last reviewed