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 of a 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. 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 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 Material Manager. It's a convenient, streamlined tool for working with materials. You can also interact with materials via Properties, but Material Manager is easier.

Exploring Material Manager

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

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 Explorer, 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 Paint

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

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

  2. In the top-left corner of Material Manager, click Paint parts with selected material to enable the material as a painting tool.

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

  4. When you're done using the material as a painting tool, click Paint parts with selected material 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 with 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 and Substance 3D Painter. For more information on using Adobe Substance 3D Designer to create textures for custom materials, see the Adobe documentation.

MaterialService

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

You can also interact with MaterialService from Explorer or in server-side scripts. Each MaterialVariant instance must be in 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 Explorer, click MaterialService.

  2. In Properties, 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

Material Manager provides a graphical user interface for you to insert and edit MaterialVariant instances in MaterialService.

You can edit all properties of a custom material in Material Manager or Properties. 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.

In Material Manager

To create a custom material in Material Manager:

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

  2. In Material Manager, click the built-in material that you want to set as the base material for your custom material to inherit non-customizable properties from. If you skip this step, the base material is Plastic, but you can change it later.

  3. In the top-left corner of Material Manager, click Create Material Variant. The inspector opens for you to edit a new MaterialVariant instance.

  4. In the inspector, rename your custom material to describe its purpose. You can change the name later, but if you change the name after applying it to parts, then you need to reapply it.

  5. For each texture map, paste the asset ID or import a new texture from your computer. Square textures work best. If you don't specify an asset ID for a texture map, then the texture is blank.

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

  7. In the palette, the icon in the bottom-right corner of your custom material indicates that it's a custom material.

In Explorer

To create a custom material in Explorer:

  1. Hover over MaterialService.

  2. Click the ⊕ button that appears to the right of 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 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 Material Manager, it sets both for you. If you use Properties, 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 Material Manager by using the Apply to Selected or the Applying Materials to Parts using Paint. To use Apply to Selected:

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

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

  3. Click Apply to Selected Parts.

For information on the Paint parts with selected material tool, see Applying Materials to Parts using Paint.

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 for textures and physical properties.

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.

The default Material Override for each built-in material is its name. For example, the default Material Override for Brick is "Brick". As a result, a convenient way to set a custom material as a Material Override for its base material is to rename it to the name of its base material. If you don't want the built-in material to use a custom material as the Material Override even if a custom material with its name exists, then set the Material Override to "None".

Setting Material Overrides

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

  1. If 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.

Disabling Material Overrides

To disable the Material Override for a base material:

  1. If 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. In the dropdown menu for Material Override, select None.

Viewing Material Overrides

To view Material Overrides in your place:

  1. In Explorer, click MaterialService.

  2. In Properties, scroll to Material Overrides.

Terrain Details

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.

Creating Terrain Details

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

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

  2. In the palette, click the custom material.

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

  4. In the inspector, click Create for the face you want to detail.

  5. Rename the terrain detail to describe its purpose. Set the texture maps, Studs Per Tile, and Pattern. These properties are the same as for MaterialVariant instances.

Deleting Terrain Details

To delete a TerrainDetail, click the delete button.

Deleting a Custom Material

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

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

  2. In the palette, click the custom material.

  3. In the inspector, click the delete icon.

Physical Properties

Materials have physical properties: density, elasticity, elasticity weight, friction, and friction weight. Each built-in material has default values for each physical property. For a list of the default values, see Default Physical Properties.

You can set custom values for the physical properties per part, custom material, and material override. The Engine prioritizes more granular definitions when determining the effective physical properties of a part. The values in the following list are in order from highest to lowest priority:

  • Custom physical properties of the part
  • Custom physical properties of the part's custom material
  • Custom physical properties of the material override of the part's material
  • Default physical properties of the part's material

Setting Custom Physical Properties for a Part

Setting custom physical properties of a part overrides the physical properties of its material. You can set the custom physical properties from Properties.

To set the custom physical properties to a part:

  1. In the viewport or Explorer, click the part.

  2. In Properties, scroll down to the Part section. Enable CustomPhysicalProperties.

  3. Set the physical properties as you like.

Setting Custom Physical Properties for a Custom Material

You can set values for the physical properties of a custom material from Material Manager.

To set custom physical properties to a custom material:

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

  2. Click the custom material you want to edit.

  3. In the inspector, scroll down to the Physics section.

  4. Set the physical properties as you like.

To reset the physical properties to the default values for the base material, click Reset.

Viewing Current Physical Properties

To view the current physical properties for a part:

  1. In the viewport or Explorer, click the part.

  2. In Properties, scroll down to the Part section. If CustomPhysicalProperties is disabled, then CurrentPhysicalProperties appears.

  3. If CurrentPhysicalProperties is overridden by a MaterialVariant, then a warning shows. To jump to that MaterialVariant, double-click Overridden by or its name.

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 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.

When you reuse custom materials in models and packages, each MaterialVariant instance must be in 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 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 MaterialService. For more information on packages, see Packages.

The Creator Marketplace has a category called Materials for "material packs", models that contain only MaterialVariant, TerrainDetail, Folder, and Model instances. The Materials category is a way to promote and discover custom materials by other creators.

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

Default Physical Properties

The following table lists the default physical properties for each material. The 2022 materials and Pre-2022 materials have the same values. For descriptions of each property see the PhysicalProperties data type in the Engine API reference. For information on setting custom physical properties, see Physical Properties.

Material Density Elasticity ElasticityWeight Friction FrictionWeight
Asphalt 2.36 0.2 1 0.8 0.3
Basalt 2.691 0.15 1 0.7 0.3
Brick 1.922 0.15 1 0.8 0.3
Cobblestone 2.691 0.17 1 0.5 1
Concrete 2.403 0.2 1 0.7 0.3
CorrodedMetal 7.85 0.2 1 0.7 1
CrackedLava 2.691 0.15 1 0.65 1
DiamondPlate 7.85 0.25 1 0.35 1
Fabric 0.7 0.05 1 0.35 1
Foil 2.7 0.25 1 0.4 1
ForceField 2.403 0.2 1 0.25 1
Glacier 0.919 0.15 1 0.05 2
Glass 2.403 0.2 1 0.25 1
Granite 2.691 0.2 1 0.4 1
Grass 0.9 0.1 1.5 0.4 1
Ground 0.9 0.1 1 0.45 1
Ice 0.919 0.15 1 0.02 3
LeafyGrass 0.9 0.1 2 0.4 2
Limestone 2.691 0.15 1 0.5 1
Marble 2.563 0.17 1 0.2 1
Metal 7.85 0.25 1 0.4 1
Mud 0.9 0.07 4 0.3 3
Neon 0.7 0.2 1 0.3 1
Pavement 2.691 0.17 1 0.5 0.3
Pebble 2.403 0.17 1.5 0.4 1
Plastic 0.7 0.5 1 0.3 1
Rock 2.691 0.17 1 0.5 1
Salt 2.165 0.05 1 0.5 1
Sand 1.602 0.05 2.5 0.5 5
Sandstone 2.691 0.15 1 0.5 5
SmoothPlastic 0.7 0.5 1 0.2 1
Slate 2.691 0.2 1 0.4 1
Snow 0.9 0.03 4 0.3 3
Wood 0.35 0.2 1 0.48 1
WoodPlanks 0.35 0.2 1 0.48 1