Materials

Roblox’s materials are unlike materials on other platforms. Their visual and physical properties reflect those of materials in the real world. For example, concrete is heavier than plastic and sinks faster in water. Set the material in the part or terrain, and Roblox simulates the physical material properties to make this behavior just work.

Roblox Engine offers a wide range of built-in materials suitable to build many experiences, including various categories of metal, rock, and organic materials. The Material Manager in Studio helps you visualize materials and apply them to parts and terrain.

You can create your own custom materials or load custom materials that other users created, via a system called the MaterialService. Custom materials have an additional behavior called Adaptive Materials that makes it easy for you to adapt any model to use your art style and custom materials, even if someone else created the model.

Material Manager

The easiest way to interact with materials is through the Material Manager. It's a convenient, streamlined tool for working with materials. You can also interact with materials via the Properties window, but the Material Manager is easier.

Exploring Material Manager

To open the Material Manager, click the Home tab, then click Material Manager. You can also open it from the Parts section of the Model tab.

The Material Manager opens as a large window.

Material Manager has four areas:

A. The Toolbar displays key commands and a material search field.
B. The Browser displays available materials, either all at once or by category.
C. The Palette displays the materials in the currently selected category.
D. The Inspector displays information about the selected material.

You can resize it and dock it like other windows in Studio. To adjust the size of each grid and toggle between list or grid view, use the view options on the top-right corner.

Applying Materials to Parts using Apply to Selected

The Material property for new Part instances is Plastic. To apply a material to a part:

  1. In the viewport or the Explorer window, click the Part.

  2. In the Palette, hover your mouse over the material you want to apply. You don't need to click it. The Apply to Selected button appears.

  3. Click Apply to Selected.

Applying Materials to Parts using Material as Tool

You can use a material as a tool that applies to parts. To use a material as a tool:

  1. In the Material Manager, click the material you want to apply.

  2. In the top-left corner of the Material Manager, click Use Material as Tool button to enable the material as a tool.

  3. In the viewport, click the parts you want to apply the material to.

  4. When you're done using the material as a tool, click Use Material as Tool again to disable the tool.

Materials for Terrain

A subset of the materials available for parts is available for terrain. In addition to the visual and physical properties materials provide for parts, terrain materials determine features such as the terrain's shape and its decorator display. For example, brick terrain has a boxy shape and the grass decorator renders on grass terrain but not on ice terrain. For information on which materials are available for terrain and how to apply them, see Terrain.

Colors for Parts and Terrain

Parts and terrain inherit their look from its material, but you can apply colors to further adjust their look. Parts are colored per-part, but Terrain is colored per-place. For example, you can have three different parts made of grass that are tinted red, blue, and green, but all Terrain grass in a Place has the same tint. For information on how to color parts and terrain, see Parts and Terrain, respectively.

Custom Materials

Roblox provides APIs and tools to make it easy to create your own custom materials and use them in a variety of ways. MaterialService is the system that enables you to generate custom materials. MaterialVariant instances represent custom materials as variations of built-in materials. You can apply custom materials per-part or globally to both parts and terrain, and you can fine-tune how custom materials apply to faces of terrain using TerrainDetail instances.

The appearance of custom materials is based on Physically Based Rendering (PBR) textures that you make with other tools, such as Adobe Substance 3D Designer.

MaterialService

The Material Manager provides a user interface to interact with various aspects of the MaterialService, including creating new custom materials and applying them to parts and terrain.

You can also interact with the MaterialService from the Explorer or in server-side scripts. Each MaterialVariant instance must be in the MaterialService for it to work.

Upgrading Built-In Materials

The built-in materials upgraded in 2022 to support Custom Materials. This upgrade is on by default for new places, but it's optional. To upgrade built-in materials from the Pre-2022 versions to the 2022 versions:

  1. In the Explorer window, click MaterialService.

  2. In the Properties window, scroll down to Material Pack. Enable Use2022Materials.

After upgrading, you might need to adjust colors for terrain because terrain made with 2022 materials use tint instead of hue shift.

Creating a Custom Material in the Material Manager

