Lesson 01 of 05
MeshPart Pipeline
From Blender to Roblox — the modern asset import workflow.
MeshParts are the bridge between external modeling software and Roblox. The pipeline:
- 1.Model in Blender (or any 3D app)
- 2.Keep triangle count lean: <5000 for hero props, <1000 for background props
- 3.Apply one material per mesh (Roblox doesn't support multi-material per MeshPart)
- 4.Export as OBJ or FBX (FBX preferred for rigged meshes)
- 5.Import via Studio's Import tool — it creates a MeshPart with MeshId
- 6.Add SurfaceAppearance for PBR textures
MeshParts render faster than Unions. Always prefer MeshPart for complex organic shapes.
luau
1-- Programmatic MeshPart creation
2local mesh = Instance.new('MeshPart')
3mesh.MeshId = 'rbxassetid://YOUR_MESH_ID'
4mesh.Size = Vector3.new(4, 4, 4) -- must match original scale
5mesh.Anchored = true
6mesh.CastShadow = true
7mesh.Parent = workspace
8
9-- PBR SurfaceAppearance
10local sa = Instance.new('SurfaceAppearance', mesh)
11sa.ColorMap = 'rbxassetid://ALBEDO_ID'
12sa.NormalMap = 'rbxassetid://NORMAL_ID'
13sa.RoughnessMap = 'rbxassetid://ROUGHNESS_ID'
14sa.MetalnessMap = 'rbxassetid://METALNESS_ID'
15
16-- Script: swap texture at runtime (e.g. day/night)
17local function setTexture(meshPart, colorMapId)
18 local sa = meshPart:FindFirstChildOfClass('SurfaceAppearance')
19 if sa then sa.ColorMap = 'rbxassetid://' .. colorMapId end
20end
READY · 20 lines