The Material Manager provides a graphical user interface for you to insert MaterialVariant instances in the MaterialService. To create a custom material in the Material Manager:

  1. If the Material Manager isn't open, then click Material Manager in the Home tab.

  2. In the top-left corner of the Material Manager, click Create Material Variant. The Create Variant window appears.

  3. Choose a name for your custom material. You can change the name later, but if you change the name after applying it to parts, then you need to reapply it.

  4. Select a built-in material as a Base Material for your custom material to inherit non-customizable properties from.

  5. Type the asset ID for the texture maps that you want to use for your MaterialVariant or import new textures. If you don't specify the asset ID for a texture map, then the custom material displays a blank texture.

  6. If you want, set values for Studs Per Tile and Material Pattern to adjust how the material looks.

  7. When you are ready, click Save. Your new custom material appears in the Material Manager. The icon in the bottom-right corner indicates that it's a custom material.

Creating a Custom Material in the Explorer

To create a custom material in the Explorer:

  1. Hover over the MaterialService.
  2. Click the ⊕ button that appears to the right of the MaterialService to open the Insert Object menu.
  3. Select MaterialVariant.
  4. Rename the custom material to describe its purpose.
  5. Update the properties of the custom material to fit your needs.

Applying Custom Materials

Applying Custom Materials to Parts

You can apply custom materials to a Part by setting the Part.Material to MaterialVariant.BaseMaterial and Part.MaterialVariant to MaterialVariant.Name. If you use the Material Manager, it sets both for you. If you use the Properties window, then setting the MaterialVariant property automatically sets the Material as the base material. If you use a server-side script, remember to set both properties.

You can apply custom materials to parts from the Material Manager by using the Apply to Selected or the Use Material as Tool. To use Apply to Selected:

  1. In the viewport or the Explorer window, click the parts that you want to apply the custom materials to.

  2. In the Material Manager, find your custom material and hover over it.

  3. Click Apply to Selected Parts.

Setting Material Overrides

You can set a custom material as a Material Override to make its built-in base material be a reference to the custom material. As a result, when you set the material of a part or terrain to be the built-in material, the Engine uses the custom material instead.

Material Overrides apply to both parts and terrain, and they are the only way to apply custom materials to terrain. The materials for terrain are global per place, so you can't apply multiple variants of the same base material to terrain in a single place.

To set a custom material as a material override in the Material Manager:

  1. If the Material Manager isn't open, then click Material Manager in the Home tab.

  2. Click the custom material that you want to set as an override.

  3. In the inspector, scroll down to Material Overrides. Enable Set Override.

A convenient way to automatically make a variant an override is to give it the same name as the base material. You can disable the automatic override in the Material Manager by following the previous steps.

Viewing Material Overrides

To view Material Overrides in your place:

  1. In the Explorer window, click MaterialService.

  2. In the Properties window, scroll to Material Overrides.

Detailing Faces of Terrain

When you apply a material to parts or terrain, the material applies as tiles across each face. You can use a TerrainDetail instance to customize the Side, Bottom, and Top faces of terrain. Each TerrainDetail instance overrides the properties of a custom material for one face on the terrain. Use one instance for each face of each custom material.

TerrainDetail instances don't apply to parts. To detail faces of parts, create a mesh with a SurfaceAppearance instance. For more information, see Meshes in Studio.

To detail the face of a terrain with a custom material:

  1. Set the custom material as a Material Override for its built-in base material.

  2. In the Explorer, hover over the custom material.

  3. Click the ⊕ button that appears to the right of the custom material to open the Insert Object menu. Select TerrainDetail.

  4. Rename the terrain detail to describe its purpose.

  5. In the Properties window, define the properties to fit your needs. The Face property determines whether to apply the TerrainDetail to the Bottom, Side, or Top of the terrain. The default is Side. The remaining properties are the same as those for MaterialVariant.

Editing a Custom Material

You can edit all properties of a custom material in the Material Manager or the Properties window. However, if you rename the custom material after applying it to parts, then the parts don't automatically use the custom material with the new name. This behavior allows for Adaptive Materials. If you want parts to continue using a custom material after you rename it, you need to re-apply the custom material.

To edit a MaterialVariant in the Material Manager:

  1. If the Material Manager isn't open, then click Material Manager in the Home tab.

  2. Click the custom material you want to edit.

  3. Click the edit icon.

Deleting a Custom Material

You can delete a custom material using the Material Manager or the Explorer. To delete a custom material in the Material Manager:

  1. If the Material Manager isn't open, then click Material Manager in the Home tab.

  2. Click the custom material you want to edit.

  3. Click the edit icon.

Reusing Custom Materials

You can reuse custom materials across multiple places and experiences by putting them in Models and Packages. However, each MaterialVariant instance must be in the MaterialService for it to work.

  • If you publish a model in the Creator Marketplace with a custom material, include the MaterialVariant instance in the model. For more information about publishing models to the Creator Marketplace, see Publishing Assets.
  • If you insert a model from the Creator Marketplace, look for any MaterialVariant instances and copy them to the MaterialService. For more information about importing models from the Creator Marketplace, see Creator Marketplace.
  • If you want to use custom materials with packages, put the package in the MaterialService. For more information on packages, see Packages.

Adaptive Materials

When you apply a custom material to a part, the part's Part.MaterialVariant property becomes the name of its MaterialVariant rather than its specific instance. This means that when you reuse the part in the same or a different place, as in a model or package, it's easier for you to adapt different custom materials to adjust the part's look. The adaptive behavior of custom materials has the following effects:

  • If you create collections of custom materials with the same name but different textures, then you can quickly change the style of a place by changing which collection is a child of MaterialService.
  • If you insert a model with parts that use a custom material, then you can modify its look by creating an instance of MaterialVariant in the MaterialService and renaming it to the same name as the previous custom material, rather than applying the new material to the parts in the model.

For more information about reusing custom materials in models and packages, see Reusing Custom Materials.

Asset IDs for Built-In Materials

Shaders generate the look and feel of materials. The built-in Materials shaders work differently than the shader MaterialVariant instances use, so you can't create a custom material that looks exactly like a built-in Material. However, you can still create custom materials that use the textures of built-in materials. The following tables list the asset IDs for built-in materials.

2022 Materials

Material Color Normal Metalness Roughness
Asphalt 9930003046 94294498769429450346
Basalt 9920482056 94384122149438412457
Brick 9920482813 94384531529438453413
Cobblestone 9919718991 94384571629438457470
Concrete 9920484153 94665540069466554186
CorrodedMetal 9920589327 9439548484 9439548749 9439556441
CrackedLava 9920484943 94385087909438509046
DiamondPlate 10237720195 9438583222 9438583347 9438583558
Fabric 9920517696 98732804129873282563
Foil 9466552117 9424786192 9424786272 9424786620
Glacier 9920518732 94388129589438851286
Glass 9438868521 75473047857547304892
Granite 9920550238 94388829359438883109
Grass 9920551868 94389557739438955997
Ground 9920554482 94390435589439043765
Ice 9920555943 94673010399467301203
LeafyGrass 9920557906 94390807819439080950
Limestone 9920561437 94394151919439415495
Marble 9439430596 94394312409439431383
Metal 9920574687 9873295432 9873318201 9873318890
Mud 9920578473 94395098279439510012
Pavement 9920579943 94395192819439519532
Pebble 9920581082 94395286449439537267
Rock 9920587470 94395384179439545859
Salt 9920590225 94395658099439566688
Sand 9920591683 94395770849439577327
Sandstone 9920596120 94395965309439596711
Slate 9920599782 94396125149439612733
Snow 9920620284 94396320069439632145
Wood 9920625290 94396413769439648605
WoodPlanks 9920626778 94396506899439658127

Pre-2022 Materials

Material Color Normal Metalness Roughness
Brick 7546648254 75466496547546650017
Cobblestone 7546651802 75466526897546652892
Concrete 7546653328 75466537077546653868
CorrodedMetal 7547183598 7547181182 7547184321 7547184588
DiamondPlate 7546654401 7546654536 7547162002 7547162137
Fabric 7547100606 75471009157547101072
Foil 7546644642 7546644903 7546644642 7546644963
Glass 7547304577 75473047857547304892
Granite 7547164400 75466546487547164660
Grass 7547167347 75471686537547169207
Ice 7546644642 75471711987547171276
Marble 7547174345 75471760607547177213
Metal 7547178395 7547287997 7547288112 7547179082
Pebble 7547291174 75466450527547291306
Sand 7547294684 75472948107547295087
Slate 7547297050 75472978087547298051
Wood 7547190453 7547190548 7547190619 7547303147
WoodPlanks 7547301709 7547188159 7547188891 7547332869

2022 Terrain Materials

Material Terrain Face Color Normal Roughness
Asphalt Top 9930003046 9429449876 9429450346
Side 9930005689 9429465046 9429466226
Basalt9920482056 9438412214 9438412457
Brick9920482813 9438453152 9438453413
Cobblestone9919718991 9438457162 9438457470
Concrete9920484153 9466554006 9466554186
CrackedLava9920484943 9438508790 9438509046
Glacier Top 9920518732 9438812958 9438851286
Side 9920520269 9438853412 9438853585
Bottom 9920521000 9438867267 9438867465
Grass Top 9920551868 9438955773 9438955997
Side 9932815307 9438958337 9439010060
Bottom 9932815307 9439011893 9439012136
Ground9920554482 9439043558 9439043765
Ice Top 9920555943 9467301039 9467301203
Side 9920556722 9439071195 9439071371
LeafyGrass Top 9920557906 9439080781 9439080950
Side 9932815307 9439151713 9439151929
Bottom 9932815307 9439151713 9439151929
Limestone Top 9920561437 9439415191 9439415495
Side 9920562675 9439417923 9439418334
Mud9920578473 9439509827 9439510012
Pavement Top 9920579943 9439519281 9439519532
Side 9920580293 9439527387 9439527572
Rock9920587470 9439538417 9439545859
Salt Top 9920590225 9439565809 9439566688
Side 9920590689 9439568299 9439575868
Sand Top 9920591683 9439577084 9439577327
Side 9920592270 9439586304 9439593887
Sandstone Top 9920596120 9439596530 9439596711
Side 9920628274 9439605275 9439605506
Slate Top 9920599782 9439612514 9439612733
Side 9920614158 9439615040 9439621979
Snow Top 9920620284 9439632006 9439632145
Side 9920620898 9439639648 9439640077
WoodPlanks9920626778 9439650689 9439658127

Pre-2022 Terrain Materials

Material Terrain Face Color Normal Roughness
Asphalt Top 7547349715 7547350415 7551984908
Side 7551989667 7547322693 7547350597
Basalt7551975939 7547348152 7551977581
Brick7547631333 7547633037 7546657679
Cobblestone Top 7551992689 7547351364 7547351553
Side 7547648825 7547352096 7547649793
Concrete Top 7547196561 7547337919 7547197958
Side 7547628584 7547199386 7547310473
CrackedLava7551980711 7547320674 7551982079
Glacier Top 7547646888 7551930815 7551932698
Side 7551937696 7551940030 7551941712
Bottom 7551946144 7551948150 7551932698
Grass Top 7547307376 7547336606 7547308019
Side 7547621556 7547191705 7547622691
Bottom 7551927733 7547193357 7547625590
Ground7547348623 7547348887 7547349016
Ice Top 7547352634 7547651999 7547652934
Side 7547656350 7547657495 7546663210
LeafyGrass Top 7546663659 7546664288 7546664614
Side 7546665232 7546666003 7546666120
Limestone Top 7547206319 7547670319 7547671387
Side 7547206579 7547674533 7547206799
Mud7551972606 7552022188 7552023936
Pavement Top 7547678151 7547207799 7547207869
Side 7547680765 7547208846 7547682025
Rock7546659890 7546660701 7547643804
Salt Top 7546666647 7547660879 7547661939
Side 7547665222 7547667170 7547668252
Sand Top 7547635114 7547311493 7546658153
Side 7546658461 7546659003 7546659187
Sandstone Top 7547202858 7547204511 7551954003
Side 7551958805 7551960790 7551962377
Bottom 7551967204 7551968869 7551970693
Slate7547309616 7546656859 7547626537
Snow7547315875 7547201338 7547316776
WoodPlanks7547637836 7547639230 7547640511

Default Colors

The following table lists the default RGB values for each 2022 material. For steps on how to upgrade Pre-2022 materials to 2022 materials, see Upgrading Built-In Materials. For information on how to color parts and terrain, see Parts and Terrain, respectively.

2022 Material RGB Value Color
Asphalt 80, 84, 84
Basalt 75, 74, 74
Brick 138, 97, 73
Cobblestone 134, 134, 118
Concrete 152, 152, 152
CorrodedMetal 104, 140, 173
CrackedLava 255, 24, 67
DiamondPlate 168, 175, 176
Fabric 194, 193, 168
Foil 168, 175, 176
Glacier 221, 228, 229
Glass 138, 167, 168
Granite 149, 146, 139
Grass 111, 126, 62
Ground 140, 130, 104
Ice 204, 210, 223
LeafyGrass 106, 134, 64
Limestone 255, 243, 192
Marble 122, 122, 122
Metal 168, 175, 176
Mud 121, 112, 98
Pavement 143, 144, 135
Pebble 122,122,118
Rock 99, 100, 102
Salt 255, 255, 254
Sand 207, 203, 167
Sandstone 148, 124, 95
Slate 88, 89, 86
Snow 235, 253, 255
Wood 172, 148, 108
WoodPlanks 172, 148, 108